Changeset 27749 in webkit for trunk/JavaScriptCore/kjs/nodes.cpp


Ignore:
Timestamp:
Nov 13, 2007, 12:34:25 AM (18 years ago)
Author:
[email protected]
Message:

2007-11-13 Eric Seidel <[email protected]>

Reviewed by Maciej.

Clean up evaluateToBoolean functions to use inlines instead of copy/paste code

  • kjs/JSImmediate.h:
  • kjs/nodes.cpp: (KJS::GreaterNode::inlineEvaluateToBoolean): (KJS::GreaterNode::evaluate): (KJS::LessEqNode::inlineEvaluateToBoolean): (KJS::LessEqNode::evaluate): (KJS::GreaterEqNode::inlineEvaluateToBoolean): (KJS::GreaterEqNode::evaluate): (KJS::InNode::evaluateToBoolean): (KJS::EqualNode::inlineEvaluateToBoolean): (KJS::EqualNode::evaluate): (KJS::NotEqualNode::inlineEvaluateToBoolean): (KJS::NotEqualNode::evaluate): (KJS::StrictEqualNode::inlineEvaluateToBoolean): (KJS::StrictEqualNode::evaluate): (KJS::NotStrictEqualNode::inlineEvaluateToBoolean): (KJS::NotStrictEqualNode::evaluate):
  • kjs/nodes.h:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/kjs/nodes.cpp

    r27747 r27749  
    26022602
    26032603// 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)
     2604bool GreaterNode::inlineEvaluateToBoolean(ExecState *exec)
    26142605{
    26152606    JSValue* v1 = expr1->evaluate(exec);
     
    26202611}
    26212612
     2613JSValue* GreaterNode::evaluate(ExecState* exec)
     2614{
     2615    return jsBoolean(inlineEvaluateToBoolean(exec));
     2616}
     2617
     2618bool GreaterNode::evaluateToBoolean(ExecState *exec)
     2619{
     2620    return inlineEvaluateToBoolean(exec);
     2621}
     2622
    26222623void LessEqNode::optimizeVariableAccess(FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)
    26232624{
     
    26272628
    26282629// 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)
     2630bool LessEqNode::inlineEvaluateToBoolean(ExecState* exec)
    26392631{
    26402632    JSValue* v1 = expr1->evaluate(exec);
     
    26452637}
    26462638
     2639JSValue* LessEqNode::evaluate(ExecState* exec)
     2640{
     2641    return jsBoolean(inlineEvaluateToBoolean(exec));
     2642}
     2643
     2644bool LessEqNode::evaluateToBoolean(ExecState* exec)
     2645{
     2646    return inlineEvaluateToBoolean(exec);
     2647}
     2648
    26472649void GreaterEqNode::optimizeVariableAccess(FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)
    26482650{
     
    26522654
    26532655// 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)
     2656bool GreaterEqNode::inlineEvaluateToBoolean(ExecState* exec)
    26642657{
    26652658    JSValue* v1 = expr1->evaluate(exec);
     
    26682661    KJS_CHECKEXCEPTIONBOOLEAN
    26692662    return lessThanEq(exec, v2, v1);
     2663}
     2664
     2665JSValue* GreaterEqNode::evaluate(ExecState* exec)
     2666{
     2667    return jsBoolean(inlineEvaluateToBoolean(exec));
     2668}
     2669
     2670bool GreaterEqNode::evaluateToBoolean(ExecState* exec)
     2671{
     2672    return inlineEvaluateToBoolean(exec);
    26702673}
    26712674
     
    27502753    KJS_CHECKEXCEPTIONBOOLEAN
    27512754
    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    }
    27542759
    27552760    return static_cast<JSObject*>(v2)->hasProperty(exec, Identifier(v1->toString(exec)));
     
    27652770
    27662771// 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)
     2772bool EqualNode::inlineEvaluateToBoolean(ExecState* exec)
    27782773{
    27792774    JSValue* v1 = expr1->evaluate(exec);
     
    27812776    JSValue* v2 = expr2->evaluate(exec);
    27822777    KJS_CHECKEXCEPTIONBOOLEAN
    2783 
     2778   
    27842779    return equal(exec, v1, v2);
     2780}
     2781
     2782JSValue* EqualNode::evaluate(ExecState* exec)
     2783{
     2784    return jsBoolean(inlineEvaluateToBoolean(exec));
     2785}
     2786
     2787bool EqualNode::evaluateToBoolean(ExecState* exec)
     2788{
     2789    return inlineEvaluateToBoolean(exec);
    27852790}
    27862791
     
    27922797
    27932798// 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)
     2799bool NotEqualNode::inlineEvaluateToBoolean(ExecState* exec)
    28052800{
    28062801    JSValue* v1 = expr1->evaluate(exec);
     
    28122807}
    28132808
     2809JSValue* NotEqualNode::evaluate(ExecState* exec)
     2810{
     2811    return jsBoolean(inlineEvaluateToBoolean(exec));
     2812}
     2813
     2814bool NotEqualNode::evaluateToBoolean(ExecState* exec)
     2815{
     2816    return inlineEvaluateToBoolean(exec);
     2817}
     2818
    28142819void StrictEqualNode::optimizeVariableAccess(FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)
    28152820{
     
    28192824
    28202825// 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)
     2826bool StrictEqualNode::inlineEvaluateToBoolean(ExecState* exec)
    28322827{
    28332828    JSValue* v1 = expr1->evaluate(exec);
     
    28392834}
    28402835
     2836JSValue* StrictEqualNode::evaluate(ExecState* exec)
     2837{
     2838    return jsBoolean(inlineEvaluateToBoolean(exec));
     2839}
     2840
     2841bool StrictEqualNode::evaluateToBoolean(ExecState* exec)
     2842{
     2843    return inlineEvaluateToBoolean(exec);
     2844}
     2845
    28412846void NotStrictEqualNode::optimizeVariableAccess(FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)
    28422847{
     
    28462851
    28472852// 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)
     2853bool NotStrictEqualNode::inlineEvaluateToBoolean(ExecState* exec)
    28592854{
    28602855    JSValue* v1 = expr1->evaluate(exec);
     
    28642859
    28652860    return !strictEqual(exec,v1, v2);
     2861}
     2862
     2863JSValue* NotStrictEqualNode::evaluate(ExecState* exec)
     2864{
     2865    return jsBoolean(inlineEvaluateToBoolean(exec));
     2866}
     2867
     2868bool NotStrictEqualNode::evaluateToBoolean(ExecState* exec)
     2869{
     2870    return inlineEvaluateToBoolean(exec);
    28662871}
    28672872
Note: See TracChangeset for help on using the changeset viewer.