improve `unsafe` `evaluate` of `function` (#2936)
authorAlex Lam S.L <alexlamsl@gmail.com>
Mon, 19 Feb 2018 10:47:02 +0000 (18:47 +0800)
committerGitHub <noreply@github.com>
Mon, 19 Feb 2018 10:47:02 +0000 (18:47 +0800)
Miscellaneous
- simplify `run_code()` hack

lib/compress.js
test/sandbox.js

index f3770cc..d1c21c7 100644 (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;
             }
index b534613..bef63df 100644 (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");