Changeset 234082 in webkit for trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
- Timestamp:
- Jul 21, 2018, 6:10:43 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
r233855 r234082 458 458 handleSpread: 459 459 RefPtr<RegisterID> index = generator.emitLoad(generator.newTemporary(), jsNumber(length)); 460 auto spreader = [array, index](BytecodeGenerator& generator, RegisterID* value)460 auto spreader = scopedLambda<void(BytecodeGenerator&, RegisterID*)>([array, index](BytecodeGenerator& generator, RegisterID* value) 461 461 { 462 462 generator.emitDirectPutByVal(array.get(), index.get(), value); 463 463 generator.emitInc(index.get()); 464 } ;464 }); 465 465 for (; n; n = n->next()) { 466 466 if (n->elision()) … … 1456 1456 RefPtr<RegisterID> argumentsRegister = generator.emitLoad(generator.newTemporary(), jsUndefined()); 1457 1457 1458 auto extractor = [&thisRegister, &argumentsRegister, &index](BytecodeGenerator& generator, RegisterID* value)1458 auto extractor = scopedLambda<void(BytecodeGenerator&, RegisterID*)>([&thisRegister, &argumentsRegister, &index](BytecodeGenerator& generator, RegisterID* value) 1459 1459 { 1460 1460 Ref<Label> haveThis = generator.newLabel(); … … 1472 1472 generator.emitLoad(index.get(), jsNumber(2)); 1473 1473 generator.emitLabel(end.get()); 1474 } ;1474 }); 1475 1475 generator.emitEnumeration(this, spread->expression(), extractor); 1476 1476 generator.emitCallVarargsInTailPosition(returnValue.get(), realFunction.get(), thisRegister.get(), argumentsRegister.get(), generator.newTemporary(), 0, divot(), divotStart(), divotEnd(), DebuggableCall::Yes); … … 3217 3217 RegisterID* forLoopSymbolTable = nullptr; 3218 3218 generator.pushLexicalScope(this, BytecodeGenerator::TDZCheckOptimization::Optimize, BytecodeGenerator::NestedScopeType::IsNested, &forLoopSymbolTable); 3219 auto extractor = [this, dst](BytecodeGenerator& generator, RegisterID* value)3219 auto extractor = scopedLambda<void(BytecodeGenerator&, RegisterID*)>([this, dst](BytecodeGenerator& generator, RegisterID* value) 3220 3220 { 3221 3221 if (m_lexpr->isResolveNode()) { … … 3268 3268 generator.emitProfileControlFlow(m_statement->startOffset()); 3269 3269 generator.emitNode(dst, m_statement); 3270 } ;3270 }); 3271 3271 generator.emitEnumeration(this, m_expr, extractor, this, forLoopSymbolTable); 3272 3272 generator.popLexicalScope(this);
Note:
See TracChangeset
for help on using the changeset viewer.