Changeset 47738 in webkit for trunk/JavaScriptCore/bytecompiler
- Timestamp:
- Aug 24, 2009, 7:53:51 PM (16 years ago)
- Location:
- trunk/JavaScriptCore/bytecompiler
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp
r47664 r47738 274 274 for (size_t i = 0; i < functionStack.size(); ++i) { 275 275 FunctionBodyNode* function = functionStack[i]; 276 globalObject->putWithAttributes(exec, function->ident(), new (exec) JSFunction(exec, adoptRef(new FunctionExecutable(function->ident(), function)), scopeChain.node()), DontDelete);276 globalObject->putWithAttributes(exec, function->ident(), new (exec) JSFunction(exec, makeFunction(function), scopeChain.node()), DontDelete); 277 277 } 278 278 for (size_t i = 0; i < varStack.size(); ++i) { … … 399 399 400 400 const DeclarationStacks::FunctionStack& functionStack = evalNode->functionStack(); 401 for (size_t i = 0; i < functionStack.size(); ++i) { 402 FunctionBodyNode* function = functionStack[i]; 403 m_codeBlock->addFunctionDecl(adoptRef(new FunctionExecutable(function->ident(), function))); 404 } 401 for (size_t i = 0; i < functionStack.size(); ++i) 402 m_codeBlock->addFunctionDecl(makeFunction(functionStack[i])); 405 403 406 404 const DeclarationStacks::VarStack& varStack = evalNode->varStack(); … … 1319 1317 RegisterID* BytecodeGenerator::emitNewFunction(RegisterID* dst, FunctionBodyNode* function) 1320 1318 { 1321 unsigned index = m_codeBlock->addFunctionDecl( adoptRef(new FunctionExecutable(function->ident(), function)));1319 unsigned index = m_codeBlock->addFunctionDecl(makeFunction(function)); 1322 1320 1323 1321 emitOpcode(op_new_func); … … 1339 1337 { 1340 1338 FunctionBodyNode* function = n->body(); 1341 unsigned index = m_codeBlock->addFunctionExpr( adoptRef(new FunctionExecutable(function->ident(), function)));1339 unsigned index = m_codeBlock->addFunctionExpr(makeFunction(function)); 1342 1340 1343 1341 emitOpcode(op_new_func_exp); -
trunk/JavaScriptCore/bytecompiler/BytecodeGenerator.h
r47412 r47738 418 418 unsigned addRegExp(RegExp*); 419 419 420 PassRefPtr<FunctionExecutable> makeFunction(FunctionBodyNode* body) 421 { 422 return adoptRef(new FunctionExecutable(body->ident(), body->source(), body->usesArguments(), body->copyParameters(), body->parameterCount(), body->lineNo(), body->lastLine())); 423 } 424 420 425 Vector<Instruction>& instructions() { return m_codeBlock->instructions(); } 421 426 SymbolTable& symbolTable() { return *m_symbolTable; }
Note:
See TracChangeset
for help on using the changeset viewer.