aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRichard van Velzen <rvanvelzen1@gmail.com>2014-10-23 16:16:19 +0200
committerRichard van Velzen <rvanvelzen1@gmail.com>2015-01-04 15:01:55 +0100
commit24bc09b79bf9ca3a09eef4f536e7637568f7097a (patch)
tree3f5c38bf25a69709f7f8c4ed3e1dfe5bebee34b9 /lib
parent37c17d55410ced4283fe173110efb99f33885c54 (diff)
downloadtracifyjs-24bc09b79bf9ca3a09eef4f536e7637568f7097a.tar.gz
tracifyjs-24bc09b79bf9ca3a09eef4f536e7637568f7097a.zip
Fix #556
`\uFEFF` (ZERO WIDTH NO-BREAK SPACE) is removed when parsing, but was un-escaped for the output when `ascii_only` was false. When using UglifyJS multiple times (creating packages from minified sources, for example), this would lead to problems because the byte was removed when parsing for the second time.
Diffstat (limited to 'lib')
-rw-r--r--lib/output.js3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/output.js b/lib/output.js
index 7bca4dae..72bcdd5e 100644
--- a/lib/output.js
+++ b/lib/output.js
@@ -86,7 +86,7 @@ function OutputStream(options) {
function make_string(str) {
var dq = 0, sq = 0;
- str = str.replace(/[\\\b\f\n\r\t\x22\x27\u2028\u2029\0]/g, function(s){
+ str = str.replace(/[\\\b\f\n\r\t\x22\x27\u2028\u2029\0\ufeff]/g, function(s){
switch (s) {
case "\\": return "\\\\";
case "\b": return "\\b";
@@ -98,6 +98,7 @@ function OutputStream(options) {
case '"': ++dq; return '"';
case "'": ++sq; return "'";
case "\0": return "\\x00";
+ case "\ufeff": return "\\ufeff";
}
return s;
});