mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Fix Debug.Object.prototype.name to return undefined if the object is not a function or is a nameless function.
--HG-- extra : rebase_source : 1143095edd69ef1dd69c63e09cd9ac5a0e574744
This commit is contained in:
parent
75cd459ff4
commit
e5bb78e4c4
@ -17,7 +17,7 @@ dbg.hooks = {
|
||||
frame = frame.older;
|
||||
}
|
||||
assertEq(frame.type, 'call');
|
||||
assertEq(frame.callee.name, null);
|
||||
assertEq(frame.callee.name, undefined);
|
||||
frame = frame.older;
|
||||
assertEq(frame.type, 'eval');
|
||||
hits++;
|
||||
|
@ -8,7 +8,7 @@ var hits = 0;
|
||||
dbg.hooks = {
|
||||
debuggerHandler: function (frame) {
|
||||
var proxy = frame.arguments[0];
|
||||
assertEq(proxy.name, null);
|
||||
assertEq(proxy.name, undefined);
|
||||
assertEq(proxy.apply(null, [33]).return, 34);
|
||||
hits++;
|
||||
}
|
||||
|
@ -9,6 +9,8 @@ dbg.hooks = {debuggerHandler: function (frame) { hits++; assertEq(frame.callee.n
|
||||
hits = 0;
|
||||
name = "f";
|
||||
g.eval("(function f() { debugger; })();");
|
||||
name = null;
|
||||
name = undefined;
|
||||
g.eval("(function () { debugger; })();");
|
||||
assertEq(hits, 2);
|
||||
name = "anonymous";
|
||||
g.eval("Function('debugger;')();");
|
||||
assertEq(hits, 3);
|
||||
|
18
js/src/jit-test/tests/debug/Object-name-02.js
Normal file
18
js/src/jit-test/tests/debug/Object-name-02.js
Normal file
@ -0,0 +1,18 @@
|
||||
// |jit-test| debug
|
||||
// The .name of a non-function object is undefined.
|
||||
|
||||
var g = newGlobal('new-compartment');
|
||||
var hits = 0;
|
||||
var dbg = new Debug(g);
|
||||
dbg.hooks = {
|
||||
debuggerHandler: function (frame) {
|
||||
assertEq(frame.arguments[0].name, undefined);
|
||||
hits++;
|
||||
}
|
||||
};
|
||||
g.eval("function f(nonfunction) { debugger; }");
|
||||
g.eval("f({});");
|
||||
g.eval("f(/a*/);");
|
||||
g.eval("f({name: 'bad'});");
|
||||
g.eval("f(Proxy.createFunction({name: {value: 'bad'}}, function () {}));");
|
||||
assertEq(hits, 4);
|
@ -1323,13 +1323,13 @@ DebugObject_getName(JSContext *cx, uintN argc, Value *vp)
|
||||
{
|
||||
THIS_DEBUGOBJECT_REFERENT(cx, vp, "get name", obj);
|
||||
if (!obj->isFunction()) {
|
||||
vp->setNull();
|
||||
vp->setUndefined();
|
||||
return true;
|
||||
}
|
||||
|
||||
JSString *name = obj->getFunctionPrivate()->atom;
|
||||
if (!name) {
|
||||
vp->setNull();
|
||||
vp->setUndefined();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user