cx->runtime->gcLevel++;
prop_iterator_finalize(JSContext *cx, JSObject *obj){    jsval iter_state;    jsval iteratee;    /* Protect against stillborn iterators. */    iter_state = obj->slots[JSSLOT_ITER_STATE];    iteratee = obj->slots[JSSLOT_PARENT];    if (!JSVAL_IS_NULL(iter_state) && !JSVAL_IS_PRIMITIVE(iteratee)) {        OBJ_ENUMERATE(cx, JSVAL_TO_OBJECT(iteratee), JSENUMERATE_DESTROY,                      &iter_state, NULL);    }    js_RemoveRoot(cx->runtime, &obj->slots[JSSLOT_PARENT]);    /* XXX force the GC to restart so we can collect iteratee, if possible,           during the current collector activation */    cx->runtime->gcLevel++;}