Changeset 43131 in webkit for trunk/JavaScriptCore/runtime


Ignore:
Timestamp:
May 1, 2009, 5:48:40 PM (16 years ago)
Author:
[email protected]
Message:

2009-05-01 Sam Weinig <[email protected]>

Reviewed by Geoffrey "Too Far!" Garen.

Move JS number construction into JSValue.

  • runtime/JSImmediate.h:
  • runtime/JSNumberCell.h: (JSC::JSValue::JSValue):
  • runtime/JSValue.h: (JSC::jsNumber):
Location:
trunk/JavaScriptCore/runtime
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/runtime/JSImmediate.h

    r43122 r43131  
    4242    class JSObject;
    4343    class UString;
    44 
    45     JSValue jsNumber(ExecState* exec, double d);
    46     JSValue jsNumber(ExecState*, char i);
    47     JSValue jsNumber(ExecState*, unsigned char i);
    48     JSValue jsNumber(ExecState*, short i);
    49     JSValue jsNumber(ExecState*, unsigned short i);
    50     JSValue jsNumber(ExecState* exec, int i);
    51     JSValue jsNumber(ExecState* exec, unsigned i);
    52     JSValue jsNumber(ExecState* exec, long i);
    53     JSValue jsNumber(ExecState* exec, unsigned long i);
    54     JSValue jsNumber(ExecState* exec, long long i);
    55     JSValue jsNumber(ExecState* exec, unsigned long long i);
    56     JSValue jsNumber(JSGlobalData* globalData, double d);
    57     JSValue jsNumber(JSGlobalData* globalData, short i);
    58     JSValue jsNumber(JSGlobalData* globalData, unsigned short i);
    59     JSValue jsNumber(JSGlobalData* globalData, int i);
    60     JSValue jsNumber(JSGlobalData* globalData, unsigned i);
    61     JSValue jsNumber(JSGlobalData* globalData, long i);
    62     JSValue jsNumber(JSGlobalData* globalData, unsigned long i);
    63     JSValue jsNumber(JSGlobalData* globalData, long long i);
    64     JSValue jsNumber(JSGlobalData* globalData, unsigned long long i);
    6544
    6645#if USE(ALTERNATE_JSIMMEDIATE)
  • trunk/JavaScriptCore/runtime/JSNumberCell.h

    r43130 r43131  
    131131    }
    132132
    133     ALWAYS_INLINE JSValue jsNumber(ExecState* exec, double d)
     133
     134    inline JSValue::JSValue(ExecState* exec, double d)
    134135    {
    135136        JSValue v = JSImmediate::from(d);
    136         return v ? v : jsNumberCell(exec, d);
    137     }
    138 
    139     ALWAYS_INLINE JSValue jsNumber(ExecState* exec, int i)
    140     {
    141         JSValue v = JSImmediate::from(i);
    142         return v ? v : jsNumberCell(exec, i);
    143     }
    144 
    145     ALWAYS_INLINE JSValue jsNumber(ExecState* exec, unsigned i)
    146     {
    147         JSValue v = JSImmediate::from(i);
    148         return v ? v : jsNumberCell(exec, i);
    149     }
    150 
    151     ALWAYS_INLINE JSValue jsNumber(ExecState* exec, long i)
    152     {
    153         JSValue v = JSImmediate::from(i);
    154         return v ? v : jsNumberCell(exec, i);
    155     }
    156 
    157     ALWAYS_INLINE JSValue jsNumber(ExecState* exec, unsigned long i)
    158     {
    159         JSValue v = JSImmediate::from(i);
    160         return v ? v : jsNumberCell(exec, i);
    161     }
    162 
    163     ALWAYS_INLINE JSValue jsNumber(ExecState* exec, long long i)
    164     {
    165         JSValue v = JSImmediate::from(i);
    166         return v ? v : jsNumberCell(exec, static_cast<double>(i));
    167     }
    168 
    169     ALWAYS_INLINE JSValue jsNumber(ExecState* exec, unsigned long long i)
    170     {
    171         JSValue v = JSImmediate::from(i);
    172         return v ? v : jsNumberCell(exec, static_cast<double>(i));
    173     }
    174 
    175     ALWAYS_INLINE JSValue jsNumber(JSGlobalData* globalData, double d)
     137        *this = v ? v : jsNumberCell(exec, d);
     138    }
     139
     140    inline JSValue::JSValue(ExecState* exec, int i)
     141    {
     142        JSValue v = JSImmediate::from(i);
     143        *this = v ? v : jsNumberCell(exec, i);
     144    }
     145
     146    inline JSValue::JSValue(ExecState* exec, unsigned i)
     147    {
     148        JSValue v = JSImmediate::from(i);
     149        *this = v ? v : jsNumberCell(exec, i);
     150    }
     151
     152    inline JSValue::JSValue(ExecState* exec, long i)
     153    {
     154        JSValue v = JSImmediate::from(i);
     155        *this = v ? v : jsNumberCell(exec, i);
     156    }
     157
     158    inline JSValue::JSValue(ExecState* exec, unsigned long i)
     159    {
     160        JSValue v = JSImmediate::from(i);
     161        *this = v ? v : jsNumberCell(exec, i);
     162    }
     163
     164    inline JSValue::JSValue(ExecState* exec, long long i)
     165    {
     166        JSValue v = JSImmediate::from(i);
     167        *this = v ? v : jsNumberCell(exec, static_cast<double>(i));
     168    }
     169
     170    inline JSValue::JSValue(ExecState* exec, unsigned long long i)
     171    {
     172        JSValue v = JSImmediate::from(i);
     173        *this = v ? v : jsNumberCell(exec, static_cast<double>(i));
     174    }
     175
     176    inline JSValue::JSValue(JSGlobalData* globalData, double d)
    176177    {
    177178        JSValue v = JSImmediate::from(d);
    178         return v ? v : jsNumberCell(globalData, d);
    179     }
    180 
    181     ALWAYS_INLINE JSValue jsNumber(JSGlobalData* globalData, int i)
    182     {
    183         JSValue v = JSImmediate::from(i);
    184         return v ? v : jsNumberCell(globalData, i);
    185     }
    186 
    187     ALWAYS_INLINE JSValue jsNumber(JSGlobalData* globalData, unsigned i)
    188     {
    189         JSValue v = JSImmediate::from(i);
    190         return v ? v : jsNumberCell(globalData, i);
    191     }
    192 
    193     ALWAYS_INLINE JSValue jsNumber(JSGlobalData* globalData, long i)
    194     {
    195         JSValue v = JSImmediate::from(i);
    196         return v ? v : jsNumberCell(globalData, i);
    197     }
    198 
    199     ALWAYS_INLINE JSValue jsNumber(JSGlobalData* globalData, unsigned long i)
    200     {
    201         JSValue v = JSImmediate::from(i);
    202         return v ? v : jsNumberCell(globalData, i);
    203     }
    204 
    205     ALWAYS_INLINE JSValue jsNumber(JSGlobalData* globalData, long long i)
    206     {
    207         JSValue v = JSImmediate::from(i);
    208         return v ? v : jsNumberCell(globalData, static_cast<double>(i));
    209     }
    210 
    211     ALWAYS_INLINE JSValue jsNumber(JSGlobalData* globalData, unsigned long long i)
    212     {
    213         JSValue v = JSImmediate::from(i);
    214         return v ? v : jsNumberCell(globalData, static_cast<double>(i));
     179        *this = v ? v : jsNumberCell(globalData, d);
     180    }
     181
     182    inline JSValue::JSValue(JSGlobalData* globalData, int i)
     183    {
     184        JSValue v = JSImmediate::from(i);
     185        *this = v ? v : jsNumberCell(globalData, i);
     186    }
     187
     188    inline JSValue::JSValue(JSGlobalData* globalData, unsigned i)
     189    {
     190        JSValue v = JSImmediate::from(i);
     191        *this = v ? v : jsNumberCell(globalData, i);
     192    }
     193
     194    inline JSValue::JSValue(JSGlobalData* globalData, long i)
     195    {
     196        JSValue v = JSImmediate::from(i);
     197        *this = v ? v : jsNumberCell(globalData, i);
     198    }
     199
     200    inline JSValue::JSValue(JSGlobalData* globalData, unsigned long i)
     201    {
     202        JSValue v = JSImmediate::from(i);
     203        *this = v ? v : jsNumberCell(globalData, i);
     204    }
     205
     206    inline JSValue::JSValue(JSGlobalData* globalData, long long i)
     207    {
     208        JSValue v = JSImmediate::from(i);
     209        *this = v ? v : jsNumberCell(globalData, static_cast<double>(i));
     210    }
     211
     212    inline JSValue::JSValue(JSGlobalData* globalData, unsigned long long i)
     213    {
     214        JSValue v = JSImmediate::from(i);
     215        *this = v ? v : jsNumberCell(globalData, static_cast<double>(i));
    215216    }
    216217
  • trunk/JavaScriptCore/runtime/JSValue.h

    r43130 r43131  
    2929#include "CallData.h"
    3030#include "ConstructData.h"
     31#include <wtf/AlwaysInline.h>
    3132
    3233namespace JSC {
     
    3435    class Identifier;
    3536    class JSCell;
     37    class JSGlobalData;
    3638    class JSImmediate;
    3739    class JSObject;
     
    7981        JSValue(JSCell* ptr);
    8082        JSValue(const JSCell* ptr);
     83
     84        // Numbers
     85        JSValue(ExecState*, double);
     86        JSValue(ExecState*, int);
     87        JSValue(ExecState*, unsigned);
     88        JSValue(ExecState*, long);
     89        JSValue(ExecState*, unsigned long);
     90        JSValue(ExecState*, long long);
     91        JSValue(ExecState*, unsigned long long);
     92        JSValue(JSGlobalData*, double);
     93        JSValue(JSGlobalData*, int);
     94        JSValue(JSGlobalData*, unsigned);
     95        JSValue(JSGlobalData*, long);
     96        JSValue(JSGlobalData*, unsigned long);
     97        JSValue(JSGlobalData*, long long);
     98        JSValue(JSGlobalData*, unsigned long long);
    8199
    82100        operator bool() const;
     
    218236    }
    219237
     238    ALWAYS_INLINE JSValue jsNumber(ExecState* exec, double d)
     239    {
     240        return JSValue(exec, d);
     241    }
     242
     243    ALWAYS_INLINE JSValue jsNumber(ExecState* exec, int i)
     244    {
     245        return JSValue(exec, i);
     246    }
     247
     248    ALWAYS_INLINE JSValue jsNumber(ExecState* exec, unsigned i)
     249    {
     250        return JSValue(exec, i);
     251    }
     252
     253    ALWAYS_INLINE JSValue jsNumber(ExecState* exec, long i)
     254    {
     255        return JSValue(exec, i);
     256    }
     257
     258    ALWAYS_INLINE JSValue jsNumber(ExecState* exec, unsigned long i)
     259    {
     260        return JSValue(exec, i);
     261    }
     262
     263    ALWAYS_INLINE JSValue jsNumber(ExecState* exec, long long i)
     264    {
     265        return JSValue(exec, i);
     266    }
     267
     268    ALWAYS_INLINE JSValue jsNumber(ExecState* exec, unsigned long long i)
     269    {
     270        return JSValue(exec, i);
     271    }
     272
     273    ALWAYS_INLINE JSValue jsNumber(JSGlobalData* globalData, double d)
     274    {
     275        return JSValue(globalData, d);
     276    }
     277
     278    ALWAYS_INLINE JSValue jsNumber(JSGlobalData* globalData, int i)
     279    {
     280        return JSValue(globalData, i);
     281    }
     282
     283    ALWAYS_INLINE JSValue jsNumber(JSGlobalData* globalData, unsigned i)
     284    {
     285        return JSValue(globalData, i);
     286    }
     287
     288    ALWAYS_INLINE JSValue jsNumber(JSGlobalData* globalData, long i)
     289    {
     290        return JSValue(globalData, i);
     291    }
     292
     293    ALWAYS_INLINE JSValue jsNumber(JSGlobalData* globalData, unsigned long i)
     294    {
     295        return JSValue(globalData, i);
     296    }
     297
     298    ALWAYS_INLINE JSValue jsNumber(JSGlobalData* globalData, long long i)
     299    {
     300        return JSValue(globalData, i);
     301    }
     302
     303    ALWAYS_INLINE JSValue jsNumber(JSGlobalData* globalData, unsigned long long i)
     304    {
     305        return JSValue(globalData, i);
     306    }
     307
    220308    inline bool operator==(const JSValue a, const JSCell* b) { return a == JSValue(b); }
    221309    inline bool operator==(const JSCell* a, const JSValue b) { return JSValue(a) == b; }
Note: See TracChangeset for help on using the changeset viewer.