aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorkzc <zaxxon2011@gmail.com>2017-02-18 19:12:57 +0800
committeralexlamsl <alexlamsl@gmail.com>2017-02-21 13:29:58 +0800
commit6ffbecb72b515d6e9e6dee1f76d8f27e4b014854 (patch)
treea8a375aa8a790d291ccc7dfdde63217fd5c3d0d2 /test
parentf0ff6189be3a75cd4ccb1c38051ec27f9b30d67f (diff)
downloadtracifyjs-6ffbecb72b515d6e9e6dee1f76d8f27e4b014854.tar.gz
tracifyjs-6ffbecb72b515d6e9e6dee1f76d8f27e4b014854.zip
smarter const replacement taking name length into account
closes #1459
Diffstat (limited to 'test')
-rw-r--r--test/compress/const.js161
1 files changed, 161 insertions, 0 deletions
diff --git a/test/compress/const.js b/test/compress/const.js
new file mode 100644
index 00000000..dd175fcc
--- /dev/null
+++ b/test/compress/const.js
@@ -0,0 +1,161 @@
+issue_1191: {
+ options = {
+ evaluate : true,
+ booleans : true,
+ comparisons : true,
+ dead_code : true,
+ conditionals : true,
+ side_effects : true,
+ unused : true,
+ hoist_funs : true,
+ if_return : true,
+ join_vars : true,
+ sequences : false,
+ collapse_vars : false,
+ }
+ input: {
+ function foo(rot) {
+ const rotTol = 5;
+ if (rot < -rotTol || rot > rotTol)
+ bar();
+ baz();
+ }
+ }
+ expect: {
+ function foo(rot) {
+ (rot < -5 || rot > 5) && bar();
+ baz();
+ }
+ }
+}
+
+issue_1194: {
+ options = {
+ evaluate : true,
+ booleans : true,
+ comparisons : true,
+ dead_code : true,
+ conditionals : true,
+ side_effects : true,
+ unused : true,
+ hoist_funs : true,
+ if_return : true,
+ join_vars : true,
+ sequences : false,
+ collapse_vars : false,
+ }
+ input: {
+ function f1() {const a = "X"; return a + a;}
+ function f2() {const aa = "X"; return aa + aa;}
+ function f3() {const aaa = "X"; return aaa + aaa;}
+ }
+ expect: {
+ function f1(){return"XX"}
+ function f2(){return"XX"}
+ function f3(){return"XX"}
+ }
+}
+
+issue_1396: {
+ options = {
+ evaluate : true,
+ booleans : true,
+ comparisons : true,
+ dead_code : true,
+ conditionals : true,
+ side_effects : true,
+ unused : true,
+ hoist_funs : true,
+ if_return : true,
+ join_vars : true,
+ sequences : false,
+ collapse_vars : false,
+ }
+ input: {
+ function foo(a) {
+ const VALUE = 1;
+ console.log(2 | VALUE);
+ console.log(VALUE + 1);
+ console.log(VALUE);
+ console.log(a & VALUE);
+ }
+ function bar() {
+ const s = "01234567890123456789";
+ console.log(s + s + s + s + s);
+
+ const CONSTANT = "abc";
+ console.log(CONSTANT + CONSTANT + CONSTANT + CONSTANT + CONSTANT);
+ }
+ }
+ expect: {
+ function foo(a) {
+ console.log(3);
+ console.log(2);
+ console.log(1);
+ console.log(1 & a);
+ }
+ function bar() {
+ const s = "01234567890123456789";
+ console.log(s + s + s + s + s);
+
+ console.log("abcabcabcabcabc");
+ }
+ }
+}
+
+unused_regexp_literal: {
+ options = {
+ evaluate : true,
+ booleans : true,
+ comparisons : true,
+ dead_code : true,
+ conditionals : true,
+ side_effects : true,
+ unused : true,
+ hoist_funs : true,
+ if_return : true,
+ join_vars : true,
+ sequences : false,
+ collapse_vars : false,
+ }
+ input: {
+ function f(){ var a = /b/; }
+ }
+ expect: {
+ function f(){}
+ }
+}
+
+regexp_literal_not_const: {
+ options = {
+ evaluate : true,
+ booleans : true,
+ comparisons : true,
+ dead_code : true,
+ conditionals : true,
+ side_effects : true,
+ unused : true,
+ hoist_funs : true,
+ if_return : true,
+ join_vars : true,
+ sequences : false,
+ collapse_vars : false,
+ }
+ input: {
+ (function(){
+ var result;
+ const s = 'acdabcdeabbb';
+ const REGEXP_LITERAL = /ab*/g;
+ while (result = REGEXP_LITERAL.exec(s)) {
+ console.log(result[0]);
+ }
+ })();
+ }
+ expect: {
+ (function() {
+ var result;
+ const REGEXP_LITERAL = /ab*/g;
+ while (result = REGEXP_LITERAL.exec("acdabcdeabbb")) console.log(result[0]);
+ })();
+ }
+}