diff --git a/js/src/jsinfer.cpp b/js/src/jsinfer.cpp index ca87ba8fdd36..6dafd69a4690 100644 --- a/js/src/jsinfer.cpp +++ b/js/src/jsinfer.cpp @@ -2412,6 +2412,11 @@ ScriptAnalysis::addTypeBarrier(JSContext *cx, const jsbytecode *pc, TypeSet *tar barrier = cx->typeLifoAlloc().new_(target, type, (JSObject *) NULL, JSID_VOID); + if (!barrier) { + cx->compartment->types.setPendingNukeTypes(cx); + return; + } + barrier->next = code.typeBarriers; code.typeBarriers = barrier; } @@ -2438,6 +2443,11 @@ ScriptAnalysis::addSingletonTypeBarrier(JSContext *cx, const jsbytecode *pc, Typ TypeBarrier *barrier = cx->typeLifoAlloc().new_(target, Type::UndefinedType(), singleton, singletonId); + if (!barrier) { + cx->compartment->types.setPendingNukeTypes(cx); + return; + } + barrier->next = code.typeBarriers; code.typeBarriers = barrier; }