Title: [96717] trunk/Source/_javascript_Core
- Revision
- 96717
- Author
- [email protected]
- Date
- 2011-10-05 09:52:16 -0700 (Wed, 05 Oct 2011)
Log Message
Removed JSValue::toJSNumber
https://bugs.webkit.org/show_bug.cgi?id=69399
No perf. change.
toJSNumber() used to provide an implicit fast path for immediate numbers,
but those fast paths are all explicit now, so it's just cruft.
* interpreter/Interpreter.cpp:
(JSC::Interpreter::privateExecute):
* jit/JITStubs.cpp:
(JSC::DEFINE_STUB_FUNCTION):
* runtime/JSValue.h:
* runtime/JSValueInlineMethods.h:
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (96716 => 96717)
--- trunk/Source/_javascript_Core/ChangeLog 2011-10-05 16:45:04 UTC (rev 96716)
+++ trunk/Source/_javascript_Core/ChangeLog 2011-10-05 16:52:16 UTC (rev 96717)
@@ -1,3 +1,20 @@
+2011-10-04 Geoffrey Garen <[email protected]>
+
+ Removed JSValue::toJSNumber
+ https://bugs.webkit.org/show_bug.cgi?id=69399
+
+ No perf. change.
+
+ toJSNumber() used to provide an implicit fast path for immediate numbers,
+ but those fast paths are all explicit now, so it's just cruft.
+
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::privateExecute):
+ * jit/JITStubs.cpp:
+ (JSC::DEFINE_STUB_FUNCTION):
+ * runtime/JSValue.h:
+ * runtime/JSValueInlineMethods.h:
+
2011-10-05 Gavin Peters <[email protected]>
REGRESSION (r96595): WTFReportBacktrace listed as the top frame in all assertion backtraces
Modified: trunk/Source/_javascript_Core/interpreter/Interpreter.cpp (96716 => 96717)
--- trunk/Source/_javascript_Core/interpreter/Interpreter.cpp 2011-10-05 16:45:04 UTC (rev 96716)
+++ trunk/Source/_javascript_Core/interpreter/Interpreter.cpp 2011-10-05 16:52:16 UTC (rev 96717)
@@ -1974,10 +1974,10 @@
callFrame->uncheckedR(srcDst) = jsNumber(v.asInt32() + 1);
callFrame->uncheckedR(dst) = v;
} else {
- JSValue number = callFrame->r(srcDst).jsValue().toJSNumber(callFrame);
+ double number = callFrame->r(srcDst).jsValue().toNumber(callFrame);
CHECK_FOR_EXCEPTION();
- callFrame->uncheckedR(srcDst) = jsNumber(number.asNumber() + 1);
- callFrame->uncheckedR(dst) = number;
+ callFrame->uncheckedR(srcDst) = jsNumber(number + 1);
+ callFrame->uncheckedR(dst) = jsNumber(number);
}
vPC += OPCODE_LENGTH(op_post_inc);
@@ -1997,10 +1997,10 @@
callFrame->uncheckedR(srcDst) = jsNumber(v.asInt32() - 1);
callFrame->uncheckedR(dst) = v;
} else {
- JSValue number = callFrame->r(srcDst).jsValue().toJSNumber(callFrame);
+ double number = callFrame->r(srcDst).jsValue().toNumber(callFrame);
CHECK_FOR_EXCEPTION();
- callFrame->uncheckedR(srcDst) = jsNumber(number.asNumber() - 1);
- callFrame->uncheckedR(dst) = number;
+ callFrame->uncheckedR(srcDst) = jsNumber(number - 1);
+ callFrame->uncheckedR(dst) = jsNumber(number);
}
vPC += OPCODE_LENGTH(op_post_dec);
@@ -2020,9 +2020,9 @@
if (LIKELY(srcVal.isNumber()))
callFrame->uncheckedR(dst) = callFrame->r(src);
else {
- JSValue result = srcVal.toJSNumber(callFrame);
+ double number = srcVal.toNumber(callFrame);
CHECK_FOR_EXCEPTION();
- callFrame->uncheckedR(dst) = result;
+ callFrame->uncheckedR(dst) = jsNumber(number);
}
vPC += OPCODE_LENGTH(op_to_jsnumber);
Modified: trunk/Source/_javascript_Core/jit/JITStubs.cpp (96716 => 96717)
--- trunk/Source/_javascript_Core/jit/JITStubs.cpp 2011-10-05 16:45:04 UTC (rev 96716)
+++ trunk/Source/_javascript_Core/jit/JITStubs.cpp 2011-10-05 16:52:16 UTC (rev 96717)
@@ -3049,11 +3049,11 @@
CallFrame* callFrame = stackFrame.callFrame;
- JSValue number = v.toJSNumber(callFrame);
+ double number = v.toNumber(callFrame);
CHECK_FOR_EXCEPTION_AT_END();
- callFrame->registers()[stackFrame.args[1].int32()] = jsNumber(number.asNumber() + 1);
- return JSValue::encode(number);
+ callFrame->registers()[stackFrame.args[1].int32()] = jsNumber(number + 1);
+ return JSValue::encode(jsNumber(number));
}
DEFINE_STUB_FUNCTION(int, op_eq)
@@ -3348,11 +3348,11 @@
CallFrame* callFrame = stackFrame.callFrame;
- JSValue number = v.toJSNumber(callFrame);
+ double number = v.toNumber(callFrame);
CHECK_FOR_EXCEPTION_AT_END();
- callFrame->registers()[stackFrame.args[1].int32()] = jsNumber(number.asNumber() - 1);
- return JSValue::encode(number);
+ callFrame->registers()[stackFrame.args[1].int32()] = jsNumber(number - 1);
+ return JSValue::encode(jsNumber(number));
}
DEFINE_STUB_FUNCTION(EncodedJSValue, op_urshift)
@@ -3582,9 +3582,9 @@
JSValue src = ""
CallFrame* callFrame = stackFrame.callFrame;
- JSValue result = src.toJSNumber(callFrame);
+ double number = src.toNumber(callFrame);
CHECK_FOR_EXCEPTION_AT_END();
- return JSValue::encode(result);
+ return JSValue::encode(jsNumber(number));
}
DEFINE_STUB_FUNCTION(EncodedJSValue, op_in)
Modified: trunk/Source/_javascript_Core/runtime/JSValue.h (96716 => 96717)
--- trunk/Source/_javascript_Core/runtime/JSValue.h 2011-10-05 16:45:04 UTC (rev 96716)
+++ trunk/Source/_javascript_Core/runtime/JSValue.h 2011-10-05 16:52:16 UTC (rev 96717)
@@ -189,7 +189,6 @@
// toNumber conversion is expected to be side effect free if an exception has
// been set in the ExecState already.
double toNumber(ExecState*) const;
- JSValue toJSNumber(ExecState*) const; // Fast path for when you expect that the value is an immediate number.
UString toString(ExecState*) const;
UString toPrimitiveString(ExecState*) const;
JSObject* toObject(ExecState*) const;
Modified: trunk/Source/_javascript_Core/runtime/JSValueInlineMethods.h (96716 => 96717)
--- trunk/Source/_javascript_Core/runtime/JSValueInlineMethods.h 2011-10-05 16:45:04 UTC (rev 96716)
+++ trunk/Source/_javascript_Core/runtime/JSValueInlineMethods.h 2011-10-05 16:52:16 UTC (rev 96717)
@@ -60,11 +60,6 @@
return isInt32() ? asInt32() : asDouble();
}
- ALWAYS_INLINE JSValue JSValue::toJSNumber(ExecState* exec) const
- {
- return isNumber() ? asValue() : jsNumber(this->toNumber(exec));
- }
-
inline JSValue jsNaN()
{
return JSValue(std::numeric_limits<double>::quiet_NaN());
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes