aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Desjardins <erikdesjardins@users.noreply.github.com>2017-08-14 00:30:08 -0400
committerAlex Lam S.L <alexlamsl@gmail.com>2017-08-14 12:30:08 +0800
commit16d40915b480c38b9ef359223cd4f46146eb36c0 (patch)
treef865cc4e4850e404d6ba424f36d44259b3fe799d
parente7c21e87e3a3d1c9700941ecdf97a2a50fa2ae66 (diff)
downloadtracifyjs-16d40915b480c38b9ef359223cd4f46146eb36c0.tar.gz
tracifyjs-16d40915b480c38b9ef359223cd4f46146eb36c0.zip
don't escape null characters as \0 when followed by any digit (#2273)
fixes #2272
-rw-r--r--lib/output.js2
-rw-r--r--test/compress/ascii.js4
-rw-r--r--test/compress/concat-strings.js2
-rw-r--r--test/mocha/string-literal.js10
4 files changed, 9 insertions, 9 deletions
diff --git a/lib/output.js b/lib/output.js
index 4c873f10..6f7b18db 100644
--- a/lib/output.js
+++ b/lib/output.js
@@ -146,7 +146,7 @@ function OutputStream(options) {
case "\u2029": return "\\u2029";
case "\ufeff": return "\\ufeff";
case "\0":
- return /[0-7]/.test(str.charAt(i+1)) ? "\\x00" : "\\0";
+ return /[0-9]/.test(str.charAt(i+1)) ? "\\x00" : "\\0";
}
return s;
});
diff --git a/test/compress/ascii.js b/test/compress/ascii.js
index 9662d413..3c7cc5cf 100644
--- a/test/compress/ascii.js
+++ b/test/compress/ascii.js
@@ -13,7 +13,7 @@ ascii_only_true: {
"\x20\x21\x22\x23 ... \x7d\x7e\x7f\x80\x81 ... \xfe\xff\u0fff\uffff";
}
}
- expect_exact: 'function f(){return"\\x000\\x001\\x007\\08\\0"+"\\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\b\\t\\n\\v\\f\\r\\x0e\\x0f"+"\\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17\\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f"+\' !"# ... }~\\x7f\\x80\\x81 ... \\xfe\\xff\\u0fff\\uffff\'}'
+ expect_exact: 'function f(){return"\\x000\\x001\\x007\\x008\\0"+"\\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\b\\t\\n\\v\\f\\r\\x0e\\x0f"+"\\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17\\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f"+\' !"# ... }~\\x7f\\x80\\x81 ... \\xfe\\xff\\u0fff\\uffff\'}'
}
ascii_only_false: {
@@ -31,5 +31,5 @@ ascii_only_false: {
"\x20\x21\x22\x23 ... \x7d\x7e\x7f\x80\x81 ... \xfe\xff\u0fff\uffff";
}
}
- expect_exact: 'function f(){return"\\x000\\x001\\x007\\08\\0"+"\\0\x01\x02\x03\x04\x05\x06\x07\\b\\t\\n\\v\\f\\r\x0e\x0f"+"\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"+\' !"# ... }~\x7f\x80\x81 ... \xfe\xff\u0fff\uffff\'}'
+ expect_exact: 'function f(){return"\\x000\\x001\\x007\\x008\\0"+"\\0\x01\x02\x03\x04\x05\x06\x07\\b\\t\\n\\v\\f\\r\x0e\x0f"+"\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"+\' !"# ... }~\x7f\x80\x81 ... \xfe\xff\u0fff\uffff\'}'
}
diff --git a/test/compress/concat-strings.js b/test/compress/concat-strings.js
index 867951ff..c7c07ca2 100644
--- a/test/compress/concat-strings.js
+++ b/test/compress/concat-strings.js
@@ -21,7 +21,7 @@ concat_1: {
var c = 1 + x() + 2 + "boo";
var d = 1 + x() + 2 + 3 + "boo";
var e = 1 + x() + 2 + "X3boo";
- var f = "\x00360\08\0";
+ var f = "\x00360\x008\0";
}
}
diff --git a/test/mocha/string-literal.js b/test/mocha/string-literal.js
index d2eb6a80..f595f29a 100644
--- a/test/mocha/string-literal.js
+++ b/test/mocha/string-literal.js
@@ -61,9 +61,9 @@ describe("String literals", function() {
var tests = [
['"\\76";', ';">";'],
['"\\0"', '"\\0";'],
- ['"\\08"', '"\\08";'],
- ['"\\008"', '"\\08";'],
- ['"\\0008"', '"\\08";'],
+ ['"\\08"', '"\\x008";'],
+ ['"\\008"', '"\\x008";'],
+ ['"\\0008"', '"\\x008";'],
['"use strict" === "use strict";\n"\\76";', '"use strict"==="use strict";">";'],
['"use\\\n strict";\n"\\07";', ';"use strict";"\07";']
];
@@ -75,8 +75,8 @@ describe("String literals", function() {
});
it("Should not throw error when digit is 8 or 9", function() {
- assert.equal(UglifyJS.parse('"use strict";"\\08"').print_to_string(), '"use strict";"\\08";');
- assert.equal(UglifyJS.parse('"use strict";"\\09"').print_to_string(), '"use strict";"\\09";');
+ assert.equal(UglifyJS.parse('"use strict";"\\08"').print_to_string(), '"use strict";"\\x008";');
+ assert.equal(UglifyJS.parse('"use strict";"\\09"').print_to_string(), '"use strict";"\\x009";');
});
it("Should not unescape unpaired surrogates", function() {