From 27c5284d3dc0ab131168a73035be7d87ebda30e9 Mon Sep 17 00:00:00 2001 From: "Alex Lam S.L" Date: Tue, 6 Jun 2017 04:06:42 +0800 Subject: [PATCH] workaround webkit parsing error (#2056) apply `webkit` to jetstream tests --- lib/output.js | 8 ++++++++ test/compress/functions.js | 26 ++++++++++++++++++++++++++ test/jetstream.js | 4 ++-- test/mocha/release.js | 1 + 4 files changed, 37 insertions(+), 2 deletions(-) diff --git a/lib/output.js b/lib/output.js index 2fb7441b..38f58531 100644 --- a/lib/output.js +++ b/lib/output.js @@ -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; diff --git a/test/compress/functions.js b/test/compress/functions.js index 6a9f2aed..a9ca23f8 100644 --- a/test/compress/functions.js +++ b/test/compress/functions.js @@ -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" +} diff --git a/test/jetstream.js b/test/jetstream.js index 4f13a281..cb8f111f 100644 --- a/test/jetstream.js +++ b/test/jetstream.js @@ -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) { diff --git a/test/mocha/release.js b/test/mocha/release.js index b73a3df7..c96a7926 100644 --- a/test/mocha/release.js +++ b/test/mocha/release.js @@ -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); }); }); -- 2.34.1