diff options
Diffstat (limited to 'tools/test-js-optimizer-si.js')
-rw-r--r-- | tools/test-js-optimizer-si.js | 85 |
1 files changed, 75 insertions, 10 deletions
diff --git a/tools/test-js-optimizer-si.js b/tools/test-js-optimizer-si.js index 78683d6c..9bb82da4 100644 --- a/tools/test-js-optimizer-si.js +++ b/tools/test-js-optimizer-si.js @@ -130,12 +130,12 @@ function a() { if (y) { f(); } else { - label = 5; + label = 51; } } else { - label = 5; + label = 51; } - if ((label|0) == 5) { + if ((label|0) == 51) { label = 0; a(); } @@ -143,12 +143,12 @@ function a() { if (y) { f(); } else { - label = 5; + label = 52; } } else { - label = 5; + label = 52; } - if ((label|0) == 6) { + if ((label|0) == 62) { label = 0; a(); } @@ -156,12 +156,25 @@ function a() { if (y) { f(); } else { - label = 5; + label = 53; } } else { - label = 5; + label = 53; } - if ((label|0) == 5) { + if ((label|0) == 53) { + a(); + } + if (x) { + if (y) { + label = 54; // extra label setting, cannot fuse here + } else { + label = 54; + } + } else { + label = 54; + } + if ((label|0) == 54) { + label = 0; a(); } } @@ -176,4 +189,56 @@ function b() { a(); } } -// EMSCRIPTEN_GENERATED_FUNCTIONS: ["a", "b"] +function c() { + label = x; // dynamic assign to label, suppresses label removal + if (x) { + if (y) { + f(); + } else { + label = 151; + } + } else { + label = 151; + } + if ((label|0) == 151) { + label = 0; + a(); + } +} +function d() { + if (x) { + if (y) { + f(); + } else { + label = 251; + } + } else { + label = 251; + } + if ((label|0) == 251) { + label = 0; + a(); + } + if ((label|0) == 251) { // extra check of label, suppresses label removal + a(); + } +} +function e() { + if (x) { + if (y) { + f(); + } else { + label = 351; + } + } else { + label = 351; + } + if ((label|0) == 351) { + label = 0; + a(); + } + if ((label|0) == x) { // dynamic check of label, suppresses label removal + a(); + } +} +// EMSCRIPTEN_GENERATED_FUNCTIONS: ["a", "b", "c", "d"] |