Changeset 37684 in webkit for trunk/JavaScriptCore/kjs/JSNumberCell.h
- Timestamp:
- Oct 18, 2008, 6:52:42 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/JSNumberCell.h
r37681 r37684 44 44 class JSNumberCell : public JSCell { 45 45 friend class CTI; 46 friend JSValue *jsNumberCell(JSGlobalData*, double);47 friend JSValue *jsNaN(JSGlobalData*);48 friend JSValue *jsNumberCell(ExecState*, double);49 friend JSValue *jsNaN(ExecState*);46 friend JSValuePtr jsNumberCell(JSGlobalData*, double); 47 friend JSValuePtr jsNaN(JSGlobalData*); 48 friend JSValuePtr jsNumberCell(ExecState*, double); 49 friend JSValuePtr jsNaN(ExecState*); 50 50 public: 51 51 double value() const { return m_value; } 52 52 53 virtual JSValue *toPrimitive(ExecState*, PreferredPrimitiveType) const;54 virtual bool getPrimitiveNumber(ExecState*, double& number, JSValue *& value);53 virtual JSValuePtr toPrimitive(ExecState*, PreferredPrimitiveType) const; 54 virtual bool getPrimitiveNumber(ExecState*, double& number, JSValuePtr& value); 55 55 virtual bool toBoolean(ExecState*) const; 56 56 virtual double toNumber(ExecState*) const; … … 60 60 virtual UString toThisString(ExecState*) const; 61 61 virtual JSObject* toThisObject(ExecState*) const; 62 virtual JSValue *getJSNumber();62 virtual JSValuePtr getJSNumber(); 63 63 64 64 int32_t toInt32() const; … … 83 83 } 84 84 85 static PassRefPtr<StructureID> createStructureID(JSValue *proto) { return StructureID::create(proto, TypeInfo(NumberType, NeedsThisConversion)); }85 static PassRefPtr<StructureID> createStructureID(JSValuePtr proto) { return StructureID::create(proto, TypeInfo(NumberType, NeedsThisConversion)); } 86 86 87 87 private: … … 108 108 extern const double Inf; 109 109 110 JSNumberCell* asNumberCell(JSValue *);111 112 JSValue *jsNumberCell(JSGlobalData*, double);113 JSValue *jsNaN(JSGlobalData*);114 JSValue *jsNumberCell(ExecState*, double);115 JSValue *jsNaN(ExecState*);116 117 inline JSNumberCell* asNumberCell(JSValue *value)110 JSNumberCell* asNumberCell(JSValuePtr); 111 112 JSValuePtr jsNumberCell(JSGlobalData*, double); 113 JSValuePtr jsNaN(JSGlobalData*); 114 JSValuePtr jsNumberCell(ExecState*, double); 115 JSValuePtr jsNaN(ExecState*); 116 117 inline JSNumberCell* asNumberCell(JSValuePtr value) 118 118 { 119 119 ASSERT(asCell(value)->isNumber()); … … 121 121 } 122 122 123 ALWAYS_INLINE JSValue *jsNumber(ExecState* exec, double d)124 { 125 JSValue *v = JSImmediate::from(d);123 ALWAYS_INLINE JSValuePtr jsNumber(ExecState* exec, double d) 124 { 125 JSValuePtr v = JSImmediate::from(d); 126 126 return v ? v : jsNumberCell(exec, d); 127 127 } 128 128 129 ALWAYS_INLINE JSValue *jsNumber(ExecState* exec, short i)130 { 131 JSValue *v = JSImmediate::from(i);132 return v ? v : jsNumberCell(exec, i); 133 } 134 135 ALWAYS_INLINE JSValue *jsNumber(ExecState* exec, unsigned short i)136 { 137 JSValue *v = JSImmediate::from(i);138 return v ? v : jsNumberCell(exec, i); 139 } 140 141 ALWAYS_INLINE JSValue *jsNumber(ExecState* exec, int i)142 { 143 JSValue *v = JSImmediate::from(i);144 return v ? v : jsNumberCell(exec, i); 145 } 146 147 ALWAYS_INLINE JSValue *jsNumber(ExecState* exec, unsigned i)148 { 149 JSValue *v = JSImmediate::from(i);150 return v ? v : jsNumberCell(exec, i); 151 } 152 153 ALWAYS_INLINE JSValue *jsNumber(ExecState* exec, long i)154 { 155 JSValue *v = JSImmediate::from(i);156 return v ? v : jsNumberCell(exec, i); 157 } 158 159 ALWAYS_INLINE JSValue *jsNumber(ExecState* exec, unsigned long i)160 { 161 JSValue *v = JSImmediate::from(i);162 return v ? v : jsNumberCell(exec, i); 163 } 164 165 ALWAYS_INLINE JSValue *jsNumber(ExecState* exec, long long i)166 { 167 JSValue *v = JSImmediate::from(i);129 ALWAYS_INLINE JSValuePtr jsNumber(ExecState* exec, short i) 130 { 131 JSValuePtr v = JSImmediate::from(i); 132 return v ? v : jsNumberCell(exec, i); 133 } 134 135 ALWAYS_INLINE JSValuePtr jsNumber(ExecState* exec, unsigned short i) 136 { 137 JSValuePtr v = JSImmediate::from(i); 138 return v ? v : jsNumberCell(exec, i); 139 } 140 141 ALWAYS_INLINE JSValuePtr jsNumber(ExecState* exec, int i) 142 { 143 JSValuePtr v = JSImmediate::from(i); 144 return v ? v : jsNumberCell(exec, i); 145 } 146 147 ALWAYS_INLINE JSValuePtr jsNumber(ExecState* exec, unsigned i) 148 { 149 JSValuePtr v = JSImmediate::from(i); 150 return v ? v : jsNumberCell(exec, i); 151 } 152 153 ALWAYS_INLINE JSValuePtr jsNumber(ExecState* exec, long i) 154 { 155 JSValuePtr v = JSImmediate::from(i); 156 return v ? v : jsNumberCell(exec, i); 157 } 158 159 ALWAYS_INLINE JSValuePtr jsNumber(ExecState* exec, unsigned long i) 160 { 161 JSValuePtr v = JSImmediate::from(i); 162 return v ? v : jsNumberCell(exec, i); 163 } 164 165 ALWAYS_INLINE JSValuePtr jsNumber(ExecState* exec, long long i) 166 { 167 JSValuePtr v = JSImmediate::from(i); 168 168 return v ? v : jsNumberCell(exec, static_cast<double>(i)); 169 169 } 170 170 171 ALWAYS_INLINE JSValue *jsNumber(ExecState* exec, unsigned long long i)172 { 173 JSValue *v = JSImmediate::from(i);171 ALWAYS_INLINE JSValuePtr jsNumber(ExecState* exec, unsigned long long i) 172 { 173 JSValuePtr v = JSImmediate::from(i); 174 174 return v ? v : jsNumberCell(exec, static_cast<double>(i)); 175 175 } 176 176 177 ALWAYS_INLINE JSValue *jsNumber(JSGlobalData* globalData, double d)178 { 179 JSValue *v = JSImmediate::from(d);177 ALWAYS_INLINE JSValuePtr jsNumber(JSGlobalData* globalData, double d) 178 { 179 JSValuePtr v = JSImmediate::from(d); 180 180 return v ? v : jsNumberCell(globalData, d); 181 181 } 182 182 183 ALWAYS_INLINE JSValue *jsNumber(JSGlobalData* globalData, short i)184 { 185 JSValue *v = JSImmediate::from(i);186 return v ? v : jsNumberCell(globalData, i); 187 } 188 189 ALWAYS_INLINE JSValue *jsNumber(JSGlobalData* globalData, unsigned short i)190 { 191 JSValue *v = JSImmediate::from(i);192 return v ? v : jsNumberCell(globalData, i); 193 } 194 195 ALWAYS_INLINE JSValue *jsNumber(JSGlobalData* globalData, int i)196 { 197 JSValue *v = JSImmediate::from(i);198 return v ? v : jsNumberCell(globalData, i); 199 } 200 201 ALWAYS_INLINE JSValue *jsNumber(JSGlobalData* globalData, unsigned i)202 { 203 JSValue *v = JSImmediate::from(i);204 return v ? v : jsNumberCell(globalData, i); 205 } 206 207 ALWAYS_INLINE JSValue *jsNumber(JSGlobalData* globalData, long i)208 { 209 JSValue *v = JSImmediate::from(i);210 return v ? v : jsNumberCell(globalData, i); 211 } 212 213 ALWAYS_INLINE JSValue *jsNumber(JSGlobalData* globalData, unsigned long i)214 { 215 JSValue *v = JSImmediate::from(i);216 return v ? v : jsNumberCell(globalData, i); 217 } 218 219 ALWAYS_INLINE JSValue *jsNumber(JSGlobalData* globalData, long long i)220 { 221 JSValue *v = JSImmediate::from(i);183 ALWAYS_INLINE JSValuePtr jsNumber(JSGlobalData* globalData, short i) 184 { 185 JSValuePtr v = JSImmediate::from(i); 186 return v ? v : jsNumberCell(globalData, i); 187 } 188 189 ALWAYS_INLINE JSValuePtr jsNumber(JSGlobalData* globalData, unsigned short i) 190 { 191 JSValuePtr v = JSImmediate::from(i); 192 return v ? v : jsNumberCell(globalData, i); 193 } 194 195 ALWAYS_INLINE JSValuePtr jsNumber(JSGlobalData* globalData, int i) 196 { 197 JSValuePtr v = JSImmediate::from(i); 198 return v ? v : jsNumberCell(globalData, i); 199 } 200 201 ALWAYS_INLINE JSValuePtr jsNumber(JSGlobalData* globalData, unsigned i) 202 { 203 JSValuePtr v = JSImmediate::from(i); 204 return v ? v : jsNumberCell(globalData, i); 205 } 206 207 ALWAYS_INLINE JSValuePtr jsNumber(JSGlobalData* globalData, long i) 208 { 209 JSValuePtr v = JSImmediate::from(i); 210 return v ? v : jsNumberCell(globalData, i); 211 } 212 213 ALWAYS_INLINE JSValuePtr jsNumber(JSGlobalData* globalData, unsigned long i) 214 { 215 JSValuePtr v = JSImmediate::from(i); 216 return v ? v : jsNumberCell(globalData, i); 217 } 218 219 ALWAYS_INLINE JSValuePtr jsNumber(JSGlobalData* globalData, long long i) 220 { 221 JSValuePtr v = JSImmediate::from(i); 222 222 return v ? v : jsNumberCell(globalData, static_cast<double>(i)); 223 223 } 224 224 225 ALWAYS_INLINE JSValue *jsNumber(JSGlobalData* globalData, unsigned long long i)226 { 227 JSValue *v = JSImmediate::from(i);225 ALWAYS_INLINE JSValuePtr jsNumber(JSGlobalData* globalData, unsigned long long i) 226 { 227 JSValuePtr v = JSImmediate::from(i); 228 228 return v ? v : jsNumberCell(globalData, static_cast<double>(i)); 229 229 } … … 253 253 } 254 254 255 ALWAYS_INLINE JSValue *JSValue::toJSNumber(ExecState* exec) const255 ALWAYS_INLINE JSValuePtr JSValue::toJSNumber(ExecState* exec) const 256 256 { 257 257 return JSImmediate::isNumber(asValue()) ? asValue() : jsNumber(exec, this->toNumber(exec));
Note:
See TracChangeset
for help on using the changeset viewer.