avoid setters during console.log() in sandbox (#4055)

fixes #4054
This commit is contained in:
Alex Lam S.L
2020-08-18 23:14:41 +01:00
committed by GitHub
parent fa13ed4391
commit e8db526f51
2 changed files with 19 additions and 1 deletions

View File

@@ -80,3 +80,21 @@ log_global: {
}
expect_stdout: "[object global]"
}
issue_4054: {
input: {
console.log({
set p(v) {
throw "FAIL";
},
});
}
expect: {
console.log({
set p(v) {
throw "FAIL";
},
});
}
expect_stdout: "{ p: [Setter] }"
}

View File

@@ -40,7 +40,7 @@ function createContext() {
arg.constructor.toString();
if (level--) for (var key in arg) {
var desc = Object.getOwnPropertyDescriptor(arg, key);
if (!desc || !desc.get) arg[key] = safe_log(arg[key], level);
if (!desc || !desc.get && !desc.set) arg[key] = safe_log(arg[key], level);
}
}
return arg;