summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2018-11-26 19:01:33 -0800
committerGitHub <noreply@github.com>2018-11-26 19:01:33 -0800
commit3eea53509fb6275c3fd39060129396a98ef13ab5 (patch)
treeaebcc624db4b8a2c460dc5c3ce575fa216efdbbe
parent9f49e3d9c92703c3f5cf3589a78a3318bfe2bca4 (diff)
downloadbinaryen-3eea53509fb6275c3fd39060129396a98ef13ab5.tar.gz
binaryen-3eea53509fb6275c3fd39060129396a98ef13ab5.tar.bz2
binaryen-3eea53509fb6275c3fd39060129396a98ef13ab5.zip
initialize binary writer debug info even without a source map, as debug info may exist without a source map (#1733)
-rw-r--r--src/wasm-binary.h1
-rw-r--r--src/wasm/wasm-binary.cpp6
2 files changed, 6 insertions, 1 deletions
diff --git a/src/wasm-binary.h b/src/wasm-binary.h
index 2a455b808..3dac4de06 100644
--- a/src/wasm-binary.h
+++ b/src/wasm-binary.h
@@ -721,6 +721,7 @@ public:
void writeLateUserSections();
void writeUserSection(const UserSection& section);
+ void initializeDebugInfo();
void writeSourceMapProlog();
void writeSourceMapEpilog();
void writeDebugLocation(const Function::DebugLocation& loc);
diff --git a/src/wasm/wasm-binary.cpp b/src/wasm/wasm-binary.cpp
index 153894906..97e70aeab 100644
--- a/src/wasm/wasm-binary.cpp
+++ b/src/wasm/wasm-binary.cpp
@@ -44,6 +44,7 @@ void WasmBinaryWriter::write() {
writeEarlyUserSections();
+ initializeDebugInfo();
if (sourceMap) {
writeSourceMapProlog();
}
@@ -484,8 +485,11 @@ void WasmBinaryWriter::writeSymbolMap() {
file.close();
}
-void WasmBinaryWriter::writeSourceMapProlog() {
+void WasmBinaryWriter::initializeDebugInfo() {
lastDebugLocation = { 0, /* lineNumber = */ 1, 0 };
+}
+
+void WasmBinaryWriter::writeSourceMapProlog() {
*sourceMap << "{\"version\":3,\"sources\":[";
for (size_t i = 0; i < wasm->debugInfoFileNames.size(); i++) {
if (i > 0) *sourceMap << ",";