diff options
Diffstat (limited to 'test/binaryen.js/sourcemap.js')
-rw-r--r-- | test/binaryen.js/sourcemap.js | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/test/binaryen.js/sourcemap.js b/test/binaryen.js/sourcemap.js new file mode 100644 index 000000000..b184f73ab --- /dev/null +++ b/test/binaryen.js/sourcemap.js @@ -0,0 +1,39 @@ +var module = new Binaryen.Module(); + +var signature = module.addFunctionType("i", Binaryen.i32, []); + +var fileIndex = module.addDebugInfoFileName("module.c"); + +console.log(module.getDebugInfoFileName(fileIndex)); +console.log(); + +var expr = module.i32.const(1); +var body = module.block("", [ + expr +], Binaryen.i32); + +var func = module.addFunction("main", signature, [], body); + +module.setDebugLocation(func, expr, fileIndex, 1, 2); +module.setDebugLocation(func, body, fileIndex, 0, 3); + +var output = module.emitBinaryWithSourceMap("module.wasm.map"); + +function dumpBinary(buffer) { + var hex = [], o, b, h; + for (var i = 0; i < buffer.length; ++i) { + o = i.toString(16); + while (o.length < 3) o = "0" + o; + if ((i & 15) === 0) hex.push((i ? "\n" : "") + o + ":"); + if ((b = buffer[i]) >= 0x21 && b <= 0x7e) + h = String.fromCharCode(b) + ' '; + else if ((h = b.toString(16)).length < 2) + h = "0" + h; + hex.push(h); + } + console.log(hex.join(" ")); +} + +dumpBinary(output.binary); +console.log(); +console.log(output.sourceMap); |