Closed
Bug 455982
Opened 16 years ago
Closed 16 years ago
TM: "Assertion failure: JS_ON_TRACE(cx)" with generator as getter
Categories
(Core :: JavaScript Engine, defect, P1)
Core
JavaScript Engine
Tracking
()
VERIFIED
FIXED
mozilla1.9.1
People
(Reporter: jruderman, Assigned: jorendorff)
References
Details
(Keywords: assertion, testcase, verified1.9.1)
./js -j
for (let i=0;i<5;++i) this["y" + i] = function(){};
this.__defineGetter__('e', function (x2) { yield; });
[1 for each (a in this) for (b in {})];
Assertion failure: JS_ON_TRACE(cx), at jsbuiltins.cpp:647
I wonder why the second line doesn't throw "invalid getter usage".
Related to bug 455973?
Reporter | ||
Updated•16 years ago
|
Summary: "Assertion failure: JS_ON_TRACE(cx)" with generator as getter → TM: "Assertion failure: JS_ON_TRACE(cx)" with generator as getter
Assignee | ||
Comment 1•16 years ago
|
||
(In reply to comment #0)
> for (let i=0;i<5;++i) this["y" + i] = function(){};
> this.__defineGetter__('e', function (x2) { yield; });
>
> I wonder why the second line doesn't throw "invalid getter usage".
A generator-function is in fact a function. It's just a function that returns a new iterator each time you call it.
js> this.__defineGetter__('e', function (x2) { yield; });
js> e
[object Generator]
Updated•16 years ago
|
Assignee: general → brendan
Status: NEW → ASSIGNED
Flags: blocking1.9.1?
OS: Mac OS X → All
Priority: -- → P1
Hardware: PC → All
Target Milestone: --- → mozilla1.9.1b1
Comment 2•16 years ago
|
||
The testcase WFM now due to the patch for bug 457335. I tried this to re-trigger the assertbotch:
for (let i=0;i<5;++i) this["y" + i] = function(){};
this.__defineGetter__('e', function (x2) { yield; });
[1 for each (a in this) for (b in {p:1,q:2,r:3})];
but got only expected output:
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Jesse, can you find a new testcase that produces the same symptom, or else mark FIXED if you agree the patch for bug 457335 fixed this bug? Thanks,
/be
Assignee: brendan → jruderman
Reporter | ||
Comment 3•16 years ago
|
||
I'll file a new bug if jsfunfuzz hits this assertion again.
Assignee: jruderman → general
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Comment 4•16 years ago
|
||
/cvsroot/mozilla/js/tests/js1_7/extensions/regress-455982-01.js,v <-- regress-455982-01.js
initial revision: 1.1
/cvsroot/mozilla/js/tests/js1_7/extensions/regress-455982-02.js,v <-- regress-455982-02.js
initial revision: 1.1
http://hg.mozilla.org/mozilla-central/rev/b04c04268a94
Flags: in-testsuite+
Flags: in-litmus-
Assignee | ||
Comment 5•16 years ago
|
||
This is happening to me on tip. Taking.
Assignee: general → jorendorff
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Assignee | ||
Comment 6•16 years ago
|
||
Reentering through js_FastCallIteratorNext.
So bug 462027 will fix this.
#0 js_Interpret (cx=0x3010f0) at jsinterp.cpp:2576
#1 0x0009c584 in js_Invoke (cx=0x3010f0, argc=0, vp=0x808440, flags=0) at jsinterp.cpp:1324
#2 0x0009c83a in js_InternalInvoke (cx=0x3010f0, obj=0x261000, fval=2495008, flags=0, argc=0, argv=0x0, rval=0xbfffa46c) at jsinterp.cpp:1381
#3 0x0009ca9b in js_InternalGetOrSet (cx=0x3010f0, obj=0x261000, id=2504348, fval=2495008, mode=JSACC_READ, argc=0, argv=0x0, rval=0xbfffa46c) at jsinterp.cpp:1442
#4 0x000aeaa1 in js_NativeGet (cx=0x3010f0, obj=0x261000, pobj=0x261000, sprop=0x805990, vp=0xbfffa46c) at jsobj.cpp:3664
#5 0x000af863 in js_GetPropertyHelper (cx=0x3010f0, obj=0x261000, id=2504348, vp=0xbfffa46c, entryp=0x0) at jsobj.cpp:3813
#6 0x000af8f6 in js_GetProperty (cx=0x3010f0, obj=0x261000, id=2504348, vp=0xbfffa46c) at jsobj.cpp:3825
#7 0x0009e865 in CallEnumeratorNext (cx=0x3010f0, iterobj=0x261300, flags=3, rval=0xbfffa46c) at jsiter.cpp:566
#8 0x0009e975 in js_CallIteratorNext (cx=0x3010f0, iterobj=0x261300, rval=0xbfffa46c) at jsiter.cpp:600
#9 0x0011d9dd in js_FastCallIteratorNext (cx=0x3010f0, iterobj=0x261300) at jsbuiltins.cpp:249
#10 0x0026efb4 in ?? ()
#11 0x00128067 in js_ExecuteTree (cx=0x3010f0, f=0x3031c0, inlineCallCount=@0xbfffda88, innermostNestedGuardp=0xbfffce54) at jstracer.cpp:3210
#12 0x0013dada in js_MonitorLoopEdge (cx=0x3010f0, inlineCallCount=@0xbfffda88) at jstracer.cpp:3488
#13 0x00062c35 in js_Interpret (cx=0x3010f0) at jsinterp.cpp:3074
#14 0x0009b08c in js_Execute (cx=0x3010f0, chain=0x261000, script=0x303540, down=0x0, flags=0, result=0xbffff724) at jsinterp.cpp:1550
#15 0x00018d6e in JS_ExecuteScript (cx=0x3010f0, obj=0x261000, script=0x303540, rval=0xbffff724) at jsapi.cpp:5071
#16 0x00002674 in Process (cx=0x3010f0, obj=0x261000, filename=0x0, forceTTY=0) at js.cpp:316
#17 0x00007e8e in ProcessArgs (cx=0x3010f0, obj=0x261000, argv=0xbffff888, argc=1) at js.cpp:576
#18 0x00009004 in main (argc=1, argv=0xbffff888, envp=0xbffff890) at js.cpp:4030
Updated•16 years ago
|
Flags: blocking1.9.1? → blocking1.9.1+
Updated•16 years ago
|
Target Milestone: mozilla1.9.1b1 → mozilla1.9.1
Comment 8•16 years ago
|
||
js1_7/extensions/regress-455982-01.js asserts:
1.9.1:
Assertion failure: !(fp->flags & JSFRAME_POP_BLOCKS), at ../jstracer.cpp:3688
1.9.1-tracemonkey and 1.9.2:
Assertion failure: JS_ON_TRACE(cx), at ../jsbuiltins.cpp:328
Comment 9•16 years ago
|
||
The assert in #8 is fixed by 474771, which has not landed yet.
Updated•16 years ago
|
Whiteboard: [needs 474771 to land]
Comment 10•16 years ago
|
||
474771 is fixed
Status: REOPENED → RESOLVED
Closed: 16 years ago → 16 years ago
Resolution: --- → FIXED
Comment 11•16 years ago
|
||
474771 is fixed1.9.1, so this should be too.
Keywords: fixed1.9.1
Whiteboard: [needs 474771 to land]
Comment 12•16 years ago
|
||
v 1.9.1, 1.9.2
Status: RESOLVED → VERIFIED
Keywords: fixed1.9.1 → verified1.9.1
You need to log in
before you can comment on or make changes to this bug.
Description
•