Bug 449666 – TM: Assertion failure: JSSTRING_IS_FLAT during trace recording. r=brendan

This commit is contained in:
Robert Sayre 2008-08-09 18:20:18 -04:00
parent 337988cd85
commit 2ac505035a

View File

@ -2946,8 +2946,14 @@ TraceRecorder::record_JSOP_GETELEM()
if (!JSVAL_IS_PRIMITIVE(l) && JSVAL_IS_STRING(r)) { if (!JSVAL_IS_PRIMITIVE(l) && JSVAL_IS_STRING(r)) {
jsval v; jsval v;
if (!OBJ_GET_PROPERTY(cx, JSVAL_TO_OBJECT(l), ATOM_TO_JSID(r), &v)) jsid id;
if (!js_ValueToStringId(cx, r, &id))
return false; return false;
r = ID_TO_VALUE(id);
if (!OBJ_GET_PROPERTY(cx, JSVAL_TO_OBJECT(l), id, &v))
return false;
LIns* args[] = { get(&r), get(&l), cx_ins }; LIns* args[] = { get(&r), get(&l), cx_ins };
LIns* v_ins = lir->insCall(F_Any_getelem, args); LIns* v_ins = lir->insCall(F_Any_getelem, args);
guard(false, lir->ins2(LIR_eq, v_ins, lir->insImmPtr((void*)JSVAL_ERROR_COOKIE))); guard(false, lir->ins2(LIR_eq, v_ins, lir->insImmPtr((void*)JSVAL_ERROR_COOKIE)));