зеркало из https://github.com/mozilla/pjs.git
Merge backout on TM tip to mozilla-central. (a=blockers)
This commit is contained in:
Коммит
b46f10f783
|
@ -468,7 +468,7 @@ RegisterEnumerator(JSContext *cx, JSObject *iterobj, NativeIterator *ni)
|
|||
cx->enumerators = iterobj;
|
||||
|
||||
JS_ASSERT(!(ni->flags & JSITER_ACTIVE));
|
||||
ni->flags |= (JSITER_ACTIVE | JSITER_REUSABLE);
|
||||
ni->flags |= JSITER_ACTIVE;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -788,7 +788,7 @@ js_CloseIterator(JSContext *cx, JSObject *obj)
|
|||
/* Remove enumerators from the active list, which is a stack. */
|
||||
NativeIterator *ni = obj->getNativeIterator();
|
||||
|
||||
if (ni->flags & JSITER_REUSABLE) {
|
||||
if (ni->flags & JSITER_ENUMERATE) {
|
||||
JS_ASSERT(cx->enumerators == obj);
|
||||
cx->enumerators = ni->next;
|
||||
|
||||
|
@ -882,10 +882,6 @@ SuppressDeletedPropertyHelper(JSContext *cx, JSObject *obj, IdPredicate predicat
|
|||
memmove(idp, idp + 1, (props_end - (idp + 1)) * sizeof(jsid));
|
||||
ni->props_end = ni->end() - 1;
|
||||
}
|
||||
|
||||
/* Don't reuse modified native iterators. */
|
||||
ni->flags &= (~JSITER_REUSABLE);
|
||||
|
||||
if (predicate.matchesAtMostOne())
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -64,7 +64,6 @@
|
|||
* Not serialized by XDR.
|
||||
*/
|
||||
#define JSITER_ACTIVE 0x1000
|
||||
#define JSITER_REUSABLE 0x2000
|
||||
|
||||
namespace js {
|
||||
|
||||
|
|
|
@ -4224,10 +4224,10 @@ mjit::Compiler::iterEnd()
|
|||
Address flagAddr(T1, offsetof(NativeIterator, flags));
|
||||
masm.loadPtr(flagAddr, T2);
|
||||
|
||||
/* Test for (flags & REUSABLE). */
|
||||
Jump notReusable = masm.branchTest32(Assembler::Zero, T2,
|
||||
Imm32(JSITER_REUSABLE));
|
||||
stubcc.linkExit(notReusable, Uses(1));
|
||||
/* Test for (flags == ENUMERATE | ACTIVE). */
|
||||
Jump notEnumerate = masm.branch32(Assembler::NotEqual, T2,
|
||||
Imm32(JSITER_ENUMERATE | JSITER_ACTIVE));
|
||||
stubcc.linkExit(notEnumerate, Uses(1));
|
||||
|
||||
/* Clear active bit. */
|
||||
masm.and32(Imm32(~JSITER_ACTIVE), T2);
|
||||
|
|
Загрузка…
Ссылка в новой задаче