summaryrefslogtreecommitdiff
path: root/src/js
diff options
context:
space:
mode:
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);
+};
+