mirror of
https://github.com/golang/go
synced 2024-11-26 15:56:57 -07:00
misc/wasm: make wasm_exec more robust against uncommon environments
JavaScript environments are quite unpredictable because bundlers add mocks for compatibility and libraries can polute the global namespace. Detect more of such situations: - Add check that require("fs") returns an object. - Fix check that require("fs") returns an non-empty object. - Add check that "module" is defined. Fixes #40730 Change-Id: I2ce65fc7db64bbbb0b60eec79a4cfe5c3fec99c0 Reviewed-on: https://go-review.googlesource.com/c/go/+/248758 Run-TryBot: Richard Musiol <neelance@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
This commit is contained in:
parent
8381408048
commit
758ac371ab
@ -11,6 +11,7 @@
|
|||||||
// - Node.js
|
// - Node.js
|
||||||
// - Electron
|
// - Electron
|
||||||
// - Parcel
|
// - Parcel
|
||||||
|
// - Webpack
|
||||||
|
|
||||||
if (typeof global !== "undefined") {
|
if (typeof global !== "undefined") {
|
||||||
// global already exists
|
// global already exists
|
||||||
@ -28,7 +29,7 @@
|
|||||||
|
|
||||||
if (!global.fs && global.require) {
|
if (!global.fs && global.require) {
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
if (Object.keys(fs) !== 0) {
|
if (typeof fs === "object" && fs !== null && Object.keys(fs).length !== 0) {
|
||||||
global.fs = fs;
|
global.fs = fs;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -556,6 +557,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (
|
if (
|
||||||
|
typeof module !== "undefined" &&
|
||||||
global.require &&
|
global.require &&
|
||||||
global.require.main === module &&
|
global.require.main === module &&
|
||||||
global.process &&
|
global.process &&
|
||||||
|
Loading…
Reference in New Issue
Block a user