improve unsafe evaluate of function (#2936)

Miscellaneous
- simplify `run_code()` hack
This commit is contained in:
Alex Lam S.L
2018-02-19 18:47:02 +08:00
committed by GitHub
parent b5f0f4f3a1
commit 70474310f3
2 changed files with 2 additions and 14 deletions

View File

@@ -2344,7 +2344,7 @@ merge(Compressor.prototype, {
var fn = function() {};
fn.node = this;
fn.toString = function() {
return this.node.print_to_string();
return "function(){}";
};
return fn;
}

View File

@@ -27,7 +27,6 @@ var FUNC_TOSTRING = [
"});",
"Function.prototype.toString = function() {",
" var id = 100000;",
" var toString = Function.prototype.toString;",
" return function() {",
" var n = this.name;",
" if (!/^F[0-9]{6}N$/.test(n)) {",
@@ -40,18 +39,7 @@ var FUNC_TOSTRING = [
" });",
] : [], [
" }",
" var body = toString.call(this);",
' body = body.slice(body.indexOf("{") + 1, -1);',
' if (/^(?:[\\s{}();,]|[0-9\\.]+|"[^"]*"|\\w+:|var [^=;]+|\\/\\/.*|\\/\\*[\\s\\S]*\\*\\/)*(?:$|return(?:$|;|\\n))/.test(body)) {',
' body = "";',
" } else {",
' body = n + "' + function() {
var s = ";";
for (var i = 7; --i >= 0;) s += s;
return s;
}() + '";',
" }",
' return "function(){" + body + "}";',
' return "function(){}";',
" };",
"}();",
]).join("\n");