workaround toString() quirks on global context (#4814)
This commit is contained in:
@@ -170,12 +170,6 @@ function setup(global, builtins, setup_log, setup_tty) {
|
||||
},
|
||||
global: { get: self },
|
||||
self: { get: self },
|
||||
// for Node.js v8+
|
||||
toString: {
|
||||
get: function() {
|
||||
return global_toString;
|
||||
},
|
||||
},
|
||||
window: { get: self },
|
||||
};
|
||||
[
|
||||
@@ -205,15 +199,19 @@ function setup(global, builtins, setup_log, setup_tty) {
|
||||
} catch (e) {}
|
||||
});
|
||||
Object.defineProperties(global, props);
|
||||
// for Node.js v8+
|
||||
if (global.toString !== Object.prototype.toString) {
|
||||
global.__proto__ = Object.defineProperty(Object.create(global.__proto__), "toString", {
|
||||
value: function() {
|
||||
return "[object global]";
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
function self() {
|
||||
return this;
|
||||
}
|
||||
|
||||
function global_toString() {
|
||||
return "[object global]";
|
||||
}
|
||||
|
||||
function safe_log(arg, cache) {
|
||||
if (arg) switch (typeof arg) {
|
||||
case "function":
|
||||
|
||||
Reference in New Issue
Block a user