Math: don't redundantly check for exceptions, just release scope
authorjfbastien@apple.com <jfbastien@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 5 Dec 2017 07:51:33 +0000 (07:51 +0000)
committerjfbastien@apple.com <jfbastien@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 5 Dec 2017 07:51:33 +0000 (07:51 +0000)
https://bugs.webkit.org/show_bug.cgi?id=180395

Rubber stamped by Mark Lam.

Two of the exceptions checks could just have been exception scope
releases before the return, which is ever-so-slightly more
efficient. The same technically applies where we have loops over
parameters, but doing the scope release there isn't really more
efficient and is way harder to read.

* runtime/MathObject.cpp:
(JSC::mathProtoFuncATan2):
(JSC::mathProtoFuncPow):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@225519 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/runtime/MathObject.cpp

index a0df8b4..64d9efc 100644 (file)
@@ -1,3 +1,20 @@
+2017-12-04  JF Bastien  <jfbastien@apple.com>
+
+        Math: don't redundantly check for exceptions, just release scope
+        https://bugs.webkit.org/show_bug.cgi?id=180395
+
+        Rubber stamped by Mark Lam.
+
+        Two of the exceptions checks could just have been exception scope
+        releases before the return, which is ever-so-slightly more
+        efficient. The same technically applies where we have loops over
+        parameters, but doing the scope release there isn't really more
+        efficient and is way harder to read.
+
+        * runtime/MathObject.cpp:
+        (JSC::mathProtoFuncATan2):
+        (JSC::mathProtoFuncPow):
+
 2017-12-04  David Quesada  <david_quesada@apple.com>
 
         Add a class for parsing application manifests
index 5cd5359..b4f93c9 100644 (file)
@@ -153,8 +153,8 @@ EncodedJSValue JSC_HOST_CALL mathProtoFuncATan2(ExecState* exec)
     auto scope = DECLARE_THROW_SCOPE(vm);
     double arg0 = exec->argument(0).toNumber(exec);
     RETURN_IF_EXCEPTION(scope, encodedJSValue());
+    scope.release();
     double arg1 = exec->argument(1).toNumber(exec);
-    RETURN_IF_EXCEPTION(scope, encodedJSValue());
     return JSValue::encode(jsDoubleNumber(atan2(arg0, arg1)));
 }
 
@@ -265,8 +265,8 @@ EncodedJSValue JSC_HOST_CALL mathProtoFuncPow(ExecState* exec)
 
     double arg = exec->argument(0).toNumber(exec);
     RETURN_IF_EXCEPTION(scope, encodedJSValue());
+    scope.release();
     double arg2 = exec->argument(1).toNumber(exec);
-    RETURN_IF_EXCEPTION(scope, encodedJSValue());
 
     return JSValue::encode(JSValue(operationMathPow(arg, arg2)));
 }