diff --git a/js/src/ion/BaselineIC.cpp b/js/src/ion/BaselineIC.cpp index 058666445d4f..8c1746dae2d7 100644 --- a/js/src/ion/BaselineIC.cpp +++ b/js/src/ion/BaselineIC.cpp @@ -4302,7 +4302,7 @@ TryAttachScopeNameStub(JSContext *cx, HandleScript script, ICGetName_Fallback *s RootedId id(cx, NameToId(name)); RootedObject scopeChain(cx, initialScopeChain); - Shape *shape; + Shape *shape = NULL; while (scopeChain) { if (!shapes.append(scopeChain->lastProperty())) return false; diff --git a/js/src/ion/IonFrameIterator.h b/js/src/ion/IonFrameIterator.h index 8c955401874e..9aa51087ba1c 100644 --- a/js/src/ion/IonFrameIterator.h +++ b/js/src/ion/IonFrameIterator.h @@ -115,19 +115,9 @@ class IonFrameIterator } // Returns true iff this exit frame was created using EnsureExitFrame. - bool isFakeExitFrame() const { - bool res = (prevType() == IonFrame_Unwound_Rectifier || - prevType() == IonFrame_Unwound_OptimizedJS || - prevType() == IonFrame_Unwound_BaselineStub); - JS_ASSERT_IF(res, type() == IonFrame_Exit || type() == IonFrame_BaselineJS); - return res; - } + inline bool isFakeExitFrame() const; - IonExitFrameLayout *exitFrame() const { - JS_ASSERT(type() == IonFrame_Exit); - JS_ASSERT(!isFakeExitFrame()); - return (IonExitFrameLayout *) fp(); - } + inline IonExitFrameLayout *exitFrame() const; // Returns whether the JS frame has been invalidated and, if so, // places the invalidated Ion script in |ionScript|. diff --git a/js/src/ion/IonFrames-inl.h b/js/src/ion/IonFrames-inl.h index 35f1f9853914..bd4a178d14a9 100644 --- a/js/src/ion/IonFrames-inl.h +++ b/js/src/ion/IonFrames-inl.h @@ -76,6 +76,24 @@ IonFrameIterator::prevType() const return current->prevType(); } +inline bool +IonFrameIterator::isFakeExitFrame() const +{ + bool res = (prevType() == IonFrame_Unwound_Rectifier || + prevType() == IonFrame_Unwound_OptimizedJS || + prevType() == IonFrame_Unwound_BaselineStub); + JS_ASSERT_IF(res, type() == IonFrame_Exit || type() == IonFrame_BaselineJS); + return res; +} + +inline IonExitFrameLayout * +IonFrameIterator::exitFrame() const +{ + JS_ASSERT(type() == IonFrame_Exit); + JS_ASSERT(!isFakeExitFrame()); + return (IonExitFrameLayout *) fp(); +} + size_t IonFrameIterator::frameSize() const {