aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Lam S.L <alexlamsl@gmail.com>2017-06-06 04:06:42 +0800
committerGitHub <noreply@github.com>2017-06-06 04:06:42 +0800
commit27c5284d3dc0ab131168a73035be7d87ebda30e9 (patch)
treeae0fb7adca68471e6705f60ae3c022bfddd45473
parent540220b91bb02d50d04422dc782a5fe1905dd27a (diff)
downloadtracifyjs-27c5284d3dc0ab131168a73035be7d87ebda30e9.tar.gz
tracifyjs-27c5284d3dc0ab131168a73035be7d87ebda30e9.zip
workaround webkit parsing error (#2056)
apply `webkit` to jetstream tests
-rw-r--r--lib/output.js8
-rw-r--r--test/compress/functions.js26
-rw-r--r--test/jetstream.js4
-rw-r--r--test/mocha/release.js1
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);
});
});