aboutsummaryrefslogtreecommitdiff
path: root/src/preamble.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/preamble.js')
-rw-r--r--src/preamble.js12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/preamble.js b/src/preamble.js
index 63fab34e..a85cf2f5 100644
--- a/src/preamble.js
+++ b/src/preamble.js
@@ -644,7 +644,7 @@ function demangle(func) {
try {
if (typeof func === 'number') func = Pointer_stringify(func);
if (func[0] !== '_') return func;
- if (func[1] !== '_') return func.substr(1); // C function
+ if (func[1] !== '_') return func; // C function
if (func[2] !== 'Z') return func;
var i = 3;
// params, etc.
@@ -747,10 +747,18 @@ function demangle(func) {
}
return parse();
} catch(e) {
- return func + '<demangle-err>' + e;
+ return func;
}
}
+function demangleAll(text) {
+ return text.replace(/__Z[\w\d_]+/, function(x) { var y = demangle(x); return x === y ? x : (x + ' (' + y + ')') });
+}
+
+function stackTrace() {
+ return demangleAll(new Error().stack);
+}
+
// Memory management
var PAGE_SIZE = 4096;