enhance unsafe_proto (#2733)

This commit is contained in:
Alex Lam S.L
2018-01-06 06:16:51 +08:00
committed by GitHub
parent 9b1bc6c014
commit 3505a3604a
2 changed files with 22 additions and 0 deletions

View File

@@ -5484,11 +5484,27 @@ merge(Compressor.prototype, {
elements: [] elements: []
}); });
break; break;
case "Function":
self.expression = make_node(AST_Function, self.expression, {
argnames: [],
body: []
});
break;
case "Number":
self.expression = make_node(AST_Number, self.expression, {
value: 0
});
break;
case "Object": case "Object":
self.expression = make_node(AST_Object, self.expression, { self.expression = make_node(AST_Object, self.expression, {
properties: [] properties: []
}); });
break; break;
case "RegExp":
self.expression = make_node(AST_RegExp, self.expression, {
value: /t/
});
break;
case "String": case "String":
self.expression = make_node(AST_String, self.expression, { self.expression = make_node(AST_String, self.expression, {
value: "" value: ""

View File

@@ -567,12 +567,18 @@ native_prototype: {
} }
input: { input: {
Array.prototype.splice.apply(a, [1, 2, b, c]); Array.prototype.splice.apply(a, [1, 2, b, c]);
Function.prototype.call.apply(console.log, console, [ "foo" ]);
Number.prototype.toFixed.call(Math.PI, 2);
Object.prototype.hasOwnProperty.call(d, "foo"); Object.prototype.hasOwnProperty.call(d, "foo");
RegExp.prototype.test.call(/foo/, "bar");
String.prototype.indexOf.call(e, "bar"); String.prototype.indexOf.call(e, "bar");
} }
expect: { expect: {
[].splice.apply(a, [1, 2, b, c]); [].splice.apply(a, [1, 2, b, c]);
(function() {}).call.apply(console.log, console, [ "foo" ]);
0..toFixed.call(Math.PI, 2);
({}).hasOwnProperty.call(d, "foo"); ({}).hasOwnProperty.call(d, "foo");
/t/.test.call(/foo/, "bar");
"".indexOf.call(e, "bar"); "".indexOf.call(e, "bar");
} }
} }