зеркало из https://github.com/mozilla/pjs.git
Check for doubles that fit in ints in JSOP_GETELEM slow paths (bug 604905, r=luke).
This commit is contained in:
Родитель
c7ac3a7b96
Коммит
1f923e8243
|
@ -4504,9 +4504,14 @@ BEGIN_CASE(JSOP_GETELEM)
|
|||
else
|
||||
goto intern_big_int;
|
||||
} else {
|
||||
intern_big_int:
|
||||
if (!js_InternNonIntElementId(cx, obj, rref, &id))
|
||||
goto error;
|
||||
int32_t i;
|
||||
if (ValueFitsInInt32(rref, &i) && INT_FITS_IN_JSID(i)) {
|
||||
id = INT_TO_JSID(i);
|
||||
} else {
|
||||
intern_big_int:
|
||||
if (!js_InternNonIntElementId(cx, obj, rref, &id))
|
||||
goto error;
|
||||
}
|
||||
}
|
||||
|
||||
if (!obj->getProperty(cx, id, &rval))
|
||||
|
|
|
@ -487,9 +487,14 @@ stubs::GetElem(VMFrame &f)
|
|||
goto intern_big_int;
|
||||
|
||||
} else {
|
||||
intern_big_int:
|
||||
if (!js_InternNonIntElementId(cx, obj, rref, &id))
|
||||
THROW();
|
||||
int32_t i;
|
||||
if (ValueFitsInInt32(rref, &i) && INT_FITS_IN_JSID(i)) {
|
||||
id = INT_TO_JSID(i);
|
||||
} else {
|
||||
intern_big_int:
|
||||
if (!js_InternNonIntElementId(cx, obj, rref, &id))
|
||||
THROW();
|
||||
}
|
||||
}
|
||||
|
||||
if (!obj->getProperty(cx, id, &rval))
|
||||
|
|
Загрузка…
Ссылка в новой задаче