summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/binaryen-js.cpp30
-rw-r--r--src/js/binaryen.idl51
-rw-r--r--src/wasm-s-parser.h3
3 files changed, 84 insertions, 0 deletions
diff --git a/src/binaryen-js.cpp b/src/binaryen-js.cpp
new file mode 100644
index 000000000..3112fe703
--- /dev/null
+++ b/src/binaryen-js.cpp
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2016 WebAssembly Community Group participants
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <memory>
+
+#include "pass.h"
+#include "support/command-line.h"
+#include "support/file.h"
+#include "wasm-interpreter.h"
+#include "wasm-printing.h"
+#include "wasm-s-parser.h"
+#include "wasm-validator.h"
+
+using namespace wasm;
+
+#include "../glue.cpp"
+
diff --git a/src/js/binaryen.idl b/src/js/binaryen.idl
new file mode 100644
index 000000000..2297cfd5f
--- /dev/null
+++ b/src/js/binaryen.idl
@@ -0,0 +1,51 @@
+
+interface Literal {
+ void Literal(double x);
+};
+
+interface Name {
+ void Name(DOMString x);
+};
+
+interface Module {
+};
+
+interface AllocatingModule {
+};
+
+AllocatingModule implements Module;
+
+[Prefix="ModuleInstance::", NoDelete]
+interface ExternalInterface {
+};
+
+interface 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 push_back([Ref] Literal l);
+};
+
+// S-Expressions
+
+interface Element {
+};
+
+interface SExpressionParser {
+ void SExpressionParser(DOMString input);
+ attribute Element root;
+};
+
+interface SExpressionWasmBuilder {
+ void SExpressionWasmBuilder([Ref] AllocatingModule wasm, [Ref] Element input, boolean debug);
+};
+
diff --git a/src/wasm-s-parser.h b/src/wasm-s-parser.h
index c13cd3512..fb3268877 100644
--- a/src/wasm-s-parser.h
+++ b/src/wasm-s-parser.h
@@ -255,6 +255,9 @@ public:
}
}
+ // constructor without onError
+ SExpressionWasmBuilder(AllocatingModule& wasm, Element& module, bool debug=false) : SExpressionWasmBuilder(wasm, module, [&]() { abort(); }, debug) {}
+
private:
// pre-parse types and function definitions, so we know function return types before parsing their contents