static void CloseLiveIterator(JSContext *cx, const InlineFrameIterator &frame, uint32 localSlot) { SnapshotIterator si = frame.snapshotIterator(); // Skip stack slots until we reach the iterator object. uint32 base = CountArgSlots(frame.maybeCallee()) + frame.script()->nfixed; uint32 skipSlots = base + localSlot - 1; for (unsigned i = 0; i < skipSlots; i++) si.skip(); Value v = si.read(); JSObject *obj = &v.toObject(); if (cx->isExceptionPending()) UnwindIteratorForException(cx, obj); else UnwindIteratorForUncatchableException(cx, obj); }