summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2016-04-04 20:59:01 -0700
committerAlon Zakai <alonzakai@gmail.com>2016-04-04 21:01:14 -0700
commit8388772a8a41a7e65e2285b9ca37ba8c2cfe103f (patch)
treebcf0a68aff4ebe16b8c27d10e14dd1fa2830858f
parentc93cb496e9decf897f4a9b28d8be5c7afc94e577 (diff)
downloadbinaryen-8388772a8a41a7e65e2285b9ca37ba8c2cfe103f.tar.gz
binaryen-8388772a8a41a7e65e2285b9ca37ba8c2cfe103f.tar.bz2
binaryen-8388772a8a41a7e65e2285b9ca37ba8c2cfe103f.zip
more idl
-rw-r--r--src/js/binaryen.idl16
-rw-r--r--test/binaryen.js/test.js16
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_);