Source code
Revision control
Copy as Markdown
Other Tools
// Debugger.Object.prototype.displayName
var g = newGlobal({newCompartment: true});
var dbg = Debugger(g);
var name;
dbg.onDebuggerStatement = function (frame) { name = frame.callee.displayName; };
g.eval("(function f() { debugger; })();");
assertEq(name, "f");
g.eval("(function () { debugger; })();");
assertEq(name, undefined);
g.eval("Function('debugger;')();");
assertEq(name, "anonymous");
g.eval("var f = function() { debugger; }; f()");
assertEq(name, "f");
g.eval("var a = {}; a.f = function() { debugger; }; a.f()");
assertEq(name, "a.f");
g.eval("(async function grondo() { debugger; })();");
assertEq(name, "grondo");
g.eval("(async function* estux() { debugger; })().next();");
assertEq(name, "estux");