| 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.emitBinary("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); |