Changeset 29825 in webkit for trunk/JavaScriptCore/kjs/nodes.cpp
- Timestamp:
- Jan 27, 2008, 4:14:24 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/nodes.cpp
r29818 r29825 536 536 { 537 537 // Check for missed optimization opportunity. 538 ASSERT(!canSkipLookup(exec, ident));538 ASSERT(!canSkipLookup(exec, m_ident)); 539 539 540 540 const ScopeChain& chain = exec->scopeChain(); … … 549 549 JSObject *o = *iter; 550 550 551 if (o->getPropertySlot(exec, ident, slot))552 return slot.getValue(exec, o, ident);551 if (o->getPropertySlot(exec, m_ident, slot)) 552 return slot.getValue(exec, o, m_ident); 553 553 554 554 ++iter; 555 555 } while (iter != end); 556 556 557 return throwUndefinedVariableError(exec, ident);557 return throwUndefinedVariableError(exec, m_ident); 558 558 } 559 559 … … 593 593 void ResolveNode::optimizeVariableAccess(const SymbolTable& symbolTable, const LocalStorage&, NodeStack&) 594 594 { 595 size_t index = symbolTable.get( ident.ustring().rep());595 size_t index = symbolTable.get(m_ident.ustring().rep()); 596 596 if (index != missingSymbolMarker()) 597 597 new (this) LocalVarAccessNode(index); … … 601 601 { 602 602 ASSERT(exec->variableObject() == exec->scopeChain().top()); 603 return exec->localStorage()[ index].value;603 return exec->localStorage()[m_index].value; 604 604 } 605 605 … … 633 633 void ElementNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 634 634 { 635 if ( next)636 nodeStack.append( next.get());637 ASSERT( node);638 nodeStack.append( node.get());635 if (m_next) 636 nodeStack.append(m_next.get()); 637 ASSERT(m_node); 638 nodeStack.append(m_node.get()); 639 639 } 640 640 … … 644 644 JSObject* array = exec->lexicalGlobalObject()->arrayConstructor()->construct(exec, exec->emptyList()); 645 645 int length = 0; 646 for (ElementNode *n = this; n; n = n-> next.get()) {647 JSValue *val = n-> node->evaluate(exec);646 for (ElementNode *n = this; n; n = n->m_next.get()) { 647 JSValue *val = n->m_node->evaluate(exec); 648 648 KJS_CHECKEXCEPTIONVALUE 649 length += n-> elision;649 length += n->m_elision; 650 650 array->put(exec, length++, val); 651 651 } … … 657 657 void ArrayNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 658 658 { 659 if ( element)660 nodeStack.append( element.get());659 if (m_element) 660 nodeStack.append(m_element.get()); 661 661 } 662 662 … … 668 668 int length; 669 669 670 if ( element) {671 array = static_cast<JSObject*>( element->evaluate(exec));670 if (m_element) { 671 array = static_cast<JSObject*>(m_element->evaluate(exec)); 672 672 KJS_CHECKEXCEPTIONVALUE 673 length = opt ? array->get(exec, exec->propertyNames().length)->toInt32(exec) : 0;673 length = m_opt ? array->get(exec, exec->propertyNames().length)->toInt32(exec) : 0; 674 674 } else { 675 675 JSValue* newArr = exec->lexicalGlobalObject()->arrayConstructor()->construct(exec, exec->emptyList()); … … 678 678 } 679 679 680 if ( opt)681 array->put(exec, exec->propertyNames().length, jsNumber( elision + length), DontEnum | DontDelete);680 if (m_opt) 681 array->put(exec, exec->propertyNames().length, jsNumber(m_elision + length), DontEnum | DontDelete); 682 682 683 683 return array; … … 688 688 void ObjectLiteralNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 689 689 { 690 if ( list)691 nodeStack.append( list.get());690 if (m_list) 691 nodeStack.append(m_list.get()); 692 692 } 693 693 … … 695 695 JSValue *ObjectLiteralNode::evaluate(ExecState *exec) 696 696 { 697 if ( list)698 return list->evaluate(exec);697 if (m_list) 698 return m_list->evaluate(exec); 699 699 700 700 return exec->lexicalGlobalObject()->objectConstructor()->construct(exec, exec->emptyList()); … … 705 705 void PropertyListNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 706 706 { 707 if ( next)708 nodeStack.append( next.get());709 nodeStack.append( node.get());707 if (m_next) 708 nodeStack.append(m_next.get()); 709 nodeStack.append(m_node.get()); 710 710 } 711 711 … … 715 715 JSObject* obj = exec->lexicalGlobalObject()->objectConstructor()->construct(exec, exec->emptyList()); 716 716 717 for (PropertyListNode *p = this; p; p = p-> next.get()) {718 JSValue *v = p-> node->assign->evaluate(exec);717 for (PropertyListNode *p = this; p; p = p->m_next.get()) { 718 JSValue *v = p->m_node->m_assign->evaluate(exec); 719 719 KJS_CHECKEXCEPTIONVALUE 720 720 721 switch (p-> node->type) {721 switch (p->m_node->m_type) { 722 722 case PropertyNode::Getter: 723 723 ASSERT(v->isObject()); 724 obj->defineGetter(exec, p-> node->name(), static_cast<JSObject *>(v));724 obj->defineGetter(exec, p->m_node->name(), static_cast<JSObject *>(v)); 725 725 break; 726 726 case PropertyNode::Setter: 727 727 ASSERT(v->isObject()); 728 obj->defineSetter(exec, p-> node->name(), static_cast<JSObject *>(v));728 obj->defineSetter(exec, p->m_node->name(), static_cast<JSObject *>(v)); 729 729 break; 730 730 case PropertyNode::Constant: 731 obj->put(exec, p-> node->name(), v);731 obj->put(exec, p->m_node->name(), v); 732 732 break; 733 733 } … … 741 741 void PropertyNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 742 742 { 743 nodeStack.append( assign.get());743 nodeStack.append(m_assign.get()); 744 744 } 745 745 … … 755 755 void BracketAccessorNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 756 756 { 757 nodeStack.append( expr2.get());758 nodeStack.append( expr1.get());757 nodeStack.append(m_subscript.get()); 758 nodeStack.append(m_base.get()); 759 759 } 760 760 … … 762 762 JSValue* BracketAccessorNode::inlineEvaluate(ExecState* exec) 763 763 { 764 JSValue* v1 = expr1->evaluate(exec);765 KJS_CHECKEXCEPTIONVALUE 766 JSValue* v2 = expr2->evaluate(exec);764 JSValue* v1 = m_base->evaluate(exec); 765 KJS_CHECKEXCEPTIONVALUE 766 JSValue* v2 = m_subscript->evaluate(exec); 767 767 KJS_CHECKEXCEPTIONVALUE 768 768 JSObject* o = v1->toObject(exec); … … 810 810 void DotAccessorNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 811 811 { 812 nodeStack.append( expr.get());812 nodeStack.append(m_base.get()); 813 813 } 814 814 … … 816 816 JSValue* DotAccessorNode::inlineEvaluate(ExecState* exec) 817 817 { 818 JSValue* v = expr->evaluate(exec);818 JSValue* v = m_base->evaluate(exec); 819 819 KJS_CHECKEXCEPTIONVALUE 820 return v->toObject(exec)->get(exec, ident);820 return v->toObject(exec)->get(exec, m_ident); 821 821 } 822 822 … … 858 858 void ArgumentListNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 859 859 { 860 if ( next)861 nodeStack.append( next.get());862 ASSERT( expr);863 nodeStack.append( expr.get());860 if (m_next) 861 nodeStack.append(m_next.get()); 862 ASSERT(m_expr); 863 nodeStack.append(m_expr.get()); 864 864 } 865 865 … … 867 867 void ArgumentListNode::evaluateList(ExecState* exec, List& list) 868 868 { 869 for (ArgumentListNode *n = this; n; n = n-> next.get()) {870 JSValue *v = n-> expr->evaluate(exec);869 for (ArgumentListNode *n = this; n; n = n->m_next.get()) { 870 JSValue *v = n->m_expr->evaluate(exec); 871 871 KJS_CHECKEXCEPTIONVOID 872 872 list.append(v); … … 878 878 void ArgumentsNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 879 879 { 880 if ( listNode)881 nodeStack.append( listNode.get());880 if (m_listNode) 881 nodeStack.append(m_listNode.get()); 882 882 } 883 883 … … 886 886 void NewExprNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 887 887 { 888 if ( args)889 nodeStack.append( args.get());890 nodeStack.append( expr.get());888 if (m_args) 889 nodeStack.append(m_args.get()); 890 nodeStack.append(m_expr.get()); 891 891 } 892 892 … … 895 895 JSValue* NewExprNode::inlineEvaluate(ExecState* exec) 896 896 { 897 JSValue* v = expr->evaluate(exec);897 JSValue* v = m_expr->evaluate(exec); 898 898 KJS_CHECKEXCEPTIONVALUE 899 899 900 900 List argList; 901 if ( args) {902 args->evaluateList(exec, argList);901 if (m_args) { 902 m_args->evaluateList(exec, argList); 903 903 KJS_CHECKEXCEPTIONVALUE 904 904 } 905 905 906 906 if (!v->isObject()) 907 return throwError(exec, TypeError, "Value %s (result of expression %s) is not an object. Cannot be used with new.", v, expr.get());907 return throwError(exec, TypeError, "Value %s (result of expression %s) is not an object. Cannot be used with new.", v, m_expr.get()); 908 908 909 909 JSObject *constr = static_cast<JSObject*>(v); 910 910 if (!constr->implementsConstruct()) 911 return throwError(exec, TypeError, "Value %s (result of expression %s) is not a constructor. Cannot be used with new.", v, expr.get());911 return throwError(exec, TypeError, "Value %s (result of expression %s) is not a constructor. Cannot be used with new.", v, m_expr.get()); 912 912 913 913 return constr->construct(exec, argList); … … 949 949 void FunctionCallValueNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 950 950 { 951 nodeStack.append( args.get());952 nodeStack.append( expr.get());951 nodeStack.append(m_args.get()); 952 nodeStack.append(m_expr.get()); 953 953 } 954 954 … … 956 956 JSValue *FunctionCallValueNode::evaluate(ExecState *exec) 957 957 { 958 JSValue *v = expr->evaluate(exec);958 JSValue *v = m_expr->evaluate(exec); 959 959 KJS_CHECKEXCEPTIONVALUE 960 960 961 961 if (!v->isObject()) { 962 return throwError(exec, TypeError, "Value %s (result of expression %s) is not object.", v, expr.get());962 return throwError(exec, TypeError, "Value %s (result of expression %s) is not object.", v, m_expr.get()); 963 963 } 964 964 … … 966 966 967 967 if (!func->implementsCall()) { 968 return throwError(exec, TypeError, "Object %s (result of expression %s) does not allow calls.", v, expr.get());968 return throwError(exec, TypeError, "Object %s (result of expression %s) does not allow calls.", v, m_expr.get()); 969 969 } 970 970 971 971 List argList; 972 args->evaluateList(exec, argList);972 m_args->evaluateList(exec, argList); 973 973 KJS_CHECKEXCEPTIONVALUE 974 974 … … 980 980 void FunctionCallResolveNode::optimizeVariableAccess(const SymbolTable& symbolTable, const LocalStorage&, NodeStack& nodeStack) 981 981 { 982 nodeStack.append( args.get());983 984 size_t index = symbolTable.get( ident.ustring().rep());982 nodeStack.append(m_args.get()); 983 984 size_t index = symbolTable.get(m_ident.ustring().rep()); 985 985 if (index != missingSymbolMarker()) 986 986 new (this) LocalVarFunctionCallNode(index); … … 991 991 { 992 992 // Check for missed optimization opportunity. 993 ASSERT(!canSkipLookup(exec, ident));993 ASSERT(!canSkipLookup(exec, m_ident)); 994 994 995 995 const ScopeChain& chain = exec->scopeChain(); … … 1001 1001 1002 1002 PropertySlot slot; 1003 JSObject *base;1003 JSObject* base; 1004 1004 do { 1005 1005 base = *iter; 1006 if (base->getPropertySlot(exec, ident, slot)) {1007 JSValue *v = slot.getValue(exec, base,ident);1006 if (base->getPropertySlot(exec, m_ident, slot)) { 1007 JSValue* v = slot.getValue(exec, base, m_ident); 1008 1008 KJS_CHECKEXCEPTIONVALUE 1009 1009 1010 1010 if (!v->isObject()) 1011 return throwError(exec, TypeError, "Value %s (result of expression %s) is not object.", v, ident);1011 return throwError(exec, TypeError, "Value %s (result of expression %s) is not object.", v, m_ident); 1012 1012 1013 1013 JSObject *func = static_cast<JSObject*>(v); 1014 1014 1015 1015 if (!func->implementsCall()) 1016 return throwError(exec, TypeError, "Object %s (result of expression %s) does not allow calls.", v, ident);1016 return throwError(exec, TypeError, "Object %s (result of expression %s) does not allow calls.", v, m_ident); 1017 1017 1018 1018 List argList; 1019 args->evaluateList(exec, argList);1019 m_args->evaluateList(exec, argList); 1020 1020 KJS_CHECKEXCEPTIONVALUE 1021 1021 … … 1035 1035 } while (iter != end); 1036 1036 1037 return throwUndefinedVariableError(exec, ident);1037 return throwUndefinedVariableError(exec, m_ident); 1038 1038 } 1039 1039 … … 1075 1075 ASSERT(exec->variableObject() == exec->scopeChain().top()); 1076 1076 1077 JSValue* v = exec->localStorage()[ index].value;1077 JSValue* v = exec->localStorage()[m_index].value; 1078 1078 1079 1079 if (!v->isObject()) 1080 return throwError(exec, TypeError, "Value %s (result of expression %s) is not object.", v, ident);1080 return throwError(exec, TypeError, "Value %s (result of expression %s) is not object.", v, m_ident); 1081 1081 1082 1082 JSObject* func = static_cast<JSObject*>(v); 1083 1083 if (!func->implementsCall()) 1084 return throwError(exec, TypeError, "Object %s (result of expression %s) does not allow calls.", v, ident);1084 return throwError(exec, TypeError, "Object %s (result of expression %s) does not allow calls.", v, m_ident); 1085 1085 1086 1086 List argList; 1087 args->evaluateList(exec, argList);1087 m_args->evaluateList(exec, argList); 1088 1088 KJS_CHECKEXCEPTIONVALUE 1089 1089 … … 1126 1126 void FunctionCallBracketNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 1127 1127 { 1128 nodeStack.append( args.get());1129 nodeStack.append( subscript.get());1130 nodeStack.append( base.get());1128 nodeStack.append(m_args.get()); 1129 nodeStack.append(m_subscript.get()); 1130 nodeStack.append(m_base.get()); 1131 1131 } 1132 1132 … … 1134 1134 JSValue *FunctionCallBracketNode::evaluate(ExecState *exec) 1135 1135 { 1136 JSValue *baseVal = base->evaluate(exec);1137 KJS_CHECKEXCEPTIONVALUE 1138 1139 JSValue *subscriptVal = subscript->evaluate(exec);1136 JSValue *baseVal = m_base->evaluate(exec); 1137 KJS_CHECKEXCEPTIONVALUE 1138 1139 JSValue *subscriptVal = m_subscript->evaluate(exec); 1140 1140 1141 1141 JSObject *baseObj = baseVal->toObject(exec); … … 1160 1160 1161 1161 if (!funcVal->isObject()) { 1162 return throwError(exec, TypeError, "Value %s (result of expression %s[%s]) is not object.", funcVal, base.get(),subscript.get());1162 return throwError(exec, TypeError, "Value %s (result of expression %s[%s]) is not object.", funcVal, m_base.get(), m_subscript.get()); 1163 1163 } 1164 1164 … … 1166 1166 1167 1167 if (!func->implementsCall()) { 1168 return throwError(exec, TypeError, "Object %s (result of expression %s[%s]) does not allow calls.", funcVal, base.get(),subscript.get());1168 return throwError(exec, TypeError, "Object %s (result of expression %s[%s]) does not allow calls.", funcVal, m_base.get(), m_subscript.get()); 1169 1169 } 1170 1170 1171 1171 List argList; 1172 args->evaluateList(exec, argList);1172 m_args->evaluateList(exec, argList); 1173 1173 KJS_CHECKEXCEPTIONVALUE 1174 1174 … … 1195 1195 void FunctionCallDotNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 1196 1196 { 1197 nodeStack.append( args.get());1198 nodeStack.append( base.get());1197 nodeStack.append(m_args.get()); 1198 nodeStack.append(m_base.get()); 1199 1199 } 1200 1200 … … 1202 1202 JSValue* FunctionCallDotNode::inlineEvaluate(ExecState* exec) 1203 1203 { 1204 JSValue *baseVal = base->evaluate(exec);1204 JSValue *baseVal = m_base->evaluate(exec); 1205 1205 KJS_CHECKEXCEPTIONVALUE 1206 1206 1207 1207 JSObject *baseObj = baseVal->toObject(exec); 1208 1208 PropertySlot slot; 1209 JSValue *funcVal = baseObj->getPropertySlot(exec, ident, slot) ? slot.getValue(exec, baseObj,ident) : jsUndefined();1209 JSValue *funcVal = baseObj->getPropertySlot(exec, m_ident, slot) ? slot.getValue(exec, baseObj, m_ident) : jsUndefined(); 1210 1210 KJS_CHECKEXCEPTIONVALUE 1211 1211 1212 1212 if (!funcVal->isObject()) 1213 return throwError(exec, TypeError, dotExprNotAnObjectString(), funcVal, base.get(),ident);1213 return throwError(exec, TypeError, dotExprNotAnObjectString(), funcVal, m_base.get(), m_ident); 1214 1214 1215 1215 JSObject *func = static_cast<JSObject*>(funcVal); 1216 1216 1217 1217 if (!func->implementsCall()) 1218 return throwError(exec, TypeError, dotExprDoesNotAllowCallsString(), funcVal, base.get(),ident);1218 return throwError(exec, TypeError, dotExprDoesNotAllowCallsString(), funcVal, m_base.get(), m_ident); 1219 1219 1220 1220 List argList; 1221 args->evaluateList(exec, argList);1221 m_args->evaluateList(exec, argList); 1222 1222 KJS_CHECKEXCEPTIONVALUE 1223 1223 … … 1639 1639 void VoidNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 1640 1640 { 1641 nodeStack.append( expr.get());1641 nodeStack.append(m_expr.get()); 1642 1642 } 1643 1643 … … 1645 1645 JSValue *VoidNode::evaluate(ExecState *exec) 1646 1646 { 1647 expr->evaluate(exec);1647 m_expr->evaluate(exec); 1648 1648 KJS_CHECKEXCEPTIONVALUE 1649 1649 … … 2038 2038 void NegateNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2039 2039 { 2040 nodeStack.append( expr.get());2040 nodeStack.append(m_expr.get()); 2041 2041 } 2042 2042 2043 2043 // ECMA 11.4.7 2044 JSValue *NegateNode::evaluate(ExecState *exec)2044 JSValue* NegateNode::evaluate(ExecState* exec) 2045 2045 { 2046 2046 // No need to check exception, caller will do so right after evaluate() 2047 return jsNumber(- expr->evaluateToNumber(exec));2047 return jsNumber(-m_expr->evaluateToNumber(exec)); 2048 2048 } 2049 2049 … … 2051 2051 { 2052 2052 // No need to check exception, caller will do so right after evaluateToNumber() 2053 return - expr->evaluateToNumber(exec);2053 return -m_expr->evaluateToNumber(exec); 2054 2054 } 2055 2055 … … 2058 2058 void BitwiseNotNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2059 2059 { 2060 nodeStack.append( expr.get());2060 nodeStack.append(m_expr.get()); 2061 2061 } 2062 2062 … … 2064 2064 int32_t BitwiseNotNode::inlineEvaluateToInt32(ExecState* exec) 2065 2065 { 2066 return ~ expr->evaluateToInt32(exec);2066 return ~m_expr->evaluateToInt32(exec); 2067 2067 } 2068 2068 … … 2096 2096 void LogicalNotNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2097 2097 { 2098 nodeStack.append( expr.get());2098 nodeStack.append(m_expr.get()); 2099 2099 } 2100 2100 … … 2102 2102 JSValue* LogicalNotNode::evaluate(ExecState* exec) 2103 2103 { 2104 return jsBoolean(! expr->evaluateToBoolean(exec));2104 return jsBoolean(!m_expr->evaluateToBoolean(exec)); 2105 2105 } 2106 2106 2107 2107 bool LogicalNotNode::evaluateToBoolean(ExecState* exec) 2108 2108 { 2109 return ! expr->evaluateToBoolean(exec);2109 return !m_expr->evaluateToBoolean(exec); 2110 2110 } 2111 2111 … … 2114 2114 void MultNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2115 2115 { 2116 nodeStack.append( term1.get());2117 nodeStack.append( term2.get());2116 nodeStack.append(m_term1.get()); 2117 nodeStack.append(m_term2.get()); 2118 2118 } 2119 2119 … … 2121 2121 double MultNode::inlineEvaluateToNumber(ExecState* exec) 2122 2122 { 2123 double n1 = term1->evaluateToNumber(exec);2123 double n1 = m_term1->evaluateToNumber(exec); 2124 2124 KJS_CHECKEXCEPTIONNUMBER 2125 double n2 = term2->evaluateToNumber(exec);2125 double n2 = m_term2->evaluateToNumber(exec); 2126 2126 return n1 * n2; 2127 2127 } … … 2154 2154 void DivNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2155 2155 { 2156 nodeStack.append( term1.get());2157 nodeStack.append( term2.get());2156 nodeStack.append(m_term1.get()); 2157 nodeStack.append(m_term2.get()); 2158 2158 } 2159 2159 … … 2161 2161 double DivNode::inlineEvaluateToNumber(ExecState* exec) 2162 2162 { 2163 double n1 = term1->evaluateToNumber(exec);2163 double n1 = m_term1->evaluateToNumber(exec); 2164 2164 KJS_CHECKEXCEPTIONNUMBER 2165 double n2 = term2->evaluateToNumber(exec);2165 double n2 = m_term2->evaluateToNumber(exec); 2166 2166 return n1 / n2; 2167 2167 } … … 2189 2189 void ModNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2190 2190 { 2191 nodeStack.append( term1.get());2192 nodeStack.append( term2.get());2191 nodeStack.append(m_term1.get()); 2192 nodeStack.append(m_term2.get()); 2193 2193 } 2194 2194 … … 2196 2196 double ModNode::inlineEvaluateToNumber(ExecState* exec) 2197 2197 { 2198 double n1 = term1->evaluateToNumber(exec);2198 double n1 = m_term1->evaluateToNumber(exec); 2199 2199 KJS_CHECKEXCEPTIONNUMBER 2200 double n2 = term2->evaluateToNumber(exec);2200 double n2 = m_term2->evaluateToNumber(exec); 2201 2201 return fmod(n1, n2); 2202 2202 } … … 2326 2326 void AddNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2327 2327 { 2328 nodeStack.append( term1.get());2329 nodeStack.append( term2.get());2328 nodeStack.append(m_term1.get()); 2329 nodeStack.append(m_term2.get()); 2330 2330 } 2331 2331 … … 2333 2333 JSValue* AddNode::evaluate(ExecState* exec) 2334 2334 { 2335 JSValue* v1 = term1->evaluate(exec);2336 KJS_CHECKEXCEPTIONVALUE 2337 2338 JSValue* v2 = term2->evaluate(exec);2335 JSValue* v1 = m_term1->evaluate(exec); 2336 KJS_CHECKEXCEPTIONVALUE 2337 2338 JSValue* v2 = m_term2->evaluate(exec); 2339 2339 KJS_CHECKEXCEPTIONVALUE 2340 2340 … … 2344 2344 double AddNode::inlineEvaluateToNumber(ExecState* exec) 2345 2345 { 2346 JSValue* v1 = term1->evaluate(exec);2346 JSValue* v1 = m_term1->evaluate(exec); 2347 2347 KJS_CHECKEXCEPTIONNUMBER 2348 2348 2349 JSValue* v2 = term2->evaluate(exec);2349 JSValue* v2 = m_term2->evaluate(exec); 2350 2350 KJS_CHECKEXCEPTIONNUMBER 2351 2351 … … 2370 2370 double AddNumbersNode::inlineEvaluateToNumber(ExecState* exec) 2371 2371 { 2372 double n1 = term1->evaluateToNumber(exec);2372 double n1 = m_term1->evaluateToNumber(exec); 2373 2373 KJS_CHECKEXCEPTIONNUMBER 2374 double n2 = term2->evaluateToNumber(exec);2374 double n2 = m_term2->evaluateToNumber(exec); 2375 2375 return n1 + n2; 2376 2376 } … … 2398 2398 JSValue* AddStringsNode::evaluate(ExecState* exec) 2399 2399 { 2400 JSValue* v1 = term1->evaluate(exec);2400 JSValue* v1 = m_term1->evaluate(exec); 2401 2401 KJS_CHECKEXCEPTIONVALUE 2402 2402 2403 JSValue* v2 = term2->evaluate(exec);2403 JSValue* v2 = m_term2->evaluate(exec); 2404 2404 KJS_CHECKEXCEPTIONVALUE 2405 2405 … … 2409 2409 JSValue* AddStringLeftNode::evaluate(ExecState* exec) 2410 2410 { 2411 JSValue* v1 = term1->evaluate(exec);2411 JSValue* v1 = m_term1->evaluate(exec); 2412 2412 KJS_CHECKEXCEPTIONVALUE 2413 2413 2414 JSValue* v2 = term2->evaluate(exec);2414 JSValue* v2 = m_term2->evaluate(exec); 2415 2415 KJS_CHECKEXCEPTIONVALUE 2416 2416 … … 2421 2421 JSValue* AddStringRightNode::evaluate(ExecState* exec) 2422 2422 { 2423 JSValue* v1 = term1->evaluate(exec);2423 JSValue* v1 = m_term1->evaluate(exec); 2424 2424 KJS_CHECKEXCEPTIONVALUE 2425 2425 2426 JSValue* v2 = term2->evaluate(exec);2426 JSValue* v2 = m_term2->evaluate(exec); 2427 2427 KJS_CHECKEXCEPTIONVALUE 2428 2428 … … 2433 2433 void SubNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2434 2434 { 2435 nodeStack.append( term1.get());2436 nodeStack.append( term2.get());2435 nodeStack.append(m_term1.get()); 2436 nodeStack.append(m_term2.get()); 2437 2437 } 2438 2438 … … 2440 2440 double SubNode::inlineEvaluateToNumber(ExecState* exec) 2441 2441 { 2442 double n1 = term1->evaluateToNumber(exec);2442 double n1 = m_term1->evaluateToNumber(exec); 2443 2443 KJS_CHECKEXCEPTIONNUMBER 2444 double n2 = term2->evaluateToNumber(exec);2444 double n2 = m_term2->evaluateToNumber(exec); 2445 2445 return n1 - n2; 2446 2446 } … … 2470 2470 void LeftShiftNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2471 2471 { 2472 nodeStack.append( term1.get());2473 nodeStack.append( term2.get());2472 nodeStack.append(m_term1.get()); 2473 nodeStack.append(m_term2.get()); 2474 2474 } 2475 2475 … … 2477 2477 int32_t LeftShiftNode::inlineEvaluateToInt32(ExecState* exec) 2478 2478 { 2479 int i1 = term1->evaluateToInt32(exec);2479 int i1 = m_term1->evaluateToInt32(exec); 2480 2480 KJS_CHECKEXCEPTIONNUMBER 2481 unsigned int i2 = term2->evaluateToUInt32(exec) & 0x1f;2481 unsigned int i2 = m_term2->evaluateToUInt32(exec) & 0x1f; 2482 2482 return (i1 << i2); 2483 2483 } … … 2505 2505 void RightShiftNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2506 2506 { 2507 nodeStack.append( term1.get());2508 nodeStack.append( term2.get());2507 nodeStack.append(m_term1.get()); 2508 nodeStack.append(m_term2.get()); 2509 2509 } 2510 2510 … … 2512 2512 int32_t RightShiftNode::inlineEvaluateToInt32(ExecState* exec) 2513 2513 { 2514 int i1 = term1->evaluateToInt32(exec);2514 int i1 = m_term1->evaluateToInt32(exec); 2515 2515 KJS_CHECKEXCEPTIONNUMBER 2516 unsigned int i2 = term2->evaluateToUInt32(exec) & 0x1f;2516 unsigned int i2 = m_term2->evaluateToUInt32(exec) & 0x1f; 2517 2517 return (i1 >> i2); 2518 2518 } … … 2540 2540 void UnsignedRightShiftNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2541 2541 { 2542 nodeStack.append( term1.get());2543 nodeStack.append( term2.get());2542 nodeStack.append(m_term1.get()); 2543 nodeStack.append(m_term2.get()); 2544 2544 } 2545 2545 … … 2547 2547 uint32_t UnsignedRightShiftNode::inlineEvaluateToUInt32(ExecState* exec) 2548 2548 { 2549 unsigned int i1 = term1->evaluateToUInt32(exec);2549 unsigned int i1 = m_term1->evaluateToUInt32(exec); 2550 2550 KJS_CHECKEXCEPTIONNUMBER 2551 unsigned int i2 = term2->evaluateToUInt32(exec) & 0x1f;2551 unsigned int i2 = m_term2->evaluateToUInt32(exec) & 0x1f; 2552 2552 return (i1 >> i2); 2553 2553 } … … 2607 2607 void LessNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2608 2608 { 2609 nodeStack.append( expr2.get());2610 nodeStack.append( expr1.get());2609 nodeStack.append(m_expr2.get()); 2610 nodeStack.append(m_expr1.get()); 2611 2611 } 2612 2612 … … 2614 2614 bool LessNode::inlineEvaluateToBoolean(ExecState* exec) 2615 2615 { 2616 JSValue* v1 = expr1->evaluate(exec);2616 JSValue* v1 = m_expr1->evaluate(exec); 2617 2617 KJS_CHECKEXCEPTIONBOOLEAN 2618 JSValue* v2 = expr2->evaluate(exec);2618 JSValue* v2 = m_expr2->evaluate(exec); 2619 2619 KJS_CHECKEXCEPTIONBOOLEAN 2620 2620 return lessThan(exec, v1, v2); … … 2633 2633 bool LessNumbersNode::inlineEvaluateToBoolean(ExecState* exec) 2634 2634 { 2635 double n1 = expr1->evaluateToNumber(exec);2635 double n1 = m_expr1->evaluateToNumber(exec); 2636 2636 KJS_CHECKEXCEPTIONVALUE 2637 double n2 = expr2->evaluateToNumber(exec);2637 double n2 = m_expr2->evaluateToNumber(exec); 2638 2638 return n1 < n2; 2639 2639 } … … 2651 2651 bool LessStringsNode::inlineEvaluateToBoolean(ExecState* exec) 2652 2652 { 2653 JSValue* v1 = expr1->evaluate(exec);2653 JSValue* v1 = m_expr1->evaluate(exec); 2654 2654 KJS_CHECKEXCEPTIONVALUE 2655 JSValue* v2 = expr2->evaluate(exec);2655 JSValue* v2 = m_expr2->evaluate(exec); 2656 2656 return static_cast<StringImp*>(v1)->value() < static_cast<StringImp*>(v2)->value(); 2657 2657 } … … 2669 2669 void GreaterNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2670 2670 { 2671 nodeStack.append( expr2.get());2672 nodeStack.append( expr1.get());2671 nodeStack.append(m_expr2.get()); 2672 nodeStack.append(m_expr1.get()); 2673 2673 } 2674 2674 … … 2676 2676 bool GreaterNode::inlineEvaluateToBoolean(ExecState *exec) 2677 2677 { 2678 JSValue* v1 = expr1->evaluate(exec);2678 JSValue* v1 = m_expr1->evaluate(exec); 2679 2679 KJS_CHECKEXCEPTIONBOOLEAN 2680 JSValue* v2 = expr2->evaluate(exec);2680 JSValue* v2 = m_expr2->evaluate(exec); 2681 2681 KJS_CHECKEXCEPTIONBOOLEAN 2682 2682 return lessThan(exec, v2, v1); … … 2695 2695 void LessEqNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2696 2696 { 2697 nodeStack.append( expr2.get());2698 nodeStack.append( expr1.get());2697 nodeStack.append(m_expr2.get()); 2698 nodeStack.append(m_expr1.get()); 2699 2699 } 2700 2700 … … 2702 2702 bool LessEqNode::inlineEvaluateToBoolean(ExecState* exec) 2703 2703 { 2704 JSValue* v1 = expr1->evaluate(exec);2704 JSValue* v1 = m_expr1->evaluate(exec); 2705 2705 KJS_CHECKEXCEPTIONBOOLEAN 2706 JSValue* v2 = expr2->evaluate(exec);2706 JSValue* v2 = m_expr2->evaluate(exec); 2707 2707 KJS_CHECKEXCEPTIONBOOLEAN 2708 2708 return lessThanEq(exec, v1, v2); … … 2721 2721 void GreaterEqNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2722 2722 { 2723 nodeStack.append( expr2.get());2724 nodeStack.append( expr1.get());2723 nodeStack.append(m_expr2.get()); 2724 nodeStack.append(m_expr1.get()); 2725 2725 } 2726 2726 … … 2728 2728 bool GreaterEqNode::inlineEvaluateToBoolean(ExecState* exec) 2729 2729 { 2730 JSValue* v1 = expr1->evaluate(exec);2730 JSValue* v1 = m_expr1->evaluate(exec); 2731 2731 KJS_CHECKEXCEPTIONBOOLEAN 2732 JSValue* v2 = expr2->evaluate(exec);2732 JSValue* v2 = m_expr2->evaluate(exec); 2733 2733 KJS_CHECKEXCEPTIONBOOLEAN 2734 2734 return lessThanEq(exec, v2, v1); … … 2747 2747 void InstanceOfNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2748 2748 { 2749 nodeStack.append( expr2.get());2750 nodeStack.append( expr1.get());2749 nodeStack.append(m_expr2.get()); 2750 nodeStack.append(m_expr1.get()); 2751 2751 } 2752 2752 … … 2754 2754 JSValue* InstanceOfNode::evaluate(ExecState* exec) 2755 2755 { 2756 JSValue* v1 = expr1->evaluate(exec);2756 JSValue* v1 = m_expr1->evaluate(exec); 2757 2757 KJS_CHECKEXCEPTIONVALUE 2758 JSValue* v2 = expr2->evaluate(exec);2758 JSValue* v2 = m_expr2->evaluate(exec); 2759 2759 KJS_CHECKEXCEPTIONVALUE 2760 2760 2761 2761 if (!v2->isObject()) 2762 return throwError(exec, TypeError, "Value %s (result of expression %s) is not an object. Cannot be used with instanceof operator.", v2, expr2.get());2762 return throwError(exec, TypeError, "Value %s (result of expression %s) is not an object. Cannot be used with instanceof operator.", v2, m_expr2.get()); 2763 2763 2764 2764 JSObject* o2 = static_cast<JSObject*>(v2); … … 2776 2776 bool InstanceOfNode::evaluateToBoolean(ExecState* exec) 2777 2777 { 2778 JSValue* v1 = expr1->evaluate(exec);2778 JSValue* v1 = m_expr1->evaluate(exec); 2779 2779 KJS_CHECKEXCEPTIONBOOLEAN 2780 JSValue* v2 = expr2->evaluate(exec);2780 JSValue* v2 = m_expr2->evaluate(exec); 2781 2781 KJS_CHECKEXCEPTIONBOOLEAN 2782 2782 2783 2783 if (!v2->isObject()) { 2784 throwError(exec, TypeError, "Value %s (result of expression %s) is not an object. Cannot be used with 'instanceof' operator.", v2, expr2.get());2784 throwError(exec, TypeError, "Value %s (result of expression %s) is not an object. Cannot be used with 'instanceof' operator.", v2, m_expr2.get()); 2785 2785 return false; 2786 2786 } … … 2800 2800 void InNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2801 2801 { 2802 nodeStack.append( expr2.get());2803 nodeStack.append( expr1.get());2802 nodeStack.append(m_expr2.get()); 2803 nodeStack.append(m_expr1.get()); 2804 2804 } 2805 2805 … … 2807 2807 JSValue* InNode::evaluate(ExecState *exec) 2808 2808 { 2809 JSValue* v1 = expr1->evaluate(exec);2809 JSValue* v1 = m_expr1->evaluate(exec); 2810 2810 KJS_CHECKEXCEPTIONVALUE 2811 JSValue* v2 = expr2->evaluate(exec);2811 JSValue* v2 = m_expr2->evaluate(exec); 2812 2812 KJS_CHECKEXCEPTIONVALUE 2813 2813 2814 2814 if (!v2->isObject()) 2815 return throwError(exec, TypeError, "Value %s (result of expression %s) is not an object. Cannot be used with 'in' operator.", v2, expr2.get());2815 return throwError(exec, TypeError, "Value %s (result of expression %s) is not an object. Cannot be used with 'in' operator.", v2, m_expr2.get()); 2816 2816 2817 2817 return jsBoolean(static_cast<JSObject*>(v2)->hasProperty(exec, Identifier(v1->toString(exec)))); … … 2820 2820 bool InNode::evaluateToBoolean(ExecState *exec) 2821 2821 { 2822 JSValue* v1 = expr1->evaluate(exec);2822 JSValue* v1 = m_expr1->evaluate(exec); 2823 2823 KJS_CHECKEXCEPTIONBOOLEAN 2824 JSValue* v2 = expr2->evaluate(exec);2824 JSValue* v2 = m_expr2->evaluate(exec); 2825 2825 KJS_CHECKEXCEPTIONBOOLEAN 2826 2826 2827 2827 if (!v2->isObject()) { 2828 throwError(exec, TypeError, "Value %s (result of expression %s) is not an object. Cannot be used with 'in' operator.", v2, expr2.get());2828 throwError(exec, TypeError, "Value %s (result of expression %s) is not an object. Cannot be used with 'in' operator.", v2, m_expr2.get()); 2829 2829 return false; 2830 2830 } … … 2837 2837 void EqualNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2838 2838 { 2839 nodeStack.append( expr2.get());2840 nodeStack.append( expr1.get());2839 nodeStack.append(m_expr2.get()); 2840 nodeStack.append(m_expr1.get()); 2841 2841 } 2842 2842 … … 2844 2844 bool EqualNode::inlineEvaluateToBoolean(ExecState* exec) 2845 2845 { 2846 JSValue* v1 = expr1->evaluate(exec);2846 JSValue* v1 = m_expr1->evaluate(exec); 2847 2847 KJS_CHECKEXCEPTIONBOOLEAN 2848 JSValue* v2 = expr2->evaluate(exec);2848 JSValue* v2 = m_expr2->evaluate(exec); 2849 2849 KJS_CHECKEXCEPTIONBOOLEAN 2850 2850 … … 2864 2864 void NotEqualNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2865 2865 { 2866 nodeStack.append( expr2.get());2867 nodeStack.append( expr1.get());2866 nodeStack.append(m_expr2.get()); 2867 nodeStack.append(m_expr1.get()); 2868 2868 } 2869 2869 … … 2871 2871 bool NotEqualNode::inlineEvaluateToBoolean(ExecState* exec) 2872 2872 { 2873 JSValue* v1 = expr1->evaluate(exec);2873 JSValue* v1 = m_expr1->evaluate(exec); 2874 2874 KJS_CHECKEXCEPTIONBOOLEAN 2875 JSValue* v2 = expr2->evaluate(exec);2875 JSValue* v2 = m_expr2->evaluate(exec); 2876 2876 KJS_CHECKEXCEPTIONBOOLEAN 2877 2877 … … 2891 2891 void StrictEqualNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2892 2892 { 2893 nodeStack.append( expr2.get());2894 nodeStack.append( expr1.get());2893 nodeStack.append(m_expr2.get()); 2894 nodeStack.append(m_expr1.get()); 2895 2895 } 2896 2896 … … 2898 2898 bool StrictEqualNode::inlineEvaluateToBoolean(ExecState* exec) 2899 2899 { 2900 JSValue* v1 = expr1->evaluate(exec);2900 JSValue* v1 = m_expr1->evaluate(exec); 2901 2901 KJS_CHECKEXCEPTIONBOOLEAN 2902 JSValue* v2 = expr2->evaluate(exec);2902 JSValue* v2 = m_expr2->evaluate(exec); 2903 2903 KJS_CHECKEXCEPTIONBOOLEAN 2904 2904 … … 2918 2918 void NotStrictEqualNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2919 2919 { 2920 nodeStack.append( expr2.get());2921 nodeStack.append( expr1.get());2920 nodeStack.append(m_expr2.get()); 2921 nodeStack.append(m_expr1.get()); 2922 2922 } 2923 2923 … … 2925 2925 bool NotStrictEqualNode::inlineEvaluateToBoolean(ExecState* exec) 2926 2926 { 2927 JSValue* v1 = expr1->evaluate(exec);2927 JSValue* v1 = m_expr1->evaluate(exec); 2928 2928 KJS_CHECKEXCEPTIONBOOLEAN 2929 JSValue* v2 = expr2->evaluate(exec);2929 JSValue* v2 = m_expr2->evaluate(exec); 2930 2930 KJS_CHECKEXCEPTIONBOOLEAN 2931 2931 … … 2947 2947 void BitAndNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2948 2948 { 2949 nodeStack.append( expr2.get());2950 nodeStack.append( expr1.get());2949 nodeStack.append(m_expr2.get()); 2950 nodeStack.append(m_expr1.get()); 2951 2951 } 2952 2952 … … 2954 2954 JSValue* BitAndNode::evaluate(ExecState* exec) 2955 2955 { 2956 JSValue *v1 = expr1->evaluate(exec);2956 JSValue *v1 = m_expr1->evaluate(exec); 2957 2957 KJS_CHECKEXCEPTIONVALUE 2958 JSValue *v2 = expr2->evaluate(exec);2958 JSValue *v2 = m_expr2->evaluate(exec); 2959 2959 KJS_CHECKEXCEPTIONVALUE 2960 2960 … … 2964 2964 int32_t BitAndNode::inlineEvaluateToInt32(ExecState* exec) 2965 2965 { 2966 int32_t i1 = expr1->evaluateToInt32(exec);2966 int32_t i1 = m_expr1->evaluateToInt32(exec); 2967 2967 KJS_CHECKEXCEPTIONNUMBER 2968 int32_t i2 = expr2->evaluateToInt32(exec);2968 int32_t i2 = m_expr2->evaluateToInt32(exec); 2969 2969 return (i1 & i2); 2970 2970 } … … 2992 2992 void BitXOrNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 2993 2993 { 2994 nodeStack.append( expr2.get());2995 nodeStack.append( expr1.get());2994 nodeStack.append(m_expr2.get()); 2995 nodeStack.append(m_expr1.get()); 2996 2996 } 2997 2997 2998 2998 int32_t BitXOrNode::inlineEvaluateToInt32(ExecState* exec) 2999 2999 { 3000 int i1 = expr1->evaluateToInt32(exec);3000 int i1 = m_expr1->evaluateToInt32(exec); 3001 3001 KJS_CHECKEXCEPTIONNUMBER 3002 int i2 = expr2->evaluateToInt32(exec);3002 int i2 = m_expr2->evaluateToInt32(exec); 3003 3003 return (i1 ^ i2); 3004 3004 } … … 3031 3031 void BitOrNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3032 3032 { 3033 nodeStack.append( expr2.get());3034 nodeStack.append( expr1.get());3033 nodeStack.append(m_expr2.get()); 3034 nodeStack.append(m_expr1.get()); 3035 3035 } 3036 3036 3037 3037 int32_t BitOrNode::inlineEvaluateToInt32(ExecState* exec) 3038 3038 { 3039 int i1 = expr1->evaluateToInt32(exec);3039 int i1 = m_expr1->evaluateToInt32(exec); 3040 3040 KJS_CHECKEXCEPTIONNUMBER 3041 int i2 = expr2->evaluateToInt32(exec);3041 int i2 = m_expr2->evaluateToInt32(exec); 3042 3042 return (i1 | i2); 3043 3043 } … … 3072 3072 void LogicalAndNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3073 3073 { 3074 nodeStack.append( expr2.get());3075 nodeStack.append( expr1.get());3074 nodeStack.append(m_expr2.get()); 3075 nodeStack.append(m_expr1.get()); 3076 3076 } 3077 3077 … … 3079 3079 JSValue* LogicalAndNode::evaluate(ExecState* exec) 3080 3080 { 3081 JSValue* v1 = expr1->evaluate(exec);3081 JSValue* v1 = m_expr1->evaluate(exec); 3082 3082 KJS_CHECKEXCEPTIONVALUE 3083 3083 bool b1 = v1->toBoolean(exec); … … 3085 3085 if (!b1) 3086 3086 return v1; 3087 JSValue* v2 = expr2->evaluate(exec);3087 JSValue* v2 = m_expr2->evaluate(exec); 3088 3088 KJS_CHECKEXCEPTIONVALUE 3089 3089 return v2; … … 3092 3092 bool LogicalAndNode::evaluateToBoolean(ExecState* exec) 3093 3093 { 3094 bool b = expr1->evaluateToBoolean(exec);3094 bool b = m_expr1->evaluateToBoolean(exec); 3095 3095 KJS_CHECKEXCEPTIONBOOLEAN 3096 return b && expr2->evaluateToBoolean(exec);3096 return b && m_expr2->evaluateToBoolean(exec); 3097 3097 } 3098 3098 3099 3099 void LogicalOrNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3100 3100 { 3101 nodeStack.append( expr2.get());3102 nodeStack.append( expr1.get());3101 nodeStack.append(m_expr2.get()); 3102 nodeStack.append(m_expr1.get()); 3103 3103 } 3104 3104 3105 3105 JSValue* LogicalOrNode::evaluate(ExecState* exec) 3106 3106 { 3107 JSValue* v1 = expr1->evaluate(exec);3107 JSValue* v1 = m_expr1->evaluate(exec); 3108 3108 KJS_CHECKEXCEPTIONVALUE 3109 3109 if (v1->toBoolean(exec)) 3110 3110 return v1; 3111 return expr2->evaluate(exec);3111 return m_expr2->evaluate(exec); 3112 3112 } 3113 3113 3114 3114 bool LogicalOrNode::evaluateToBoolean(ExecState* exec) 3115 3115 { 3116 bool b = expr1->evaluateToBoolean(exec);3116 bool b = m_expr1->evaluateToBoolean(exec); 3117 3117 KJS_CHECKEXCEPTIONBOOLEAN 3118 return b || expr2->evaluateToBoolean(exec);3118 return b || m_expr2->evaluateToBoolean(exec); 3119 3119 } 3120 3120 … … 3123 3123 void ConditionalNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3124 3124 { 3125 nodeStack.append( expr2.get());3126 nodeStack.append( expr1.get());3127 nodeStack.append( logical.get());3125 nodeStack.append(m_expr2.get()); 3126 nodeStack.append(m_expr1.get()); 3127 nodeStack.append(m_logical.get()); 3128 3128 } 3129 3129 … … 3131 3131 JSValue* ConditionalNode::evaluate(ExecState* exec) 3132 3132 { 3133 bool b = logical->evaluateToBoolean(exec);3133 bool b = m_logical->evaluateToBoolean(exec); 3134 3134 KJS_CHECKEXCEPTIONVALUE 3135 return b ? expr1->evaluate(exec) :expr2->evaluate(exec);3135 return b ? m_expr1->evaluate(exec) : m_expr2->evaluate(exec); 3136 3136 } 3137 3137 3138 3138 bool ConditionalNode::evaluateToBoolean(ExecState* exec) 3139 3139 { 3140 bool b = logical->evaluateToBoolean(exec);3140 bool b = m_logical->evaluateToBoolean(exec); 3141 3141 KJS_CHECKEXCEPTIONBOOLEAN 3142 return b ? expr1->evaluateToBoolean(exec) :expr2->evaluateToBoolean(exec);3142 return b ? m_expr1->evaluateToBoolean(exec) : m_expr2->evaluateToBoolean(exec); 3143 3143 } 3144 3144 3145 3145 double ConditionalNode::evaluateToNumber(ExecState* exec) 3146 3146 { 3147 bool b = logical->evaluateToBoolean(exec);3147 bool b = m_logical->evaluateToBoolean(exec); 3148 3148 KJS_CHECKEXCEPTIONNUMBER 3149 return b ? expr1->evaluateToNumber(exec) :expr2->evaluateToNumber(exec);3149 return b ? m_expr1->evaluateToNumber(exec) : m_expr2->evaluateToNumber(exec); 3150 3150 } 3151 3151 3152 3152 int32_t ConditionalNode::evaluateToInt32(ExecState* exec) 3153 3153 { 3154 bool b = logical->evaluateToBoolean(exec);3154 bool b = m_logical->evaluateToBoolean(exec); 3155 3155 KJS_CHECKEXCEPTIONNUMBER 3156 return b ? expr1->evaluateToInt32(exec) :expr2->evaluateToInt32(exec);3156 return b ? m_expr1->evaluateToInt32(exec) : m_expr2->evaluateToInt32(exec); 3157 3157 } 3158 3158 3159 3159 uint32_t ConditionalNode::evaluateToUInt32(ExecState* exec) 3160 3160 { 3161 bool b = logical->evaluateToBoolean(exec);3161 bool b = m_logical->evaluateToBoolean(exec); 3162 3162 KJS_CHECKEXCEPTIONNUMBER 3163 return b ? expr1->evaluateToUInt32(exec) :expr2->evaluateToUInt32(exec);3163 return b ? m_expr1->evaluateToUInt32(exec) : m_expr2->evaluateToUInt32(exec); 3164 3164 } 3165 3165 … … 3521 3521 void CommaNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3522 3522 { 3523 nodeStack.append( expr2.get());3524 nodeStack.append( expr1.get());3523 nodeStack.append(m_expr2.get()); 3524 nodeStack.append(m_expr1.get()); 3525 3525 } 3526 3526 … … 3528 3528 JSValue* CommaNode::evaluate(ExecState *exec) 3529 3529 { 3530 expr1->evaluate(exec);3530 m_expr1->evaluate(exec); 3531 3531 KJS_CHECKEXCEPTIONVALUE 3532 return expr2->evaluate(exec);3532 return m_expr2->evaluate(exec); 3533 3533 } 3534 3534 3535 3535 // ------------------------------ ConstDeclNode ---------------------------------- 3536 3536 3537 ConstDeclNode::ConstDeclNode(const Identifier& id , ExpressionNode* in)3538 : ident(id)3539 , init(in)3537 ConstDeclNode::ConstDeclNode(const Identifier& ident, ExpressionNode* init) 3538 : m_ident(ident) 3539 , m_init(init) 3540 3540 { 3541 3541 } … … 3543 3543 void ConstDeclNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3544 3544 { 3545 if ( next)3546 nodeStack.append( next.get());3547 if ( init)3548 nodeStack.append( init.get());3545 if (m_next) 3546 nodeStack.append(m_next.get()); 3547 if (m_init) 3548 nodeStack.append(m_init.get()); 3549 3549 } 3550 3550 … … 3562 3562 do { 3563 3563 base = *iter; 3564 if (base->getPropertySlot(exec, ident, slot))3564 if (base->getPropertySlot(exec, m_ident, slot)) 3565 3565 break; 3566 3566 … … 3569 3569 3570 3570 unsigned flags = 0; 3571 base->getPropertyAttributes( ident, flags);3571 base->getPropertyAttributes(m_ident, flags); 3572 3572 flags |= ReadOnly; 3573 3573 3574 base->put(exec, ident, val, flags);3574 base->put(exec, m_ident, val, flags); 3575 3575 } 3576 3576 … … 3578 3578 inline void ConstDeclNode::evaluateSingle(ExecState* exec) 3579 3579 { 3580 ASSERT(exec->variableObject()->hasOwnProperty(exec, ident) || exec->codeType() == EvalCode); // Guaranteed by processDeclarations.3580 ASSERT(exec->variableObject()->hasOwnProperty(exec, m_ident) || exec->codeType() == EvalCode); // Guaranteed by processDeclarations. 3581 3581 const ScopeChain& chain = exec->scopeChain(); 3582 3582 JSObject* variableObject = exec->variableObject(); … … 3586 3586 bool inGlobalScope = ++chain.begin() == chain.end(); 3587 3587 3588 if ( init) {3588 if (m_init) { 3589 3589 if (inGlobalScope) { 3590 JSValue* val = init->evaluate(exec);3590 JSValue* val = m_init->evaluate(exec); 3591 3591 int flags = Internal; 3592 3592 if (exec->codeType() != EvalCode) 3593 3593 flags |= DontDelete; 3594 3594 flags |= ReadOnly; 3595 variableObject->put(exec, ident, val, flags);3595 variableObject->put(exec, m_ident, val, flags); 3596 3596 } else { 3597 JSValue* val = init->evaluate(exec);3597 JSValue* val = m_init->evaluate(exec); 3598 3598 KJS_CHECKEXCEPTIONVOID 3599 3599 … … 3605 3605 3606 3606 unsigned flags = 0; 3607 variableObject->getPropertyAttributes( ident, flags);3607 variableObject->getPropertyAttributes(m_ident, flags); 3608 3608 flags |= ReadOnly; 3609 3609 3610 variableObject->put(exec, ident, val, flags);3610 variableObject->put(exec, m_ident, val, flags); 3611 3611 } 3612 3612 } … … 3617 3617 evaluateSingle(exec); 3618 3618 3619 if (ConstDeclNode* n = next.get()) {3619 if (ConstDeclNode* n = m_next.get()) { 3620 3620 do { 3621 3621 n->evaluateSingle(exec); 3622 3622 KJS_CHECKEXCEPTIONVALUE 3623 n = n-> next.get();3623 n = n->m_next.get(); 3624 3624 } while (n); 3625 3625 } … … 3631 3631 void ConstStatementNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3632 3632 { 3633 ASSERT( next);3634 nodeStack.append( next.get());3633 ASSERT(m_next); 3634 nodeStack.append(m_next.get()); 3635 3635 } 3636 3636 … … 3638 3638 JSValue* ConstStatementNode::execute(ExecState* exec) 3639 3639 { 3640 next->evaluate(exec);3640 m_next->evaluate(exec); 3641 3641 KJS_CHECKEXCEPTION 3642 3642 … … 3718 3718 void ExprStatementNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3719 3719 { 3720 ASSERT( expr);3721 nodeStack.append( expr.get());3720 ASSERT(m_expr); 3721 nodeStack.append(m_expr.get()); 3722 3722 } 3723 3723 … … 3725 3725 JSValue* ExprStatementNode::execute(ExecState* exec) 3726 3726 { 3727 JSValue* value = expr->evaluate(exec);3727 JSValue* value = m_expr->evaluate(exec); 3728 3728 KJS_CHECKEXCEPTION 3729 3729 … … 3735 3735 void VarStatementNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3736 3736 { 3737 ASSERT( expr);3738 nodeStack.append( expr.get());3737 ASSERT(m_expr); 3738 nodeStack.append(m_expr.get()); 3739 3739 } 3740 3740 3741 3741 JSValue* VarStatementNode::execute(ExecState* exec) 3742 3742 { 3743 expr->evaluate(exec);3743 m_expr->evaluate(exec); 3744 3744 KJS_CHECKEXCEPTION 3745 3745 … … 3788 3788 void DoWhileNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3789 3789 { 3790 nodeStack.append( statement.get());3791 nodeStack.append( expr.get());3790 nodeStack.append(m_statement.get()); 3791 nodeStack.append(m_expr.get()); 3792 3792 } 3793 3793 … … 3799 3799 while (1) { 3800 3800 exec->pushIteration(); 3801 JSValue* statementValue = statement->execute(exec);3801 JSValue* statementValue = m_statement->execute(exec); 3802 3802 exec->popIteration(); 3803 3803 … … 3809 3809 3810 3810 if (exec->completionType() != Normal) { 3811 if (exec->completionType() == Continue && ls.contains(exec->breakOrContinueTarget()))3811 if (exec->completionType() == Continue && m_labelStack.contains(exec->breakOrContinueTarget())) 3812 3812 goto continueDoWhileLoop; 3813 if (exec->completionType() == Break && ls.contains(exec->breakOrContinueTarget()))3813 if (exec->completionType() == Break && m_labelStack.contains(exec->breakOrContinueTarget())) 3814 3814 break; 3815 3815 return statementValue; … … 3817 3817 3818 3818 continueDoWhileLoop: 3819 bool b = expr->evaluateToBoolean(exec);3819 bool b = m_expr->evaluateToBoolean(exec); 3820 3820 KJS_CHECKEXCEPTION 3821 3821 if (!b) … … 3830 3830 void WhileNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3831 3831 { 3832 nodeStack.append( statement.get());3833 nodeStack.append( expr.get());3832 nodeStack.append(m_statement.get()); 3833 nodeStack.append(m_expr.get()); 3834 3834 } 3835 3835 … … 3840 3840 3841 3841 while (1) { 3842 bool b = expr->evaluateToBoolean(exec);3842 bool b = m_expr->evaluateToBoolean(exec); 3843 3843 KJS_CHECKEXCEPTION 3844 3844 if (!b) … … 3846 3846 3847 3847 exec->pushIteration(); 3848 JSValue* statementValue = statement->execute(exec);3848 JSValue* statementValue = m_statement->execute(exec); 3849 3849 exec->popIteration(); 3850 3850 … … 3856 3856 3857 3857 if (exec->completionType() != Normal) { 3858 if (exec->completionType() == Continue && ls.contains(exec->breakOrContinueTarget()))3858 if (exec->completionType() == Continue && m_labelStack.contains(exec->breakOrContinueTarget())) 3859 3859 continue; 3860 if (exec->completionType() == Break && ls.contains(exec->breakOrContinueTarget()))3860 if (exec->completionType() == Break && m_labelStack.contains(exec->breakOrContinueTarget())) 3861 3861 break; 3862 3862 return statementValue; … … 3871 3871 void ForNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3872 3872 { 3873 nodeStack.append( statement.get());3874 nodeStack.append( expr3.get());3875 nodeStack.append( expr2.get());3876 nodeStack.append( expr1.get());3873 nodeStack.append(m_statement.get()); 3874 nodeStack.append(m_expr3.get()); 3875 nodeStack.append(m_expr2.get()); 3876 nodeStack.append(m_expr1.get()); 3877 3877 } 3878 3878 … … 3882 3882 JSValue* value = 0; 3883 3883 3884 expr1->evaluate(exec);3884 m_expr1->evaluate(exec); 3885 3885 KJS_CHECKEXCEPTION 3886 3886 3887 3887 while (1) { 3888 bool b = expr2->evaluateToBoolean(exec);3888 bool b = m_expr2->evaluateToBoolean(exec); 3889 3889 KJS_CHECKEXCEPTION 3890 3890 if (!b) … … 3892 3892 3893 3893 exec->pushIteration(); 3894 JSValue* statementValue = statement->execute(exec);3894 JSValue* statementValue = m_statement->execute(exec); 3895 3895 exec->popIteration(); 3896 3896 if (statementValue) … … 3901 3901 3902 3902 if (exec->completionType() != Normal) { 3903 if (exec->completionType() == Continue && ls.contains(exec->breakOrContinueTarget()))3903 if (exec->completionType() == Continue && m_labelStack.contains(exec->breakOrContinueTarget())) 3904 3904 goto continueForLoop; 3905 if (exec->completionType() == Break && ls.contains(exec->breakOrContinueTarget()))3905 if (exec->completionType() == Break && m_labelStack.contains(exec->breakOrContinueTarget())) 3906 3906 break; 3907 3907 return statementValue; … … 3909 3909 3910 3910 continueForLoop: 3911 expr3->evaluate(exec);3911 m_expr3->evaluate(exec); 3912 3912 KJS_CHECKEXCEPTION 3913 3913 } … … 3918 3918 // ------------------------------ ForInNode ------------------------------------ 3919 3919 3920 ForInNode::ForInNode(ExpressionNode* l, ExpressionNode* e, StatementNode* s) 3921 : init(0L), lexpr(l), expr(e), statement(s), identIsVarDecl(false) 3922 { 3923 } 3924 3925 ForInNode::ForInNode(const Identifier& i, ExpressionNode* in, ExpressionNode* e, StatementNode* s) 3926 : ident(i), lexpr(new ResolveNode(i)), expr(e), statement(s), identIsVarDecl(true) 3920 ForInNode::ForInNode(ExpressionNode* l, ExpressionNode* expr, StatementNode* statement) 3921 : m_init(0L) 3922 , m_lexpr(l) 3923 , m_expr(expr) 3924 , m_statement(statement) 3925 , m_identIsVarDecl(false) 3926 { 3927 } 3928 3929 ForInNode::ForInNode(const Identifier& ident, ExpressionNode* in, ExpressionNode* expr, StatementNode* statement) 3930 : m_ident(ident) 3931 , m_lexpr(new ResolveNode(ident)) 3932 , m_expr(expr) 3933 , m_statement(statement) 3934 , m_identIsVarDecl(true) 3927 3935 { 3928 3936 if (in) 3929 init = new AssignResolveNode(i, in);3937 m_init = new AssignResolveNode(ident, in); 3930 3938 // for( var foo = bar in baz ) 3931 3939 } … … 3933 3941 void ForInNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 3934 3942 { 3935 nodeStack.append( statement.get());3936 nodeStack.append( expr.get());3937 nodeStack.append( lexpr.get());3938 if ( init)3939 nodeStack.append( init.get());3943 nodeStack.append(m_statement.get()); 3944 nodeStack.append(m_expr.get()); 3945 nodeStack.append(m_lexpr.get()); 3946 if (m_init) 3947 nodeStack.append(m_init.get()); 3940 3948 } 3941 3949 … … 3945 3953 JSValue* value = 0; 3946 3954 3947 if ( init) {3948 init->evaluate(exec);3955 if (m_init) { 3956 m_init->evaluate(exec); 3949 3957 KJS_CHECKEXCEPTION 3950 3958 } 3951 3959 3952 JSValue* e = expr->evaluate(exec);3960 JSValue* e = m_expr->evaluate(exec); 3953 3961 KJS_CHECKEXCEPTION 3954 3962 … … 3970 3978 JSValue *str = jsOwnedString(name.ustring()); 3971 3979 3972 if ( lexpr->isResolveNode()) {3973 const Identifier &ident = static_cast<ResolveNode *>(lexpr.get())->identifier();3980 if (m_lexpr->isResolveNode()) { 3981 const Identifier& ident = static_cast<ResolveNode*>(m_lexpr.get())->identifier(); 3974 3982 3975 3983 const ScopeChain& chain = exec->scopeChain(); … … 3993 4001 if (iter == end) 3994 4002 o->put(exec, ident, str); 3995 } else if ( lexpr->isDotAccessorNode()) {3996 const Identifier& ident = static_cast<DotAccessorNode *>(lexpr.get())->identifier();3997 JSValue *v = static_cast<DotAccessorNode *>(lexpr.get())->base()->evaluate(exec);4003 } else if (m_lexpr->isDotAccessorNode()) { 4004 const Identifier& ident = static_cast<DotAccessorNode*>(m_lexpr.get())->identifier(); 4005 JSValue* v = static_cast<DotAccessorNode*>(m_lexpr.get())->base()->evaluate(exec); 3998 4006 KJS_CHECKEXCEPTION 3999 4007 JSObject *o = v->toObject(exec); … … 4001 4009 o->put(exec, ident, str); 4002 4010 } else { 4003 ASSERT( lexpr->isBracketAccessorNode());4004 JSValue *v = static_cast<BracketAccessorNode *>(lexpr.get())->base()->evaluate(exec);4011 ASSERT(m_lexpr->isBracketAccessorNode()); 4012 JSValue* v = static_cast<BracketAccessorNode*>(m_lexpr.get())->base()->evaluate(exec); 4005 4013 KJS_CHECKEXCEPTION 4006 JSValue *v2 = static_cast<BracketAccessorNode *>(lexpr.get())->subscript()->evaluate(exec);4014 JSValue* v2 = static_cast<BracketAccessorNode*>(m_lexpr.get())->subscript()->evaluate(exec); 4007 4015 KJS_CHECKEXCEPTION 4008 4016 JSObject *o = v->toObject(exec); … … 4017 4025 4018 4026 exec->pushIteration(); 4019 JSValue* statementValue = statement->execute(exec);4027 JSValue* statementValue = m_statement->execute(exec); 4020 4028 exec->popIteration(); 4021 4029 if (statementValue) … … 4023 4031 4024 4032 if (exec->completionType() != Normal) { 4025 if (exec->completionType() == Continue && ls.contains(exec->breakOrContinueTarget()))4033 if (exec->completionType() == Continue && m_labelStack.contains(exec->breakOrContinueTarget())) 4026 4034 continue; 4027 if (exec->completionType() == Break && ls.contains(exec->breakOrContinueTarget()))4035 if (exec->completionType() == Break && m_labelStack.contains(exec->breakOrContinueTarget())) 4028 4036 break; 4029 4037 return statementValue; … … 4039 4047 JSValue* ContinueNode::execute(ExecState* exec) 4040 4048 { 4041 if ( ident.isEmpty() && !exec->inIteration())4049 if (m_ident.isEmpty() && !exec->inIteration()) 4042 4050 return setErrorCompletion(exec, SyntaxError, "Invalid continue statement."); 4043 if (! ident.isEmpty() && !exec->seenLabels().contains(ident))4044 return setErrorCompletion(exec, SyntaxError, "Label %s not found.", ident);4045 return exec->setContinueCompletion(& ident);4051 if (!m_ident.isEmpty() && !exec->seenLabels().contains(m_ident)) 4052 return setErrorCompletion(exec, SyntaxError, "Label %s not found.", m_ident); 4053 return exec->setContinueCompletion(&m_ident); 4046 4054 } 4047 4055 … … 4051 4059 JSValue* BreakNode::execute(ExecState *exec) 4052 4060 { 4053 if ( ident.isEmpty() && !exec->inIteration() && !exec->inSwitch())4061 if (m_ident.isEmpty() && !exec->inIteration() && !exec->inSwitch()) 4054 4062 return setErrorCompletion(exec, SyntaxError, "Invalid break statement."); 4055 if (! ident.isEmpty() && !exec->seenLabels().contains(ident))4063 if (!m_ident.isEmpty() && !exec->seenLabels().contains(m_ident)) 4056 4064 return setErrorCompletion(exec, SyntaxError, "Label %s not found."); 4057 return exec->setBreakCompletion(& ident);4065 return exec->setBreakCompletion(&m_ident); 4058 4066 } 4059 4067 … … 4062 4070 void ReturnNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 4063 4071 { 4064 if ( value)4065 nodeStack.append( value.get());4072 if (m_value) 4073 nodeStack.append(m_value.get()); 4066 4074 } 4067 4075 … … 4073 4081 return setErrorCompletion(exec, SyntaxError, "Invalid return statement."); 4074 4082 4075 if (! value)4083 if (!m_value) 4076 4084 return exec->setReturnValueCompletion(jsUndefined()); 4077 4085 4078 JSValue* v = value->evaluate(exec);4086 JSValue* v = m_value->evaluate(exec); 4079 4087 KJS_CHECKEXCEPTION 4080 4088 … … 4087 4095 { 4088 4096 // Can't optimize within statement because "with" introduces a dynamic scope. 4089 nodeStack.append( expr.get());4097 nodeStack.append(m_expr.get()); 4090 4098 } 4091 4099 … … 4093 4101 JSValue* WithNode::execute(ExecState *exec) 4094 4102 { 4095 JSValue *v = expr->evaluate(exec);4103 JSValue *v = m_expr->evaluate(exec); 4096 4104 KJS_CHECKEXCEPTION 4097 4105 JSObject *o = v->toObject(exec); … … 4099 4107 exec->dynamicGlobalObject()->tearOffActivation(exec); 4100 4108 exec->pushScope(o); 4101 JSValue* value = statement->execute(exec);4109 JSValue* value = m_statement->execute(exec); 4102 4110 exec->popScope(); 4103 4111 … … 4109 4117 void CaseClauseNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 4110 4118 { 4111 if ( expr)4112 nodeStack.append( expr.get());4119 if (m_expr) 4120 nodeStack.append(m_expr.get()); 4113 4121 statementListPushFIFO(m_children, nodeStack); 4114 4122 } … … 4117 4125 JSValue *CaseClauseNode::evaluate(ExecState *exec) 4118 4126 { 4119 JSValue *v = expr->evaluate(exec);4127 JSValue *v = m_expr->evaluate(exec); 4120 4128 KJS_CHECKEXCEPTIONVALUE 4121 4129 … … 4133 4141 void ClauseListNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 4134 4142 { 4135 if ( next)4136 nodeStack.append( next.get());4137 nodeStack.append( clause.get());4143 if (m_next) 4144 nodeStack.append(m_next.get()); 4145 nodeStack.append(m_clause.get()); 4138 4146 } 4139 4147 4140 4148 // ------------------------------ CaseBlockNode -------------------------------- 4141 4149 4142 CaseBlockNode::CaseBlockNode(ClauseListNode* l 1, CaseClauseNode* d, ClauseListNode* l2)4143 : list1(l1)4144 , def(d)4145 , list2(l2)4150 CaseBlockNode::CaseBlockNode(ClauseListNode* list1, CaseClauseNode* defaultClause, ClauseListNode* list2) 4151 : m_list1(list1) 4152 , m_defaultClause(defaultClause) 4153 , m_list2(list2) 4146 4154 { 4147 4155 } … … 4149 4157 void CaseBlockNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 4150 4158 { 4151 if ( list2)4152 nodeStack.append( list2.get());4153 if ( def)4154 nodeStack.append( def.get());4155 if ( list1)4156 nodeStack.append( list1.get());4159 if (m_list2) 4160 nodeStack.append(m_list2.get()); 4161 if (m_defaultClause) 4162 nodeStack.append(m_defaultClause.get()); 4163 if (m_list1) 4164 nodeStack.append(m_list1.get()); 4157 4165 } 4158 4166 … … 4160 4168 JSValue* CaseBlockNode::executeBlock(ExecState* exec, JSValue* input) 4161 4169 { 4162 ClauseListNode* a = list1.get();4170 ClauseListNode* a = m_list1.get(); 4163 4171 while (a) { 4164 4172 CaseClauseNode* clause = a->getClause(); … … 4179 4187 } 4180 4188 4181 ClauseListNode* b = list2.get();4189 ClauseListNode* b = m_list2.get(); 4182 4190 while (b) { 4183 4191 CaseClauseNode* clause = b->getClause(); … … 4194 4202 4195 4203 // default clause 4196 if ( def) {4197 JSValue* res = def->executeStatements(exec);4204 if (m_defaultClause) { 4205 JSValue* res = m_defaultClause->executeStatements(exec); 4198 4206 if (exec->completionType() != Normal) 4199 4207 return res; 4200 4208 } 4201 b = list2.get();4209 b = m_list2.get(); 4202 4210 step18: 4203 4211 while (b) { … … 4219 4227 void SwitchNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 4220 4228 { 4221 nodeStack.append( block.get());4222 nodeStack.append( expr.get());4229 nodeStack.append(m_block.get()); 4230 nodeStack.append(m_expr.get()); 4223 4231 } 4224 4232 … … 4226 4234 JSValue* SwitchNode::execute(ExecState* exec) 4227 4235 { 4228 JSValue *v = expr->evaluate(exec);4236 JSValue *v = m_expr->evaluate(exec); 4229 4237 KJS_CHECKEXCEPTION 4230 4238 4231 4239 exec->pushSwitch(); 4232 JSValue* result = block->executeBlock(exec, v);4240 JSValue* result = m_block->executeBlock(exec, v); 4233 4241 exec->popSwitch(); 4234 4242 4235 if (exec->completionType() == Break && ls.contains(exec->breakOrContinueTarget()))4243 if (exec->completionType() == Break && m_labelStack.contains(exec->breakOrContinueTarget())) 4236 4244 exec->setCompletionType(Normal); 4237 4245 return result; … … 4242 4250 void LabelNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 4243 4251 { 4244 nodeStack.append( statement.get());4252 nodeStack.append(m_statement.get()); 4245 4253 } 4246 4254 4247 4255 // ECMA 12.12 4248 JSValue* LabelNode::execute(ExecState *exec)4249 { 4250 if (!exec->seenLabels().push( label))4251 return setErrorCompletion(exec, SyntaxError, "Duplicated label %s found.", label);4252 JSValue* result = statement->execute(exec);4256 JSValue* LabelNode::execute(ExecState* exec) 4257 { 4258 if (!exec->seenLabels().push(m_label)) 4259 return setErrorCompletion(exec, SyntaxError, "Duplicated label %s found.", m_label); 4260 JSValue* result = m_statement->execute(exec); 4253 4261 exec->seenLabels().pop(); 4254 4262 4255 if (exec->completionType() == Break && exec->breakOrContinueTarget() == label)4263 if (exec->completionType() == Break && exec->breakOrContinueTarget() == m_label) 4256 4264 exec->setCompletionType(Normal); 4257 4265 return result; … … 4262 4270 void ThrowNode::optimizeVariableAccess(const SymbolTable&, const LocalStorage&, NodeStack& nodeStack) 4263 4271 { 4264 nodeStack.append( expr.get());4272 nodeStack.append(m_expr.get()); 4265 4273 } 4266 4274 … … 4268 4276 JSValue* ThrowNode::execute(ExecState* exec) 4269 4277 { 4270 JSValue *v = expr->evaluate(exec);4278 JSValue *v = m_expr->evaluate(exec); 4271 4279 KJS_CHECKEXCEPTION 4272 4280 … … 4280 4288 { 4281 4289 // Can't optimize within catchBlock because "catch" introduces a dynamic scope. 4282 if ( finallyBlock)4283 nodeStack.append( finallyBlock.get());4284 nodeStack.append( tryBlock.get());4290 if (m_finallyBlock) 4291 nodeStack.append(m_finallyBlock.get()); 4292 nodeStack.append(m_tryBlock.get()); 4285 4293 } 4286 4294 4287 4295 // ECMA 12.14 4288 JSValue* TryNode::execute(ExecState *exec)4289 { 4290 JSValue* result = tryBlock->execute(exec);4296 JSValue* TryNode::execute(ExecState* exec) 4297 { 4298 JSValue* result = m_tryBlock->execute(exec); 4291 4299 4292 4300 if (Collector::isOutOfMemory()) 4293 4301 return result; // don't try to catch an out of memory exception thrown by the collector 4294 4302 4295 if ( catchBlock && exec->completionType() == Throw) {4303 if (m_catchBlock && exec->completionType() == Throw) { 4296 4304 JSObject* obj = new JSObject; 4297 obj->put(exec, exceptionIdent, result, DontDelete);4305 obj->put(exec, m_exceptionIdent, result, DontDelete); 4298 4306 exec->dynamicGlobalObject()->tearOffActivation(exec); 4299 4307 exec->pushScope(obj); 4300 result = catchBlock->execute(exec);4308 result = m_catchBlock->execute(exec); 4301 4309 exec->popScope(); 4302 4310 } 4303 4311 4304 if ( finallyBlock) {4312 if (m_finallyBlock) { 4305 4313 ComplType savedCompletionType = exec->completionType(); 4306 JSValue* finallyResult = finallyBlock->execute(exec);4314 JSValue* finallyResult = m_finallyBlock->execute(exec); 4307 4315 if (exec->completionType() != Normal) 4308 4316 result = finallyResult; … … 4381 4389 4382 4390 for (size_t i = 0, size = m_functionStack.size(); i < size; ++i, ++localStorageIndex) { 4383 UString::Rep* rep = m_functionStack[i]-> ident.ustring().rep();4391 UString::Rep* rep = m_functionStack[i]->m_ident.ustring().rep(); 4384 4392 symbolTable.set(rep, localStorageIndex); 4385 4393 } … … 4412 4420 m_functionIndexes.resize(size); 4413 4421 for (size_t i = 0; i < size; ++i) { 4414 UString::Rep* rep = m_functionStack[i]-> ident.ustring().rep();4422 UString::Rep* rep = m_functionStack[i]->m_ident.ustring().rep(); 4415 4423 pair<SymbolTable::iterator, bool> result = symbolTable.add(rep, localStorageIndex); 4416 4424 m_functionIndexes[i] = result.first->second; … … 4582 4590 for (i = 0, size = m_functionStack.size(); i < size; ++i) { 4583 4591 FuncDeclNode* node = m_functionStack[i]; 4584 variableObject->put(exec, node-> ident, node->makeFunction(exec), minAttributes);4592 variableObject->put(exec, node->m_ident, node->makeFunction(exec), minAttributes); 4585 4593 } 4586 4594 } … … 4652 4660 void FuncDeclNode::addParams() 4653 4661 { 4654 for (ParameterNode *p = param.get(); p != 0L; p = p->nextParam())4655 body->parameters().append(p->ident());4662 for (ParameterNode *p = m_parameter.get(); p != 0L; p = p->nextParam()) 4663 m_body->parameters().append(p->ident()); 4656 4664 } 4657 4665 4658 4666 FunctionImp* FuncDeclNode::makeFunction(ExecState* exec) 4659 4667 { 4660 FunctionImp *func = new FunctionImp(exec, ident,body.get(), exec->scopeChain());4668 FunctionImp *func = new FunctionImp(exec, m_ident, m_body.get(), exec->scopeChain()); 4661 4669 4662 4670 JSObject* proto = exec->lexicalGlobalObject()->objectConstructor()->construct(exec, exec->emptyList()); … … 4664 4672 func->put(exec, exec->propertyNames().prototype, proto, Internal|DontDelete); 4665 4673 4666 func->put(exec, exec->propertyNames().length, jsNumber( body->parameters().size()), ReadOnly|DontDelete|DontEnum);4674 func->put(exec, exec->propertyNames().length, jsNumber(m_body->parameters().size()), ReadOnly|DontDelete|DontEnum); 4667 4675 return func; 4668 4676 } … … 4678 4686 void FuncExprNode::addParams() 4679 4687 { 4680 for (ParameterNode *p = param.get(); p != 0L; p = p->nextParam())4681 body->parameters().append(p->ident());4688 for (ParameterNode* p = m_parameter.get(); p != 0L; p = p->nextParam()) 4689 m_body->parameters().append(p->ident()); 4682 4690 } 4683 4691 … … 4686 4694 exec->dynamicGlobalObject()->tearOffActivation(exec); 4687 4695 4688 bool named = ! ident.isNull();4696 bool named = !m_ident.isNull(); 4689 4697 JSObject *functionScopeObject = 0; 4690 4698 … … 4697 4705 } 4698 4706 4699 FunctionImp* func = new FunctionImp(exec, ident,body.get(), exec->scopeChain());4707 FunctionImp* func = new FunctionImp(exec, m_ident, m_body.get(), exec->scopeChain()); 4700 4708 JSObject* proto = exec->lexicalGlobalObject()->objectConstructor()->construct(exec, exec->emptyList()); 4701 4709 proto->put(exec, exec->propertyNames().constructor, func, ReadOnly | DontDelete | DontEnum); … … 4703 4711 4704 4712 if (named) { 4705 functionScopeObject->put(exec, ident, func, Internal | ReadOnly | (exec->codeType() == EvalCode ? 0 : DontDelete));4713 functionScopeObject->put(exec, m_ident, func, Internal | ReadOnly | (exec->codeType() == EvalCode ? 0 : DontDelete)); 4706 4714 exec->popScope(); 4707 4715 }
Note:
See TracChangeset
for help on using the changeset viewer.