Changeset 124413 in webkit for trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
- Timestamp:
- Aug 1, 2012, 11:44:46 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
r124406 r124413 203 203 } 204 204 205 ArgumentListNode* ArrayNode::toArgumentList(JSGlobalData* globalData, int lineNumber , int columnNumber) const205 ArgumentListNode* ArrayNode::toArgumentList(JSGlobalData* globalData, int lineNumber) const 206 206 { 207 207 ASSERT(!m_elision && !m_optional); … … 209 209 if (!ptr) 210 210 return 0; 211 JSTokenLocation location; 212 location.line = lineNumber; 213 location.column = columnNumber; 214 ArgumentListNode* head = new (globalData) ArgumentListNode(location, ptr->value()); 211 ArgumentListNode* head = new (globalData) ArgumentListNode(lineNumber, ptr->value()); 215 212 ArgumentListNode* tail = head; 216 213 ptr = ptr->next(); 217 214 for (; ptr; ptr = ptr->next()) { 218 215 ASSERT(!ptr->elision()); 219 tail = new (globalData) ArgumentListNode(l ocation, tail, ptr->value());216 tail = new (globalData) ArgumentListNode(lineNumber, tail, ptr->value()); 220 217 } 221 218 return head; … … 540 537 ASSERT(m_args->m_listNode->m_next->m_expr->isSimpleArray()); 541 538 ASSERT(!m_args->m_listNode->m_next->m_next); 542 m_args->m_listNode = static_cast<ArrayNode*>(m_args->m_listNode->m_next->m_expr)->toArgumentList(generator.globalData(), 0 , 0);539 m_args->m_listNode = static_cast<ArrayNode*>(m_args->m_listNode->m_next->m_expr)->toArgumentList(generator.globalData(), 0); 543 540 RefPtr<RegisterID> realFunction = generator.emitMove(generator.tempDestination(dst), base.get()); 544 541 CallArguments callArguments(generator, m_args); … … 1131 1128 RefPtr<Label> beforeElse = generator.newLabel(); 1132 1129 RefPtr<Label> afterElse = generator.newLabel(); 1133 1134 generator.emitDebugHook(WillExecuteStatement, lineNo(), lineNo(), columnNo());1135 1130 1136 1131 if (m_logical->hasConditionContextCodegen()) { … … 1391 1386 RegisterID* ConstStatementNode::emitBytecode(BytecodeGenerator& generator, RegisterID*) 1392 1387 { 1393 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine() , column());1388 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine()); 1394 1389 return generator.emitNode(m_next); 1395 1390 } … … 1434 1429 RegisterID* EmptyStatementNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1435 1430 { 1436 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine() , column());1431 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine()); 1437 1432 return dst; 1438 1433 } … … 1442 1437 RegisterID* DebuggerStatementNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1443 1438 { 1444 generator.emitDebugHook(DidReachBreakpoint, firstLine(), lastLine() , column());1439 generator.emitDebugHook(DidReachBreakpoint, firstLine(), lastLine()); 1445 1440 return dst; 1446 1441 } … … 1451 1446 { 1452 1447 ASSERT(m_expr); 1453 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine() , column());1448 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine()); 1454 1449 return generator.emitNode(dst, m_expr); 1455 1450 } … … 1460 1455 { 1461 1456 ASSERT(m_expr); 1462 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine() , column());1457 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine()); 1463 1458 return generator.emitNode(m_expr); 1464 1459 } … … 1468 1463 RegisterID* IfNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1469 1464 { 1470 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine() , column());1465 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine()); 1471 1466 1472 1467 RefPtr<Label> afterThen = generator.newLabel(); … … 1492 1487 RegisterID* IfElseNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1493 1488 { 1494 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine() , column());1489 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine()); 1495 1490 1496 1491 RefPtr<Label> beforeElse = generator.newLabel(); … … 1528 1523 generator.emitLabel(topOfLoop.get()); 1529 1524 generator.emitLoopHint(); 1525 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine()); 1530 1526 1531 1527 RefPtr<RegisterID> result = generator.emitNode(dst, m_statement); 1532 1528 1533 1529 generator.emitLabel(scope->continueTarget()); 1534 generator.emitDebugHook(WillExecuteStatement, lastLine(), lastLine(), column());1530 generator.emitDebugHook(WillExecuteStatement, m_expr->lineNo(), m_expr->lineNo()); 1535 1531 if (m_expr->hasConditionContextCodegen()) 1536 1532 generator.emitNodeInConditionContext(m_expr, topOfLoop.get(), scope->breakTarget(), false); … … 1551 1547 RefPtr<Label> topOfLoop = generator.newLabel(); 1552 1548 1553 generator.emitDebugHook(WillExecuteStatement, m_expr->lineNo(), m_expr->lineNo() , m_expr->columnNo());1549 generator.emitDebugHook(WillExecuteStatement, m_expr->lineNo(), m_expr->lineNo()); 1554 1550 if (m_expr->hasConditionContextCodegen()) 1555 1551 generator.emitNodeInConditionContext(m_expr, topOfLoop.get(), scope->breakTarget(), true); … … 1565 1561 1566 1562 generator.emitLabel(scope->continueTarget()); 1567 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine(), column());1563 generator.emitDebugHook(WillExecuteStatement, m_expr->lineNo(), m_expr->lineNo()); 1568 1564 1569 1565 if (m_expr->hasConditionContextCodegen()) … … 1586 1582 RefPtr<LabelScope> scope = generator.newLabelScope(LabelScope::Loop); 1587 1583 1588 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine() , column());1584 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine()); 1589 1585 1590 1586 if (m_expr1) … … 1607 1603 1608 1604 generator.emitLabel(scope->continueTarget()); 1609 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine() , column());1605 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine()); 1610 1606 if (m_expr3) 1611 1607 generator.emitNode(generator.ignoredResult(), m_expr3); … … 1634 1630 return emitThrowReferenceError(generator, "Left side of for-in statement is not a reference."); 1635 1631 1636 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine() , column());1632 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine()); 1637 1633 1638 1634 if (m_init) … … 1697 1693 generator.emitLabel(scope->continueTarget()); 1698 1694 generator.emitNextPropertyName(propertyName, base.get(), i.get(), size.get(), iter.get(), loopStart.get()); 1699 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine() , column());1695 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine()); 1700 1696 generator.emitLabel(scope->breakTarget()); 1701 1697 return dst; … … 1707 1703 RegisterID* ContinueNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1708 1704 { 1709 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine() , column());1705 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine()); 1710 1706 1711 1707 LabelScope* scope = generator.continueTarget(m_ident); … … 1721 1717 RegisterID* BreakNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1722 1718 { 1723 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine() , column());1719 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine()); 1724 1720 1725 1721 LabelScope* scope = generator.breakTarget(m_ident); … … 1734 1730 RegisterID* ReturnNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1735 1731 { 1736 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine() , column());1732 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine()); 1737 1733 ASSERT(generator.codeType() == FunctionCode); 1738 1734 … … 1750 1746 generator.emitLabel(l0.get()); 1751 1747 } 1752 generator.emitDebugHook(WillLeaveCallFrame, firstLine(), lastLine() , column());1748 generator.emitDebugHook(WillLeaveCallFrame, firstLine(), lastLine()); 1753 1749 return generator.emitReturn(r0); 1754 1750 } … … 1758 1754 RegisterID* WithNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1759 1755 { 1760 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine() , column());1756 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine()); 1761 1757 1762 1758 RefPtr<RegisterID> scope = generator.newTemporary(); … … 1923 1919 RegisterID* SwitchNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1924 1920 { 1925 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine() , column());1921 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine()); 1926 1922 1927 1923 RefPtr<LabelScope> scope = generator.newLabelScope(LabelScope::Switch); … … 1938 1934 RegisterID* LabelNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1939 1935 { 1940 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine() , column());1936 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine()); 1941 1937 1942 1938 ASSERT(!generator.breakTarget(m_name)); … … 1953 1949 RegisterID* ThrowNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1954 1950 { 1955 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine() , column());1951 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine()); 1956 1952 1957 1953 if (dst == generator.ignoredResult()) … … 1970 1966 // optimizer knows they may be jumped to from anywhere. 1971 1967 1972 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine() , column());1968 generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine()); 1973 1969 1974 1970 RefPtr<Label> tryStartLabel = generator.newLabel(); … … 2027 2023 RegisterID* ProgramNode::emitBytecode(BytecodeGenerator& generator, RegisterID*) 2028 2024 { 2029 generator.emitDebugHook(WillExecuteProgram, firstLine(), lastLine() , column());2025 generator.emitDebugHook(WillExecuteProgram, firstLine(), lastLine()); 2030 2026 2031 2027 RefPtr<RegisterID> dstRegister = generator.newTemporary(); … … 2033 2029 emitStatementsBytecode(generator, dstRegister.get()); 2034 2030 2035 generator.emitDebugHook(DidExecuteProgram, firstLine(), lastLine() , column());2031 generator.emitDebugHook(DidExecuteProgram, firstLine(), lastLine()); 2036 2032 generator.emitEnd(dstRegister.get()); 2037 2033 return 0; … … 2042 2038 RegisterID* EvalNode::emitBytecode(BytecodeGenerator& generator, RegisterID*) 2043 2039 { 2044 generator.emitDebugHook(WillExecuteProgram, firstLine(), lastLine() , column());2040 generator.emitDebugHook(WillExecuteProgram, firstLine(), lastLine()); 2045 2041 2046 2042 RefPtr<RegisterID> dstRegister = generator.newTemporary(); … … 2048 2044 emitStatementsBytecode(generator, dstRegister.get()); 2049 2045 2050 generator.emitDebugHook(DidExecuteProgram, firstLine(), lastLine() , column());2046 generator.emitDebugHook(DidExecuteProgram, firstLine(), lastLine()); 2051 2047 generator.emitEnd(dstRegister.get()); 2052 2048 return 0; … … 2057 2053 RegisterID* FunctionBodyNode::emitBytecode(BytecodeGenerator& generator, RegisterID*) 2058 2054 { 2059 generator.emitDebugHook(DidEnterCallFrame, firstLine(), lastLine() , column());2055 generator.emitDebugHook(DidEnterCallFrame, firstLine(), lastLine()); 2060 2056 emitStatementsBytecode(generator, generator.ignoredResult()); 2061 2057 … … 2073 2069 if (!returnNode) { 2074 2070 RegisterID* r0 = generator.isConstructor() ? generator.thisRegister() : generator.emitLoad(0, jsUndefined()); 2075 generator.emitDebugHook(WillLeaveCallFrame, firstLine(), lastLine() , column());2071 generator.emitDebugHook(WillLeaveCallFrame, firstLine(), lastLine()); 2076 2072 generator.emitReturn(r0); 2077 2073 return 0;
Note:
See TracChangeset
for help on using the changeset viewer.