Changeset 31114 in webkit for trunk/JavaScriptCore/kjs
- Timestamp:
- Mar 17, 2008, 4:33:40 PM (17 years ago)
- Location:
- trunk/JavaScriptCore/kjs
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/Activation.h
r30534 r31114 74 74 bool needsPop() const { return d()->isOnStack || d()->leftRelic; } 75 75 76 virtual bool isDynamicScope() const; 76 77 private: 77 78 static PropertySlot::GetValueFunc getArgumentsGetter(); -
trunk/JavaScriptCore/kjs/JSGlobalObject.cpp
r30871 r31114 579 579 } 580 580 581 bool JSGlobalObject::isDynamicScope() const 582 { 583 return true; 584 } 585 581 586 } // namespace KJS -
trunk/JavaScriptCore/kjs/JSGlobalObject.h
r30871 r31114 232 232 void tearOffActivation(ExecState*, bool markAsRelic = false); 233 233 234 virtual bool isDynamicScope() const; 235 234 236 private: 235 237 void init(); -
trunk/JavaScriptCore/kjs/JSVariableObject.cpp
r29943 r31114 104 104 } 105 105 106 bool JSVariableObject::isVariableObject() const 107 { 108 return true; 109 } 110 106 111 } // namespace KJS -
trunk/JavaScriptCore/kjs/JSVariableObject.h
r30534 r31114 50 50 51 51 virtual void mark(); 52 53 virtual bool isVariableObject() const; 54 virtual bool isDynamicScope() const = 0; 52 55 53 56 protected: -
trunk/JavaScriptCore/kjs/function.cpp
r30953 r31114 481 481 , isOnStack(false) 482 482 { 483 } 484 485 bool ActivationImp::isDynamicScope() const 486 { 487 return d()->function->body->usesEval(); 483 488 } 484 489 -
trunk/JavaScriptCore/kjs/nodes.cpp
r31072 r31114 426 426 } 427 427 428 void BreakpointCheckStatement::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)428 void BreakpointCheckStatement::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 429 429 { 430 430 nodeStack.append(m_statement.get()); … … 594 594 } 595 595 596 void ResolveNode::optimizeVariableAccess( const SymbolTable& symbolTable, const LocalStorage&, NodeStack&)596 void ResolveNode::optimizeVariableAccess(ExecState* exec, const SymbolTable& symbolTable, const LocalStorage&, NodeStack&) 597 597 { 598 598 size_t index = symbolTable.get(m_ident.ustring().rep()); 599 if (index != missingSymbolMarker()) 599 if (index != missingSymbolMarker()) { 600 600 new (this) LocalVarAccessNode(index); 601 return; 602 } 603 604 if (m_ident == exec->propertyNames().arguments) 605 return; 606 const ScopeChain& chain = exec->scopeChain(); 607 ScopeChainIterator iter = chain.begin(); 608 ScopeChainIterator end = chain.end(); 609 size_t depth = 0; 610 for (; iter != end; ++iter, ++depth) { 611 JSObject* currentScope = *iter; 612 if (!currentScope->isVariableObject()) 613 break; 614 JSVariableObject* currentVariableObject = static_cast<JSVariableObject*>(currentScope); 615 index = currentVariableObject->symbolTable().get(m_ident.ustring().rep()); 616 if (index != missingSymbolMarker()) { 617 new (this) ScopedVarAccessNode(index, depth); 618 return; 619 } 620 if (currentVariableObject->isDynamicScope()) 621 break; 622 } 623 if (depth > 0) 624 new (this) NonLocalVarAccessNode(depth); 601 625 } 602 626 … … 632 656 } 633 657 658 JSValue* ScopedVarAccessNode::inlineEvaluate(ExecState* exec) 659 { 660 const ScopeChain& chain = exec->scopeChain(); 661 ScopeChainIterator iter = chain.begin(); 662 for (size_t i = 0; i < m_scopeDepth; ++iter, ++i) 663 ASSERT(iter != chain.end()); 664 JSObject* scope = *iter; 665 ASSERT(scope->isActivationObject() || scope->isGlobalObject()); 666 JSVariableObject* variableObject = static_cast<JSVariableObject*>(scope); 667 return variableObject->localStorage()[m_index].value; 668 } 669 670 JSValue* ScopedVarAccessNode::evaluate(ExecState* exec) 671 { 672 return inlineEvaluate(exec); 673 } 674 675 double ScopedVarAccessNode::evaluateToNumber(ExecState* exec) 676 { 677 return inlineEvaluate(exec)->toNumber(exec); 678 } 679 680 bool ScopedVarAccessNode::evaluateToBoolean(ExecState* exec) 681 { 682 return inlineEvaluate(exec)->toBoolean(exec); 683 } 684 685 int32_t ScopedVarAccessNode::evaluateToInt32(ExecState* exec) 686 { 687 return inlineEvaluate(exec)->toInt32(exec); 688 } 689 690 uint32_t ScopedVarAccessNode::evaluateToUInt32(ExecState* exec) 691 { 692 return inlineEvaluate(exec)->toUInt32(exec); 693 } 694 695 JSValue* NonLocalVarAccessNode::inlineEvaluate(ExecState* exec) 696 { 697 // Check for missed optimization opportunity. 698 ASSERT(!canSkipLookup(exec, m_ident)); 699 700 const ScopeChain& chain = exec->scopeChain(); 701 ScopeChainIterator iter = chain.begin(); 702 ScopeChainIterator end = chain.end(); 703 for (size_t i = 0; i < m_scopeDepth; ++i, ++iter) 704 ASSERT(iter != end); 705 706 // we must always have something in the scope chain 707 ASSERT(iter != end); 708 709 PropertySlot slot; 710 do { 711 JSObject* o = *iter; 712 713 if (o->getPropertySlot(exec, m_ident, slot)) 714 return slot.getValue(exec, o, m_ident); 715 716 ++iter; 717 } while (iter != end); 718 719 return throwUndefinedVariableError(exec, m_ident); 720 } 721 722 JSValue* NonLocalVarAccessNode::evaluate(ExecState* exec) 723 { 724 return inlineEvaluate(exec); 725 } 726 727 double NonLocalVarAccessNode::evaluateToNumber(ExecState* exec) 728 { 729 return inlineEvaluate(exec)->toNumber(exec); 730 } 731 732 bool NonLocalVarAccessNode::evaluateToBoolean(ExecState* exec) 733 { 734 return inlineEvaluate(exec)->toBoolean(exec); 735 } 736 737 int32_t NonLocalVarAccessNode::evaluateToInt32(ExecState* exec) 738 { 739 return inlineEvaluate(exec)->toInt32(exec); 740 } 741 742 uint32_t NonLocalVarAccessNode::evaluateToUInt32(ExecState* exec) 743 { 744 return inlineEvaluate(exec)->toUInt32(exec); 745 } 746 634 747 // ------------------------------ ElementNode ---------------------------------- 635 748 636 void ElementNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)749 void ElementNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 637 750 { 638 751 if (m_next) … … 658 771 // ------------------------------ ArrayNode ------------------------------------ 659 772 660 void ArrayNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)773 void ArrayNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 661 774 { 662 775 if (m_element) … … 688 801 // ------------------------------ ObjectLiteralNode ---------------------------- 689 802 690 void ObjectLiteralNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)803 void ObjectLiteralNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 691 804 { 692 805 if (m_list) … … 705 818 // ------------------------------ PropertyListNode ----------------------------- 706 819 707 void PropertyListNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)820 void PropertyListNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 708 821 { 709 822 if (m_next) … … 741 854 // ------------------------------ PropertyNode ----------------------------- 742 855 743 void PropertyNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)856 void PropertyNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 744 857 { 745 858 nodeStack.append(m_assign.get()); … … 755 868 // ------------------------------ BracketAccessorNode -------------------------------- 756 869 757 void BracketAccessorNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)870 void BracketAccessorNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 758 871 { 759 872 nodeStack.append(m_subscript.get()); … … 810 923 // ------------------------------ DotAccessorNode -------------------------------- 811 924 812 void DotAccessorNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)925 void DotAccessorNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 813 926 { 814 927 nodeStack.append(m_base.get()); … … 858 971 // ------------------------------ ArgumentListNode ----------------------------- 859 972 860 void ArgumentListNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)973 void ArgumentListNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 861 974 { 862 975 if (m_next) … … 878 991 // ------------------------------ ArgumentsNode -------------------------------- 879 992 880 void ArgumentsNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)993 void ArgumentsNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 881 994 { 882 995 if (m_listNode) … … 886 999 // ------------------------------ NewExprNode ---------------------------------- 887 1000 888 void NewExprNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)1001 void NewExprNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 889 1002 { 890 1003 if (m_args) … … 1003 1116 } 1004 1117 1005 void EvalFunctionCallNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)1118 void EvalFunctionCallNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 1006 1119 { 1007 1120 nodeStack.append(m_args.get()); … … 1013 1126 } 1014 1127 1015 void FunctionCallValueNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)1128 void FunctionCallValueNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 1016 1129 { 1017 1130 nodeStack.append(m_args.get()); … … 1044 1157 } 1045 1158 1046 void FunctionCallResolveNode::optimizeVariableAccess( const SymbolTable& symbolTable, const LocalStorage&, NodeStack& nodeStack)1159 void FunctionCallResolveNode::optimizeVariableAccess(ExecState*, const SymbolTable& symbolTable, const LocalStorage&, NodeStack& nodeStack) 1047 1160 { 1048 1161 nodeStack.append(m_args.get()); … … 1148 1261 } 1149 1262 1150 void FunctionCallBracketNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)1263 void FunctionCallBracketNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 1151 1264 { 1152 1265 nodeStack.append(m_args.get()); … … 1215 1328 } 1216 1329 1217 void FunctionCallDotNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)1330 void FunctionCallDotNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 1218 1331 { 1219 1332 nodeStack.append(m_args.get()); … … 1290 1403 1291 1404 // Increment 1292 void PostIncResolveNode::optimizeVariableAccess( const SymbolTable& symbolTable, const LocalStorage& localStorage, NodeStack&)1405 void PostIncResolveNode::optimizeVariableAccess(ExecState*, const SymbolTable& symbolTable, const LocalStorage& localStorage, NodeStack&) 1293 1406 { 1294 1407 size_t index = symbolTable.get(m_ident.ustring().rep()); … … 1354 1467 1355 1468 // Decrement 1356 void PostDecResolveNode::optimizeVariableAccess( const SymbolTable& symbolTable, const LocalStorage& localStorage, NodeStack&)1469 void PostDecResolveNode::optimizeVariableAccess(ExecState*, const SymbolTable& symbolTable, const LocalStorage& localStorage, NodeStack&) 1357 1470 { 1358 1471 size_t index = symbolTable.get(m_ident.ustring().rep()); … … 1447 1560 // ------------------------------ PostfixBracketNode ---------------------------------- 1448 1561 1449 void PostfixBracketNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)1562 void PostfixBracketNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 1450 1563 { 1451 1564 nodeStack.append(m_subscript.get()); … … 1516 1629 // ------------------------------ PostfixDotNode ---------------------------------- 1517 1630 1518 void PostfixDotNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)1631 void PostfixDotNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 1519 1632 { 1520 1633 nodeStack.append(m_base.get()); … … 1563 1676 // ------------------------------ DeleteResolveNode ----------------------------------- 1564 1677 1565 void DeleteResolveNode::optimizeVariableAccess( const SymbolTable& symbolTable, const LocalStorage&, NodeStack&)1678 void DeleteResolveNode::optimizeVariableAccess(ExecState*, const SymbolTable& symbolTable, const LocalStorage&, NodeStack&) 1566 1679 { 1567 1680 size_t index = symbolTable.get(m_ident.ustring().rep()); … … 1604 1717 // ------------------------------ DeleteBracketNode ----------------------------------- 1605 1718 1606 void DeleteBracketNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)1719 void DeleteBracketNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 1607 1720 { 1608 1721 nodeStack.append(m_subscript.get()); … … 1629 1742 // ------------------------------ DeleteDotNode ----------------------------------- 1630 1743 1631 void DeleteDotNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)1744 void DeleteDotNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 1632 1745 { 1633 1746 nodeStack.append(m_base.get()); … … 1645 1758 // ------------------------------ DeleteValueNode ----------------------------------- 1646 1759 1647 void DeleteValueNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)1760 void DeleteValueNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 1648 1761 { 1649 1762 nodeStack.append(m_expr.get()); … … 1661 1774 // ------------------------------ VoidNode ------------------------------------- 1662 1775 1663 void VoidNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)1776 void VoidNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 1664 1777 { 1665 1778 nodeStack.append(m_expr.get()); … … 1679 1792 // ------------------------------ TypeOfValueNode ----------------------------------- 1680 1793 1681 void TypeOfValueNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)1794 void TypeOfValueNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 1682 1795 { 1683 1796 nodeStack.append(m_expr.get()); … … 1712 1825 } 1713 1826 1714 void TypeOfResolveNode::optimizeVariableAccess( const SymbolTable& symbolTable, const LocalStorage&, NodeStack&)1827 void TypeOfResolveNode::optimizeVariableAccess(ExecState*, const SymbolTable& symbolTable, const LocalStorage&, NodeStack&) 1715 1828 { 1716 1829 size_t index = symbolTable.get(m_ident.ustring().rep()); … … 1764 1877 // ------------------------------ PrefixResolveNode ---------------------------------- 1765 1878 1766 void PreIncResolveNode::optimizeVariableAccess( const SymbolTable& symbolTable, const LocalStorage& localStorage, NodeStack&)1879 void PreIncResolveNode::optimizeVariableAccess(ExecState*, const SymbolTable& symbolTable, const LocalStorage& localStorage, NodeStack&) 1767 1880 { 1768 1881 size_t index = symbolTable.get(m_ident.ustring().rep()); … … 1816 1929 } 1817 1930 1818 void PreDecResolveNode::optimizeVariableAccess( const SymbolTable& symbolTable, const LocalStorage& localStorage, NodeStack&)1931 void PreDecResolveNode::optimizeVariableAccess(ExecState*, const SymbolTable& symbolTable, const LocalStorage& localStorage, NodeStack&) 1819 1932 { 1820 1933 size_t index = symbolTable.get(m_ident.ustring().rep()); … … 1902 2015 // ------------------------------ PrefixBracketNode ---------------------------------- 1903 2016 1904 void PrefixBracketNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)2017 void PrefixBracketNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 1905 2018 { 1906 2019 nodeStack.append(m_subscript.get()); … … 1974 2087 // ------------------------------ PrefixDotNode ---------------------------------- 1975 2088 1976 void PrefixDotNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)2089 void PrefixDotNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 1977 2090 { 1978 2091 nodeStack.append(m_base.get()); … … 2025 2138 // ------------------------------ UnaryPlusNode -------------------------------- 2026 2139 2027 void UnaryPlusNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)2140 void UnaryPlusNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2028 2141 { 2029 2142 nodeStack.append(m_expr.get()); … … 2060 2173 // ------------------------------ NegateNode ----------------------------------- 2061 2174 2062 void NegateNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)2175 void NegateNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2063 2176 { 2064 2177 nodeStack.append(m_expr.get()); … … 2080 2193 // ------------------------------ BitwiseNotNode ------------------------------- 2081 2194 2082 void BitwiseNotNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)2195 void BitwiseNotNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2083 2196 { 2084 2197 nodeStack.append(m_expr.get()); … … 2118 2231 // ------------------------------ LogicalNotNode ------------------------------- 2119 2232 2120 void LogicalNotNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)2233 void LogicalNotNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2121 2234 { 2122 2235 nodeStack.append(m_expr.get()); … … 2136 2249 // ------------------------------ Multiplicative Nodes ----------------------------------- 2137 2250 2138 void MultNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)2251 void MultNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2139 2252 { 2140 2253 nodeStack.append(m_term1.get()); … … 2177 2290 } 2178 2291 2179 void DivNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)2292 void DivNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2180 2293 { 2181 2294 nodeStack.append(m_term1.get()); … … 2212 2325 } 2213 2326 2214 void ModNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)2327 void ModNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2215 2328 { 2216 2329 nodeStack.append(m_term1.get()); … … 2350 2463 } 2351 2464 2352 void AddNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)2465 void AddNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2353 2466 { 2354 2467 nodeStack.append(m_term1.get()); … … 2457 2570 } 2458 2571 2459 void SubNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)2572 void SubNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2460 2573 { 2461 2574 nodeStack.append(m_term1.get()); … … 2494 2607 // ------------------------------ Shift Nodes ------------------------------------ 2495 2608 2496 void LeftShiftNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)2609 void LeftShiftNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2497 2610 { 2498 2611 nodeStack.append(m_term1.get()); … … 2529 2642 } 2530 2643 2531 void RightShiftNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)2644 void RightShiftNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2532 2645 { 2533 2646 nodeStack.append(m_term1.get()); … … 2564 2677 } 2565 2678 2566 void UnsignedRightShiftNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)2679 void UnsignedRightShiftNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2567 2680 { 2568 2681 nodeStack.append(m_term1.get()); … … 2631 2744 } 2632 2745 2633 void LessNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)2746 void LessNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2634 2747 { 2635 2748 nodeStack.append(m_expr2.get()); … … 2693 2806 } 2694 2807 2695 void GreaterNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)2808 void GreaterNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2696 2809 { 2697 2810 nodeStack.append(m_expr2.get()); … … 2719 2832 } 2720 2833 2721 void LessEqNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)2834 void LessEqNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2722 2835 { 2723 2836 nodeStack.append(m_expr2.get()); … … 2745 2858 } 2746 2859 2747 void GreaterEqNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)2860 void GreaterEqNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2748 2861 { 2749 2862 nodeStack.append(m_expr2.get()); … … 2771 2884 } 2772 2885 2773 void InstanceOfNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)2886 void InstanceOfNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2774 2887 { 2775 2888 nodeStack.append(m_expr2.get()); … … 2824 2937 } 2825 2938 2826 void InNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)2939 void InNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2827 2940 { 2828 2941 nodeStack.append(m_expr2.get()); … … 2861 2974 // ------------------------------ Equality Nodes ------------------------------------ 2862 2975 2863 void EqualNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)2976 void EqualNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2864 2977 { 2865 2978 nodeStack.append(m_expr2.get()); … … 2888 3001 } 2889 3002 2890 void NotEqualNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)3003 void NotEqualNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2891 3004 { 2892 3005 nodeStack.append(m_expr2.get()); … … 2915 3028 } 2916 3029 2917 void StrictEqualNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)3030 void StrictEqualNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2918 3031 { 2919 3032 nodeStack.append(m_expr2.get()); … … 2942 3055 } 2943 3056 2944 void NotStrictEqualNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)3057 void NotStrictEqualNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2945 3058 { 2946 3059 nodeStack.append(m_expr2.get()); … … 2971 3084 // ------------------------------ Bit Operation Nodes ---------------------------------- 2972 3085 2973 void BitAndNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)3086 void BitAndNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2974 3087 { 2975 3088 nodeStack.append(m_expr2.get()); … … 3016 3129 } 3017 3130 3018 void BitXOrNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)3131 void BitXOrNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3019 3132 { 3020 3133 nodeStack.append(m_expr2.get()); … … 3055 3168 } 3056 3169 3057 void BitOrNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)3170 void BitOrNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3058 3171 { 3059 3172 nodeStack.append(m_expr2.get()); … … 3096 3209 // ------------------------------ Binary Logical Nodes ---------------------------- 3097 3210 3098 void LogicalAndNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)3211 void LogicalAndNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3099 3212 { 3100 3213 nodeStack.append(m_expr2.get()); … … 3123 3236 } 3124 3237 3125 void LogicalOrNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)3238 void LogicalOrNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3126 3239 { 3127 3240 nodeStack.append(m_expr2.get()); … … 3147 3260 // ------------------------------ ConditionalNode ------------------------------ 3148 3261 3149 void ConditionalNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)3262 void ConditionalNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3150 3263 { 3151 3264 nodeStack.append(m_expr2.get()); … … 3258 3371 // ------------------------------ ReadModifyResolveNode ----------------------------------- 3259 3372 3260 void ReadModifyResolveNode::optimizeVariableAccess( const SymbolTable& symbolTable, const LocalStorage& localStorage, NodeStack& nodeStack)3373 void ReadModifyResolveNode::optimizeVariableAccess(ExecState*, const SymbolTable& symbolTable, const LocalStorage& localStorage, NodeStack& nodeStack) 3261 3374 { 3262 3375 nodeStack.append(m_right.get()); … … 3272 3385 // ------------------------------ AssignResolveNode ----------------------------------- 3273 3386 3274 void AssignResolveNode::optimizeVariableAccess( const SymbolTable& symbolTable, const LocalStorage& localStorage, NodeStack& nodeStack)3387 void AssignResolveNode::optimizeVariableAccess(ExecState*, const SymbolTable& symbolTable, const LocalStorage& localStorage, NodeStack& nodeStack) 3275 3388 { 3276 3389 nodeStack.append(m_right.get()); … … 3413 3526 // ------------------------------ ReadModifyDotNode ----------------------------------- 3414 3527 3415 void AssignDotNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)3528 void AssignDotNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3416 3529 { 3417 3530 nodeStack.append(m_right.get()); … … 3433 3546 } 3434 3547 3435 void ReadModifyDotNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)3548 void ReadModifyDotNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3436 3549 { 3437 3550 nodeStack.append(m_right.get()); … … 3470 3583 // ------------------------------ AssignBracketNode ----------------------------------- 3471 3584 3472 void AssignBracketNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)3585 void AssignBracketNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3473 3586 { 3474 3587 nodeStack.append(m_right.get()); … … 3502 3615 return v; 3503 3616 } 3504 void ReadModifyBracketNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)3617 void ReadModifyBracketNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3505 3618 { 3506 3619 nodeStack.append(m_right.get()); … … 3550 3663 // ------------------------------ CommaNode ------------------------------------ 3551 3664 3552 void CommaNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)3665 void CommaNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3553 3666 { 3554 3667 nodeStack.append(m_expr2.get()); … … 3572 3685 } 3573 3686 3574 void ConstDeclNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)3687 void ConstDeclNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3575 3688 { 3576 3689 if (m_next) … … 3652 3765 // ------------------------------ ConstStatementNode ----------------------------- 3653 3766 3654 void ConstStatementNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)3767 void ConstStatementNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3655 3768 { 3656 3769 ASSERT(m_next); … … 3718 3831 } 3719 3832 3720 void BlockNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)3833 void BlockNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3721 3834 { 3722 3835 statementListPushFIFO(m_children, nodeStack); … … 3739 3852 // ------------------------------ ExprStatementNode ---------------------------- 3740 3853 3741 void ExprStatementNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)3854 void ExprStatementNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3742 3855 { 3743 3856 ASSERT(m_expr); … … 3756 3869 // ------------------------------ VarStatementNode ---------------------------- 3757 3870 3758 void VarStatementNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)3871 void VarStatementNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3759 3872 { 3760 3873 ASSERT(m_expr); … … 3772 3885 // ------------------------------ IfNode --------------------------------------- 3773 3886 3774 void IfNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)3887 void IfNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3775 3888 { 3776 3889 nodeStack.append(m_ifBlock.get()); … … 3789 3902 } 3790 3903 3791 void IfElseNode::optimizeVariableAccess( const SymbolTable& symbolTable, const LocalStorage& localStorage, NodeStack& nodeStack)3904 void IfElseNode::optimizeVariableAccess(ExecState* exec, const SymbolTable& symbolTable, const LocalStorage& localStorage, NodeStack& nodeStack) 3792 3905 { 3793 3906 nodeStack.append(m_elseBlock.get()); 3794 IfNode::optimizeVariableAccess( symbolTable, localStorage, nodeStack);3907 IfNode::optimizeVariableAccess(exec, symbolTable, localStorage, nodeStack); 3795 3908 } 3796 3909 … … 3808 3921 // ------------------------------ DoWhileNode ---------------------------------- 3809 3922 3810 void DoWhileNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)3923 void DoWhileNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3811 3924 { 3812 3925 nodeStack.append(m_statement.get()); … … 3850 3963 // ------------------------------ WhileNode ------------------------------------ 3851 3964 3852 void WhileNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)3965 void WhileNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3853 3966 { 3854 3967 nodeStack.append(m_statement.get()); … … 3891 4004 // ------------------------------ ForNode -------------------------------------- 3892 4005 3893 void ForNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)4006 void ForNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3894 4007 { 3895 4008 nodeStack.append(m_statement.get()); … … 3961 4074 } 3962 4075 3963 void ForInNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)4076 void ForInNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3964 4077 { 3965 4078 nodeStack.append(m_statement.get()); … … 4093 4206 // ------------------------------ ReturnNode ----------------------------------- 4094 4207 4095 void ReturnNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)4208 void ReturnNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 4096 4209 { 4097 4210 if (m_value) … … 4117 4230 // ------------------------------ WithNode ------------------------------------- 4118 4231 4119 void WithNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)4232 void WithNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 4120 4233 { 4121 4234 // Can't optimize within statement because "with" introduces a dynamic scope. … … 4140 4253 // ------------------------------ CaseClauseNode ------------------------------- 4141 4254 4142 void CaseClauseNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)4255 void CaseClauseNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 4143 4256 { 4144 4257 if (m_expr) … … 4164 4277 // ------------------------------ ClauseListNode ------------------------------- 4165 4278 4166 void ClauseListNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)4279 void ClauseListNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 4167 4280 { 4168 4281 if (m_next) … … 4180 4293 } 4181 4294 4182 void CaseBlockNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)4295 void CaseBlockNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 4183 4296 { 4184 4297 if (m_list2) … … 4250 4363 // ------------------------------ SwitchNode ----------------------------------- 4251 4364 4252 void SwitchNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)4365 void SwitchNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 4253 4366 { 4254 4367 nodeStack.append(m_block.get()); … … 4273 4386 // ------------------------------ LabelNode ------------------------------------ 4274 4387 4275 void LabelNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)4388 void LabelNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 4276 4389 { 4277 4390 nodeStack.append(m_statement.get()); … … 4293 4406 // ------------------------------ ThrowNode ------------------------------------ 4294 4407 4295 void ThrowNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)4408 void ThrowNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 4296 4409 { 4297 4410 nodeStack.append(m_expr.get()); … … 4310 4423 // ------------------------------ TryNode -------------------------------------- 4311 4424 4312 void TryNode::optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack& nodeStack)4425 void TryNode::optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 4313 4426 { 4314 4427 // Can't optimize within catchBlock because "catch" introduces a dynamic scope. … … 4482 4595 const LocalStorage& localStorage = exec->variableObject()->localStorage(); 4483 4596 while (true) { 4484 node->optimizeVariableAccess( symbolTable, localStorage, nodeStack);4597 node->optimizeVariableAccess(exec, symbolTable, localStorage, nodeStack); 4485 4598 4486 4599 size_t size = nodeStack.size(); -
trunk/JavaScriptCore/kjs/nodes.h
r31072 r31114 147 147 148 148 // Used for iterative, depth-first traversal of the node tree. Does not cross function call boundaries. 149 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL { }149 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL { } 150 150 151 151 protected: … … 377 377 } 378 378 379 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;379 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 380 380 381 381 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; … … 394 394 ALWAYS_INLINE JSValue* inlineEvaluate(ExecState*); 395 395 Identifier m_ident; 396 size_t m_index; // Used by LocalVarAccessNode. 396 size_t m_index; // Used by LocalVarAccessNode and ScopedVarAccessNode. 397 size_t m_scopeDepth; // Used by ScopedVarAccessNode 397 398 }; 398 399 … … 416 417 ALWAYS_INLINE JSValue* inlineEvaluate(ExecState*); 417 418 }; 419 420 class ScopedVarAccessNode : public ResolveNode { 421 public: 422 // Overwrites a ResolveNode in place. 423 ScopedVarAccessNode(size_t i, size_t scopeDepth) KJS_FAST_CALL 424 : ResolveNode(PlacementNewAdopt) 425 { 426 ASSERT(i != missingSymbolMarker()); 427 m_index = i; 428 m_scopeDepth = scopeDepth; 429 } 430 431 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 432 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 433 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; 434 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 435 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 436 437 private: 438 ALWAYS_INLINE JSValue* inlineEvaluate(ExecState*); 439 }; 440 441 class NonLocalVarAccessNode : public ResolveNode { 442 public: 443 // Overwrites a ResolveNode in place. 444 NonLocalVarAccessNode(size_t scopeDepth) KJS_FAST_CALL 445 : ResolveNode(PlacementNewAdopt) 446 { 447 ASSERT(scopeDepth != 0); 448 m_scopeDepth = scopeDepth; 449 } 450 451 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 452 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; 453 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; 454 virtual int32_t evaluateToInt32(ExecState*) KJS_FAST_CALL; 455 virtual uint32_t evaluateToUInt32(ExecState*) KJS_FAST_CALL; 456 457 private: 458 ALWAYS_INLINE JSValue* inlineEvaluate(ExecState*); 459 }; 418 460 419 461 class ElementNode : public Node { … … 434 476 virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; } 435 477 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 436 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;478 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 437 479 438 480 PassRefPtr<ElementNode> releaseNext() KJS_FAST_CALL { return m_next.release(); } … … 469 511 } 470 512 471 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;513 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 472 514 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 473 515 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 491 533 } 492 534 493 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;535 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 494 536 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 495 537 virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; } … … 518 560 } 519 561 520 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;562 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 521 563 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 522 564 virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; } … … 542 584 } 543 585 544 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;586 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 545 587 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 546 588 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 560 602 } 561 603 562 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;604 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 563 605 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 564 606 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 589 631 } 590 632 591 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;633 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 592 634 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 593 635 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 623 665 } 624 666 625 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;667 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 626 668 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 627 669 virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; } … … 647 689 } 648 690 649 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;691 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 650 692 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 651 693 virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; } … … 670 712 } 671 713 672 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;714 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 673 715 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 674 716 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 693 735 } 694 736 695 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;737 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 696 738 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 697 739 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 710 752 } 711 753 712 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;754 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 713 755 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 714 756 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 735 777 } 736 778 737 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;779 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 738 780 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 739 781 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 780 822 } 781 823 782 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;824 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 783 825 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 784 826 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 800 842 } 801 843 802 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;844 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 803 845 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 804 846 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 848 890 } 849 891 850 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;892 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 851 893 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 852 894 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 892 934 } 893 935 894 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;936 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 895 937 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 896 938 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 939 981 } 940 982 941 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;983 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 942 984 virtual Precedence precedence() const { return PrecPostfix; } 943 985 … … 977 1019 } 978 1020 979 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1021 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 980 1022 virtual Precedence precedence() const { return PrecPostfix; } 981 1023 … … 1037 1079 } 1038 1080 1039 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1081 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1040 1082 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1041 1083 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 1064 1106 } 1065 1107 1066 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1108 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1067 1109 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1068 1110 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 1082 1124 } 1083 1125 1084 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1126 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1085 1127 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1086 1128 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 1099 1141 } 1100 1142 1101 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1143 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1102 1144 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1103 1145 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 1115 1157 } 1116 1158 1117 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1159 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1118 1160 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1119 1161 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 1139 1181 } 1140 1182 1141 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1183 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1142 1184 1143 1185 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; … … 1173 1215 } 1174 1216 1175 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1217 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1176 1218 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1177 1219 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 1194 1236 } 1195 1237 1196 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1238 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1197 1239 1198 1240 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; … … 1237 1279 } 1238 1280 1239 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1281 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1240 1282 1241 1283 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; … … 1276 1318 } 1277 1319 1278 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1320 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1279 1321 virtual Precedence precedence() const { return PrecUnary; } 1280 1322 … … 1314 1356 } 1315 1357 1316 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1358 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1317 1359 virtual Precedence precedence() const { return PrecPostfix; } 1318 1360 … … 1369 1411 } 1370 1412 1371 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1413 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1372 1414 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1373 1415 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 1390 1432 } 1391 1433 1392 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1434 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1393 1435 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1394 1436 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 1408 1450 } 1409 1451 1410 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1452 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1411 1453 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1412 1454 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 1431 1473 } 1432 1474 1433 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1475 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1434 1476 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1435 1477 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 1450 1492 } 1451 1493 1452 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1494 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1453 1495 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1454 1496 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 1475 1517 } 1476 1518 1477 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1519 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1478 1520 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1479 1521 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 1499 1541 } 1500 1542 1501 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1543 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1502 1544 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1503 1545 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 1523 1565 } 1524 1566 1525 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1567 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1526 1568 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1527 1569 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 1601 1643 } 1602 1644 1603 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1645 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1604 1646 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1605 1647 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 1625 1667 } 1626 1668 1627 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1669 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1628 1670 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1629 1671 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 1649 1691 } 1650 1692 1651 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1693 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1652 1694 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1653 1695 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 1673 1715 } 1674 1716 1675 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1717 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1676 1718 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1677 1719 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 1696 1738 } 1697 1739 1698 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1740 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1699 1741 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1700 1742 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 1746 1788 } 1747 1789 1748 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1790 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1749 1791 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1750 1792 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 1767 1809 } 1768 1810 1769 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1811 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1770 1812 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1771 1813 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 1788 1830 } 1789 1831 1790 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1832 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1791 1833 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1792 1834 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 1810 1852 } 1811 1853 1812 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1854 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1813 1855 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1814 1856 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 1829 1871 } 1830 1872 1831 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1873 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1832 1874 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1833 1875 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 1849 1891 } 1850 1892 1851 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1893 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1852 1894 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1853 1895 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 1871 1913 } 1872 1914 1873 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1915 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1874 1916 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1875 1917 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 1893 1935 } 1894 1936 1895 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1937 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1896 1938 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1897 1939 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 1915 1957 } 1916 1958 1917 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1959 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1918 1960 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1919 1961 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 1937 1979 } 1938 1980 1939 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;1981 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1940 1982 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1941 1983 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 1962 2004 } 1963 2005 1964 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2006 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1965 2007 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1966 2008 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 1987 2029 } 1988 2030 1989 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2031 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 1990 2032 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1991 2033 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 2015 2057 } 2016 2058 2017 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2059 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2018 2060 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 2019 2061 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 2037 2079 } 2038 2080 2039 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2081 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2040 2082 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 2041 2083 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 2062 2104 } 2063 2105 2064 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2106 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2065 2107 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 2066 2108 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 2093 2135 } 2094 2136 2095 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2137 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2096 2138 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 2097 2139 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 2144 2186 } 2145 2187 2146 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2188 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2147 2189 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 2148 2190 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 2187 2229 } 2188 2230 2189 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2231 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2190 2232 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 2191 2233 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 2208 2250 } 2209 2251 2210 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2252 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2211 2253 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 2212 2254 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 2228 2270 } 2229 2271 2230 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2272 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2231 2273 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 2232 2274 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 2249 2291 } 2250 2292 2251 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2293 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2252 2294 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 2253 2295 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 2289 2331 } 2290 2332 2291 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2333 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2292 2334 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 2293 2335 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 2312 2354 ConstDeclNode(const Identifier& ident, ExpressionNode* in) KJS_FAST_CALL; 2313 2355 2314 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2356 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2315 2357 virtual KJS::JSValue* evaluate(ExecState*) KJS_FAST_CALL; 2316 2358 void evaluateSingle(ExecState*) KJS_FAST_CALL; … … 2334 2376 } 2335 2377 2336 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2378 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2337 2379 virtual JSValue* execute(ExecState*) KJS_FAST_CALL; 2338 2380 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 2361 2403 BlockNode(SourceElements* children) KJS_FAST_CALL; 2362 2404 2363 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2405 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2364 2406 virtual JSValue* execute(ExecState*) KJS_FAST_CALL; 2365 2407 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 2387 2429 } 2388 2430 2389 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2431 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2390 2432 virtual JSValue* execute(ExecState*) KJS_FAST_CALL; 2391 2433 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 2402 2444 } 2403 2445 2404 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2446 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2405 2447 virtual JSValue* execute(ExecState*) KJS_FAST_CALL; 2406 2448 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 2418 2460 } 2419 2461 2420 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2462 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2421 2463 virtual JSValue* execute(ExecState*) KJS_FAST_CALL; 2422 2464 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 2435 2477 } 2436 2478 2437 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2479 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2438 2480 virtual JSValue* execute(ExecState*) KJS_FAST_CALL; 2439 2481 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 2451 2493 } 2452 2494 2453 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2495 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2454 2496 virtual JSValue* execute(ExecState*) KJS_FAST_CALL; 2455 2497 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 2468 2510 } 2469 2511 2470 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2512 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2471 2513 virtual JSValue* execute(ExecState*) KJS_FAST_CALL; 2472 2514 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 2495 2537 } 2496 2538 2497 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2539 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2498 2540 virtual JSValue* execute(ExecState*) KJS_FAST_CALL; 2499 2541 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 2512 2554 ForInNode(const Identifier&, ExpressionNode*, ExpressionNode*, StatementNode*) KJS_FAST_CALL; 2513 2555 2514 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2556 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2515 2557 virtual JSValue* execute(ExecState*) KJS_FAST_CALL; 2516 2558 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 2568 2610 } 2569 2611 2570 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2612 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2571 2613 virtual JSValue* execute(ExecState*) KJS_FAST_CALL; 2572 2614 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 2584 2626 } 2585 2627 2586 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2628 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2587 2629 virtual JSValue* execute(ExecState*) KJS_FAST_CALL; 2588 2630 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 2601 2643 } 2602 2644 2603 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2645 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2604 2646 virtual JSValue* execute(ExecState*) KJS_FAST_CALL; 2605 2647 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 2618 2660 } 2619 2661 2620 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2662 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2621 2663 virtual JSValue* execute(ExecState*) KJS_FAST_CALL; 2622 2664 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 2636 2678 } 2637 2679 2638 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2680 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2639 2681 virtual JSValue* execute(ExecState*) KJS_FAST_CALL; 2640 2682 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 2816 2858 } 2817 2859 2818 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2860 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2819 2861 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 2820 2862 virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; } … … 2841 2883 } 2842 2884 2843 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2885 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2844 2886 CaseClauseNode* getClause() const KJS_FAST_CALL { return m_clause.get(); } 2845 2887 ClauseListNode* getNext() const KJS_FAST_CALL { return m_next.get(); } … … 2858 2900 CaseBlockNode(ClauseListNode* list1, CaseClauseNode* defaultClause, ClauseListNode* list2) KJS_FAST_CALL; 2859 2901 2860 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2902 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2861 2903 JSValue* executeBlock(ExecState*, JSValue *input) KJS_FAST_CALL; 2862 2904 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 2877 2919 } 2878 2920 2879 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2921 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2880 2922 virtual JSValue* execute(ExecState*) KJS_FAST_CALL; 2881 2923 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 2892 2934 virtual JSValue* execute(ExecState*) KJS_FAST_CALL; 2893 2935 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 2894 virtual void optimizeVariableAccess( const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL;2936 virtual void optimizeVariableAccess(ExecState*, const SymbolTable&, const LocalStorage&, NodeStack&) KJS_FAST_CALL; 2895 2937 2896 2938 private: -
trunk/JavaScriptCore/kjs/object.h
r30534 r31114 433 433 virtual bool isActivationObject() const { return false; } 434 434 virtual bool isGlobalObject() const { return false; } 435 virtual bool isVariableObject() const { return false; } 435 436 436 437 protected:
Note:
See TracChangeset
for help on using the changeset viewer.