diff --git a/js/src/jit/Bailouts.cpp b/js/src/jit/Bailouts.cpp index ff46e6b5c98..30c1bf6e8bd 100644 --- a/js/src/jit/Bailouts.cpp +++ b/js/src/jit/Bailouts.cpp @@ -280,7 +280,7 @@ jit::CheckFrequentBailouts(JSContext* cx, JSScript* script, BailoutKind bailoutK // we compile this script LICM will be disabled. IonScript* ionScript = script->ionScript(); - if (ionScript->bailoutExpected()) { + if (ionScript->numBailouts() >= JitOptions.frequentBailoutThreshold) { // If we bailout because of the first execution of a basic block, // then we should record which basic block we are returning in, // which should prevent this from happening again. Also note that diff --git a/js/src/jit/IonCode.h b/js/src/jit/IonCode.h index 6c75bea25a8..ba9a95968b7 100644 --- a/js/src/jit/IonCode.h +++ b/js/src/jit/IonCode.h @@ -418,8 +418,11 @@ struct IonScript void incNumBailouts() { numBailouts_++; } + uint32_t numBailouts() const { + return numBailouts_; + } bool bailoutExpected() const { - return numBailouts_ >= JitOptions.frequentBailoutThreshold; + return numBailouts_ > 0; } void setHasProfilingInstrumentation() { hasProfilingInstrumentation_ = true;