Changeset 37257 in webkit for trunk/JavaScriptCore/kjs/JSNumberCell.h
- Timestamp:
- Oct 3, 2008, 2:39:16 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/JSNumberCell.h
r36976 r37257 44 44 class JSNumberCell : public JSCell { 45 45 friend class CTI; 46 friend JSValue* jsNumberCell(JSGlobalData*, double); 47 friend JSValue* jsNaN(JSGlobalData*); 46 48 friend JSValue* jsNumberCell(ExecState*, double); 47 49 friend JSValue* jsNaN(ExecState*); … … 72 74 } 73 75 76 void* operator new(size_t size, JSGlobalData* globalData) 77 { 78 #ifdef JAVASCRIPTCORE_BUILDING_ALL_IN_ONE_FILE 79 return globalData->heap.inlineAllocateNumber(size); 80 #else 81 return globalData->heap.allocateNumber(size); 82 #endif 83 } 84 74 85 static PassRefPtr<StructureID> createStructureID(JSValue* proto) { return StructureID::create(proto, TypeInfo(NumberType)); } 75 86 76 87 private: 88 JSNumberCell(JSGlobalData* globalData, double value) 89 : JSCell(globalData->numberStructureID.get()) 90 , m_value(value) 91 { 92 } 93 77 94 JSNumberCell(ExecState* exec, double value) 78 95 : JSCell(exec->globalData().numberStructureID.get()) … … 100 117 } 101 118 119 ALWAYS_INLINE JSValue* jsNumber(ExecState* exec, short i) 120 { 121 JSValue* v = JSImmediate::from(i); 122 return v ? v : jsNumberCell(exec, i); 123 } 124 125 ALWAYS_INLINE JSValue* jsNumber(ExecState* exec, unsigned short i) 126 { 127 JSValue* v = JSImmediate::from(i); 128 return v ? v : jsNumberCell(exec, i); 129 } 130 102 131 ALWAYS_INLINE JSValue* jsNumber(ExecState* exec, int i) 103 132 { … … 134 163 JSValue* v = JSImmediate::from(i); 135 164 return v ? v : jsNumberCell(exec, static_cast<double>(i)); 165 } 166 167 ALWAYS_INLINE JSValue* jsNumber(JSGlobalData* globalData, double d) 168 { 169 JSValue* v = JSImmediate::from(d); 170 return v ? v : jsNumberCell(globalData, d); 171 } 172 173 ALWAYS_INLINE JSValue* jsNumber(JSGlobalData* globalData, short i) 174 { 175 JSValue* v = JSImmediate::from(i); 176 return v ? v : jsNumberCell(globalData, i); 177 } 178 179 ALWAYS_INLINE JSValue* jsNumber(JSGlobalData* globalData, unsigned short i) 180 { 181 JSValue* v = JSImmediate::from(i); 182 return v ? v : jsNumberCell(globalData, i); 183 } 184 185 ALWAYS_INLINE JSValue* jsNumber(JSGlobalData* globalData, int i) 186 { 187 JSValue* v = JSImmediate::from(i); 188 return v ? v : jsNumberCell(globalData, i); 189 } 190 191 ALWAYS_INLINE JSValue* jsNumber(JSGlobalData* globalData, unsigned i) 192 { 193 JSValue* v = JSImmediate::from(i); 194 return v ? v : jsNumberCell(globalData, i); 195 } 196 197 ALWAYS_INLINE JSValue* jsNumber(JSGlobalData* globalData, long i) 198 { 199 JSValue* v = JSImmediate::from(i); 200 return v ? v : jsNumberCell(globalData, i); 201 } 202 203 ALWAYS_INLINE JSValue* jsNumber(JSGlobalData* globalData, unsigned long i) 204 { 205 JSValue* v = JSImmediate::from(i); 206 return v ? v : jsNumberCell(globalData, i); 207 } 208 209 ALWAYS_INLINE JSValue* jsNumber(JSGlobalData* globalData, long long i) 210 { 211 JSValue* v = JSImmediate::from(i); 212 return v ? v : jsNumberCell(globalData, static_cast<double>(i)); 213 } 214 215 ALWAYS_INLINE JSValue* jsNumber(JSGlobalData* globalData, unsigned long long i) 216 { 217 JSValue* v = JSImmediate::from(i); 218 return v ? v : jsNumberCell(globalData, static_cast<double>(i)); 136 219 } 137 220
Note:
See TracChangeset
for help on using the changeset viewer.