Changeset 117706 in webkit for trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
- Timestamp:
- May 20, 2012, 3:00:08 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
r113136 r117706 1545 1545 { 1546 1546 RefPtr<LabelScope> scope = generator.newLabelScope(LabelScope::Loop); 1547 1548 generator.emitJump(scope->continueTarget());1549 1550 1547 RefPtr<Label> topOfLoop = generator.newLabel(); 1548 1549 generator.emitDebugHook(WillExecuteStatement, m_expr->lineNo(), m_expr->lineNo()); 1550 if (m_expr->hasConditionContextCodegen()) 1551 generator.emitNodeInConditionContext(m_expr, topOfLoop.get(), scope->breakTarget(), true); 1552 else { 1553 RegisterID* cond = generator.emitNode(m_expr); 1554 generator.emitJumpIfFalse(cond, scope->breakTarget()); 1555 } 1556 1551 1557 generator.emitLabel(topOfLoop.get()); 1552 1558 generator.emitLoopHint(); … … 1580 1586 if (m_expr1) 1581 1587 generator.emitNode(generator.ignoredResult(), m_expr1); 1582 1583 RefPtr<Label> condition = generator.newLabel(); 1584 generator.emitJump(condition.get()); 1585 1588 1586 1589 RefPtr<Label> topOfLoop = generator.newLabel(); 1590 if (m_expr2) { 1591 if (m_expr2->hasConditionContextCodegen()) 1592 generator.emitNodeInConditionContext(m_expr2, topOfLoop.get(), scope->breakTarget(), true); 1593 else { 1594 RegisterID* cond = generator.emitNode(m_expr2); 1595 generator.emitJumpIfFalse(cond, scope->breakTarget()); 1596 } 1597 } 1598 1587 1599 generator.emitLabel(topOfLoop.get()); 1588 1600 generator.emitLoopHint(); … … 1595 1607 generator.emitNode(generator.ignoredResult(), m_expr3); 1596 1608 1597 generator.emitLabel(condition.get());1598 1609 if (m_expr2) { 1599 1610 if (m_expr2->hasConditionContextCodegen())
Note:
See TracChangeset
for help on using the changeset viewer.