Changeset 27749 in webkit for trunk/JavaScriptCore/kjs/nodes.cpp
- Timestamp:
- Nov 13, 2007, 12:34:25 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/nodes.cpp
r27747 r27749 2602 2602 2603 2603 // ECMA 11.8.2 2604 JSValue* GreaterNode::evaluate(ExecState* exec) 2605 { 2606 JSValue* v1 = expr1->evaluate(exec); 2607 KJS_CHECKEXCEPTIONVALUE 2608 JSValue* v2 = expr2->evaluate(exec); 2609 KJS_CHECKEXCEPTIONVALUE 2610 return jsBoolean(lessThan(exec, v2, v1)); 2611 } 2612 2613 bool GreaterNode::evaluateToBoolean(ExecState *exec) 2604 bool GreaterNode::inlineEvaluateToBoolean(ExecState *exec) 2614 2605 { 2615 2606 JSValue* v1 = expr1->evaluate(exec); … … 2620 2611 } 2621 2612 2613 JSValue* GreaterNode::evaluate(ExecState* exec) 2614 { 2615 return jsBoolean(inlineEvaluateToBoolean(exec)); 2616 } 2617 2618 bool GreaterNode::evaluateToBoolean(ExecState *exec) 2619 { 2620 return inlineEvaluateToBoolean(exec); 2621 } 2622 2622 2623 void LessEqNode::optimizeVariableAccess(FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack) 2623 2624 { … … 2627 2628 2628 2629 // ECMA 11.8.3 2629 JSValue* LessEqNode::evaluate(ExecState* exec) 2630 { 2631 JSValue* v1 = expr1->evaluate(exec); 2632 KJS_CHECKEXCEPTIONVALUE 2633 JSValue* v2 = expr2->evaluate(exec); 2634 KJS_CHECKEXCEPTIONVALUE 2635 return jsBoolean(lessThanEq(exec, v1, v2)); 2636 } 2637 2638 bool LessEqNode::evaluateToBoolean(ExecState* exec) 2630 bool LessEqNode::inlineEvaluateToBoolean(ExecState* exec) 2639 2631 { 2640 2632 JSValue* v1 = expr1->evaluate(exec); … … 2645 2637 } 2646 2638 2639 JSValue* LessEqNode::evaluate(ExecState* exec) 2640 { 2641 return jsBoolean(inlineEvaluateToBoolean(exec)); 2642 } 2643 2644 bool LessEqNode::evaluateToBoolean(ExecState* exec) 2645 { 2646 return inlineEvaluateToBoolean(exec); 2647 } 2648 2647 2649 void GreaterEqNode::optimizeVariableAccess(FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack) 2648 2650 { … … 2652 2654 2653 2655 // ECMA 11.8.4 2654 JSValue* GreaterEqNode::evaluate(ExecState* exec) 2655 { 2656 JSValue* v1 = expr1->evaluate(exec); 2657 KJS_CHECKEXCEPTIONVALUE 2658 JSValue* v2 = expr2->evaluate(exec); 2659 KJS_CHECKEXCEPTIONVALUE 2660 return jsBoolean(lessThanEq(exec, v2, v1)); 2661 } 2662 2663 bool GreaterEqNode::evaluateToBoolean(ExecState* exec) 2656 bool GreaterEqNode::inlineEvaluateToBoolean(ExecState* exec) 2664 2657 { 2665 2658 JSValue* v1 = expr1->evaluate(exec); … … 2668 2661 KJS_CHECKEXCEPTIONBOOLEAN 2669 2662 return lessThanEq(exec, v2, v1); 2663 } 2664 2665 JSValue* GreaterEqNode::evaluate(ExecState* exec) 2666 { 2667 return jsBoolean(inlineEvaluateToBoolean(exec)); 2668 } 2669 2670 bool GreaterEqNode::evaluateToBoolean(ExecState* exec) 2671 { 2672 return inlineEvaluateToBoolean(exec); 2670 2673 } 2671 2674 … … 2750 2753 KJS_CHECKEXCEPTIONBOOLEAN 2751 2754 2752 if (!v2->isObject()) 2753 return throwError(exec, TypeError, "Value %s (result of expression %s) is not an object. Cannot be used with 'in' operator.", v2, expr2.get()); 2755 if (!v2->isObject()) { 2756 throwError(exec, TypeError, "Value %s (result of expression %s) is not an object. Cannot be used with 'in' operator.", v2, expr2.get()); 2757 return false; 2758 } 2754 2759 2755 2760 return static_cast<JSObject*>(v2)->hasProperty(exec, Identifier(v1->toString(exec))); … … 2765 2770 2766 2771 // ECMA 11.9.1 2767 JSValue* EqualNode::evaluate(ExecState* exec) 2768 { 2769 JSValue* v1 = expr1->evaluate(exec); 2770 KJS_CHECKEXCEPTIONVALUE 2771 JSValue* v2 = expr2->evaluate(exec); 2772 KJS_CHECKEXCEPTIONVALUE 2773 2774 return jsBoolean(equal(exec, v1, v2)); 2775 } 2776 2777 bool EqualNode::evaluateToBoolean(ExecState* exec) 2772 bool EqualNode::inlineEvaluateToBoolean(ExecState* exec) 2778 2773 { 2779 2774 JSValue* v1 = expr1->evaluate(exec); … … 2781 2776 JSValue* v2 = expr2->evaluate(exec); 2782 2777 KJS_CHECKEXCEPTIONBOOLEAN 2783 2778 2784 2779 return equal(exec, v1, v2); 2780 } 2781 2782 JSValue* EqualNode::evaluate(ExecState* exec) 2783 { 2784 return jsBoolean(inlineEvaluateToBoolean(exec)); 2785 } 2786 2787 bool EqualNode::evaluateToBoolean(ExecState* exec) 2788 { 2789 return inlineEvaluateToBoolean(exec); 2785 2790 } 2786 2791 … … 2792 2797 2793 2798 // ECMA 11.9.2 2794 JSValue* NotEqualNode::evaluate(ExecState* exec) 2795 { 2796 JSValue* v1 = expr1->evaluate(exec); 2797 KJS_CHECKEXCEPTIONVALUE 2798 JSValue* v2 = expr2->evaluate(exec); 2799 KJS_CHECKEXCEPTIONVALUE 2800 2801 return jsBoolean(!equal(exec,v1, v2)); 2802 } 2803 2804 bool NotEqualNode::evaluateToBoolean(ExecState* exec) 2799 bool NotEqualNode::inlineEvaluateToBoolean(ExecState* exec) 2805 2800 { 2806 2801 JSValue* v1 = expr1->evaluate(exec); … … 2812 2807 } 2813 2808 2809 JSValue* NotEqualNode::evaluate(ExecState* exec) 2810 { 2811 return jsBoolean(inlineEvaluateToBoolean(exec)); 2812 } 2813 2814 bool NotEqualNode::evaluateToBoolean(ExecState* exec) 2815 { 2816 return inlineEvaluateToBoolean(exec); 2817 } 2818 2814 2819 void StrictEqualNode::optimizeVariableAccess(FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack) 2815 2820 { … … 2819 2824 2820 2825 // ECMA 11.9.4 2821 JSValue* StrictEqualNode::evaluate(ExecState* exec) 2822 { 2823 JSValue* v1 = expr1->evaluate(exec); 2824 KJS_CHECKEXCEPTIONVALUE 2825 JSValue* v2 = expr2->evaluate(exec); 2826 KJS_CHECKEXCEPTIONVALUE 2827 2828 return jsBoolean(strictEqual(exec,v1, v2)); 2829 } 2830 2831 bool StrictEqualNode::evaluateToBoolean(ExecState* exec) 2826 bool StrictEqualNode::inlineEvaluateToBoolean(ExecState* exec) 2832 2827 { 2833 2828 JSValue* v1 = expr1->evaluate(exec); … … 2839 2834 } 2840 2835 2836 JSValue* StrictEqualNode::evaluate(ExecState* exec) 2837 { 2838 return jsBoolean(inlineEvaluateToBoolean(exec)); 2839 } 2840 2841 bool StrictEqualNode::evaluateToBoolean(ExecState* exec) 2842 { 2843 return inlineEvaluateToBoolean(exec); 2844 } 2845 2841 2846 void NotStrictEqualNode::optimizeVariableAccess(FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack) 2842 2847 { … … 2846 2851 2847 2852 // ECMA 11.9.5 2848 JSValue* NotStrictEqualNode::evaluate(ExecState* exec) 2849 { 2850 JSValue* v1 = expr1->evaluate(exec); 2851 KJS_CHECKEXCEPTIONVALUE 2852 JSValue* v2 = expr2->evaluate(exec); 2853 KJS_CHECKEXCEPTIONVALUE 2854 2855 return jsBoolean(!strictEqual(exec,v1, v2)); 2856 } 2857 2858 bool NotStrictEqualNode::evaluateToBoolean(ExecState* exec) 2853 bool NotStrictEqualNode::inlineEvaluateToBoolean(ExecState* exec) 2859 2854 { 2860 2855 JSValue* v1 = expr1->evaluate(exec); … … 2864 2859 2865 2860 return !strictEqual(exec,v1, v2); 2861 } 2862 2863 JSValue* NotStrictEqualNode::evaluate(ExecState* exec) 2864 { 2865 return jsBoolean(inlineEvaluateToBoolean(exec)); 2866 } 2867 2868 bool NotStrictEqualNode::evaluateToBoolean(ExecState* exec) 2869 { 2870 return inlineEvaluateToBoolean(exec); 2866 2871 } 2867 2872
Note:
See TracChangeset
for help on using the changeset viewer.