bloom-layout
Version:
layout components used in bloom packages
60 lines (50 loc) • 2 kB
HTML
<html>
<!--<script type="text/javascript"
src="https://rawgithub.com/novocaine/sourcemapped-stacktrace/master/dist/sourcemapped-stacktrace.js"></script>-->
<script type="text/javascript" src="sourcemapped-stacktrace.js"></script>
<script type="text/javascript" src="bork_coffee.js"></script>
<script type="text/javascript" src="bork.babel.js"></script>
<body>
<p>A demo of printing a stack trace from an error thrown within transpiled
code.
</p>
<button type="button" onclick="errorAndPrint(coffee_bork)">
Throw an error in sourcemapped code from coffeescript
</button>
<button type="button" onclick="errorAndPrint(babel_bork)">
Throw an error in sourcemapped code from babel
</button>
<p>Source-mapped Stack trace (pointing to original code):</p>
<pre id="mapped">
</pre>
<p>Unmapped Stack trace (pointing to transpiled code):</p>
<pre id="unmapped">
</pre>
<p>Alternatively, try throwing and not catching, to compare the trace in your
browser's console: </p>
<button type="button" onclick="coffee_bork()">Throw uncaught</button>
<script type="text/javascript">
var errorAndPrint = function(bork_func) {
try {
bork_func();
} catch (e) {
// display unmapped trace
var unmapped = document.getElementById("unmapped");
unmapped.innerHTML = "";
var unmappedNode = document.createTextNode(e.stack);
unmapped.appendChild(unmappedNode);
// invoke smst
sourceMappedStackTrace.mapStackTrace(e.stack, function(mappedStack) {
// mappedStack is an array of strings, one per frame in e.stack
var mappedElem = document.getElementById("mapped");
mappedElem.innerHTML = "";
var textNode = document.createTextNode(e.message + "\n" +
mappedStack.join("\n"));
mappedElem.appendChild(textNode);
});
}
}
</script>
</body>
</html>