We should be able to discern whether a CallFrame (once fully reified) ArgumentCount tag is a bytecodeOffset or a codeOriginIndex. This change will flag the codeOriginIndex by encoding it as a handle which always has the high bit set. If the ArgumentCount tag word has its high bit set, then we have a codeOriginIndex, else we have a bytecodeOffset.
Created attachment 203896 [details] the patch.
Comment on attachment 203896 [details] the patch. Forgot the ChangeLogs. Will re-upload with ChangeLogs.
Created attachment 203897 [details] corrected patch.
Comment on attachment 203897 [details] corrected patch. View in context: https://bugs.webkit.org/attachment.cgi?id=203897&action=review r=me > Source/JavaScriptCore/interpreter/CallFrame.cpp:45 > +unsigned CallFrame::locationAsBytecodeOffset() const This should ASSERT hasLocationAsBytecodeOffset(). > Source/JavaScriptCore/interpreter/CallFrame.cpp:51 > +void CallFrame::setLocationAsBytecodeOffset(unsigned offset) This should ASSERT hasLocationAsBytecodeOffset() after the set -- or ASSERT that offset is not a CodeOrigin handle. > Source/JavaScriptCore/interpreter/CallFrameInlines.h:62 > +inline void CallFrame::setLocationAsBytecodeOffset(unsigned offset) This should ASSERT hasLocationAsBytecodeOffset() after the set -- or ASSERT that offset is not a CodeOrigin handle.
Landed in r151250: <http://trac.webkit.org/changeset/151250>.