summaryrefslogtreecommitdiff
path: root/test/binaryen.js/test.js
blob: 9f59c4a86d849b9777ea81a50eb5f6cbe69ee054 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

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';

var module = new Binaryen.AllocatingModule();
var parser = new Binaryen.SExpressionParser(input);
var builder = new Binaryen.SExpressionWasmBuilder(module, parser.get_root(), false);

var interface_ = new Binaryen.ShellExternalInterface();
var instance = new Binaryen.ModuleInstance(module, interface_);

var name = Binaryen.Name('add');

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() + '.');