Title: [214218] trunk/Source/_javascript_Core
Revision
214218
Author
utatane....@gmail.com
Date
2017-03-21 04:16:47 -0700 (Tue, 21 Mar 2017)

Log Message

[JSC] Add JSPromiseDeferred::reject(ExecState*, Exception*) interface
https://bugs.webkit.org/show_bug.cgi?id=169908

Reviewed by Sam Weinig.

To avoid calling reject(ExecState*, JSValue) with Exception* accidentally,
we add a new interface reject(ExecState*, Exception*).
Such an interface is already added in DOMPromise in WebCore.

* runtime/JSInternalPromiseDeferred.cpp:
(JSC::JSInternalPromiseDeferred::reject):
* runtime/JSInternalPromiseDeferred.h:
* runtime/JSPromiseDeferred.cpp:
(JSC::JSPromiseDeferred::reject):
* runtime/JSPromiseDeferred.h:

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (214217 => 214218)


--- trunk/Source/_javascript_Core/ChangeLog	2017-03-21 09:43:14 UTC (rev 214217)
+++ trunk/Source/_javascript_Core/ChangeLog	2017-03-21 11:16:47 UTC (rev 214218)
@@ -1,3 +1,21 @@
+2017-03-21  Yusuke Suzuki  <utatane....@gmail.com>
+
+        [JSC] Add JSPromiseDeferred::reject(ExecState*, Exception*) interface
+        https://bugs.webkit.org/show_bug.cgi?id=169908
+
+        Reviewed by Sam Weinig.
+
+        To avoid calling reject(ExecState*, JSValue) with Exception* accidentally,
+        we add a new interface reject(ExecState*, Exception*).
+        Such an interface is already added in DOMPromise in WebCore.
+
+        * runtime/JSInternalPromiseDeferred.cpp:
+        (JSC::JSInternalPromiseDeferred::reject):
+        * runtime/JSInternalPromiseDeferred.h:
+        * runtime/JSPromiseDeferred.cpp:
+        (JSC::JSPromiseDeferred::reject):
+        * runtime/JSPromiseDeferred.h:
+
 2017-03-21  Zan Dobersek  <zdober...@igalia.com>
 
         [jsc] MacroAssemblerMIPS: implement the branchPtr(RelationalCondition, BaseIndex, RegisterID) overload.

Modified: trunk/Source/_javascript_Core/runtime/JSInternalPromiseDeferred.cpp (214217 => 214218)


--- trunk/Source/_javascript_Core/runtime/JSInternalPromiseDeferred.cpp	2017-03-21 09:43:14 UTC (rev 214217)
+++ trunk/Source/_javascript_Core/runtime/JSInternalPromiseDeferred.cpp	2017-03-21 11:16:47 UTC (rev 214218)
@@ -75,4 +75,9 @@
     return promise();
 }
 
+JSInternalPromise* JSInternalPromiseDeferred::reject(ExecState* exec, Exception* reason)
+{
+    return reject(exec, reason->value());
+}
+
 } // namespace JSC

Modified: trunk/Source/_javascript_Core/runtime/JSInternalPromiseDeferred.h (214217 => 214218)


--- trunk/Source/_javascript_Core/runtime/JSInternalPromiseDeferred.h	2017-03-21 09:43:14 UTC (rev 214217)
+++ trunk/Source/_javascript_Core/runtime/JSInternalPromiseDeferred.h	2017-03-21 11:16:47 UTC (rev 214218)
@@ -48,6 +48,7 @@
     JS_EXPORT_PRIVATE JSInternalPromise* promise() const;
     JS_EXPORT_PRIVATE JSInternalPromise* resolve(ExecState*, JSValue);
     JS_EXPORT_PRIVATE JSInternalPromise* reject(ExecState*, JSValue);
+    JS_EXPORT_PRIVATE JSInternalPromise* reject(ExecState*, Exception*);
 
 private:
     JSInternalPromiseDeferred(VM&);

Modified: trunk/Source/_javascript_Core/runtime/JSPromiseDeferred.cpp (214217 => 214218)


--- trunk/Source/_javascript_Core/runtime/JSPromiseDeferred.cpp	2017-03-21 09:43:14 UTC (rev 214217)
+++ trunk/Source/_javascript_Core/runtime/JSPromiseDeferred.cpp	2017-03-21 11:16:47 UTC (rev 214218)
@@ -106,6 +106,11 @@
     callFunction(exec, m_reject.get(), reason);
 }
 
+void JSPromiseDeferred::reject(ExecState* exec, Exception* reason)
+{
+    reject(exec, reason->value());
+}
+
 void JSPromiseDeferred::finishCreation(VM& vm, JSObject* promise, JSValue resolve, JSValue reject)
 {
     Base::finishCreation(vm);

Modified: trunk/Source/_javascript_Core/runtime/JSPromiseDeferred.h (214217 => 214218)


--- trunk/Source/_javascript_Core/runtime/JSPromiseDeferred.h	2017-03-21 09:43:14 UTC (rev 214217)
+++ trunk/Source/_javascript_Core/runtime/JSPromiseDeferred.h	2017-03-21 11:16:47 UTC (rev 214218)
@@ -30,6 +30,7 @@
 
 namespace JSC {
 
+class Exception;
 class JSPromiseConstructor;
 
 class JSPromiseDeferred : public JSCell {
@@ -53,6 +54,7 @@
 
     JS_EXPORT_PRIVATE void resolve(ExecState*, JSValue);
     JS_EXPORT_PRIVATE void reject(ExecState*, JSValue);
+    JS_EXPORT_PRIVATE void reject(ExecState*, Exception*);
 
 protected:
     JSPromiseDeferred(VM&, Structure*);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to