evaluate `to{Low,Upp}erCase()` under `unsafe` (#2886)
authorAlex Lam S.L <alexlamsl@gmail.com>
Tue, 6 Feb 2018 07:57:15 +0000 (15:57 +0800)
committerGitHub <noreply@github.com>
Tue, 6 Feb 2018 07:57:15 +0000 (15:57 +0800)
lib/compress.js
test/compress/evaluate.js

index a48d0c9..142728c 100644 (file)
@@ -2224,6 +2224,8 @@ merge(Compressor.prototype, {
             "split",
             "substr",
             "substring",
+            "toLowerCase",
+            "toUpperCase",
             "trim",
         ].concat(object_fns),
     };
index 0d26982..41b599e 100644 (file)
@@ -1374,3 +1374,58 @@ issue_2822: {
     }
     expect_stdout: "PASS"
 }
+
+string_case: {
+    options = {
+        evaluate: true,
+        unsafe: true,
+    }
+    input: {
+        console.log("Ä°".toLowerCase().charCodeAt(0));
+        console.log("I".toLowerCase().charCodeAt(0));
+        console.log("Åž".toLowerCase().charCodeAt(0));
+        console.log("Äž".toLowerCase().charCodeAt(0));
+        console.log("Ü".toLowerCase().charCodeAt(0));
+        console.log("Ö".toLowerCase().charCodeAt(0));
+        console.log("Ç".toLowerCase().charCodeAt(0));
+        console.log("i".toUpperCase().charCodeAt(0));
+        console.log("ı".toUpperCase().charCodeAt(0));
+        console.log("ÅŸ".toUpperCase().charCodeAt(0));
+        console.log("ÄŸ".toUpperCase().charCodeAt(0));
+        console.log("ü".toUpperCase().charCodeAt(0));
+        console.log("ö".toUpperCase().charCodeAt(0));
+        console.log("ç".toUpperCase().charCodeAt(0));
+    }
+    expect: {
+        console.log(105);
+        console.log(105);
+        console.log(351);
+        console.log(287);
+        console.log(252);
+        console.log(246);
+        console.log(231);
+        console.log(73);
+        console.log(73);
+        console.log(350);
+        console.log(286);
+        console.log(220);
+        console.log(214);
+        console.log(199);
+    }
+    expect_stdout: [
+        "105",
+        "105",
+        "351",
+        "287",
+        "252",
+        "246",
+        "231",
+        "73",
+        "73",
+        "350",
+        "286",
+        "220",
+        "214",
+        "199",
+    ]
+}