aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAlex Lam S.L <alexlamsl@gmail.com>2019-12-28 18:06:51 +0000
committerGitHub <noreply@github.com>2019-12-28 18:06:51 +0000
commit22b47cdd639263313317b77a3166afad767a7ef6 (patch)
tree9229cce61dbab21907e03434b9e799f4994898e7 /test
parent4cf612dc9fb0d96b48e8e156810c00c06a6a2a46 (diff)
downloadtracifyjs-22b47cdd639263313317b77a3166afad767a7ef6.tar.gz
tracifyjs-22b47cdd639263313317b77a3166afad767a7ef6.zip
improve unicode handling (#3648)
Diffstat (limited to 'test')
-rw-r--r--test/compress/unicode.js79
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: {