Changeset 10757 in webkit for trunk/JavaScriptCore/kjs/value.cpp
- Timestamp:
- Oct 5, 2005, 6:13:18 PM (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/value.cpp
r10701 r10757 45 45 AllocatedValueImp *ConstantValues::jsTrue = NULL; 46 46 AllocatedValueImp *ConstantValues::jsFalse = NULL; 47 AllocatedValueImp *ConstantValues::NaN = NULL;48 47 49 48 static const double D16 = 65536.0; … … 183 182 } 184 183 185 ValueImp *jsNumber(int i)186 {187 return SimpleNumber::fits(i) ? SimpleNumber::make(i) : new NumberImp(static_cast<double>(i));188 }189 190 ValueImp *jsNumber(unsigned i)191 {192 return SimpleNumber::fits(i) ? SimpleNumber::make(i) : new NumberImp(static_cast<double>(i));193 }194 195 ValueImp *jsNumber(long i)196 {197 return SimpleNumber::fits(i) ? SimpleNumber::make(i) : new NumberImp(static_cast<double>(i));198 }199 200 ValueImp *jsNumber(unsigned long i)201 {202 return SimpleNumber::fits(i) ? SimpleNumber::make(i) : new NumberImp(static_cast<double>(i));203 }204 205 ValueImp *jsNumber(long long i)206 {207 return SimpleNumber::fits(i) ? SimpleNumber::make(i) : new NumberImp(static_cast<double>(i));208 }209 210 ValueImp *jsNumber(unsigned long long i)211 {212 return SimpleNumber::fits(i) ? SimpleNumber::make(i) : new NumberImp(static_cast<double>(i));213 }214 215 184 ValueImp *jsNumber(double d) 216 185 { 217 return SimpleNumber::fits(d) 218 ? SimpleNumber::make(static_cast<long>(d)) 219 : (isNaN(d) ? jsNaN() : new NumberImp(d)); 220 } 221 222 ValueImp *jsNumber(double d, bool knownToBeInteger) 223 { 224 return (knownToBeInteger ? SimpleNumber::integerFits(d) : SimpleNumber::fits(d)) 225 ? SimpleNumber::make(static_cast<long>(d)) 226 : ((!knownToBeInteger && isNaN(d)) ? jsNaN() : new NumberImp(d)); 186 ValueImp *v = SimpleNumber::make(d); 187 return v ? v : new NumberImp(d); 227 188 } 228 189 … … 233 194 jsTrue = new BooleanImp(true); 234 195 jsFalse = new BooleanImp(false); 235 NaN = new NumberImp(::KJS::NaN);236 196 } 237 197 … … 242 202 jsTrue = NULL; 243 203 jsFalse = NULL; 244 NaN = NULL;245 204 } 246 205 … … 259 218 if (!v->marked()) 260 219 v->mark(); 261 if (AllocatedValueImp *v = NaN) 262 if (!v->marked()) 263 v->mark(); 264 } 265 266 } 220 } 221 222 }
Note:
See TracChangeset
for help on using the changeset viewer.