Closed Bug 416665 Opened 16 years ago Closed 16 years ago

Crash when loading website with Firebug 1.1 installed [@ JS_Assert][@ js_GetIndexFromBytecode]

Categories

(Core :: JavaScript Engine, defect, P1)

defect

Tracking

()

VERIFIED FIXED
mozilla1.9beta4

People

(Reporter: whimboo, Assigned: brendan)

References

()

Details

(Keywords: crash)

Crash Data

Attachments

(1 file, 2 obsolete files)

Seen with the latest trunk build while loading the above website and Firebug 1.1 installed.

Backtrace:
#0  JS_Assert (s=0x110f784 "js_CodeSpec[op].length >= 1 + pcoff + UINT16_LEN", file=0x110f744 "/Users/henrik/Projects/mozilla/source/mozilla/js/src/jsopcode.c", ln=132) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/jsutil.c:63
#1  0x0109d14e in js_GetIndexFromBytecode (script=0x3afc9fb0, pc=0x3afc9fec "S", pcoff=0) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/jsopcode.c:132
#2  0x01061357 in js_FullTestPropertyCache (cx=0x3ab8ac50, pc=0x3afc9fec "S", objp=0xbfff978c, pobjp=0xbfff9788, entryp=0xbfff9634) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/jsinterp.c:267
#3  0x0107a7f0 in js_Interpret (cx=0x3ab8ac50, pc=0x3afc9fec "S", result=0xbfff9ad8) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/jsinterp.c:4602
#4  0x01063e73 in js_Execute (cx=0x3ab8ac50, chain=0x39817080, script=0x3afc9fb0, down=0xbfffd474, flags=24, result=0xbfff9c70) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/jsinterp.c:1639
#5  0x01035dbd in JS_EvaluateUCInStackFrame (cx=0x3ab8ac50, fp=0xbfffd474, chars=0x3addf020, length=17, filename=0x3af8b830 "lib.createSourceFileForEval.getEvalBody", lineno=1, rval=0xbfff9c70) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/jsdbgapi.c:1224
#6  0x028106c0 in jsd_EvaluateUCScriptInStackFrame (jsdc=0x2937210, jsdthreadstate=0x3d3b0d40, jsdframe=0x3d3b0d60, bytes=0x3addf020, length=17, filename=0x3af8b830 "lib.createSourceFileForEval.getEvalBody", lineno=1, eatExceptions=0, rval=0xbfff9c70) at /Users/henrik/Projects/mozilla/source/mozilla/js/jsd/jsd_stak.c:457
#7  0x0280a9ac in JSD_AttemptUCScriptInStackFrame (jsdc=0x2937210, jsdthreadstate=0x3d3b0d40, jsdframe=0x3d3b0d60, bytes=0x3addf020, length=17, filename=0x3af8b830 "lib.createSourceFileForEval.getEvalBody", lineno=1, rval=0xbfff9c70) at /Users/henrik/Projects/mozilla/source/mozilla/js/jsd/jsdebug.c:793
#8  0x028170b9 in jsdStackFrame::Eval (this=0x3d3b0dc0, bytes=@0xbfffa1a0, fileName=0x3af8b830 "lib.createSourceFileForEval.getEvalBody", line=1, result=0xbfff9f14, _rval=0xbfff9f24) at /Users/henrik/Projects/mozilla/source/mozilla/js/jsd/jsd_xpc.cpp:1933
#9  0x01395b38 in NS_InvokeByIndex_P (that=0x3d3b0dc0, methodIndex=20, paramCount=5, params=0xbfff9ee4) at /Users/henrik/Projects/mozilla/source/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_unixish_x86.cpp:179
#10 0x137067bf in XPCWrappedNative::CallMethod (ccx=@0xbfffa12c, mode=CALL_METHOD) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/xpconnect/src/xpcwrappednative.cpp:2339
#11 0x1370e2f8 in XPC_WN_CallMethod (cx=0x3ab8ac50, obj=0x39817580, argc=4, argv=0x2658e98, vp=0xbfffa260) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/xpconnect/src/xpcwrappednativejsops.cpp:1470
#12 0x010635a2 in js_Invoke (cx=0x3ab8ac50, argc=4, vp=0x2658e90, flags=0) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/jsinterp.c:1400
#13 0x0107a035 in js_Interpret (cx=0x3ab8ac50, pc=0x397f696a ":", result=0xbfffaa68) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/jsinterp.c:4530
#14 0x0106362d in js_Invoke (cx=0x3ab8ac50, argc=1, vp=0x2658cf0, flags=2) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/jsinterp.c:1416
#15 0x137013c5 in nsXPCWrappedJSClass::CallMethod (this=0x3d3af800, wrapper=0x3d3af950, methodIndex=3, info=0x22ee2b0, nativeParams=0xbfffaec4) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/xpconnect/src/xpcwrappedjsclass.cpp:1473
#16 0x136f9b1f in nsXPCWrappedJS::CallMethod (this=0x3d3af950, methodIndex=3, info=0x22ee2b0, params=0xbfffaec4) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/xpconnect/src/xpcwrappedjs.cpp:556
#17 0x01395df2 in PrepareAndDispatch (self=0x3d3af990, methodIndex=3, args=0xbfffafe4) at /Users/henrik/Projects/mozilla/source/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_unixish_x86.cpp:93
#18 0x01395e50 in nsXPTCStubBase::Stub3 (this=0x3d3af990) at ../../../../../../dist/include/xpcom/xptcstubsdef.inc:5
#19 0x01395b38 in NS_InvokeByIndex_P (that=0x3d3af990, methodIndex=3, paramCount=2, params=0xbfffb214) at /Users/henrik/Projects/mozilla/source/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_unixish_x86.cpp:179
#20 0x137067bf in XPCWrappedNative::CallMethod (ccx=@0xbfffb45c, mode=CALL_METHOD) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/xpconnect/src/xpcwrappednative.cpp:2339
#21 0x1370e2f8 in XPC_WN_CallMethod (cx=0x3ab8ac50, obj=0x349660a0, argc=1, argv=0x2658cdc, vp=0xbfffb590) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/xpconnect/src/xpcwrappednativejsops.cpp:1470
#22 0x010635a2 in js_Invoke (cx=0x3ab8ac50, argc=1, vp=0x2658cd4, flags=0) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/jsinterp.c:1400
#23 0x0107a035 in js_Interpret (cx=0x3ab8ac50, pc=0x3993603b ":", result=0xbfffbd98) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/jsinterp.c:4530
#24 0x0106362d in js_Invoke (cx=0x3ab8ac50, argc=3, vp=0x2658b38, flags=2) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/jsinterp.c:1416
#25 0x0105786a in fun_apply (cx=0x3ab8ac50, argc=3, vp=0x2658b20) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/jsfun.c:1626
#26 0x01079fce in js_Interpret (cx=0x3ab8ac50, pc=0x3993db67 ":", result=0xbfffc638) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/jsinterp.c:4512
#27 0x0106362d in js_Invoke (cx=0x3ab8ac50, argc=3, vp=0x2658af4, flags=2) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/jsinterp.c:1416
#28 0x137013c5 in nsXPCWrappedJSClass::CallMethod (this=0x3b157f70, wrapper=0x3b1583b0, methodIndex=3, info=0x22eed00, nativeParams=0xbfffca94) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/xpconnect/src/xpcwrappedjsclass.cpp:1473
#29 0x136f9b1f in nsXPCWrappedJS::CallMethod (this=0x3b1583b0, methodIndex=3, info=0x22eed00, params=0xbfffca94) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/xpconnect/src/xpcwrappedjs.cpp:556
#30 0x01395df2 in PrepareAndDispatch (self=0x3b1583f0, methodIndex=3, args=0xbfffcbb4) at /Users/henrik/Projects/mozilla/source/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_unixish_x86.cpp:93
#31 0x01395e50 in nsXPTCStubBase::Stub3 (this=0x3b1583f0) at ../../../../../../dist/include/xpcom/xptcstubsdef.inc:5
#32 0x0281bfe7 in jsds_ExecutionHookProc (jsdc=0x2937210, jsdthreadstate=0x3d3b0d40, type=1, callerdata=0x1, rval=0xbfffd134) at /Users/henrik/Projects/mozilla/source/mozilla/js/jsd/jsd_xpc.cpp:687
#33 0x0280cd53 in jsd_CallExecutionHook (jsdc=0x2937210, cx=0x3ab8ac50, type=1, hook=0x281bc16 <jsds_ExecutionHookProc(JSDContext*, JSDThreadState*, unsigned int, void*, long*)>, hookData=0x1, rval=0xbfffd134) at /Users/henrik/Projects/mozilla/source/mozilla/js/jsd/jsd_hook.c:177
#34 0x0280f3d2 in jsd_TrapHandler (cx=0x3ab8ac50, script=0x3d3b0800, pc=0x3d3b083c "9", rval=0xbfffd134, closure=0x3d3b0d01) at /Users/henrik/Projects/mozilla/source/mozilla/js/jsd/jsd_scpt.c:736
#35 0x01033d55 in JS_HandleTrap (cx=0x3ab8ac50, script=0x3d3b0800, pc=0x3d3b083c "9", rval=0xbfffd134) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/jsdbgapi.c:294
#36 0x0107d9f3 in js_Interpret (cx=0x3ab8ac50, pc=0x3d3b083c "9", result=0xbfffd498) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/jsinterp.c:5085
#37 0x01063e73 in js_Execute (cx=0x3ab8ac50, chain=0x39817080, script=0x3d3b0800, down=0x2658a28, flags=16, result=0xbfffd640) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/jsinterp.c:1639
#38 0x01092c0a in obj_eval (cx=0x3ab8ac50, obj=0x33379940, argc=1, argv=0x2658ac4, rval=0xbfffd640) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/jsobj.c:1318
#39 0x010635a2 in js_Invoke (cx=0x3ab8ac50, argc=1, vp=0x2658abc, flags=0) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/jsinterp.c:1400
#40 0x0107a035 in js_Interpret (cx=0x3ab8ac50, pc=0x3b1e3e2c "y", result=0xbfffde48) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/jsinterp.c:4530
#41 0x01063e73 in js_Execute (cx=0x3ab8ac50, chain=0x33379940, script=0x3d3ae590, down=0x0, flags=0, result=0xbfffdf78) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/jsinterp.c:1639
#42 0x0101f914 in JS_EvaluateUCScriptForPrincipals (cx=0x3ab8ac50, obj=0x33379940, principals=0x3afceb54, chars=0x3b1e0b80, length=8, filename=0x3af735f8 "http://www.wetteronline.de/startseite/includes/operationell/ticker_gif.js", lineno=103, rval=0xbfffdf78) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/jsapi.c:4891
#43 0x188a1188 in nsJSContext::EvaluateString (this=0x3ab8a2c0, aScript=@0xbfffe0e4, aScopeObject=0x33379940, aPrincipal=0x3afceb50, aURL=0x3af735f8 "http://www.wetteronline.de/startseite/includes/operationell/ticker_gif.js", aLineNo=103, aVersion=0, aRetValue=0x0, aIsUndefined=0xbfffe0c8) at /Users/henrik/Projects/mozilla/source/mozilla/dom/src/base/nsJSEnvironment.cpp:1497
#44 0x188cf2b8 in nsGlobalWindow::RunTimeout (this=0x3b110520, aTimeout=0x3becbcc0) at /Users/henrik/Projects/mozilla/source/mozilla/dom/src/base/nsGlobalWindow.cpp:7556
#45 0x188cf966 in nsGlobalWindow::TimerCallback (aTimer=0x3beca990, aClosure=0x3becbcc0) at /Users/henrik/Projects/mozilla/source/mozilla/dom/src/base/nsGlobalWindow.cpp:7906
#46 0x01387d34 in nsTimerImpl::Fire (this=0x3beca990) at /Users/henrik/Projects/mozilla/source/mozilla/xpcom/threads/nsTimerImpl.cpp:400
#47 0x01387f61 in nsTimerEvent::Run (this=0x3d15ada0) at /Users/henrik/Projects/mozilla/source/mozilla/xpcom/threads/nsTimerImpl.cpp:488
#48 0x01383c7b in nsThread::ProcessNextEvent (this=0x29253d0, mayWait=0, result=0xbfffe324) at /Users/henrik/Projects/mozilla/source/mozilla/xpcom/threads/nsThread.cpp:510
#49 0x0132af3b in NS_ProcessPendingEvents_P (thread=0x29253d0, timeout=20) at nsThreadUtils.cpp:180
#50 0x15e8b6a1 in nsBaseAppShell::NativeEventCallback (this=0x2943f60) at /Users/henrik/Projects/mozilla/source/mozilla/widget/src/xpwidgets/nsBaseAppShell.cpp:112
#51 0x15e6a501 in nsAppShell::ProcessGeckoEvents (aInfo=0x2943f60) at /Users/henrik/Projects/mozilla/source/mozilla/widget/src/cocoa/nsAppShell.mm:294
#52 0x9082cf1a in CFRunLoopRunSpecific ()
#53 0x9082ca56 in CFRunLoopRunInMode ()
#54 0x92df0878 in RunCurrentEventLoopInMode ()
#55 0x92defeb9 in ReceiveNextEventCommon ()
#56 0x92defdd9 in BlockUntilNextEventMatchingListInMode ()
#57 0x93296485 in _DPSNextEvent ()
#58 0x93296076 in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] ()
#59 0x9328fdfb in -[NSApplication run] ()
#60 0x15e698b4 in nsAppShell::Run (this=0x2943f60) at /Users/henrik/Projects/mozilla/source/mozilla/widget/src/cocoa/nsAppShell.mm:565
#61 0x16d5bc5b in nsAppStartup::Run (this=0x2964700) at /Users/henrik/Projects/mozilla/source/mozilla/toolkit/components/startup/src/nsAppStartup.cpp:181
#62 0x00211146 in XRE_main (argc=1, argv=0xbffff740, aAppData=0x290b2d0) at /Users/henrik/Projects/mozilla/source/mozilla/toolkit/xre/nsAppRunner.cpp:3145
#63 0x00002798 in main (argc=1, argv=0xbffff740) at /Users/henrik/Projects/mozilla/source/mozilla/browser/app/nsBrowserApp.cpp:158

