Title: [164679] trunk/Source/WebCore
Revision
164679
Author
[email protected]
Date
2014-02-25 15:53:41 -0800 (Tue, 25 Feb 2014)

Log Message

JSDOMPromise methods should acquire VM lock before calling into JS.
<https://webkit.org/b/129341>

Reviewed by Geoffrey Garen.

No new tests.

* bindings/js/JSDOMPromise.h:
(WebCore::DeferredWrapper::resolve):
(WebCore::DeferredWrapper::reject):
(WebCore::DeferredWrapper::resolve<String>):
(WebCore::DeferredWrapper::resolve<bool>):
(WebCore::char>>):
(WebCore::DeferredWrapper::reject<String>):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (164678 => 164679)


--- trunk/Source/WebCore/ChangeLog	2014-02-25 23:28:36 UTC (rev 164678)
+++ trunk/Source/WebCore/ChangeLog	2014-02-25 23:53:41 UTC (rev 164679)
@@ -1,3 +1,20 @@
+2014-02-25  Mark Lam  <[email protected]>
+
+        JSDOMPromise methods should acquire VM lock before calling into JS.
+        <https://webkit.org/b/129341>
+
+        Reviewed by Geoffrey Garen.
+
+        No new tests.
+
+        * bindings/js/JSDOMPromise.h:
+        (WebCore::DeferredWrapper::resolve):
+        (WebCore::DeferredWrapper::reject):
+        (WebCore::DeferredWrapper::resolve<String>):
+        (WebCore::DeferredWrapper::resolve<bool>):
+        (WebCore::char>>):
+        (WebCore::DeferredWrapper::reject<String>):
+
 2014-02-25  Anders Carlsson  <[email protected]>
 
         Simplify visited link style invalidation

Modified: trunk/Source/WebCore/bindings/js/JSDOMPromise.h (164678 => 164679)


--- trunk/Source/WebCore/bindings/js/JSDOMPromise.h	2014-02-25 23:28:36 UTC (rev 164678)
+++ trunk/Source/WebCore/bindings/js/JSDOMPromise.h	2014-02-25 23:53:41 UTC (rev 164679)
@@ -29,6 +29,7 @@
 #include "JSCryptoKey.h"
 #include "JSCryptoKeyPair.h"
 #include "JSDOMBinding.h"
+#include <_javascript_Core/APIShims.h>
 #include <heap/StrongInlines.h>
 #include <runtime/JSPromiseDeferred.h>
 
@@ -58,6 +59,7 @@
 inline void DeferredWrapper::resolve(const ResolveResultType& result)
 {
     JSC::ExecState* exec = m_globalObject->globalExec();
+    JSC::APIEntryShim entryShim(exec);
     resolve(exec, toJS(exec, m_globalObject.get(), result));
 }
 
@@ -65,6 +67,7 @@
 inline void DeferredWrapper::reject(const RejectResultType& result)
 {
     JSC::ExecState* exec = m_globalObject->globalExec();
+    JSC::APIEntryShim entryShim(exec);
     reject(exec, toJS(exec, m_globalObject.get(), result));
 }
 
@@ -72,6 +75,7 @@
 inline void DeferredWrapper::reject(const std::nullptr_t&)
 {
     JSC::ExecState* exec = m_globalObject->globalExec();
+    JSC::APIEntryShim entryShim(exec);
     reject(exec, JSC::jsNull());
 }
 
@@ -79,6 +83,7 @@
 inline void DeferredWrapper::resolve<String>(const String& result)
 {
     JSC::ExecState* exec = m_globalObject->globalExec();
+    JSC::APIEntryShim entryShim(exec);
     resolve(exec, jsString(exec, result));
 }
 
@@ -86,6 +91,7 @@
 inline void DeferredWrapper::resolve<bool>(const bool& result)
 {
     JSC::ExecState* exec = m_globalObject->globalExec();
+    JSC::APIEntryShim entryShim(exec);
     resolve(exec, JSC::jsBoolean(result));
 }
 
@@ -93,6 +99,7 @@
 inline void DeferredWrapper::resolve<Vector<unsigned char>>(const Vector<unsigned char>& result)
 {
     JSC::ExecState* exec = m_globalObject->globalExec();
+    JSC::APIEntryShim entryShim(exec);
     RefPtr<ArrayBuffer> buffer = ArrayBuffer::create(result.data(), result.size());
     resolve(exec, toJS(exec, m_globalObject.get(), buffer.get()));
 }
@@ -101,6 +108,7 @@
 inline void DeferredWrapper::reject<String>(const String& result)
 {
     JSC::ExecState* exec = m_globalObject->globalExec();
+    JSC::APIEntryShim entryShim(exec);
     reject(exec, jsString(exec, result));
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to