mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-11-03 21:17:31 +09:00
Bug 1342553, Bug 1343072, Bug 1344753 (details in the description)
Bug 1342553 - Part 0.1: Use try-catch for IteratorClose in for-of Bug 1343072 - Update HasLiveStackValueAtDepth to follow the change in JSTRY_FOR_OF Bug 1344753 - Update for-of stack depth in ControlFlowGenerator::processWhileOrForInLoop Issue #74
This commit is contained in:
parent
b0960bf497
commit
444483bf81
11 changed files with 378 additions and 189 deletions
|
|
@ -331,7 +331,6 @@ static void
|
|||
CloseLiveIteratorIon(JSContext* cx, const InlineFrameIterator& frame, JSTryNote* tn)
|
||||
{
|
||||
MOZ_ASSERT(tn->kind == JSTRY_FOR_IN ||
|
||||
tn->kind == JSTRY_ITERCLOSE ||
|
||||
tn->kind == JSTRY_DESTRUCTURING_ITERCLOSE);
|
||||
|
||||
bool isDestructuring = tn->kind == JSTRY_DESTRUCTURING_ITERCLOSE;
|
||||
|
|
@ -442,7 +441,6 @@ HandleExceptionIon(JSContext* cx, const InlineFrameIterator& frame, ResumeFromEx
|
|||
|
||||
switch (tn->kind) {
|
||||
case JSTRY_FOR_IN:
|
||||
case JSTRY_ITERCLOSE:
|
||||
case JSTRY_DESTRUCTURING_ITERCLOSE:
|
||||
MOZ_ASSERT_IF(tn->kind == JSTRY_FOR_IN,
|
||||
JSOp(*(script->main() + tn->start + tn->length)) == JSOP_ENDITER);
|
||||
|
|
@ -637,19 +635,6 @@ ProcessTryNotesBaseline(JSContext* cx, const JitFrameIterator& frame, Environmen
|
|||
break;
|
||||
}
|
||||
|
||||
case JSTRY_ITERCLOSE: {
|
||||
uint8_t* framePointer;
|
||||
uint8_t* stackPointer;
|
||||
BaselineFrameAndStackPointersFromTryNote(tn, frame, &framePointer, &stackPointer);
|
||||
Value iterValue(*reinterpret_cast<Value*>(stackPointer));
|
||||
RootedObject iterObject(cx, &iterValue.toObject());
|
||||
if (!IteratorCloseForException(cx, iterObject)) {
|
||||
SettleOnTryNote(cx, tn, frame, ei, rfe, pc);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case JSTRY_DESTRUCTURING_ITERCLOSE: {
|
||||
uint8_t* framePointer;
|
||||
uint8_t* stackPointer;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue