summaryrefslogtreecommitdiff
path: root/src/js
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2016-04-05 09:49:37 -0700
committerAlon Zakai <alonzakai@gmail.com>2016-04-05 09:49:37 -0700
commit155223a2a0dd222817881dab85fa11166cc5bbb3 (patch)
tree7f10e15b941474c2b23c741e20ee2657c54026ca /src/js
parentb243bf42bf89bee18ece60fb0607cf1fb70ce702 (diff)
parentea448f35ada45647c200019cc34b4315cb16cdd9 (diff)
downloadbinaryen-155223a2a0dd222817881dab85fa11166cc5bbb3.tar.gz
binaryen-155223a2a0dd222817881dab85fa11166cc5bbb3.tar.bz2
binaryen-155223a2a0dd222817881dab85fa11166cc5bbb3.zip
Merge pull request #312 from WebAssembly/webidl
WebIDL bindings
Diffstat (limited to 'src/js')
-rw-r--r--src/js/binaryen.idl74
1 files changed, 74 insertions, 0 deletions
diff --git a/src/js/binaryen.idl b/src/js/binaryen.idl
new file mode 100644
index 000000000..3b52b5912
--- /dev/null
+++ b/src/js/binaryen.idl
@@ -0,0 +1,74 @@
+
+interface Literal {
+ void Literal(double x);
+ double getf64();
+};
+
+interface Name {
+ void Name(DOMString x);
+
+ [Const] DOMString c_str();
+};
+
+interface Module {
+};
+
+interface AllocatingModule {
+ void AllocatingModule();
+};
+
+AllocatingModule implements Module;
+
+[Prefix="ModuleInstance::", NoDelete]
+interface ExternalInterface {
+};
+
+interface ShellExternalInterface {
+ void ShellExternalInterface();
+};
+
+ShellExternalInterface implements ExternalInterface;
+
+interface ModuleInstance {
+ void ModuleInstance([Ref] Module m, ExternalInterface i);
+
+ [Value] Literal callExport([Ref] Name name, [Ref] LiteralList arguments);
+};
+
+[Prefix="ModuleInstance::"]
+interface LiteralList {
+ void LiteralList();
+
+ void push_back([Ref] Literal l);
+};
+
+// 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 {
+ void SExpressionParser(DOMString input);
+ attribute Element root;
+};
+
+interface SExpressionWasmBuilder {
+ void SExpressionWasmBuilder([Ref] AllocatingModule wasm, [Ref] Element input, boolean debug);
+};
+
+// Wasm printing
+
+interface WasmPrinter {
+ static void printModule(Module m);
+};
+