Bug 492904 - TM: Crash [@ TraceRecorder::test_property_cache] (r=gal).

This commit is contained in:
Brendan Eich 2009-05-19 12:57:32 -07:00
Родитель 7eff048ce5
Коммит 8a884f4ab6
1 изменённых файлов: 4 добавлений и 6 удалений

Просмотреть файл

@ -6671,14 +6671,15 @@ TraceRecorder::unbox_jsval(jsval v, LIns*& v_ins, VMSideExit* exit)
JS_REQUIRES_STACK JSRecordingStatus JS_REQUIRES_STACK JSRecordingStatus
TraceRecorder::getThis(LIns*& this_ins) TraceRecorder::getThis(LIns*& this_ins)
{ {
JSObject* thisObj = js_ComputeThisForFrame(cx, cx->fp);
if (!thisObj)
ABORT_TRACE_ERROR("js_ComputeThisForName failed");
/* /*
* In global code, bake in the global object as 'this' object. * In global code, bake in the global object as 'this' object.
*/ */
if (!cx->fp->callee) { if (!cx->fp->callee) {
JS_ASSERT(callDepth == 0); JS_ASSERT(callDepth == 0);
JSObject* thisObj = js_ComputeThisForFrame(cx, cx->fp);
if (!thisObj)
ABORT_TRACE_ERROR("error in js_ComputeThisForFrame");
this_ins = INS_CONSTPTR(thisObj); this_ins = INS_CONSTPTR(thisObj);
/* /*
@ -6697,9 +6698,6 @@ TraceRecorder::getThis(LIns*& this_ins)
* updates the interpreter's copy of argv[-1]. * updates the interpreter's copy of argv[-1].
*/ */
if (JSVAL_IS_NULL(thisv)) { if (JSVAL_IS_NULL(thisv)) {
JSObject* thisObj = js_ComputeThisForFrame(cx, cx->fp);
if (!thisObj)
ABORT_TRACE_ERROR("js_ComputeThisForName failed");
JS_ASSERT(!JSVAL_IS_PRIMITIVE(thisv)); JS_ASSERT(!JSVAL_IS_PRIMITIVE(thisv));
if (thisObj != globalObj) if (thisObj != globalObj)
ABORT_TRACE("global object was wrapped while recording"); ABORT_TRACE("global object was wrapped while recording");