aboutsummaryrefslogtreecommitdiff
path: root/test/compress/numbers.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/compress/numbers.js')
-rw-r--r--test/compress/numbers.js136
1 files changed, 136 insertions, 0 deletions
diff --git a/test/compress/numbers.js b/test/compress/numbers.js
index 8e32ad02..0b40bb9c 100644
--- a/test/compress/numbers.js
+++ b/test/compress/numbers.js
@@ -17,3 +17,139 @@ hex_numbers_in_parentheses_for_prototype_functions: {
}
expect_exact: "-2;(-2).toFixed(0);2;2..toFixed(0);.2;.2.toFixed(0);2e-8;2e-8.toFixed(0);0xde0b6b3a7640080;(0xde0b6b3a7640080).toFixed(0);"
}
+
+comparisons: {
+ options = {
+ comparisons: true,
+ }
+ input: {
+ console.log(
+ ~x === 42,
+ x % n === 42
+ );
+ }
+ expect: {
+ console.log(
+ 42 == ~x,
+ x % n == 42
+ );
+ }
+}
+
+evaluate_1: {
+ options = {
+ evaluate: true,
+ unsafe_math: false,
+ }
+ input: {
+ console.log(
+ x + 1 + 2,
+ x * 1 * 2,
+ +x + 1 + 2,
+ 1 + x + 2 + 3,
+ 1 | x | 2 | 3,
+ 1 + x-- + 2 + 3,
+ 1 + (x*y + 2) + 3,
+ 1 + (2 + x + 3),
+ 1 + (2 + ~x + 3),
+ -y + (2 + ~x + 3),
+ 1 & (2 & x & 3),
+ 1 + (2 + (x |= 0) + 3)
+ );
+ }
+ expect: {
+ console.log(
+ x + 1 + 2,
+ 1 * x * 2,
+ +x + 1 + 2,
+ 1 + x + 2 + 3,
+ 3 | x,
+ 1 + x-- + 2 + 3,
+ x*y + 2 + 1 + 3,
+ 1 + (2 + x + 3),
+ 2 + ~x + 3 + 1,
+ -y + (2 + ~x + 3),
+ 0 & x,
+ 2 + (x |= 0) + 3 + 1
+ );
+ }
+}
+
+evaluate_2: {
+ options = {
+ evaluate: true,
+ unsafe_math: true,
+ }
+ input: {
+ console.log(
+ x + 1 + 2,
+ x * 1 * 2,
+ +x + 1 + 2,
+ 1 + x + 2 + 3,
+ 1 | x | 2 | 3,
+ 1 + x-- + 2 + 3,
+ 1 + (x*y + 2) + 3,
+ 1 + (2 + x + 3),
+ 1 & (2 & x & 3),
+ 1 + (2 + (x |= 0) + 3)
+ );
+ }
+ expect: {
+ console.log(
+ x + 1 + 2,
+ 2 * x,
+ 3 + +x,
+ 1 + x + 2 + 3,
+ 3 | x,
+ 6 + x--,
+ 6 + x*y,
+ 1 + (2 + x + 3),
+ 0 & x,
+ 6 + (x |= 0)
+ );
+ }
+}
+
+evaluate_3: {
+ options = {
+ evaluate: true,
+ unsafe: true,
+ unsafe_math: true,
+ }
+ input: {
+ console.log(1 + Number(x) + 2);
+ }
+ expect: {
+ console.log(3 + +x);
+ }
+}
+
+evaluate_4: {
+ options = {
+ evaluate: true,
+ }
+ input: {
+ console.log(
+ 1+ +a,
+ +a+1,
+ 1+-a,
+ -a+1,
+ +a+ +b,
+ +a+-b,
+ -a+ +b,
+ -a+-b
+ );
+ }
+ expect: {
+ console.log(
+ +a+1,
+ +a+1,
+ 1-a,
+ 1-a,
+ +a+ +b,
+ +a-b,
+ -a+ +b,
+ -a-b
+ );
+ }
+}