Changeset 37184 in webkit for trunk/JavaScriptCore/VM
- Timestamp:
- Oct 1, 2008, 11:44:37 PM (17 years ago)
- Location:
- trunk/JavaScriptCore/VM
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/VM/CodeBlock.h
r37160 r37184 156 156 157 157 if (!evalNode) { 158 int sourceId;159 158 int errLine; 160 159 UString errMsg; 161 160 162 evalNode = exec->parser()->parse<EvalNode>(exec, UString(), 1, UStringSourceProvider::create(evalSource), &sourceId, &errLine, &errMsg); 161 SourceCode source = makeSource(evalSource); 162 evalNode = exec->parser()->parse<EvalNode>(exec, source, &errLine, &errMsg); 163 163 if (evalNode) { 164 164 if (evalSource.size() < maxCacheableSourceLength && (*scopeChain->begin())->isVariableObject() && cacheMap.size() < maxCacheEntries) 165 165 cacheMap.set(evalSource.rep(), evalNode); 166 166 } else { 167 exceptionValue = Error::create(exec, SyntaxError, errMsg, errLine, source Id, NULL);167 exceptionValue = Error::create(exec, SyntaxError, errMsg, errLine, source.provider()->asID(), NULL); 168 168 return 0; 169 169 } … … 197 197 , sourceOffset(sourceOffset_) 198 198 { 199 ASSERT(source); 199 200 } 200 201 -
trunk/JavaScriptCore/VM/CodeGenerator.cpp
r37160 r37184 313 313 addVar(varStack[i].first, varStack[i].second & DeclarationStacks::IsConstant); 314 314 315 Vector<Identifier>& parameters = functionBody->parameters(); 316 m_nextParameter = -RegisterFile::CallFrameHeaderSize - parameters.size() - 1; 317 m_parameters.resize(1 + parameters.size()); // reserve space for "this" 315 const Identifier* parameters = functionBody->parameters(); 316 size_t parameterCount = functionBody->parameterCount(); 317 m_nextParameter = -RegisterFile::CallFrameHeaderSize - parameterCount - 1; 318 m_parameters.resize(1 + parameterCount); // reserve space for "this" 318 319 319 320 // Add "this" as a parameter … … 322 323 ++m_codeBlock->numParameters; 323 324 324 for (size_t i = 0; i < parameter s.size(); ++i)325 for (size_t i = 0; i < parameterCount; ++i) 325 326 addParameter(parameters[i]); 326 327 -
trunk/JavaScriptCore/VM/ExceptionHelpers.cpp
r36973 r37184 96 96 UString message = "Can't find variable: "; 97 97 message.append(ident.ustring()); 98 JSObject* exception = Error::create(exec, ReferenceError, message, line, codeBlock->ownerNode->sourceI d(), codeBlock->ownerNode->sourceURL());98 JSObject* exception = Error::create(exec, ReferenceError, message, line, codeBlock->ownerNode->sourceID(), codeBlock->ownerNode->sourceURL()); 99 99 exception->putWithAttributes(exec, Identifier(exec, expressionBeginOffsetPropertyName), jsNumber(exec, divotPoint - startOffset), ReadOnly | DontDelete); 100 100 exception->putWithAttributes(exec, Identifier(exec, expressionCaretOffsetPropertyName), jsNumber(exec, divotPoint), ReadOnly | DontDelete); … … 160 160 int line = codeBlock->expressionRangeForVPC(vPC, divotPoint, startOffset, endOffset); 161 161 UString errorMessage = createErrorMessage(exec, codeBlock, line, divotPoint, divotPoint + endOffset, value, message); 162 JSObject* exception = Error::create(exec, TypeError, errorMessage, line, codeBlock->ownerNode->sourceI d(), codeBlock->ownerNode->sourceURL());162 JSObject* exception = Error::create(exec, TypeError, errorMessage, line, codeBlock->ownerNode->sourceID(), codeBlock->ownerNode->sourceURL()); 163 163 exception->putWithAttributes(exec, Identifier(exec, expressionBeginOffsetPropertyName), jsNumber(exec, divotPoint - startOffset), ReadOnly | DontDelete); 164 164 exception->putWithAttributes(exec, Identifier(exec, expressionCaretOffsetPropertyName), jsNumber(exec, divotPoint), ReadOnly | DontDelete); … … 181 181 182 182 UString errorMessage = createErrorMessage(exec, codeBlock, line, startPoint, divotPoint, value, "not a constructor"); 183 JSObject* exception = Error::create(exec, TypeError, errorMessage, line, codeBlock->ownerNode->sourceI d(), codeBlock->ownerNode->sourceURL());183 JSObject* exception = Error::create(exec, TypeError, errorMessage, line, codeBlock->ownerNode->sourceID(), codeBlock->ownerNode->sourceURL()); 184 184 exception->putWithAttributes(exec, Identifier(exec, expressionBeginOffsetPropertyName), jsNumber(exec, divotPoint - startOffset), ReadOnly | DontDelete); 185 185 exception->putWithAttributes(exec, Identifier(exec, expressionCaretOffsetPropertyName), jsNumber(exec, divotPoint), ReadOnly | DontDelete); … … 195 195 int line = codeBlock->expressionRangeForVPC(vPC, divotPoint, startOffset, endOffset); 196 196 UString errorMessage = createErrorMessage(exec, codeBlock, line, divotPoint - startOffset, divotPoint, value, "not a function"); 197 JSObject* exception = Error::create(exec, TypeError, errorMessage, line, codeBlock->ownerNode->sourceI d(), codeBlock->ownerNode->sourceURL());197 JSObject* exception = Error::create(exec, TypeError, errorMessage, line, codeBlock->ownerNode->sourceID(), codeBlock->ownerNode->sourceURL()); 198 198 exception->putWithAttributes(exec, Identifier(exec, expressionBeginOffsetPropertyName), jsNumber(exec, divotPoint - startOffset), ReadOnly | DontDelete); 199 199 exception->putWithAttributes(exec, Identifier(exec, expressionCaretOffsetPropertyName), jsNumber(exec, divotPoint), ReadOnly | DontDelete); … … 219 219 int line = codeBlock->expressionRangeForVPC(vPC, divotPoint, startOffset, endOffset); 220 220 UString errorMessage = createErrorMessage(exec, codeBlock, line, divotPoint - startOffset, divotPoint, error->isNull() ? jsNull() : jsUndefined(), "not an object"); 221 JSObject* exception = Error::create(exec, TypeError, errorMessage, line, codeBlock->ownerNode->sourceI d(), codeBlock->ownerNode->sourceURL());221 JSObject* exception = Error::create(exec, TypeError, errorMessage, line, codeBlock->ownerNode->sourceID(), codeBlock->ownerNode->sourceURL()); 222 222 exception->putWithAttributes(exec, Identifier(exec, expressionBeginOffsetPropertyName), jsNumber(exec, divotPoint - startOffset), ReadOnly | DontDelete); 223 223 exception->putWithAttributes(exec, Identifier(exec, expressionCaretOffsetPropertyName), jsNumber(exec, divotPoint), ReadOnly | DontDelete); -
trunk/JavaScriptCore/VM/Machine.cpp
r37160 r37184 787 787 DebuggerCallFrame debuggerCallFrame(exec, exec->dynamicGlobalObject(), codeBlock, scopeChain, r, exceptionValue); 788 788 if (r[RegisterFile::Callee].jsValue(exec)) 789 debugger->returnEvent(debuggerCallFrame, codeBlock->ownerNode->sourceI d(), codeBlock->ownerNode->lastLine());789 debugger->returnEvent(debuggerCallFrame, codeBlock->ownerNode->sourceID(), codeBlock->ownerNode->lastLine()); 790 790 else 791 debugger->didExecuteProgram(debuggerCallFrame, codeBlock->ownerNode->sourceI d(), codeBlock->ownerNode->lastLine());791 debugger->didExecuteProgram(debuggerCallFrame, codeBlock->ownerNode->sourceID(), codeBlock->ownerNode->lastLine()); 792 792 } 793 793 … … 852 852 } else 853 853 exception->putWithAttributes(exec, Identifier(exec, "line"), jsNumber(exec, codeBlock->lineNumberForVPC(vPC)), ReadOnly | DontDelete); 854 exception->putWithAttributes(exec, Identifier(exec, "sourceId"), jsNumber(exec, codeBlock->ownerNode->sourceI d()), ReadOnly | DontDelete);854 exception->putWithAttributes(exec, Identifier(exec, "sourceId"), jsNumber(exec, codeBlock->ownerNode->sourceID()), ReadOnly | DontDelete); 855 855 exception->putWithAttributes(exec, Identifier(exec, "sourceURL"), jsOwnedString(exec, codeBlock->ownerNode->sourceURL()), ReadOnly | DontDelete); 856 856 } … … 868 868 ScopeChainNode* scopeChain = this->scopeChain(r); 869 869 DebuggerCallFrame debuggerCallFrame(exec, exec->dynamicGlobalObject(), codeBlock, scopeChain, r, exceptionValue); 870 debugger->exception(debuggerCallFrame, codeBlock->ownerNode->sourceI d(), codeBlock->lineNumberForVPC(vPC));870 debugger->exception(debuggerCallFrame, codeBlock->ownerNode->sourceID(), codeBlock->lineNumberForVPC(vPC)); 871 871 } 872 872 … … 1107 1107 switch (debugHookID) { 1108 1108 case DidEnterCallFrame: 1109 debugger->callEvent(debuggerCallFrame, codeBlock->ownerNode->sourceI d(), firstLine);1109 debugger->callEvent(debuggerCallFrame, codeBlock->ownerNode->sourceID(), firstLine); 1110 1110 return; 1111 1111 case WillLeaveCallFrame: 1112 debugger->returnEvent(debuggerCallFrame, codeBlock->ownerNode->sourceI d(), lastLine);1112 debugger->returnEvent(debuggerCallFrame, codeBlock->ownerNode->sourceID(), lastLine); 1113 1113 return; 1114 1114 case WillExecuteStatement: 1115 debugger->atStatement(debuggerCallFrame, codeBlock->ownerNode->sourceI d(), firstLine);1115 debugger->atStatement(debuggerCallFrame, codeBlock->ownerNode->sourceID(), firstLine); 1116 1116 return; 1117 1117 case WillExecuteProgram: 1118 debugger->willExecuteProgram(debuggerCallFrame, codeBlock->ownerNode->sourceI d(), firstLine);1118 debugger->willExecuteProgram(debuggerCallFrame, codeBlock->ownerNode->sourceID(), firstLine); 1119 1119 return; 1120 1120 case DidExecuteProgram: 1121 debugger->didExecuteProgram(debuggerCallFrame, codeBlock->ownerNode->sourceI d(), lastLine);1121 debugger->didExecuteProgram(debuggerCallFrame, codeBlock->ownerNode->sourceID(), lastLine); 1122 1122 return; 1123 1123 case DidReachBreakpoint: 1124 debugger->didReachBreakpoint(debuggerCallFrame, codeBlock->ownerNode->sourceI d(), lastLine);1124 debugger->didReachBreakpoint(debuggerCallFrame, codeBlock->ownerNode->sourceID(), lastLine); 1125 1125 return; 1126 1126 } … … 3729 3729 3730 3730 CodeBlock* codeBlock = this->codeBlock(r); 3731 r[dst] = Error::create(exec, (ErrorType)type, codeBlock->unexpectedConstants[message]->toString(exec), codeBlock->lineNumberForVPC(vPC), codeBlock->ownerNode->sourceI d(), codeBlock->ownerNode->sourceURL());3731 r[dst] = Error::create(exec, (ErrorType)type, codeBlock->unexpectedConstants[message]->toString(exec), codeBlock->lineNumberForVPC(vPC), codeBlock->ownerNode->sourceID(), codeBlock->ownerNode->sourceURL()); 3732 3732 3733 3733 ++vPC; … … 3904 3904 } 3905 3905 3906 void Machine::retrieveLastCaller(ExecState* exec, int& lineNumber, int & sourceId, UString& sourceURL, JSValue*& function) const3906 void Machine::retrieveLastCaller(ExecState* exec, int& lineNumber, intptr_t& sourceID, UString& sourceURL, JSValue*& function) const 3907 3907 { 3908 3908 function = 0; … … 3921 3921 Instruction* vPC = vPCForPC(callerCodeBlock, r[RegisterFile::ReturnPC].v()); 3922 3922 lineNumber = callerCodeBlock->lineNumberForVPC(vPC - 1); 3923 sourceI d = callerCodeBlock->ownerNode->sourceId();3923 sourceID = callerCodeBlock->ownerNode->sourceID(); 3924 3924 sourceURL = callerCodeBlock->ownerNode->sourceURL(); 3925 3925 … … 5659 5659 unsigned lineNumber = ARG_int3; 5660 5660 5661 return Error::create(exec, static_cast<ErrorType>(type), message->toString(exec), lineNumber, codeBlock->ownerNode->sourceI d(), codeBlock->ownerNode->sourceURL());5661 return Error::create(exec, static_cast<ErrorType>(type), message->toString(exec), lineNumber, codeBlock->ownerNode->sourceID(), codeBlock->ownerNode->sourceURL()); 5662 5662 } 5663 5663 -
trunk/JavaScriptCore/VM/Machine.h
r37160 r37184 102 102 JSValue* retrieveArguments(ExecState*, JSFunction*) const; 103 103 JSValue* retrieveCaller(ExecState*, InternalFunction*) const; 104 void retrieveLastCaller(ExecState* exec, int& lineNumber, int & sourceId, UString& sourceURL, JSValue*& function) const;104 void retrieveLastCaller(ExecState* exec, int& lineNumber, intptr_t& sourceID, UString& sourceURL, JSValue*& function) const; 105 105 106 106 static ScopeChainNode* scopeChain(const Register* r) { return r[RegisterFile::ScopeChain].scopeChain(); }
Note:
See TracChangeset
for help on using the changeset viewer.