diff options
Diffstat (limited to 'test/binaryen.js/push-pop.js')
-rw-r--r-- | test/binaryen.js/push-pop.js | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/test/binaryen.js/push-pop.js b/test/binaryen.js/push-pop.js new file mode 100644 index 000000000..5064ed864 --- /dev/null +++ b/test/binaryen.js/push-pop.js @@ -0,0 +1,40 @@ +function cleanInfo(info) { + var ret = {}; + for (var x in info) { + if (x !== 'value') { + ret[x] = info[x]; + } + } + return ret; +} + +function stringify(expr) { + return JSON.stringify(cleanInfo(Binaryen.getExpressionInfo(expr))); +} + +var module = new Binaryen.Module(); + +var v = module.addFunctionType("v", Binaryen.none, []); + +var func = module.addFunction("func", v, [], + module.block(null, [ + module.push(module.i32.pop()), + module.push(module.i64.pop()), + module.push(module.f32.pop()), + module.push(module.f64.pop()), + module.push(module.v128.pop()), + module.push(module.exnref.pop()) + ] + ) +) + +module.validate(); +console.log(module.emitText()); + +console.log("getExpressionInfo(i32.pop) = " + stringify(module.i32.pop())); +console.log("getExpressionInfo(i64.pop) = " + stringify(module.i64.pop())); +console.log("getExpressionInfo(f32.pop) = " + stringify(module.f32.pop())); +console.log("getExpressionInfo(f64.pop) = " + stringify(module.f64.pop())); +console.log("getExpressionInfo(v128.pop) = " + stringify(module.v128.pop())); +console.log("getExpressionInfo(exnref.pop) = " + stringify(module.exnref.pop())); +console.log("getExpressionInfo(push) = " + stringify(module.push(module.i32.const(0)))); |