workaround webkit parsing error (#2056)
authorAlex Lam S.L <alexlamsl@gmail.com>
Mon, 5 Jun 2017 20:06:42 +0000 (04:06 +0800)
committerGitHub <noreply@github.com>
Mon, 5 Jun 2017 20:06:42 +0000 (04:06 +0800)
apply `webkit` to jetstream tests

lib/output.js
test/compress/functions.js
test/jetstream.js
test/mocha/release.js

index 2fb7441..38f5853 100644 (file)
@@ -70,6 +70,7 @@ function OutputStream(options) {
         semicolons       : true,
         shebang          : true,
         source_map       : null,
+        webkit           : false,
         width            : 80,
         wrap_iife        : false,
     }, true);
@@ -597,6 +598,13 @@ function OutputStream(options) {
             return true;
         }
 
+        if (output.option('webkit')) {
+            var p = output.parent();
+            if (p instanceof AST_PropAccess && p.expression === this) {
+                return true;
+            }
+        }
+
         if (output.option('wrap_iife')) {
             var p = output.parent();
             return p instanceof AST_Call && p.expression === this;
index 6a9f2ae..a9ca23f 100644 (file)
@@ -267,3 +267,29 @@ issue_203: {
     }
     expect_stdout: "42"
 }
+
+no_webkit: {
+    beautify = {
+        webkit: false,
+    }
+    input: {
+        console.log(function() {
+            1 + 1;
+        }.a = 1);
+    }
+    expect_exact: "console.log(function(){1+1}.a=1);"
+    expect_stdout: "1"
+}
+
+webkit: {
+    beautify = {
+        webkit: true,
+    }
+    input: {
+        console.log(function() {
+            1 + 1;
+        }.a = 1);
+    }
+    expect_exact: "console.log((function(){1+1}).a=1);"
+    expect_stdout: "1"
+}
index 4f13a28..cb8f111 100644 (file)
@@ -12,14 +12,14 @@ if (typeof phantom == "undefined") {
     });
     var args = process.argv.slice(2);
     if (!args.length) {
-        args.push("-mc");
+        args.push("-mcb", "beautify=false,webkit");
     }
     args.push("--timings");
     var child_process = require("child_process");
     try {
         require("phantomjs-prebuilt");
     } catch(e) {
-        child_process.execSync("npm install phantomjs-prebuilt@2.1.14");
+        child_process.execSync("npm install phantomjs-prebuilt@2.1.14 --no-save");
     }
     var http = require("http");
     var server = http.createServer(function(request, response) {
index b73a3df..c96a792 100644 (file)
@@ -48,6 +48,7 @@ describe("test/jetstream.js", function() {
         it("Should pass with options " + options, function(done) {
             var args = options.split(/ /);
             args.unshift("test/jetstream.js");
+            args.push("-b", "beautify=false,webkit");
             run(process.argv[0], args, done);
         });
     });