diff options
-rw-r--r-- | src/js/binaryen.idl | 16 | ||||
-rw-r--r-- | test/binaryen.js/test.js | 16 |
2 files changed, 31 insertions, 1 deletions
diff --git a/src/js/binaryen.idl b/src/js/binaryen.idl index 3f4f82149..c99bb18e7 100644 --- a/src/js/binaryen.idl +++ b/src/js/binaryen.idl @@ -42,6 +42,16 @@ interface LiteralList { // S-Expressions interface Element { + boolean isList(); + boolean isStr(); + void dump(); + + // list methods + [Operator="[]"] Element getChild(long i); + long size(); + + // string methods + [Const] DOMString c_str(); }; interface SExpressionParser { @@ -53,3 +63,9 @@ interface SExpressionWasmBuilder { void SExpressionWasmBuilder([Ref] AllocatingModule wasm, [Ref] Element input, boolean debug); }; +// Wasm printing + +interface WasmPrinter { + static void printModule(Module m); +}; + diff --git a/test/binaryen.js/test.js b/test/binaryen.js/test.js index 9f59c4a86..858454d3d 100644 --- a/test/binaryen.js/test.js +++ b/test/binaryen.js/test.js @@ -12,9 +12,23 @@ var input = ' )\n' + ')\n'; +console.log('input:'); +console.log(input); +console.log('================'); + var module = new Binaryen.AllocatingModule(); var parser = new Binaryen.SExpressionParser(input); -var builder = new Binaryen.SExpressionWasmBuilder(module, parser.get_root(), false); + +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, true); + +console.log('module:'); +WasmPrinter.prototype.printModule(module); +console.log('================'); var interface_ = new Binaryen.ShellExternalInterface(); var instance = new Binaryen.ModuleInstance(module, interface_); |