summaryrefslogtreecommitdiff
path: root/src/wasm/wasm-binary.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm/wasm-binary.cpp')
-rw-r--r--src/wasm/wasm-binary.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/wasm/wasm-binary.cpp b/src/wasm/wasm-binary.cpp
index d2a648294..2a81bdc46 100644
--- a/src/wasm/wasm-binary.cpp
+++ b/src/wasm/wasm-binary.cpp
@@ -43,6 +43,7 @@ void WasmBinaryWriter::write() {
writeFunctions();
writeDataSegments();
if (debugInfo) writeNames();
+ if (symbolMap.size() > 0) writeSymbolMap();
finishUp();
}
@@ -380,6 +381,18 @@ void WasmBinaryWriter::writeNames() {
finishSection(start);
}
+void WasmBinaryWriter::writeSymbolMap() {
+ std::ofstream file(symbolMap);
+ for (auto& import : wasm->imports) {
+ if (import->kind == ExternalKind::Function) {
+ file << getFunctionIndex(import->name) << ":" << import->name.str << std::endl;
+ }
+ }
+ for (auto& func : wasm->functions) {
+ file << getFunctionIndex(func->name) << ":" << func->name.str << std::endl;
+ }
+ file.close();
+}
void WasmBinaryWriter::writeInlineString(const char* name) {
int32_t size = strlen(name);