Changeset 61588 in webkit for trunk/JavaScriptCore/interpreter
- Timestamp:
- Jun 21, 2010, 4:17:48 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/interpreter/Interpreter.cpp
r61553 r61588 644 644 645 645 CodeBlock* codeBlock = &program->bytecode(callFrame, scopeChain); 646 if (!codeBlock) { 647 *exception = createStackOverflowError(callFrame); 648 return jsNull(); 649 } 646 650 647 651 Register* oldEnd = m_registerFile.end(); … … 723 727 if (callType == CallTypeJS) { 724 728 ScopeChainNode* callDataScopeChain = callData.js.scopeChain; 725 CodeBlock* newCodeBlock = &callData.js.functionExecutable->bytecodeForCall(callFrame, callDataScopeChain); 726 727 newCallFrame = slideRegisterWindowForCall(newCodeBlock, &m_registerFile, newCallFrame, registerOffset, argCount); 729 CodeBlock* newCodeBlock = callData.js.functionExecutable->bytecodeForCall(callFrame, callDataScopeChain); 730 731 if (newCodeBlock) 732 newCallFrame = slideRegisterWindowForCall(newCodeBlock, &m_registerFile, newCallFrame, registerOffset, argCount); 733 else 734 newCallFrame = 0; 728 735 if (UNLIKELY(!newCallFrame)) { 729 736 *exception = createStackOverflowError(callFrame); … … 812 819 if (constructType == ConstructTypeJS) { 813 820 ScopeChainNode* constructDataScopeChain = constructData.js.scopeChain; 814 CodeBlock* newCodeBlock = &constructData.js.functionExecutable->bytecodeForConstruct(callFrame, constructDataScopeChain); 815 816 newCallFrame = slideRegisterWindowForCall(newCodeBlock, &m_registerFile, newCallFrame, registerOffset, argCount); 821 CodeBlock* newCodeBlock = constructData.js.functionExecutable->bytecodeForConstruct(callFrame, constructDataScopeChain); 822 if (newCodeBlock) 823 newCallFrame = slideRegisterWindowForCall(newCodeBlock, &m_registerFile, newCallFrame, registerOffset, argCount); 824 else 825 newCallFrame = 0; 826 817 827 if (UNLIKELY(!newCallFrame)) { 818 828 *exception = createStackOverflowError(callFrame); … … 903 913 newCallFrame->r(++dst) = jsUndefined(); 904 914 905 CodeBlock* codeBlock = &FunctionExecutable->bytecodeForCall(callFrame, scopeChain); 906 newCallFrame = slideRegisterWindowForCall(codeBlock, &m_registerFile, newCallFrame, argc + RegisterFile::CallFrameHeaderSize, argc); 915 CodeBlock* codeBlock = FunctionExecutable->bytecodeForCall(callFrame, scopeChain); 916 if (codeBlock) 917 newCallFrame = slideRegisterWindowForCall(codeBlock, &m_registerFile, newCallFrame, argc + RegisterFile::CallFrameHeaderSize, argc); 918 else 919 newCallFrame = 0; 907 920 if (UNLIKELY(!newCallFrame)) { 908 921 *exception = createStackOverflowError(callFrame); … … 969 982 970 983 EvalCodeBlock* codeBlock = &eval->bytecode(callFrame, scopeChain); 984 if (!codeBlock) { 985 *exception = createStackOverflowError(callFrame); 986 return jsNull(); 987 } 971 988 972 989 JSVariableObject* variableObject; … … 3620 3637 if (callType == CallTypeJS) { 3621 3638 ScopeChainNode* callDataScopeChain = callData.js.scopeChain; 3622 CodeBlock* newCodeBlock = &callData.js.functionExecutable->bytecodeForCall(callFrame, callDataScopeChain);3639 CodeBlock* newCodeBlock = callData.js.functionExecutable->bytecodeForCall(callFrame, callDataScopeChain); 3623 3640 3624 3641 CallFrame* previousCallFrame = callFrame; 3625 3626 callFrame = slideRegisterWindowForCall(newCodeBlock, registerFile, callFrame, registerOffset, argCount); 3642 if (newCodeBlock) 3643 callFrame = slideRegisterWindowForCall(newCodeBlock, registerFile, callFrame, registerOffset, argCount); 3644 else 3645 callFrame = 0; 3627 3646 if (UNLIKELY(!callFrame)) { 3628 3647 callFrame = previousCallFrame; … … 3772 3791 if (callType == CallTypeJS) { 3773 3792 ScopeChainNode* callDataScopeChain = callData.js.scopeChain; 3774 CodeBlock* newCodeBlock = &callData.js.functionExecutable->bytecodeForCall(callFrame, callDataScopeChain);3793 CodeBlock* newCodeBlock = callData.js.functionExecutable->bytecodeForCall(callFrame, callDataScopeChain); 3775 3794 3776 3795 CallFrame* previousCallFrame = callFrame; 3777 3778 callFrame = slideRegisterWindowForCall(newCodeBlock, registerFile, callFrame, registerOffset, argCount); 3796 if (newCodeBlock) 3797 callFrame = slideRegisterWindowForCall(newCodeBlock, registerFile, callFrame, registerOffset, argCount); 3798 else 3799 callFrame = 0; 3779 3800 if (UNLIKELY(!callFrame)) { 3780 3801 callFrame = previousCallFrame; … … 4095 4116 if (constructType == ConstructTypeJS) { 4096 4117 ScopeChainNode* callDataScopeChain = constructData.js.scopeChain; 4097 CodeBlock* newCodeBlock = &constructData.js.functionExecutable->bytecodeForConstruct(callFrame, callDataScopeChain);4118 CodeBlock* newCodeBlock = constructData.js.functionExecutable->bytecodeForConstruct(callFrame, callDataScopeChain); 4098 4119 4099 4120 CallFrame* previousCallFrame = callFrame; 4100 4121 4101 callFrame = slideRegisterWindowForCall(newCodeBlock, registerFile, callFrame, registerOffset, argCount); 4122 if (newCodeBlock) 4123 callFrame = slideRegisterWindowForCall(newCodeBlock, registerFile, callFrame, registerOffset, argCount); 4124 else 4125 callFrame = 0; 4126 4102 4127 if (UNLIKELY(!callFrame)) { 4103 4128 callFrame = previousCallFrame;
Note:
See TracChangeset
for help on using the changeset viewer.