Don't use \xYY for identifiers
authorMihai Bazon <mihai@bazon.net>
Sun, 31 Mar 2013 10:35:29 +0000 (13:35 +0300)
committerMihai Bazon <mihai@bazon.net>
Sun, 31 Mar 2013 10:36:22 +0000 (13:36 +0300)
Fix #173

lib/output.js

index b99bfa6..04b2070 100644 (file)
@@ -69,10 +69,10 @@ function OutputStream(options) {
     var current_pos = 0;
     var OUTPUT = "";
 
-    function to_ascii(str) {
+    function to_ascii(str, identifier) {
         return str.replace(/[\u0080-\uffff]/g, function(ch) {
             var code = ch.charCodeAt(0).toString(16);
-            if (code.length <= 2) {
+            if (code.length <= 2 && !identifier) {
                 while (code.length < 2) code = "0" + code;
                 return "\\x" + code;
             } else {
@@ -114,7 +114,7 @@ function OutputStream(options) {
     function make_name(name) {
         name = name.toString();
         if (options.ascii_only)
-            name = to_ascii(name);
+            name = to_ascii(name, true);
         return name;
     };