Argument values:
(gdb) p *s
$1 = 106 'j'
(gdb) p *file
$2 = 47 '/'

Haven't tested it under Windows yet.
Flags: blocking1.9?
This cannot happen under Windows when having a look at the source:
http://bonsai.mozilla.org/cvsblame.cgi?file=/mozilla/js/src/jsutil.c&rev=3.29&#54
eh? run it under a debugger, DebugBreak() will land you in the debugger. It's functionally equivalent.
Oh right. But I forgot to say that no crash happens under Windows with the same versions of Minefield and Firebug.
Assignee: general → brendan
Blocks: js-propcache
Flags: blocking1.9? → blocking1.9+
OS: Mac OS X → All
Priority: -- → P1
Hardware: PC → All
Target Milestone: --- → mozilla1.9beta4
Henrik: could you please reproduce in a debugger and print op and js_CodeSpec[op]? Thanks,

/be 
Sure. Here the output of the debugger:

(gdb) frame 1
#1  0x0109d14e in js_GetIndexFromBytecode (script=0x40034ca0, pc=0x40034cdc "S", pcoff=0) at /Users/henrik/Projects/mozilla/source/mozilla/js/src/jsopcode.c:132
132	    JS_ASSERT(js_CodeSpec[op].length >= 1 + pcoff + UINT16_LEN);
Current language:  auto; currently c
(gdb) p op
$1 = JSOP_TRAP
(gdb) p js_CodeSpec[op]
$2 = {
  length = 1 '\001', 
  nuses = 0 '\0', 
  ndefs = 0 '\0', 
  prec = 0 '\0', 
  format = 0
}
Status: NEW → ASSIGNED
Attached patch proposed fix (obsolete) — Splinter Review
Henrik, can you test this? Thanks,

