summaryrefslogtreecommitdiff
path: root/src/wasm/wasm-emscripten.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm/wasm-emscripten.cpp')
-rw-r--r--src/wasm/wasm-emscripten.cpp38
1 files changed, 12 insertions, 26 deletions
diff --git a/src/wasm/wasm-emscripten.cpp b/src/wasm/wasm-emscripten.cpp
index 9236fd24c..c70069e76 100644
--- a/src/wasm/wasm-emscripten.cpp
+++ b/src/wasm/wasm-emscripten.cpp
@@ -22,7 +22,6 @@
#include "asmjs/shared-constants.h"
#include "shared-constants.h"
#include "wasm-builder.h"
-#include "wasm-linker.h"
#include "wasm-traversal.h"
#include "wasm.h"
@@ -159,6 +158,18 @@ static bool hasI64ResultOrParam(FunctionType* ft) {
return false;
}
+inline void exportFunction(Module& wasm, Name name, bool must_export) {
+ if (!wasm.getFunctionOrNull(name)) {
+ assert(!must_export);
+ return;
+ }
+ if (wasm.getExportOrNull(name)) return; // Already exported
+ auto exp = new Export;
+ exp->name = exp->value = name;
+ exp->kind = ExternalKind::Function;
+ wasm.addExport(exp);
+}
+
void EmscriptenGlueGenerator::generateDynCallThunks() {
std::unordered_set<std::string> sigs;
Builder builder(wasm);
@@ -768,29 +779,4 @@ std::string EmscriptenGlueGenerator::generateEmscriptenMetadata(
return meta.str();
}
-std::string emscriptenGlue(
- Module& wasm,
- bool allowMemoryGrowth,
- Address stackPointer,
- Address staticBump,
- std::vector<Name> const& initializerFunctions,
- unsigned numReservedFunctionPointers) {
- EmscriptenGlueGenerator generator(wasm, stackPointer);
- generator.fixInvokeFunctionNames();
- generator.generateRuntimeFunctions();
-
- if (allowMemoryGrowth) {
- generator.generateMemoryGrowthFunction();
- }
-
- generator.generateDynCallThunks();
-
- if (numReservedFunctionPointers) {
- generator.generateJSCallThunks(numReservedFunctionPointers);
- }
-
- return generator.generateEmscriptenMetadata(staticBump, initializerFunctions,
- numReservedFunctionPointers);
-}
-
} // namespace wasm