summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/wasm2js.h17
-rw-r--r--test/wasm2js/block.2asm.js2
-rw-r--r--test/wasm2js/br_table_to_loop.2asm.js10
-rw-r--r--test/wasm2js/call.2asm.js8
-rw-r--r--test/wasm2js/call_indirect.2asm.js6
-rw-r--r--test/wasm2js/f32.2asm.js2
-rw-r--r--test/wasm2js/f64.2asm.js2
-rw-r--r--test/wasm2js/fac.2asm.js14
-rw-r--r--test/wasm2js/float_misc.2asm.js4
-rw-r--r--test/wasm2js/i32.2asm.js9
-rw-r--r--test/wasm2js/i64-ctz.2asm.js9
-rw-r--r--test/wasm2js/i64.2asm.js25
-rw-r--r--test/wasm2js/int_exprs.2asm.js154
-rw-r--r--test/wasm2js/labels.2asm.js15
-rw-r--r--test/wasm2js/left-to-right.2asm.js14
-rw-r--r--test/wasm2js/loop.2asm.js39
-rw-r--r--test/wasm2js/stack-modified.2asm.js25
-rw-r--r--test/wasm2js/traps.2asm.js28
-rw-r--r--test/wasm2js/unary-ops.2asm.js18
19 files changed, 188 insertions, 213 deletions
diff --git a/src/wasm2js.h b/src/wasm2js.h
index 84c65b189..fdfa77b84 100644
--- a/src/wasm2js.h
+++ b/src/wasm2js.h
@@ -823,9 +823,14 @@ Ref Wasm2JSBuilder::processFunctionBody(Module* m, Function* func, bool standalo
Ref visitLoop(Loop* curr) {
Name asmLabel = curr->name;
continueLabels.insert(asmLabel);
- Ref body = blockify(visit(curr->body, result));
- flattenAppend(body, ValueBuilder::makeBreak(fromName(asmLabel, NameScope::Label)));
- Ref ret = ValueBuilder::makeDo(body, ValueBuilder::makeInt(1));
+ Ref body = visit(curr->body, result);
+ // if we can reach the end of the block, we must leave the while (1) loop
+ if (curr->body->type != unreachable) {
+ assert(curr->body->type == none); // flat IR
+ body = blockify(body);
+ flattenAppend(body, ValueBuilder::makeBreak(fromName(asmLabel, NameScope::Label)));
+ }
+ Ref ret = ValueBuilder::makeWhile(ValueBuilder::makeInt(1), body);
return ValueBuilder::makeLabel(fromName(asmLabel, NameScope::Label), ret);
}
@@ -1207,10 +1212,8 @@ Ref Wasm2JSBuilder::processFunctionBody(Module* m, Function* func, bool standalo
<< std::endl;
WASM_UNREACHABLE();
case EqZInt32:
- return ValueBuilder::makeBinary(
- makeAsmCoercion(visit(curr->value,
- EXPRESSION_RESULT), ASM_INT), EQ,
- makeAsmCoercion(ValueBuilder::makeInt(0), ASM_INT));
+ // XXX !x does change the type to bool, which is correct, but may be slower?
+ return ValueBuilder::makeUnary(L_NOT, visit(curr->value, EXPRESSION_RESULT));
case ReinterpretFloat32: {
ABI::wasm2js::ensureScratchMemoryHelpers(module, ABI::wasm2js::SCRATCH_STORE_F32);
ABI::wasm2js::ensureScratchMemoryHelpers(module, ABI::wasm2js::SCRATCH_LOAD_I32);
diff --git a/test/wasm2js/block.2asm.js b/test/wasm2js/block.2asm.js
index d08822100..b7684456c 100644
--- a/test/wasm2js/block.2asm.js
+++ b/test/wasm2js/block.2asm.js
@@ -68,7 +68,7 @@ function asmFunc(global, env, buffer) {
function $8() {
dummy();
- return (13 | 0) == (0 | 0) | 0;
+ return !13 | 0;
}
function $9() {
diff --git a/test/wasm2js/br_table_to_loop.2asm.js b/test/wasm2js/br_table_to_loop.2asm.js
index 46979b23e..42f8081f2 100644
--- a/test/wasm2js/br_table_to_loop.2asm.js
+++ b/test/wasm2js/br_table_to_loop.2asm.js
@@ -23,7 +23,7 @@ function asmFunc(global, env, buffer) {
var infinity = global.Infinity;
function $0() {
block : {
- loop : do {
+ loop : while (1) {
switch (1 | 0) {
case 0:
break block;
@@ -32,14 +32,13 @@ function asmFunc(global, env, buffer) {
default:
break block;
};
- break loop;
- } while (1);
+ };
}
}
function $1() {
block : {
- loop : do {
+ loop : while (1) {
switch (1 | 0) {
case 0:
continue loop;
@@ -48,8 +47,7 @@ function asmFunc(global, env, buffer) {
default:
continue loop;
};
- break loop;
- } while (1);
+ };
}
}
diff --git a/test/wasm2js/call.2asm.js b/test/wasm2js/call.2asm.js
index 163e6f87d..986856e32 100644
--- a/test/wasm2js/call.2asm.js
+++ b/test/wasm2js/call.2asm.js
@@ -146,7 +146,7 @@ function asmFunc(global, env, buffer) {
$0$hi = $0$hi | 0;
var i64toi32_i32$5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, $8 = 0, $8$hi = 0, i64toi32_i32$3 = 0, $6 = 0, $6$hi = 0;
i64toi32_i32$0 = $0$hi;
- if (($0 | i64toi32_i32$0) == (0 | 0)) {
+ if (!($0 | i64toi32_i32$0)) {
{
i64toi32_i32$0 = 0;
$8 = 1;
@@ -184,7 +184,7 @@ function asmFunc(global, env, buffer) {
$1$hi = $1$hi | 0;
var i64toi32_i32$5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, $11 = 0, $11$hi = 0, i64toi32_i32$3 = 0, $6 = 0, $6$hi = 0, $9 = 0, $9$hi = 0;
i64toi32_i32$0 = $0$hi;
- if (($0 | i64toi32_i32$0) == (0 | 0)) {
+ if (!($0 | i64toi32_i32$0)) {
{
i64toi32_i32$0 = $1$hi;
$11 = $1;
@@ -286,7 +286,7 @@ function asmFunc(global, env, buffer) {
$0$hi = $0$hi | 0;
var i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, $6 = 0, i64toi32_i32$3 = 0;
i64toi32_i32$0 = $0$hi;
- if (($0 | i64toi32_i32$0) == (0 | 0)) {
+ if (!($0 | i64toi32_i32$0)) {
$6 = 44
} else {
{
@@ -305,7 +305,7 @@ function asmFunc(global, env, buffer) {
$0$hi = $0$hi | 0;
var i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, $6 = 0, i64toi32_i32$3 = 0;
i64toi32_i32$0 = $0$hi;
- if (($0 | i64toi32_i32$0) == (0 | 0)) {
+ if (!($0 | i64toi32_i32$0)) {
$6 = 99
} else {
{
diff --git a/test/wasm2js/call_indirect.2asm.js b/test/wasm2js/call_indirect.2asm.js
index fbba86cef..a99d714fb 100644
--- a/test/wasm2js/call_indirect.2asm.js
+++ b/test/wasm2js/call_indirect.2asm.js
@@ -225,7 +225,7 @@ function asmFunc(global, env, buffer) {
$0$hi = $0$hi | 0;
var i64toi32_i32$5 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, $8 = 0, $8$hi = 0, i64toi32_i32$3 = 0, $6 = 0, $6$hi = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0;
i64toi32_i32$0 = $0$hi;
- if (($0 | i64toi32_i32$0) == (0 | 0)) {
+ if (!($0 | i64toi32_i32$0)) {
{
i64toi32_i32$0 = 0;
$8 = 1;
@@ -319,7 +319,7 @@ function asmFunc(global, env, buffer) {
function even($0) {
$0 = $0 | 0;
var $6 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0;
- if (($0 | 0) == (0 | 0)) {
+ if (!$0) {
$6 = 44
} else {
$6 = ((wasm2js_i32$1 = $0 - 1 | 0, wasm2js_i32$0 = 15), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0) | 0)
@@ -330,7 +330,7 @@ function asmFunc(global, env, buffer) {
function odd($0) {
$0 = $0 | 0;
var $6 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0;
- if (($0 | 0) == (0 | 0)) {
+ if (!$0) {
$6 = 99
} else {
$6 = ((wasm2js_i32$1 = $0 - 1 | 0, wasm2js_i32$0 = 14), FUNCTION_TABLE[wasm2js_i32$0](wasm2js_i32$1 | 0) | 0)
diff --git a/test/wasm2js/f32.2asm.js b/test/wasm2js/f32.2asm.js
index 8615d293c..0c852356e 100644
--- a/test/wasm2js/f32.2asm.js
+++ b/test/wasm2js/f32.2asm.js
@@ -124,7 +124,7 @@ function asmFunc(global, env, buffer) {
var var$1 = Math_fround(0), var$2 = Math_fround(0), wasm2js_f32$0 = Math_fround(0), wasm2js_f32$1 = Math_fround(0), wasm2js_i32$0 = 0;
var$1 = Math_fround(Math_floor(var$0));
var$2 = Math_fround(var$0 - var$1);
- if ((var$2 < Math_fround(.5) | 0) == (0 | 0)) {
+ if (!(var$2 < Math_fround(.5))) {
{
var$0 = Math_fround(Math_ceil(var$0));
if (var$2 > Math_fround(.5)) {
diff --git a/test/wasm2js/f64.2asm.js b/test/wasm2js/f64.2asm.js
index cfedc6a0b..7eda48599 100644
--- a/test/wasm2js/f64.2asm.js
+++ b/test/wasm2js/f64.2asm.js
@@ -148,7 +148,7 @@ function asmFunc(global, env, buffer) {
var var$1 = 0.0, var$2 = 0.0, wasm2js_f64$0 = 0.0, wasm2js_f64$1 = 0.0, wasm2js_i32$0 = 0;
var$1 = Math_floor(var$0);
var$2 = var$0 - var$1;
- if ((var$2 < .5 | 0) == (0 | 0)) {
+ if (!(var$2 < .5)) {
{
var$0 = Math_ceil(var$0);
if (var$2 > .5) {
diff --git a/test/wasm2js/fac.2asm.js b/test/wasm2js/fac.2asm.js
index 8a46f34aa..9bc9896d6 100644
--- a/test/wasm2js/fac.2asm.js
+++ b/test/wasm2js/fac.2asm.js
@@ -105,7 +105,7 @@ function asmFunc(global, env, buffer) {
$2_1 = 1;
$2$hi = i64toi32_i32$0;
block : {
- loop_in : do {
+ loop_in : while (1) {
i64toi32_i32$0 = $1$hi;
i64toi32_i32$2 = $1;
i64toi32_i32$1 = 0;
@@ -133,8 +133,7 @@ function asmFunc(global, env, buffer) {
}
}
continue loop_in;
- break loop_in;
- } while (1);
+ };
}
i64toi32_i32$5 = $2$hi;
i64toi32_i32$3 = $2_1;
@@ -153,7 +152,7 @@ function asmFunc(global, env, buffer) {
res = 1;
res$hi = i64toi32_i32$0;
done : {
- loop : do {
+ loop : while (1) {
i64toi32_i32$0 = i$hi;
i64toi32_i32$2 = i;
i64toi32_i32$1 = 0;
@@ -181,8 +180,7 @@ function asmFunc(global, env, buffer) {
}
}
continue loop;
- break loop;
- } while (1);
+ };
}
i64toi32_i32$5 = res$hi;
i64toi32_i32$3 = res;
@@ -224,7 +222,7 @@ function asmFunc(global, env, buffer) {
if ($10) {
break block
}
- loop_in : do {
+ loop_in : while (1) {
i64toi32_i32$2 = $1$hi;
i64toi32_i32$2 = $0$hi;
i64toi32_i32$2 = $1$hi;
@@ -270,7 +268,7 @@ function asmFunc(global, env, buffer) {
continue loop_in
}
break loop_in;
- } while (1);
+ };
}
i64toi32_i32$2 = $1$hi;
i64toi32_i32$5 = $1;
diff --git a/test/wasm2js/float_misc.2asm.js b/test/wasm2js/float_misc.2asm.js
index 8e28dbb96..0284b5623 100644
--- a/test/wasm2js/float_misc.2asm.js
+++ b/test/wasm2js/float_misc.2asm.js
@@ -233,7 +233,7 @@ function asmFunc(global, env, buffer) {
var var$1 = Math_fround(0), var$2 = Math_fround(0), wasm2js_f32$0 = Math_fround(0), wasm2js_f32$1 = Math_fround(0), wasm2js_i32$0 = 0;
var$1 = Math_fround(Math_floor(var$0));
var$2 = Math_fround(var$0 - var$1);
- if ((var$2 < Math_fround(.5) | 0) == (0 | 0)) {
+ if (!(var$2 < Math_fround(.5))) {
{
var$0 = Math_fround(Math_ceil(var$0));
if (var$2 > Math_fround(.5)) {
@@ -250,7 +250,7 @@ function asmFunc(global, env, buffer) {
var var$1 = 0.0, var$2 = 0.0, wasm2js_f64$0 = 0.0, wasm2js_f64$1 = 0.0, wasm2js_i32$0 = 0;
var$1 = Math_floor(var$0);
var$2 = var$0 - var$1;
- if ((var$2 < .5 | 0) == (0 | 0)) {
+ if (!(var$2 < .5)) {
{
var$0 = Math_ceil(var$0);
if (var$2 > .5) {
diff --git a/test/wasm2js/i32.2asm.js b/test/wasm2js/i32.2asm.js
index c9e8a4012..49c9c2f36 100644
--- a/test/wasm2js/i32.2asm.js
+++ b/test/wasm2js/i32.2asm.js
@@ -128,7 +128,7 @@ function asmFunc(global, env, buffer) {
function $18(x) {
x = x | 0;
- return (x | 0) == (0 | 0) | 0;
+ return !x | 0;
}
function $19(x, y) {
@@ -201,16 +201,15 @@ function asmFunc(global, env, buffer) {
function __wasm_popcnt_i32(var$0) {
var var$1 = 0, $5_1 = 0;
label$1 : {
- label$2 : do {
+ label$2 : while (1) {
$5_1 = var$1;
- if ((var$0 | 0) == (0 | 0)) {
+ if (!var$0) {
break label$1
}
var$0 = var$0 & var$0 - 1;
var$1 = var$1 + 1 | 0;
continue label$2;
- break label$2;
- } while (1);
+ };
}
return $5_1;
}
diff --git a/test/wasm2js/i64-ctz.2asm.js b/test/wasm2js/i64-ctz.2asm.js
index 34fe8b89d..b135075b5 100644
--- a/test/wasm2js/i64-ctz.2asm.js
+++ b/test/wasm2js/i64-ctz.2asm.js
@@ -151,7 +151,7 @@ function asmFunc(global, env, buffer) {
function __wasm_ctz_i64(var$0, var$0$hi) {
var i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, i64toi32_i32$5 = 0, i64toi32_i32$4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $10 = 0, $5$hi = 0, $8$hi = 0;
i64toi32_i32$0 = var$0$hi;
- if (((var$0 | i64toi32_i32$0) == (0 | 0) | 0) == (0 | 0)) {
+ if (!!(var$0 | i64toi32_i32$0)) {
{
i64toi32_i32$0 = var$0$hi;
i64toi32_i32$2 = var$0;
@@ -199,10 +199,10 @@ function asmFunc(global, env, buffer) {
function __wasm_popcnt_i64(var$0, var$0$hi) {
var i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$5 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, var$1$hi = 0, var$1 = 0, $5 = 0, $5$hi = 0, $4 = 0, $9$hi = 0;
label$1 : {
- label$2 : do {
+ label$2 : while (1) {
i64toi32_i32$0 = var$1$hi;
i64toi32_i32$0 = var$0$hi;
- $4 = (var$0 | i64toi32_i32$0) == (0 | 0);
+ $4 = !(var$0 | i64toi32_i32$0);
i64toi32_i32$0 = var$1$hi;
$5 = var$1;
$5$hi = i64toi32_i32$0;
@@ -237,8 +237,7 @@ function asmFunc(global, env, buffer) {
var$1 = i64toi32_i32$1;
var$1$hi = i64toi32_i32$4;
continue label$2;
- break label$2;
- } while (1);
+ };
}
i64toi32_i32$4 = $5$hi;
i64toi32_i32$5 = $5;
diff --git a/test/wasm2js/i64.2asm.js b/test/wasm2js/i64.2asm.js
index 512f07dd1..30dc5e536 100644
--- a/test/wasm2js/i64.2asm.js
+++ b/test/wasm2js/i64.2asm.js
@@ -371,7 +371,7 @@ function asmFunc(global, env, buffer) {
x$hi = x$hi | 0;
var i64toi32_i32$0 = 0;
i64toi32_i32$0 = x$hi;
- return (x | i64toi32_i32$0) == (0 | 0) | 0;
+ return !(x | i64toi32_i32$0) | 0;
}
function $19(x, x$hi, y, y$hi) {
@@ -2990,7 +2990,7 @@ function asmFunc(global, env, buffer) {
{
i64toi32_i32$1 = var$1$hi;
var$3 = var$1;
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$11
}
i64toi32_i32$1 = var$1$hi;
@@ -3010,7 +3010,7 @@ function asmFunc(global, env, buffer) {
}
}
var$4 = $38;
- if ((var$4 | 0) == (0 | 0)) {
+ if (!var$4) {
break label$9
}
var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
@@ -3057,10 +3057,10 @@ function asmFunc(global, env, buffer) {
}
var$3 = $39;
i64toi32_i32$1 = var$0$hi;
- if ((var$0 | 0) == (0 | 0)) {
+ if (!var$0) {
break label$7
}
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$6
}
var$4 = var$3 + -1 | 0;
@@ -3103,7 +3103,7 @@ function asmFunc(global, env, buffer) {
return i64toi32_i32$3;
}
var$4 = var$3 + -1 | 0;
- if ((var$4 & var$3) == (0 | 0)) {
+ if (!(var$4 & var$3)) {
break label$5
}
var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
@@ -3231,7 +3231,7 @@ function asmFunc(global, env, buffer) {
}
var$8 = i64toi32_i32$4;
var$8$hi = i64toi32_i32$5;
- label$15 : do {
+ label$15 : while (1) {
i64toi32_i32$5 = var$5$hi;
i64toi32_i32$2 = var$5;
i64toi32_i32$1 = 0;
@@ -3360,7 +3360,7 @@ function asmFunc(global, env, buffer) {
continue label$15
}
break label$15;
- } while (1);
+ };
break label$13;
}
}
@@ -3409,7 +3409,7 @@ function asmFunc(global, env, buffer) {
function __wasm_ctz_i64(var$0, var$0$hi) {
var i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, i64toi32_i32$5 = 0, i64toi32_i32$4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $10_1 = 0, $5$hi = 0, $8$hi = 0;
i64toi32_i32$0 = var$0$hi;
- if (((var$0 | i64toi32_i32$0) == (0 | 0) | 0) == (0 | 0)) {
+ if (!!(var$0 | i64toi32_i32$0)) {
{
i64toi32_i32$0 = var$0$hi;
i64toi32_i32$2 = var$0;
@@ -3519,10 +3519,10 @@ function asmFunc(global, env, buffer) {
function __wasm_popcnt_i64(var$0, var$0$hi) {
var i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$5 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, var$1$hi = 0, var$1 = 0, $5_1 = 0, $5$hi = 0, $4_1 = 0, $9$hi = 0;
label$1 : {
- label$2 : do {
+ label$2 : while (1) {
i64toi32_i32$0 = var$1$hi;
i64toi32_i32$0 = var$0$hi;
- $4_1 = (var$0 | i64toi32_i32$0) == (0 | 0);
+ $4_1 = !(var$0 | i64toi32_i32$0);
i64toi32_i32$0 = var$1$hi;
$5_1 = var$1;
$5$hi = i64toi32_i32$0;
@@ -3557,8 +3557,7 @@ function asmFunc(global, env, buffer) {
var$1 = i64toi32_i32$1;
var$1$hi = i64toi32_i32$4;
continue label$2;
- break label$2;
- } while (1);
+ };
}
i64toi32_i32$4 = $5$hi;
i64toi32_i32$5 = $5_1;
diff --git a/test/wasm2js/int_exprs.2asm.js b/test/wasm2js/int_exprs.2asm.js
index a0594bf12..e5b4d8658 100644
--- a/test/wasm2js/int_exprs.2asm.js
+++ b/test/wasm2js/int_exprs.2asm.js
@@ -1352,7 +1352,7 @@ function asmFunc(global, env, buffer) {
{
i64toi32_i32$1 = var$1$hi;
var$3 = var$1;
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$11
}
i64toi32_i32$1 = var$1$hi;
@@ -1372,7 +1372,7 @@ function asmFunc(global, env, buffer) {
}
}
var$4 = $38;
- if ((var$4 | 0) == (0 | 0)) {
+ if (!var$4) {
break label$9
}
var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
@@ -1419,10 +1419,10 @@ function asmFunc(global, env, buffer) {
}
var$3 = $39;
i64toi32_i32$1 = var$0$hi;
- if ((var$0 | 0) == (0 | 0)) {
+ if (!var$0) {
break label$7
}
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$6
}
var$4 = var$3 + -1 | 0;
@@ -1465,7 +1465,7 @@ function asmFunc(global, env, buffer) {
return i64toi32_i32$3;
}
var$4 = var$3 + -1 | 0;
- if ((var$4 & var$3) == (0 | 0)) {
+ if (!(var$4 & var$3)) {
break label$5
}
var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
@@ -1593,7 +1593,7 @@ function asmFunc(global, env, buffer) {
}
var$8 = i64toi32_i32$4;
var$8$hi = i64toi32_i32$5;
- label$15 : do {
+ label$15 : while (1) {
i64toi32_i32$5 = var$5$hi;
i64toi32_i32$2 = var$5;
i64toi32_i32$1 = 0;
@@ -1722,7 +1722,7 @@ function asmFunc(global, env, buffer) {
continue label$15
}
break label$15;
- } while (1);
+ };
break label$13;
}
}
@@ -2262,7 +2262,7 @@ function asmFunc(global, env, buffer) {
{
i64toi32_i32$1 = var$1$hi;
var$3 = var$1;
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$11
}
i64toi32_i32$1 = var$1$hi;
@@ -2282,7 +2282,7 @@ function asmFunc(global, env, buffer) {
}
}
var$4 = $38;
- if ((var$4 | 0) == (0 | 0)) {
+ if (!var$4) {
break label$9
}
var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
@@ -2329,10 +2329,10 @@ function asmFunc(global, env, buffer) {
}
var$3 = $39;
i64toi32_i32$1 = var$0$hi;
- if ((var$0 | 0) == (0 | 0)) {
+ if (!var$0) {
break label$7
}
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$6
}
var$4 = var$3 + -1 | 0;
@@ -2375,7 +2375,7 @@ function asmFunc(global, env, buffer) {
return i64toi32_i32$3;
}
var$4 = var$3 + -1 | 0;
- if ((var$4 & var$3) == (0 | 0)) {
+ if (!(var$4 & var$3)) {
break label$5
}
var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
@@ -2503,7 +2503,7 @@ function asmFunc(global, env, buffer) {
}
var$8 = i64toi32_i32$4;
var$8$hi = i64toi32_i32$5;
- label$15 : do {
+ label$15 : while (1) {
i64toi32_i32$5 = var$5$hi;
i64toi32_i32$2 = var$5;
i64toi32_i32$1 = 0;
@@ -2632,7 +2632,7 @@ function asmFunc(global, env, buffer) {
continue label$15
}
break label$15;
- } while (1);
+ };
break label$13;
}
}
@@ -3030,7 +3030,7 @@ function asmFunc(global, env, buffer) {
{
i64toi32_i32$1 = var$1$hi;
var$3 = var$1;
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$11
}
i64toi32_i32$1 = var$1$hi;
@@ -3050,7 +3050,7 @@ function asmFunc(global, env, buffer) {
}
}
var$4 = $38;
- if ((var$4 | 0) == (0 | 0)) {
+ if (!var$4) {
break label$9
}
var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
@@ -3097,10 +3097,10 @@ function asmFunc(global, env, buffer) {
}
var$3 = $39;
i64toi32_i32$1 = var$0$hi;
- if ((var$0 | 0) == (0 | 0)) {
+ if (!var$0) {
break label$7
}
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$6
}
var$4 = var$3 + -1 | 0;
@@ -3143,7 +3143,7 @@ function asmFunc(global, env, buffer) {
return i64toi32_i32$3;
}
var$4 = var$3 + -1 | 0;
- if ((var$4 & var$3) == (0 | 0)) {
+ if (!(var$4 & var$3)) {
break label$5
}
var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
@@ -3271,7 +3271,7 @@ function asmFunc(global, env, buffer) {
}
var$8 = i64toi32_i32$4;
var$8$hi = i64toi32_i32$5;
- label$15 : do {
+ label$15 : while (1) {
i64toi32_i32$5 = var$5$hi;
i64toi32_i32$2 = var$5;
i64toi32_i32$1 = 0;
@@ -3400,7 +3400,7 @@ function asmFunc(global, env, buffer) {
continue label$15
}
break label$15;
- } while (1);
+ };
break label$13;
}
}
@@ -3785,7 +3785,7 @@ function asmFunc(global, env, buffer) {
{
i64toi32_i32$1 = var$1$hi;
var$3 = var$1;
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$11
}
i64toi32_i32$1 = var$1$hi;
@@ -3805,7 +3805,7 @@ function asmFunc(global, env, buffer) {
}
}
var$4 = $38;
- if ((var$4 | 0) == (0 | 0)) {
+ if (!var$4) {
break label$9
}
var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
@@ -3852,10 +3852,10 @@ function asmFunc(global, env, buffer) {
}
var$3 = $39;
i64toi32_i32$1 = var$0$hi;
- if ((var$0 | 0) == (0 | 0)) {
+ if (!var$0) {
break label$7
}
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$6
}
var$4 = var$3 + -1 | 0;
@@ -3898,7 +3898,7 @@ function asmFunc(global, env, buffer) {
return i64toi32_i32$3;
}
var$4 = var$3 + -1 | 0;
- if ((var$4 & var$3) == (0 | 0)) {
+ if (!(var$4 & var$3)) {
break label$5
}
var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
@@ -4026,7 +4026,7 @@ function asmFunc(global, env, buffer) {
}
var$8 = i64toi32_i32$4;
var$8$hi = i64toi32_i32$5;
- label$15 : do {
+ label$15 : while (1) {
i64toi32_i32$5 = var$5$hi;
i64toi32_i32$2 = var$5;
i64toi32_i32$1 = 0;
@@ -4155,7 +4155,7 @@ function asmFunc(global, env, buffer) {
continue label$15
}
break label$15;
- } while (1);
+ };
break label$13;
}
}
@@ -4583,7 +4583,7 @@ function asmFunc(global, env, buffer) {
{
i64toi32_i32$1 = var$1$hi;
var$3 = var$1;
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$11
}
i64toi32_i32$1 = var$1$hi;
@@ -4603,7 +4603,7 @@ function asmFunc(global, env, buffer) {
}
}
var$4 = $38;
- if ((var$4 | 0) == (0 | 0)) {
+ if (!var$4) {
break label$9
}
var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
@@ -4650,10 +4650,10 @@ function asmFunc(global, env, buffer) {
}
var$3 = $39;
i64toi32_i32$1 = var$0$hi;
- if ((var$0 | 0) == (0 | 0)) {
+ if (!var$0) {
break label$7
}
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$6
}
var$4 = var$3 + -1 | 0;
@@ -4696,7 +4696,7 @@ function asmFunc(global, env, buffer) {
return i64toi32_i32$3;
}
var$4 = var$3 + -1 | 0;
- if ((var$4 & var$3) == (0 | 0)) {
+ if (!(var$4 & var$3)) {
break label$5
}
var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
@@ -4824,7 +4824,7 @@ function asmFunc(global, env, buffer) {
}
var$8 = i64toi32_i32$4;
var$8$hi = i64toi32_i32$5;
- label$15 : do {
+ label$15 : while (1) {
i64toi32_i32$5 = var$5$hi;
i64toi32_i32$2 = var$5;
i64toi32_i32$1 = 0;
@@ -4953,7 +4953,7 @@ function asmFunc(global, env, buffer) {
continue label$15
}
break label$15;
- } while (1);
+ };
break label$13;
}
}
@@ -5395,7 +5395,7 @@ function asmFunc(global, env, buffer) {
{
i64toi32_i32$1 = var$1$hi;
var$3 = var$1;
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$11
}
i64toi32_i32$1 = var$1$hi;
@@ -5415,7 +5415,7 @@ function asmFunc(global, env, buffer) {
}
}
var$4 = $38;
- if ((var$4 | 0) == (0 | 0)) {
+ if (!var$4) {
break label$9
}
var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
@@ -5462,10 +5462,10 @@ function asmFunc(global, env, buffer) {
}
var$3 = $39;
i64toi32_i32$1 = var$0$hi;
- if ((var$0 | 0) == (0 | 0)) {
+ if (!var$0) {
break label$7
}
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$6
}
var$4 = var$3 + -1 | 0;
@@ -5508,7 +5508,7 @@ function asmFunc(global, env, buffer) {
return i64toi32_i32$3;
}
var$4 = var$3 + -1 | 0;
- if ((var$4 & var$3) == (0 | 0)) {
+ if (!(var$4 & var$3)) {
break label$5
}
var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
@@ -5636,7 +5636,7 @@ function asmFunc(global, env, buffer) {
}
var$8 = i64toi32_i32$4;
var$8$hi = i64toi32_i32$5;
- label$15 : do {
+ label$15 : while (1) {
i64toi32_i32$5 = var$5$hi;
i64toi32_i32$2 = var$5;
i64toi32_i32$1 = 0;
@@ -5765,7 +5765,7 @@ function asmFunc(global, env, buffer) {
continue label$15
}
break label$15;
- } while (1);
+ };
break label$13;
}
}
@@ -6207,7 +6207,7 @@ function asmFunc(global, env, buffer) {
{
i64toi32_i32$1 = var$1$hi;
var$3 = var$1;
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$11
}
i64toi32_i32$1 = var$1$hi;
@@ -6227,7 +6227,7 @@ function asmFunc(global, env, buffer) {
}
}
var$4 = $38;
- if ((var$4 | 0) == (0 | 0)) {
+ if (!var$4) {
break label$9
}
var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
@@ -6274,10 +6274,10 @@ function asmFunc(global, env, buffer) {
}
var$3 = $39;
i64toi32_i32$1 = var$0$hi;
- if ((var$0 | 0) == (0 | 0)) {
+ if (!var$0) {
break label$7
}
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$6
}
var$4 = var$3 + -1 | 0;
@@ -6320,7 +6320,7 @@ function asmFunc(global, env, buffer) {
return i64toi32_i32$3;
}
var$4 = var$3 + -1 | 0;
- if ((var$4 & var$3) == (0 | 0)) {
+ if (!(var$4 & var$3)) {
break label$5
}
var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
@@ -6448,7 +6448,7 @@ function asmFunc(global, env, buffer) {
}
var$8 = i64toi32_i32$4;
var$8$hi = i64toi32_i32$5;
- label$15 : do {
+ label$15 : while (1) {
i64toi32_i32$5 = var$5$hi;
i64toi32_i32$2 = var$5;
i64toi32_i32$1 = 0;
@@ -6577,7 +6577,7 @@ function asmFunc(global, env, buffer) {
continue label$15
}
break label$15;
- } while (1);
+ };
break label$13;
}
}
@@ -7019,7 +7019,7 @@ function asmFunc(global, env, buffer) {
{
i64toi32_i32$1 = var$1$hi;
var$3 = var$1;
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$11
}
i64toi32_i32$1 = var$1$hi;
@@ -7039,7 +7039,7 @@ function asmFunc(global, env, buffer) {
}
}
var$4 = $38;
- if ((var$4 | 0) == (0 | 0)) {
+ if (!var$4) {
break label$9
}
var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
@@ -7086,10 +7086,10 @@ function asmFunc(global, env, buffer) {
}
var$3 = $39;
i64toi32_i32$1 = var$0$hi;
- if ((var$0 | 0) == (0 | 0)) {
+ if (!var$0) {
break label$7
}
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$6
}
var$4 = var$3 + -1 | 0;
@@ -7132,7 +7132,7 @@ function asmFunc(global, env, buffer) {
return i64toi32_i32$3;
}
var$4 = var$3 + -1 | 0;
- if ((var$4 & var$3) == (0 | 0)) {
+ if (!(var$4 & var$3)) {
break label$5
}
var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
@@ -7260,7 +7260,7 @@ function asmFunc(global, env, buffer) {
}
var$8 = i64toi32_i32$4;
var$8$hi = i64toi32_i32$5;
- label$15 : do {
+ label$15 : while (1) {
i64toi32_i32$5 = var$5$hi;
i64toi32_i32$2 = var$5;
i64toi32_i32$1 = 0;
@@ -7389,7 +7389,7 @@ function asmFunc(global, env, buffer) {
continue label$15
}
break label$15;
- } while (1);
+ };
break label$13;
}
}
@@ -7846,7 +7846,7 @@ function asmFunc(global, env, buffer) {
{
i64toi32_i32$1 = var$1$hi;
var$3 = var$1;
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$11
}
i64toi32_i32$1 = var$1$hi;
@@ -7866,7 +7866,7 @@ function asmFunc(global, env, buffer) {
}
}
var$4 = $38;
- if ((var$4 | 0) == (0 | 0)) {
+ if (!var$4) {
break label$9
}
var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
@@ -7913,10 +7913,10 @@ function asmFunc(global, env, buffer) {
}
var$3 = $39;
i64toi32_i32$1 = var$0$hi;
- if ((var$0 | 0) == (0 | 0)) {
+ if (!var$0) {
break label$7
}
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$6
}
var$4 = var$3 + -1 | 0;
@@ -7959,7 +7959,7 @@ function asmFunc(global, env, buffer) {
return i64toi32_i32$3;
}
var$4 = var$3 + -1 | 0;
- if ((var$4 & var$3) == (0 | 0)) {
+ if (!(var$4 & var$3)) {
break label$5
}
var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
@@ -8087,7 +8087,7 @@ function asmFunc(global, env, buffer) {
}
var$8 = i64toi32_i32$4;
var$8$hi = i64toi32_i32$5;
- label$15 : do {
+ label$15 : while (1) {
i64toi32_i32$5 = var$5$hi;
i64toi32_i32$2 = var$5;
i64toi32_i32$1 = 0;
@@ -8216,7 +8216,7 @@ function asmFunc(global, env, buffer) {
continue label$15
}
break label$15;
- } while (1);
+ };
break label$13;
}
}
@@ -8675,7 +8675,7 @@ function asmFunc(global, env, buffer) {
{
i64toi32_i32$1 = var$1$hi;
var$3 = var$1;
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$11
}
i64toi32_i32$1 = var$1$hi;
@@ -8695,7 +8695,7 @@ function asmFunc(global, env, buffer) {
}
}
var$4 = $38;
- if ((var$4 | 0) == (0 | 0)) {
+ if (!var$4) {
break label$9
}
var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
@@ -8742,10 +8742,10 @@ function asmFunc(global, env, buffer) {
}
var$3 = $39;
i64toi32_i32$1 = var$0$hi;
- if ((var$0 | 0) == (0 | 0)) {
+ if (!var$0) {
break label$7
}
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$6
}
var$4 = var$3 + -1 | 0;
@@ -8788,7 +8788,7 @@ function asmFunc(global, env, buffer) {
return i64toi32_i32$3;
}
var$4 = var$3 + -1 | 0;
- if ((var$4 & var$3) == (0 | 0)) {
+ if (!(var$4 & var$3)) {
break label$5
}
var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
@@ -8916,7 +8916,7 @@ function asmFunc(global, env, buffer) {
}
var$8 = i64toi32_i32$4;
var$8$hi = i64toi32_i32$5;
- label$15 : do {
+ label$15 : while (1) {
i64toi32_i32$5 = var$5$hi;
i64toi32_i32$2 = var$5;
i64toi32_i32$1 = 0;
@@ -9045,7 +9045,7 @@ function asmFunc(global, env, buffer) {
continue label$15
}
break label$15;
- } while (1);
+ };
break label$13;
}
}
@@ -9504,7 +9504,7 @@ function asmFunc(global, env, buffer) {
{
i64toi32_i32$1 = var$1$hi;
var$3 = var$1;
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$11
}
i64toi32_i32$1 = var$1$hi;
@@ -9524,7 +9524,7 @@ function asmFunc(global, env, buffer) {
}
}
var$4 = $38;
- if ((var$4 | 0) == (0 | 0)) {
+ if (!var$4) {
break label$9
}
var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
@@ -9571,10 +9571,10 @@ function asmFunc(global, env, buffer) {
}
var$3 = $39;
i64toi32_i32$1 = var$0$hi;
- if ((var$0 | 0) == (0 | 0)) {
+ if (!var$0) {
break label$7
}
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$6
}
var$4 = var$3 + -1 | 0;
@@ -9617,7 +9617,7 @@ function asmFunc(global, env, buffer) {
return i64toi32_i32$3;
}
var$4 = var$3 + -1 | 0;
- if ((var$4 & var$3) == (0 | 0)) {
+ if (!(var$4 & var$3)) {
break label$5
}
var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
@@ -9745,7 +9745,7 @@ function asmFunc(global, env, buffer) {
}
var$8 = i64toi32_i32$4;
var$8$hi = i64toi32_i32$5;
- label$15 : do {
+ label$15 : while (1) {
i64toi32_i32$5 = var$5$hi;
i64toi32_i32$2 = var$5;
i64toi32_i32$1 = 0;
@@ -9874,7 +9874,7 @@ function asmFunc(global, env, buffer) {
continue label$15
}
break label$15;
- } while (1);
+ };
break label$13;
}
}
diff --git a/test/wasm2js/labels.2asm.js b/test/wasm2js/labels.2asm.js
index 1e384a69d..e92791960 100644
--- a/test/wasm2js/labels.2asm.js
+++ b/test/wasm2js/labels.2asm.js
@@ -34,7 +34,7 @@ function asmFunc(global, env, buffer) {
var i = 0, $6_1 = 0;
i = 0;
exit : {
- cont : do {
+ cont : while (1) {
i = i + 1 | 0;
if ((i | 0) == (5 | 0)) {
{
@@ -43,8 +43,7 @@ function asmFunc(global, env, buffer) {
}
}
continue cont;
- break cont;
- } while (1);
+ };
}
return $6_1 | 0;
}
@@ -53,7 +52,7 @@ function asmFunc(global, env, buffer) {
var i = 0, $8_1 = 0;
i = 0;
exit : {
- cont : do {
+ cont : while (1) {
i = i + 1 | 0;
if ((i | 0) == (5 | 0)) {
continue cont
@@ -66,8 +65,7 @@ function asmFunc(global, env, buffer) {
}
i = i + 1 | 0;
continue cont;
- break cont;
- } while (1);
+ };
}
return $8_1 | 0;
}
@@ -93,7 +91,7 @@ function asmFunc(global, env, buffer) {
var i = 0, $9_1 = 0;
i = 1;
exit : {
- cont : do {
+ cont : while (1) {
i = i + i | 0;
if (i >>> 0 > max >>> 0) {
{
@@ -102,8 +100,7 @@ function asmFunc(global, env, buffer) {
}
}
continue cont;
- break cont;
- } while (1);
+ };
}
return $9_1 | 0;
}
diff --git a/test/wasm2js/left-to-right.2asm.js b/test/wasm2js/left-to-right.2asm.js
index 0c92f249c..cb551e9ac 100644
--- a/test/wasm2js/left-to-right.2asm.js
+++ b/test/wasm2js/left-to-right.2asm.js
@@ -1678,7 +1678,7 @@ function asmFunc(global, env, buffer) {
{
i64toi32_i32$1 = var$1$hi;
var$3 = var$1;
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$11
}
i64toi32_i32$1 = var$1$hi;
@@ -1698,7 +1698,7 @@ function asmFunc(global, env, buffer) {
}
}
var$4 = $38_1;
- if ((var$4 | 0) == (0 | 0)) {
+ if (!var$4) {
break label$9
}
var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
@@ -1745,10 +1745,10 @@ function asmFunc(global, env, buffer) {
}
var$3 = $39_1;
i64toi32_i32$1 = var$0$hi;
- if ((var$0 | 0) == (0 | 0)) {
+ if (!var$0) {
break label$7
}
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$6
}
var$4 = var$3 + -1 | 0;
@@ -1791,7 +1791,7 @@ function asmFunc(global, env, buffer) {
return i64toi32_i32$3;
}
var$4 = var$3 + -1 | 0;
- if ((var$4 & var$3) == (0 | 0)) {
+ if (!(var$4 & var$3)) {
break label$5
}
var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
@@ -1919,7 +1919,7 @@ function asmFunc(global, env, buffer) {
}
var$8 = i64toi32_i32$4;
var$8$hi = i64toi32_i32$5;
- label$15 : do {
+ label$15 : while (1) {
i64toi32_i32$5 = var$5$hi;
i64toi32_i32$2 = var$5;
i64toi32_i32$1 = 0;
@@ -2048,7 +2048,7 @@ function asmFunc(global, env, buffer) {
continue label$15
}
break label$15;
- } while (1);
+ };
break label$13;
}
}
diff --git a/test/wasm2js/loop.2asm.js b/test/wasm2js/loop.2asm.js
index 3ed99264a..ab6a3b130 100644
--- a/test/wasm2js/loop.2asm.js
+++ b/test/wasm2js/loop.2asm.js
@@ -107,7 +107,7 @@ function asmFunc(global, env, buffer) {
var $2_1 = 0;
dummy();
$2_1 = 13;
- return ($2_1 | 0) == (0 | 0) | 0;
+ return !$2_1 | 0;
}
function $9() {
@@ -122,10 +122,7 @@ function asmFunc(global, env, buffer) {
function $10() {
block : {
- loop_in : do {
- break block;
- break loop_in;
- } while (1);
+ loop_in : while (1) break block;
}
block48 : {
if (1) {
@@ -155,11 +152,10 @@ function asmFunc(global, env, buffer) {
function $11() {
var $0 = 0, $1_1 = 0, $3_1 = 0;
block : {
- loop_in : do {
+ loop_in : while (1) {
$0 = 18;
break block;
- break loop_in;
- } while (1);
+ };
}
return $0 | 0;
}
@@ -214,10 +210,7 @@ function asmFunc(global, env, buffer) {
var $0 = 0, $1_1 = 0, $2_1 = 0, $3_1 = 0, $5_1 = 0;
$0 = 0;
$1_1 = $0;
- loop_in : do {
- continue loop_in;
- break loop_in;
- } while (1);
+ loop_in : while (1) continue loop_in;
}
function fx() {
@@ -240,9 +233,9 @@ function asmFunc(global, env, buffer) {
$1_1 = 1;
$1$hi = i64toi32_i32$0;
block : {
- loop_in : do {
+ loop_in : while (1) {
i64toi32_i32$0 = $0$hi;
- if (($0 | i64toi32_i32$0) == (0 | 0)) {
+ if (!($0 | i64toi32_i32$0)) {
break block
}
i64toi32_i32$0 = $0$hi;
@@ -261,8 +254,7 @@ function asmFunc(global, env, buffer) {
$0 = $0 - i64toi32_i32$3 | 0;
$0$hi = i64toi32_i32$5;
continue loop_in;
- break loop_in;
- } while (1);
+ };
}
i64toi32_i32$5 = $1$hi;
i64toi32_i32$HIGH_BITS = i64toi32_i32$5;
@@ -280,7 +272,7 @@ function asmFunc(global, env, buffer) {
$2_1 = 2;
$2$hi = i64toi32_i32$0;
block : {
- loop_in : do {
+ loop_in : while (1) {
i64toi32_i32$0 = $2$hi;
i64toi32_i32$0 = $0$hi;
i64toi32_i32$0 = $2$hi;
@@ -302,8 +294,7 @@ function asmFunc(global, env, buffer) {
$2_1 = i64toi32_i32$4;
$2$hi = i64toi32_i32$5;
continue loop_in;
- break loop_in;
- } while (1);
+ };
}
i64toi32_i32$5 = $1$hi;
i64toi32_i32$HIGH_BITS = $1$hi;
@@ -315,13 +306,13 @@ function asmFunc(global, env, buffer) {
$1_1 = Math_fround($1_1);
var $2_1 = Math_fround(0), $3_1 = Math_fround(0);
block : {
- loop_in : do {
+ loop_in : while (1) {
if ($0 == Math_fround(0.0)) {
break block
}
$2_1 = $1_1;
block71 : {
- loop_in72 : do {
+ loop_in72 : while (1) {
if ($2_1 == Math_fround(0.0)) {
break block71
}
@@ -331,14 +322,12 @@ function asmFunc(global, env, buffer) {
$3_1 = Math_fround($3_1 + $2_1);
$2_1 = Math_fround($2_1 - Math_fround(2.0));
continue loop_in72;
- break loop_in72;
- } while (1);
+ };
}
$3_1 = Math_fround($3_1 / $0);
$0 = Math_fround($0 - Math_fround(1.0));
continue loop_in;
- break loop_in;
- } while (1);
+ };
}
return Math_fround($3_1);
}
diff --git a/test/wasm2js/stack-modified.2asm.js b/test/wasm2js/stack-modified.2asm.js
index b4e93e00b..84c59cadb 100644
--- a/test/wasm2js/stack-modified.2asm.js
+++ b/test/wasm2js/stack-modified.2asm.js
@@ -35,7 +35,7 @@ function asmFunc(global, env, buffer) {
var$2 = 1;
var$2$hi = i64toi32_i32$0;
label$1 : {
- label$2 : do {
+ label$2 : while (1) {
i64toi32_i32$0 = var$1$hi;
i64toi32_i32$2 = var$1;
i64toi32_i32$1 = 0;
@@ -63,8 +63,7 @@ function asmFunc(global, env, buffer) {
}
}
continue label$2;
- break label$2;
- } while (1);
+ };
}
i64toi32_i32$5 = var$2$hi;
i64toi32_i32$3 = var$2;
@@ -83,7 +82,7 @@ function asmFunc(global, env, buffer) {
var$2 = 1;
var$2$hi = i64toi32_i32$0;
label$1 : {
- label$2 : do {
+ label$2 : while (1) {
i64toi32_i32$0 = var$1$hi;
i64toi32_i32$2 = var$1;
i64toi32_i32$1 = 0;
@@ -111,8 +110,7 @@ function asmFunc(global, env, buffer) {
}
}
continue label$2;
- break label$2;
- } while (1);
+ };
}
i64toi32_i32$5 = var$2$hi;
i64toi32_i32$3 = var$2;
@@ -131,7 +129,7 @@ function asmFunc(global, env, buffer) {
var$2 = 1;
var$2$hi = i64toi32_i32$0;
label$1 : {
- label$2 : do {
+ label$2 : while (1) {
i64toi32_i32$0 = var$1$hi;
i64toi32_i32$2 = var$1;
i64toi32_i32$1 = 0;
@@ -159,8 +157,7 @@ function asmFunc(global, env, buffer) {
}
}
continue label$2;
- break label$2;
- } while (1);
+ };
}
i64toi32_i32$5 = var$2$hi;
i64toi32_i32$3 = var$2;
@@ -179,7 +176,7 @@ function asmFunc(global, env, buffer) {
var$2 = 1;
var$2$hi = i64toi32_i32$0;
label$1 : {
- label$2 : do {
+ label$2 : while (1) {
i64toi32_i32$0 = var$1$hi;
i64toi32_i32$2 = var$1;
i64toi32_i32$1 = 0;
@@ -207,8 +204,7 @@ function asmFunc(global, env, buffer) {
}
}
continue label$2;
- break label$2;
- } while (1);
+ };
}
i64toi32_i32$5 = var$2$hi;
i64toi32_i32$3 = var$2;
@@ -227,7 +223,7 @@ function asmFunc(global, env, buffer) {
var$2 = 1;
var$2$hi = i64toi32_i32$0;
label$1 : {
- label$2 : do {
+ label$2 : while (1) {
i64toi32_i32$0 = var$1$hi;
i64toi32_i32$2 = var$1;
i64toi32_i32$1 = 0;
@@ -255,8 +251,7 @@ function asmFunc(global, env, buffer) {
}
}
continue label$2;
- break label$2;
- } while (1);
+ };
}
i64toi32_i32$5 = var$2$hi;
i64toi32_i32$3 = var$2;
diff --git a/test/wasm2js/traps.2asm.js b/test/wasm2js/traps.2asm.js
index 294086f24..5ab7b0759 100644
--- a/test/wasm2js/traps.2asm.js
+++ b/test/wasm2js/traps.2asm.js
@@ -420,7 +420,7 @@ function asmFunc(global, env, buffer) {
{
i64toi32_i32$1 = var$1$hi;
var$3 = var$1;
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$11
}
i64toi32_i32$1 = var$1$hi;
@@ -440,7 +440,7 @@ function asmFunc(global, env, buffer) {
}
}
var$4 = $38;
- if ((var$4 | 0) == (0 | 0)) {
+ if (!var$4) {
break label$9
}
var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
@@ -487,10 +487,10 @@ function asmFunc(global, env, buffer) {
}
var$3 = $39;
i64toi32_i32$1 = var$0$hi;
- if ((var$0 | 0) == (0 | 0)) {
+ if (!var$0) {
break label$7
}
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$6
}
var$4 = var$3 + -1 | 0;
@@ -533,7 +533,7 @@ function asmFunc(global, env, buffer) {
return i64toi32_i32$3;
}
var$4 = var$3 + -1 | 0;
- if ((var$4 & var$3) == (0 | 0)) {
+ if (!(var$4 & var$3)) {
break label$5
}
var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
@@ -661,7 +661,7 @@ function asmFunc(global, env, buffer) {
}
var$8 = i64toi32_i32$4;
var$8$hi = i64toi32_i32$5;
- label$15 : do {
+ label$15 : while (1) {
i64toi32_i32$5 = var$5$hi;
i64toi32_i32$2 = var$5;
i64toi32_i32$1 = 0;
@@ -790,7 +790,7 @@ function asmFunc(global, env, buffer) {
continue label$15
}
break label$15;
- } while (1);
+ };
break label$13;
}
}
@@ -1319,7 +1319,7 @@ function asmFunc(global, env, buffer) {
{
i64toi32_i32$1 = var$1$hi;
var$3 = var$1;
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$11
}
i64toi32_i32$1 = var$1$hi;
@@ -1339,7 +1339,7 @@ function asmFunc(global, env, buffer) {
}
}
var$4 = $38;
- if ((var$4 | 0) == (0 | 0)) {
+ if (!var$4) {
break label$9
}
var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0;
@@ -1386,10 +1386,10 @@ function asmFunc(global, env, buffer) {
}
var$3 = $39;
i64toi32_i32$1 = var$0$hi;
- if ((var$0 | 0) == (0 | 0)) {
+ if (!var$0) {
break label$7
}
- if ((var$3 | 0) == (0 | 0)) {
+ if (!var$3) {
break label$6
}
var$4 = var$3 + -1 | 0;
@@ -1432,7 +1432,7 @@ function asmFunc(global, env, buffer) {
return i64toi32_i32$3;
}
var$4 = var$3 + -1 | 0;
- if ((var$4 & var$3) == (0 | 0)) {
+ if (!(var$4 & var$3)) {
break label$5
}
var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0;
@@ -1560,7 +1560,7 @@ function asmFunc(global, env, buffer) {
}
var$8 = i64toi32_i32$4;
var$8$hi = i64toi32_i32$5;
- label$15 : do {
+ label$15 : while (1) {
i64toi32_i32$5 = var$5$hi;
i64toi32_i32$2 = var$5;
i64toi32_i32$1 = 0;
@@ -1689,7 +1689,7 @@ function asmFunc(global, env, buffer) {
continue label$15
}
break label$15;
- } while (1);
+ };
break label$13;
}
}
diff --git a/test/wasm2js/unary-ops.2asm.js b/test/wasm2js/unary-ops.2asm.js
index e0e5a39bf..d0831c7e4 100644
--- a/test/wasm2js/unary-ops.2asm.js
+++ b/test/wasm2js/unary-ops.2asm.js
@@ -75,7 +75,7 @@ function asmFunc(global, env, buffer) {
$0$hi = $0$hi | 0;
var i64toi32_i32$0 = 0;
i64toi32_i32$0 = $0$hi;
- return ($0 | i64toi32_i32$0) == (0 | 0) | 0;
+ return !($0 | i64toi32_i32$0) | 0;
}
function $6($0) {
@@ -414,7 +414,7 @@ function asmFunc(global, env, buffer) {
function __wasm_ctz_i64(var$0, var$0$hi) {
var i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, i64toi32_i32$5 = 0, i64toi32_i32$4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $10 = 0, $5$hi = 0, $8$hi = 0;
i64toi32_i32$0 = var$0$hi;
- if (((var$0 | i64toi32_i32$0) == (0 | 0) | 0) == (0 | 0)) {
+ if (!!(var$0 | i64toi32_i32$0)) {
{
i64toi32_i32$0 = var$0$hi;
i64toi32_i32$2 = var$0;
@@ -462,16 +462,15 @@ function asmFunc(global, env, buffer) {
function __wasm_popcnt_i32(var$0) {
var var$1 = 0, $5_1 = 0;
label$1 : {
- label$2 : do {
+ label$2 : while (1) {
$5_1 = var$1;
- if ((var$0 | 0) == (0 | 0)) {
+ if (!var$0) {
break label$1
}
var$0 = var$0 & var$0 - 1;
var$1 = var$1 + 1 | 0;
continue label$2;
- break label$2;
- } while (1);
+ };
}
return $5_1;
}
@@ -479,10 +478,10 @@ function asmFunc(global, env, buffer) {
function __wasm_popcnt_i64(var$0, var$0$hi) {
var i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$5 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, var$1$hi = 0, var$1 = 0, $5_1 = 0, $5$hi = 0, $4_1 = 0, $9$hi = 0;
label$1 : {
- label$2 : do {
+ label$2 : while (1) {
i64toi32_i32$0 = var$1$hi;
i64toi32_i32$0 = var$0$hi;
- $4_1 = (var$0 | i64toi32_i32$0) == (0 | 0);
+ $4_1 = !(var$0 | i64toi32_i32$0);
i64toi32_i32$0 = var$1$hi;
$5_1 = var$1;
$5$hi = i64toi32_i32$0;
@@ -517,8 +516,7 @@ function asmFunc(global, env, buffer) {
var$1 = i64toi32_i32$1;
var$1$hi = i64toi32_i32$4;
continue label$2;
- break label$2;
- } while (1);
+ };
}
i64toi32_i32$4 = $5$hi;
i64toi32_i32$5 = $5_1;