diff options
author | Sam Clegg <sbc@chromium.org> | 2018-06-10 08:28:31 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-10 08:28:31 -0700 |
commit | 7bed8a09423dbe94200fd73bf1b9ede5eb646e59 (patch) | |
tree | 23eabfe91adc6e595364fb36aaab9cf0d075ce42 /src | |
parent | c7b78eadec731675ef3274126d0d19df5e4263c5 (diff) | |
download | binaryen-7bed8a09423dbe94200fd73bf1b9ede5eb646e59.tar.gz binaryen-7bed8a09423dbe94200fd73bf1b9ede5eb646e59.tar.bz2 binaryen-7bed8a09423dbe94200fd73bf1b9ede5eb646e59.zip |
Add source map handling to wasm-emscripten-finalize (#1595)
Diffstat (limited to 'src')
-rw-r--r-- | src/tools/wasm-emscripten-finalize.cpp | 26 | ||||
-rw-r--r-- | src/tools/wasm-opt.cpp | 4 |
2 files changed, 25 insertions, 5 deletions
diff --git a/src/tools/wasm-emscripten-finalize.cpp b/src/tools/wasm-emscripten-finalize.cpp index b92fab23d..f69cc6429 100644 --- a/src/tools/wasm-emscripten-finalize.cpp +++ b/src/tools/wasm-emscripten-finalize.cpp @@ -38,6 +38,9 @@ using namespace wasm; int main(int argc, const char *argv[]) { std::string infile; std::string outfile; + std::string inputSourceMapFilename; + std::string outputSourceMapFilename; + std::string outputSourceMapUrl; bool emitBinary = true; bool debugInfo = false; unsigned numReservedFunctionPointers = 0; @@ -75,6 +78,15 @@ int main(int argc, const char *argv[]) { [&globalBase](Options*, const std::string&argument ) { globalBase = std::stoull(argument); }) + .add("--input-source-map", "-ism", "Consume source map from the specified file", + Options::Arguments::One, + [&inputSourceMapFilename](Options *o, const std::string& argument) { inputSourceMapFilename = argument; }) + .add("--output-source-map", "-osm", "Emit source map to the specified file", + Options::Arguments::One, + [&outputSourceMapFilename](Options *o, const std::string& argument) { outputSourceMapFilename = argument; }) + .add("--output-source-map-url", "-osu", "Emit specified string as source map URL", + Options::Arguments::One, + [&outputSourceMapUrl](Options *o, const std::string& argument) { outputSourceMapUrl = argument; }) .add_positional("INFILE", Options::Arguments::One, [&infile](Options *o, const std::string& argument) { infile = argument; @@ -91,11 +103,15 @@ int main(int argc, const char *argv[]) { Module wasm; ModuleReader reader; try { - reader.read(infile, wasm); + reader.read(infile, wasm, inputSourceMapFilename); } catch (ParseException& p) { p.dump(std::cerr); std::cerr << '\n'; Fatal() << "error in parsing input"; + } catch (MapParseException& p) { + p.dump(std::cerr); + std::cerr << '\n'; + Fatal() << "error in parsing wasm source map"; } if (options.debug) { @@ -140,10 +156,10 @@ int main(int argc, const char *argv[]) { writer.setDebugInfo(debugInfo); // writer.setSymbolMap(symbolMap); writer.setBinary(emitBinary); - // if (emitBinary) { - // writer.setSourceMapFilename(sourceMapFilename); - // writer.setSourceMapUrl(sourceMapUrl); - // } + if (outputSourceMapFilename.size()) { + writer.setSourceMapFilename(outputSourceMapFilename); + writer.setSourceMapUrl(outputSourceMapUrl); + } writer.write(wasm, output); if (emitBinary) { std::cout << metadata; diff --git a/src/tools/wasm-opt.cpp b/src/tools/wasm-opt.cpp index 43496b34e..f78278bcf 100644 --- a/src/tools/wasm-opt.cpp +++ b/src/tools/wasm-opt.cpp @@ -145,6 +145,10 @@ int main(int argc, const char* argv[]) { p.dump(std::cerr); std::cerr << '\n'; Fatal() << "error in parsing input"; + } catch (MapParseException& p) { + p.dump(std::cerr); + std::cerr << '\n'; + Fatal() << "error in parsing wasm source map"; } catch (std::bad_alloc& b) { Fatal() << "error in building module, std::bad_alloc (possibly invalid request for silly amounts of memory)"; } |