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

Reply via email to