Description
Here’s a program that makes a stack trace:
var dog = {};
dog.bark = function() {
throw new Error('woof woof');
};
function makeStack() {
try {
dog.bark();
} catch (error) {
return error.stack;
}
}
makeStack();
This is what QuickJS makes:
at <anonymous> (file.js:3)
at makeStack (file.js:7)
at <eval> (file.js:12)
And Chrome:
Error: woof woof
at Object.dog.bark (file.js:3:9)
at makeStack (file.js:7:9)
at file.js:12:1
And Firefox:
dog.bark@file.js eval code:3:9
makeStack@file.js eval code:7:9
@file.js eval code:12:1
Both Chrome and Firefox include dog.bark
in the stack trace, but in QuickJS this function is <anonymous>
.
Getting the function name in the output is super handy. This example is trivial, but my real program has deep stacks full of <anonymous>
and it slows down debugging.
Metadata
Metadata
Assignees
Labels
No labels