/be
Attachment #303216 - Flags: review?(igor)
Comment on attachment 303216 [details] [diff] [review]
proposed fix

>Index: jsopcode.c
>===================================================================
>RCS file: /cvsroot/mozilla/js/src/jsopcode.c,v
>retrieving revision 3.290
>diff -p -u -8 -r3.290 jsopcode.c
>--- jsopcode.c	10 Feb 2008 03:30:08 -0000	3.290
>+++ jsopcode.c	14 Feb 2008 07:12:57 -0000
>@@ -124,16 +124,21 @@ GetJumpOffset(jsbytecode *pc, jsbytecode
> 
> uintN
> js_GetIndexFromBytecode(JSScript *script, jsbytecode *pc, ptrdiff_t pcoff)
> {
>     JSOp op;
>     uintN span, base;
> 
>     op = (JSOp)*pc;
>+    if (op == JSOP_TRAP) {
>+        op = JS_GetTrapOpcode(cx, script, pc);

This would not compile as js_GetIndexFromBytecode does not take cx. 

>+        if (op == JSOP_LIMIT)
>+            return 0;
>+    }

The callers of js_GetIndexFromBytecode expect that the function never fails. I think passing the bytecode itself to the function would fix the issue in a proper way.
Attachment #303216 - Flags: review?(igor) → review-
Failure is not possible with a properly threaded debugger embedding, that pattern of checking for JSOP_LIMIT is just paranoia -- see JS_GetTrapOpcode:

JS_PUBLIC_API(JSOp) 
JS_GetTrapOpcode(JSContext *cx, JSScript *script, jsbytecode *pc)
{       
    JSTrap *trap;
    
    DBG_LOCK_EVAL(cx->runtime, trap = FindTrap(cx->runtime, script, pc));
    if (!trap) {
#ifdef JS_THREADSAFE
        /*
         * If we lost a race with another thread, return JSOP_LIMIT so our
         * caller can detect this case and do something sane.
         */
#else
        JS_ASSERT(0);   /* XXX can't happen */
#endif
        return JSOP_LIMIT;
    }
    return trap->op;
}

I would prefer to reparameterize js_GetIndexFromBytecode but keep it infallible. Igor, how does that sound?

/be
(In reply to comment #8)
> Failure is not possible with a properly threaded debugger embedding, that
> pattern of checking for JSOP_LIMIT is just paranoia -- see JS_GetTrapOpcode:
> 
> JS_PUBLIC_API(JSOp) 
> JS_GetTrapOpcode(JSContext *cx, JSScript *script, jsbytecode *pc)
> {       
>     JSTrap *trap;
> 
>     DBG_LOCK_EVAL(cx->runtime, trap = FindTrap(cx->runtime, script, pc));
>     if (!trap) {
> #ifdef JS_THREADSAFE
>         /*
>          * If we lost a race with another thread, return JSOP_LIMIT so our
>          * caller can detect this case and do something sane.
>          */

How that can be a paranoia if the code explicitly allows to fail?
(In reply to comment #8)
> JS_PUBLIC_API(JSOp) 
> JS_GetTrapOpcode(JSContext *cx, JSScript *script, jsbytecode *pc)
> {       
>     JSTrap *trap;
> 
>     DBG_LOCK_EVAL(cx->runtime, trap = FindTrap(cx->runtime, script, pc));
>     if (!trap) {
> #ifdef JS_THREADSAFE
>         /*
>          * If we lost a race with another thread, return JSOP_LIMIT so our
>          * caller can detect this case and do something sane.
>          */

I guess this is a bug in JS_GetTrapOpcode. It should never fail. Instead it can just check under the lock the value of *pc. If it is not [trap], then it should just return it.
Right! For the longest time, the jsdbgapi.c code lacked any thread safety. You had to run one debugger in one thread, and not have racing trap-opcode setters or anything like that. But now that we lock, it's easy to fix. I will do this later today (feel free to steal this bug, though!).

/be
Attached patch better proposed fix (obsolete) — Splinter Review
Attachment #303216 - Attachment is obsolete: true
Attachment #303653 - Flags: review?(igor)
Comment on attachment 303653 [details] [diff] [review]
better proposed fix

>diff -p -u -8 -r3.291 jsopcode.c
>--- jsopcode.c	16 Feb 2008 02:46:46 -0000	3.291
>+++ jsopcode.c	16 Feb 2008 03:12:53 -0000
>@@ -3804,27 +3805,27 @@ Decompile(SprintStack *ss, jsbytecode *p
>                         op = ((js_CodeSpec[op].format & JOF_PARENHEAD) ||
>                               ((js_CodeSpec[op].format & JOF_INVOKE) &&
>                                GET_ARGC(pc + len) == 1) ||
>                               (((op == JSOP_IFEQ || op == JSOP_IFEQX) &&
>                                (sn2 = js_GetSrcNote(outer, pc + len)) &&
>                                SN_TYPE(sn2) != SRC_COND)))
>                              ? JSOP_POP
>                              : JSOP_SETNAME;
>+                    }
> 
>                     /*
>                      * Stack this result as if it's a name, not an anonymous
>                      * function, so it doesn't get decompiled as a generator
>                      * function in a getter or setter context. The precedence
>                      * level is the same for JSOP_NAME and JSOP_ANONFUNOBJ.
>                      */
>                     LOCAL_ASSERT(js_CodeSpec[JSOP_NAME].prec ==
>                                  js_CodeSpec[saveop].prec);
>                     saveop = JSOP_NAME;
>-                    }


This fixes a bug an unrelated bug, doesn't it? I.e without the patch saveop would not be stacked, right?


r+ with this mystery resolved.
Yes, I noticed the indentation wrongness and reasoned that the brace was misplaced -- want me to split it out into another bug? Could use your confirmation of my reasoning in any event.

/be
(In reply to comment #14)
> Yes, I noticed the indentation wrongness and reasoned that the brace was
> misplaced -- want me to split it out into another bug?

That would be ideal. I wish bugzilla would have an option like clone bug to quickly file stuff like that...

Look for "Clone This Bug" near the bottom of the page...  On the same line with the bold "BUG LIST:"
Attachment #303653 - Attachment is obsolete: true
Attachment #303840 - Flags: review?(igor)
Attachment #303653 - Flags: review?(igor)
Attachment #303840 - Flags: review?(igor) → review+
Attachment #303840 - Flags: approval1.9+
Fixed:

js/src/jsdbgapi.c 3.129
js/src/jsopcode.c 3.293
js/src/jsopcode.h 3.59

/be
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Verified with Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9b4pre) Gecko/2008021804 Minefield/3.0b4pre ID:2008021804
Status: RESOLVED → VERIFIED
Flags: in-testsuite-
Flags: in-litmus-
Blocks: 463239
Crash Signature: [@ JS_Assert] [@ js_GetIndexFromBytecode]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: