summaryrefslogtreecommitdiff
path: root/test/wasm2js/f64.2asm.js
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2019-05-03 11:26:41 -0700
committerGitHub <noreply@github.com>2019-05-03 11:26:41 -0700
commit909ac3410093c0b35b3181abcd44b9fb9ceb4781 (patch)
tree99b75f23843e1a435231e76f8e39835999ca9ee9 /test/wasm2js/f64.2asm.js
parent80b509cfb8fa35d229643f35e423e6d049ab8849 (diff)
downloadbinaryen-909ac3410093c0b35b3181abcd44b9fb9ceb4781.tar.gz
binaryen-909ac3410093c0b35b3181abcd44b9fb9ceb4781.tar.bz2
binaryen-909ac3410093c0b35b3181abcd44b9fb9ceb4781.zip
wasm2js: avoid some slow operations when not optimizing (#2082)
Without this PR, wasm2js0.test_printf in emscripten took an extremely long time to compile.
Diffstat (limited to 'test/wasm2js/f64.2asm.js')
-rw-r--r--test/wasm2js/f64.2asm.js12
1 files changed, 7 insertions, 5 deletions
diff --git a/test/wasm2js/f64.2asm.js b/test/wasm2js/f64.2asm.js
index cf4d31c92..ee8123f40 100644
--- a/test/wasm2js/f64.2asm.js
+++ b/test/wasm2js/f64.2asm.js
@@ -150,12 +150,14 @@ function asmFunc(global, env, buffer) {
var$1 = Math_floor(var$0);
var$2 = var$0 - var$1;
if (!(var$2 < .5)) {
- var$0 = Math_ceil(var$0);
- if (var$2 > .5) {
- return +var$0
+ block : {
+ var$0 = Math_ceil(var$0);
+ if (var$2 > .5) {
+ return +var$0
+ }
+ var$2 = var$1 * .5;
+ var$1 = var$2 - Math_floor(var$2) == 0.0 ? var$1 : var$0;
}
- var$2 = var$1 * .5;
- var$1 = var$2 - Math_floor(var$2) == 0.0 ? var$1 : var$0;
}
return +var$1;
}