diff options
author | Alex Lam S.L <alexlamsl@gmail.com> | 2019-12-28 18:06:51 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-12-28 18:06:51 +0000 |
commit | 22b47cdd639263313317b77a3166afad767a7ef6 (patch) | |
tree | 9229cce61dbab21907e03434b9e799f4994898e7 /test | |
parent | 4cf612dc9fb0d96b48e8e156810c00c06a6a2a46 (diff) | |
download | tracifyjs-22b47cdd639263313317b77a3166afad767a7ef6.tar.gz tracifyjs-22b47cdd639263313317b77a3166afad767a7ef6.zip |
improve unicode handling (#3648)
Diffstat (limited to 'test')
-rw-r--r-- | test/compress/unicode.js | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/test/compress/unicode.js b/test/compress/unicode.js index 3ef664c2..a94dc739 100644 --- a/test/compress/unicode.js +++ b/test/compress/unicode.js @@ -16,6 +16,81 @@ unicode_parse_variables: { } } +unicode_escaped_identifier: { + input: { + var \u0061 = "\ud800\udc00"; + console.log(a); + } + expect_exact: 'var a="\ud800\udc00";console.log(a);' + expect_stdout: "\ud800\udc00" +} + +unicode_identifier_ascii_only: { + beautify = { + ascii_only: true, + } + input: { + var \u0061 = "testing \udbc4\udd11"; + var bar = "h\u0065llo"; + console.log(a, \u0062\u0061r); + } + expect_exact: 'var a="testing \\udbc4\\udd11";var bar="hello";console.log(a,bar);' + expect_stdout: "testing \udbc4\udd11 hello" +} + +unicode_string_literals: { + beautify = { + ascii_only: true, + } + input: { + var a = "6 length unicode character: \udbc4\udd11"; + console.log(\u0061); + } + expect_exact: 'var a="6 length unicode character: \\udbc4\\udd11";console.log(a);' + expect_stdout: "6 length unicode character: \udbc4\udd11" +} + +check_escape_style: { + beautify = { + ascii_only: true, + } + input: { + var a = "\x01"; + var \ua0081 = "\x10"; // \u0081 only in ID_Continue + var \u0100 = "\u0100"; + var \u1000 = "\u1000"; + var \u1000 = "\ud800\udc00"; + var \u3f80 = "\udbc0\udc00"; + console.log(\u0061, \ua0081, \u0100, \u1000, \u3f80); + } + expect_exact: 'var a="\\x01";var \\ua0081="\\x10";var \\u0100="\\u0100";var \\u1000="\\u1000";var \\u1000="\\ud800\\udc00";var \\u3f80="\\udbc0\\udc00";console.log(a,\\ua0081,\\u0100,\\u1000,\\u3f80);' + expect_stdout: "\u0001 \u0010 \u0100 \ud800\udc00 \udbc0\udc00" +} + +escape_non_escaped_identifier: { + beautify = { + ascii_only: true, + } + input: { + var µþ = "µþ"; + console.log(\u00b5þ); + } + expect_exact: 'var \\u00b5\\u00fe="\\xb5\\xfe";console.log(\\u00b5\\u00fe);' + expect_stdout: "µþ" +} + +non_escape_2_non_escape: { + beautify = { + ascii_only: false, + } + input: { + var µþ = "µþ"; + console.log(\u00b5þ); + } + expect_exact: 'var µþ="µþ";console.log(µþ);' + expect_stdout: "µþ" +} + issue_2242_1: { beautify = { ascii_only: false, @@ -24,6 +99,7 @@ issue_2242_1: { console.log("\ud83d", "\ude00", "\ud83d\ude00", "\ud83d@\ude00"); } expect_exact: 'console.log("\\ud83d","\\ude00","\ud83d\ude00","\\ud83d@\\ude00");' + expect_stdout: "\ud83d \ude00 \ud83d\ude00 \ud83d@\ude00" } issue_2242_2: { @@ -34,6 +110,7 @@ issue_2242_2: { console.log("\ud83d", "\ude00", "\ud83d\ude00", "\ud83d@\ude00"); } expect_exact: 'console.log("\\ud83d","\\ude00","\\ud83d\\ude00","\\ud83d@\\ude00");' + expect_stdout: "\ud83d \ude00 \ud83d\ude00 \ud83d@\ude00" } issue_2242_3: { @@ -44,6 +121,7 @@ issue_2242_3: { console.log("\ud83d" + "\ude00", "\ud83d" + "@" + "\ude00"); } expect_exact: 'console.log("\\ud83d"+"\\ude00","\\ud83d"+"@"+"\\ude00");' + expect_stdout: "\ud83d\ude00 \ud83d@\ude00" } issue_2242_4: { @@ -54,6 +132,7 @@ issue_2242_4: { console.log("\ud83d" + "\ude00", "\ud83d" + "@" + "\ude00"); } expect_exact: 'console.log("\ud83d\ude00","\\ud83d@\\ude00");' + expect_stdout: "\ud83d\ude00 \ud83d@\ude00" } issue_2569: { |