diff --git a/js/src/jit/IonAnalysis.cpp b/js/src/jit/IonAnalysis.cpp index 0aeee3caa6f..14a769d63ab 100644 --- a/js/src/jit/IonAnalysis.cpp +++ b/js/src/jit/IonAnalysis.cpp @@ -424,13 +424,12 @@ jit::EliminateDeadResumePointOperands(MIRGenerator *mir, MIRGraph &graph) if (ins->isUnbox() || ins->isParameter() || ins->isTypeBarrier() || ins->isComputeThis()) continue; - // TypedObject intermediate values captured by resume points may - // be legitimately dead in Ion code, but are still needed if we - // bail out. They can recover on bailout. - if (ins->isNewDerivedTypedObject()) { - MOZ_ASSERT(ins->canRecoverOnBailout()); + // Early intermediate values captured by resume points, such as + // TypedObject, ArrayState and its allocation, may be legitimately + // dead in Ion code, but are still needed if we bail out. They can + // recover on bailout. + if (ins->canRecoverOnBailout()) continue; - } // If the instruction's behavior has been constant folded into a // separate instruction, we can't determine precisely where the