aboutsummaryrefslogtreecommitdiff
path: root/test/compress
diff options
context:
space:
mode:
authorAlex Lam S.L <alexlamsl@gmail.com>2017-04-22 22:15:04 +0800
committerGitHub <noreply@github.com>2017-04-22 22:15:04 +0800
commitca32a09032b3e7d6aac1f0b01f67a0b67b3037f1 (patch)
tree217bb3ff8638d97552cf86a16118377eb62f8191 /test/compress
parent6f954aa3d0a505791753c6cb6273e98d84895915 (diff)
downloadtracifyjs-ca32a09032b3e7d6aac1f0b01f67a0b67b3037f1.tar.gz
tracifyjs-ca32a09032b3e7d6aac1f0b01f67a0b67b3037f1.zip
fix label-related bugs (#1835)
- deep cloning of `AST_LabeledStatement` - `L:do{...}while(false)` - empty statement with label within block extend `test/ufuzz.js` - generate labels for blocks & loops - generate for-in statements - skip suspicious option search if `minify()` errs fixes #1833
Diffstat (limited to 'test/compress')
-rw-r--r--test/compress/issue-1833.js134
1 files changed, 134 insertions, 0 deletions
diff --git a/test/compress/issue-1833.js b/test/compress/issue-1833.js
new file mode 100644
index 00000000..e46dd046
--- /dev/null
+++ b/test/compress/issue-1833.js
@@ -0,0 +1,134 @@
+iife_for: {
+ options = {
+ negate_iife: true,
+ reduce_vars: true,
+ toplevel: true,
+ unused: true,
+ }
+ input: {
+ function f() {
+ function g() {
+ L: for (;;) break L;
+ }
+ g();
+ }
+ f();
+ }
+ expect: {
+ !function() {
+ !function() {
+ L: for (;;) break L;
+ }();
+ }();
+ }
+}
+
+iife_for_in: {
+ options = {
+ negate_iife: true,
+ reduce_vars: true,
+ toplevel: true,
+ unused: true,
+ }
+ input: {
+ function f() {
+ function g() {
+ L: for (var a in x) break L;
+ }
+ g();
+ }
+ f();
+ }
+ expect: {
+ !function() {
+ !function() {
+ L: for (var a in x) break L;
+ }();
+ }();
+ }
+}
+
+iife_do: {
+ options = {
+ negate_iife: true,
+ reduce_vars: true,
+ toplevel: true,
+ unused: true,
+ }
+ input: {
+ function f() {
+ function g() {
+ L: do {
+ break L;
+ } while (1);
+ }
+ g();
+ }
+ f();
+ }
+ expect: {
+ !function() {
+ !function() {
+ L: do {
+ break L;
+ } while (1);
+ }();
+ }();
+ }
+}
+
+iife_while: {
+ options = {
+ negate_iife: true,
+ reduce_vars: true,
+ toplevel: true,
+ unused: true,
+ }
+ input: {
+ function f() {
+ function g() {
+ L: while (1) break L;
+ }
+ g();
+ }
+ f();
+ }
+ expect: {
+ !function() {
+ !function() {
+ L: while (1) break L;
+ }();
+ }();
+ }
+}
+
+label_do: {
+ options = {
+ evaluate: true,
+ loops: true,
+ }
+ input: {
+ L: do {
+ continue L;
+ } while (0);
+ }
+ expect: {
+ L: do {
+ continue L;
+ } while (0);
+ }
+}
+
+label_while: {
+ options = {
+ evaluate: true,
+ dead_code: true,
+ loops: true,
+ }
+ input: {
+ function f() {
+ L: while (0) continue L;
+ }
+ }
+ expect_exact: "function f(){L:;}"
+}