Generate MessageChannel constructor by [Constructor] IDL
authorharaken@chromium.org <haraken@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 17 Oct 2011 06:02:33 +0000 (06:02 +0000)
committerharaken@chromium.org <haraken@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 17 Oct 2011 06:02:33 +0000 (06:02 +0000)
https://bugs.webkit.org/show_bug.cgi?id=70214

Reviewed by Adam Barth.

This patch generates an MessageChannel constructor for JSC by [Constructor] IDL,
but V8 is still using a custom constructor since the V8 constructor requires special logic.

Tests: fast/dom/global-constructors.html
       fast/events/message-port.html
       fast/events/message-port-no-wrapper.html
       fast/dom/Window/window-postmessage-args.html

* bindings/js/JSMessageChannelCustom.cpp: Removed the MessageChannel constructor.
* dom/MessageChannel.idl: Generates the MessageChannel constructor for JSC.

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

Source/WebCore/ChangeLog
Source/WebCore/bindings/js/JSMessageChannelCustom.cpp
Source/WebCore/dom/MessageChannel.idl

index 27e3627..d00e462 100644 (file)
@@ -1,3 +1,21 @@
+2011-10-16  Kentaro Hara  <haraken@chromium.org>
+
+        Generate MessageChannel constructor by [Constructor] IDL
+        https://bugs.webkit.org/show_bug.cgi?id=70214
+
+        Reviewed by Adam Barth.
+
+        This patch generates an MessageChannel constructor for JSC by [Constructor] IDL,
+        but V8 is still using a custom constructor since the V8 constructor requires special logic.
+
+        Tests: fast/dom/global-constructors.html
+               fast/events/message-port.html
+               fast/events/message-port-no-wrapper.html
+               fast/dom/Window/window-postmessage-args.html
+
+        * bindings/js/JSMessageChannelCustom.cpp: Removed the MessageChannel constructor.
+        * dom/MessageChannel.idl: Generates the MessageChannel constructor for JSC.
+
 2011-10-16  Ryosuke Niwa  <rniwa@webkit.org>
 
         [Mac] fontForSelection and styleForSelectionStart should be moved to EditorMac
index 8a047a1..beea32e 100644 (file)
@@ -48,14 +48,4 @@ void JSMessageChannel::visitChildren(JSCell* cell, SlotVisitor& visitor)
         visitor.addOpaqueRoot(port);
 }
 
-EncodedJSValue JSC_HOST_CALL JSMessageChannelConstructor::constructJSMessageChannel(ExecState* exec)
-{
-    JSMessageChannelConstructor* jsConstructor = static_cast<JSMessageChannelConstructor*>(exec->callee());
-    ScriptExecutionContext* context = jsConstructor->scriptExecutionContext();
-    if (!context)
-        return throwVMError(exec, createReferenceError(exec, "MessageChannel constructor associated document is unavailable"));
-
-    return JSValue::encode(asObject(toJS(exec, jsConstructor->globalObject(), MessageChannel::create(context))));
-}
-
 } // namespace WebCore
index 47231b0..d415d90 100644 (file)
@@ -28,7 +28,9 @@ module events {
 
     interface [
         CanBeConstructed,
-        CustomConstructor,
+        Constructor,
+        CallWith=ScriptExecutionContext,
+        V8CustomConstructor,
         CustomMarkFunction,
         NoStaticTables
     ] MessageChannel {