fix unsafe evaluate of Object static methods (#2232)

fixes #2231
This commit is contained in:
Alex Lam S.L
2017-07-14 19:52:01 +08:00
committed by GitHub
parent 5229cb2b1b
commit 9282e7b0c6
2 changed files with 31 additions and 5 deletions

View File

@@ -1853,10 +1853,6 @@ merge(Compressor.prototype, {
"isFinite",
"isNaN",
],
Object: [
"keys",
"getOwnPropertyNames",
],
String: [
"fromCharCode",
],
@@ -3496,7 +3492,9 @@ merge(Compressor.prototype, {
operator: car.operator,
expression: left
});
} else car.write_only = false;
} else {
car.write_only = false;
}
if (parent) {
parent[field] = car;
expressions[i] = expressions[j];

View File

@@ -1157,3 +1157,31 @@ issue_2207_3: {
}
expect_stdout: true
}
issue_2231_1: {
options = {
evaluate: true,
unsafe: true,
}
input: {
console.log(Object.keys(void 0));
}
expect: {
console.log(Object.keys(void 0));
}
expect_stdout: true
}
issue_2231_2: {
options = {
evaluate: true,
unsafe: true,
}
input: {
console.log(Object.getOwnPropertyNames(null));
}
expect: {
console.log(Object.getOwnPropertyNames(null));
}
expect_stdout: true
}