+2007-11-13 Eric Seidel <eric@webkit.org>
+
+ Reviewed by Maciej.
+
+ Add an ASSERT to getTruncatedInt32 to enforce proper usage.
+ Best part about this patch? It doesn't break the web!
+
+ * kjs/JSImmediate.h:
+ (KJS::JSImmediate::getTruncatedInt32):
+ (KJS::JSImmediate::toDouble):
+ (KJS::JSImmediate::getUInt32):
+
2007-11-13 Alexey Proskuryakov <ap@webkit.org>
Windows build fix.
0867D690FE84028FC02AAC07 /* Project object */ = {
isa = PBXProject;
buildConfigurationList = 149C277108902AFE008A9EFC /* Build configuration list for PBXProject "JavaScriptCore" */;
+ compatibilityVersion = "Xcode 2.4";
hasScannedForEncodings = 1;
mainGroup = 0867D691FE84028FC02AAC07 /* JavaScriptCore */;
productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
ALWAYS_INLINE int32_t JSImmediate::getTruncatedInt32(const JSValue* v)
{
+ ASSERT(isNumber(v));
return static_cast<int32_t>(unTag(v)) >> 2;
}
ALWAYS_INLINE double JSImmediate::toDouble(const JSValue* v)
{
ASSERT(isImmediate(v));
- const int32_t i = getTruncatedInt32(v);
+ const int32_t i = static_cast<int32_t>(unTag(v)) >> 2;
if (JSImmediate::getTag(v) == UndefinedType && i)
return std::numeric_limits<double>::quiet_NaN();
return i;
ALWAYS_INLINE bool JSImmediate::getUInt32(const JSValue* v, uint32_t& i)
{
- const int32_t si = getTruncatedInt32(v);
+ const int32_t si = static_cast<int32_t>(unTag(v)) >> 2;
i = si;
return isNumber(v) & (si >= 0);
}
ALWAYS_INLINE bool JSImmediate::getTruncatedInt32(const JSValue* v, int32_t& i)
{
- i = getTruncatedInt32(v);
+ i = static_cast<int32_t>(unTag(v)) >> 2;
return isNumber(v);
}