| |
| Binaryen = Binaryen(); // instantiate the module |
| |
| var input = |
| '(module\n' + |
| ' (export "add" $add)\n' + |
| ' (func $add (param $x f64) (param $y f64) (result f64)\n' + |
| ' (f64.add\n' + |
| ' (get_local $x)\n' + |
| ' (get_local $y)\n' + |
| ' )\n' + |
| ' )\n' + |
| ')\n'; |
| |
| console.log('input:'); |
| console.log(input); |
| console.log('================'); |
| |
| var module = new Binaryen.Module(); |
| var parser = new Binaryen.SExpressionParser(input); |
| |
| console.log('s-expr dump:'); |
| parser.get_root().dump(); |
| var s_module = parser.get_root().getChild(0); |
| console.log('================'); |
| |
| var builder = new Binaryen.SExpressionWasmBuilder(module, s_module); |
| |
| console.log('module:'); |
| Binaryen.WasmPrinter.prototype.printModule(module); |
| console.log('================'); |
| |
| var interface_ = new Binaryen.ShellExternalInterface(); |
| var instance = new Binaryen.ModuleInstance(module, interface_); |
| |
| var name = new Binaryen.Name('add'); |
| console.log('name: ' + name.c_str()); |
| |
| var args = new Binaryen.LiteralList(); |
| args.push_back(new Binaryen.Literal(40)); |
| args.push_back(new Binaryen.Literal(2)); |
| |
| console.log('answer is ' + instance.callExport(name, args).getf64() + '.'); |
| |