Title: [198833] trunk/Source/WebCore
Revision
198833
Author
[email protected]
Date
2016-03-30 01:18:19 -0700 (Wed, 30 Mar 2016)

Log Message

Binding generator should allow passing DOM objects parameters as references
https://bugs.webkit.org/show_bug.cgi?id=155953

Reviewed by Alex Christensen.

Updating binding generator to pass DOM object parameters as references.
Introducing UsePointersEvenForNonNullableObjectArguments to disable that change.

Updating FetchRequest.idl and DOMWindowFetch.idl to pass parameters as references.

Updated other IDL interfaces to keep passing DOM object parameters as pointers.
This should not change the behavior for these interfaces.
UsePointersEvenForNonNullableObjectArguments should be progressively removed on those interfaces.

Binding generator tests covered by rebased binding tests.

* Modules/encryptedmedia/MediaKeySession.idl:
* Modules/encryptedmedia/MediaKeys.idl:
* Modules/fetch/DOMWindowFetch.cpp:
(WebCore::DOMWindowFetch::fetch):
* Modules/fetch/DOMWindowFetch.h:
* Modules/fetch/DOMWindowFetch.idl:
* Modules/fetch/FetchRequest.cpp:
(WebCore::FetchRequest::create):
* Modules/fetch/FetchRequest.h:
* Modules/fetch/WorkerGlobalScopeFetch.cpp:
(WebCore::WorkerGlobalScopeFetch::fetch):
* Modules/fetch/WorkerGlobalScopeFetch.h:
* Modules/mediacontrols/MediaControlsHost.idl:
* Modules/mediasource/MediaSource.idl:
* Modules/mediasource/SourceBuffer.idl:
* Modules/mediastream/MediaStream.idl:
* Modules/speech/SpeechSynthesis.idl:
* Modules/webaudio/AudioContext.idl:
* Modules/webaudio/OscillatorNode.idl:
* Modules/websockets/WebSocket.idl:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheck):
(IsParameterPassedByReference):
(GenerateConstructorDefinition):
* bindings/scripts/IDLAttributes.txt:
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
(WebCore::jsTestObjPrototypeFunctionConvert1):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithArray):
(WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction2Promise):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgAndDefaultValue):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
(WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
(WebCore::jsTestObjPrototypeFunctionStrictFunction):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction1):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::constructJSTestOverloadedConstructors1):
(WebCore::constructJSTestOverloadedConstructors3):
* css/FontFaceSet.idl:
* css/WebKitCSSMatrix.idl:
* dom/CompositionEvent.idl:
* dom/DataTransfer.idl:
* dom/Document.idl:
* dom/Element.idl:
* dom/EventTarget.idl:
* dom/KeyboardEvent.idl:
* dom/MouseEvent.idl:
* dom/MutationEvent.idl:
* dom/MutationObserver.idl:
* dom/NamedNodeMap.idl:
* dom/Node.idl:
* dom/Range.idl:
* dom/TextEvent.idl:
* dom/TouchEvent.idl:
* dom/UIEvent.idl:
* dom/WebKitNamedFlow.idl:
* dom/WheelEvent.idl:
* fileapi/FileReader.idl:
* fileapi/FileReaderSync.idl:
* html/DOMURL.idl:
* html/HTMLElement.idl:
* html/HTMLMediaElement.idl:
* html/HTMLOptionsCollection.idl:
* html/HTMLSelectElement.idl:
* html/canvas/CanvasRenderingContext2D.idl:
* html/canvas/DOMPath.idl:
* html/canvas/OESVertexArrayObject.idl:
* html/canvas/WebGLDebugShaders.idl:
* html/canvas/WebGLRenderingContext.idl:
* html/canvas/WebGLRenderingContextBase.idl:
* html/track/TextTrack.idl:
* inspector/InspectorFrontendHost.idl:
* page/DOMSelection.idl:
* storage/StorageEvent.idl:
* svg/SVGGraphicsElement.idl:
* svg/SVGLengthList.idl:
* svg/SVGNumberList.idl:
* svg/SVGPathSegList.idl:
* svg/SVGPointList.idl:
* svg/SVGSVGElement.idl:
* svg/SVGTransformList.idl:
* testing/Internals.idl:
* xml/XMLSerializer.idl:
* xml/XPathEvaluator.idl:
* xml/XPathExpression.idl:
* xml/XSLTProcessor.idl:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (198832 => 198833)


--- trunk/Source/WebCore/ChangeLog	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/ChangeLog	2016-03-30 08:18:19 UTC (rev 198833)
@@ -1,3 +1,121 @@
+2016-03-30  Youenn Fablet  <[email protected]>
+
+        Binding generator should allow passing DOM objects parameters as references
+        https://bugs.webkit.org/show_bug.cgi?id=155953
+
+        Reviewed by Alex Christensen.
+
+        Updating binding generator to pass DOM object parameters as references.
+        Introducing UsePointersEvenForNonNullableObjectArguments to disable that change.
+
+        Updating FetchRequest.idl and DOMWindowFetch.idl to pass parameters as references.
+
+        Updated other IDL interfaces to keep passing DOM object parameters as pointers.
+        This should not change the behavior for these interfaces.
+        UsePointersEvenForNonNullableObjectArguments should be progressively removed on those interfaces.
+
+        Binding generator tests covered by rebased binding tests.
+
+        * Modules/encryptedmedia/MediaKeySession.idl:
+        * Modules/encryptedmedia/MediaKeys.idl:
+        * Modules/fetch/DOMWindowFetch.cpp:
+        (WebCore::DOMWindowFetch::fetch):
+        * Modules/fetch/DOMWindowFetch.h:
+        * Modules/fetch/DOMWindowFetch.idl:
+        * Modules/fetch/FetchRequest.cpp:
+        (WebCore::FetchRequest::create):
+        * Modules/fetch/FetchRequest.h:
+        * Modules/fetch/WorkerGlobalScopeFetch.cpp:
+        (WebCore::WorkerGlobalScopeFetch::fetch):
+        * Modules/fetch/WorkerGlobalScopeFetch.h:
+        * Modules/mediacontrols/MediaControlsHost.idl:
+        * Modules/mediasource/MediaSource.idl:
+        * Modules/mediasource/SourceBuffer.idl:
+        * Modules/mediastream/MediaStream.idl:
+        * Modules/speech/SpeechSynthesis.idl:
+        * Modules/webaudio/AudioContext.idl:
+        * Modules/webaudio/OscillatorNode.idl:
+        * Modules/websockets/WebSocket.idl:
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (GenerateParametersCheck):
+        (IsParameterPassedByReference):
+        (GenerateConstructorDefinition):
+        * bindings/scripts/IDLAttributes.txt:
+        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
+        (WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
+        * bindings/scripts/test/JS/JSTestInterface.cpp:
+        (WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
+        (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
+        * bindings/scripts/test/JS/JSTestObj.cpp:
+        (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
+        (WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
+        (WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
+        (WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
+        (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
+        (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
+        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
+        (WebCore::jsTestObjPrototypeFunctionConvert1):
+        (WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
+        (WebCore::jsTestObjPrototypeFunctionStrictFunctionWithArray):
+        (WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
+        (WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction2Promise):
+        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgAndDefaultValue):
+        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
+        (WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
+        (WebCore::jsTestObjPrototypeFunctionStrictFunction):
+        (WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction1):
+        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
+        (WebCore::constructJSTestOverloadedConstructors1):
+        (WebCore::constructJSTestOverloadedConstructors3):
+        * css/FontFaceSet.idl:
+        * css/WebKitCSSMatrix.idl:
+        * dom/CompositionEvent.idl:
+        * dom/DataTransfer.idl:
+        * dom/Document.idl:
+        * dom/Element.idl:
+        * dom/EventTarget.idl:
+        * dom/KeyboardEvent.idl:
+        * dom/MouseEvent.idl:
+        * dom/MutationEvent.idl:
+        * dom/MutationObserver.idl:
+        * dom/NamedNodeMap.idl:
+        * dom/Node.idl:
+        * dom/Range.idl:
+        * dom/TextEvent.idl:
+        * dom/TouchEvent.idl:
+        * dom/UIEvent.idl:
+        * dom/WebKitNamedFlow.idl:
+        * dom/WheelEvent.idl:
+        * fileapi/FileReader.idl:
+        * fileapi/FileReaderSync.idl:
+        * html/DOMURL.idl:
+        * html/HTMLElement.idl:
+        * html/HTMLMediaElement.idl:
+        * html/HTMLOptionsCollection.idl:
+        * html/HTMLSelectElement.idl:
+        * html/canvas/CanvasRenderingContext2D.idl:
+        * html/canvas/DOMPath.idl:
+        * html/canvas/OESVertexArrayObject.idl:
+        * html/canvas/WebGLDebugShaders.idl:
+        * html/canvas/WebGLRenderingContext.idl:
+        * html/canvas/WebGLRenderingContextBase.idl:
+        * html/track/TextTrack.idl:
+        * inspector/InspectorFrontendHost.idl:
+        * page/DOMSelection.idl:
+        * storage/StorageEvent.idl:
+        * svg/SVGGraphicsElement.idl:
+        * svg/SVGLengthList.idl:
+        * svg/SVGNumberList.idl:
+        * svg/SVGPathSegList.idl:
+        * svg/SVGPointList.idl:
+        * svg/SVGSVGElement.idl:
+        * svg/SVGTransformList.idl:
+        * testing/Internals.idl:
+        * xml/XMLSerializer.idl:
+        * xml/XPathEvaluator.idl:
+        * xml/XPathExpression.idl:
+        * xml/XSLTProcessor.idl:
+
 2016-03-29  Joonghun Park  <[email protected]>
 
         [EFL] Fix build break since r198800. Unreviewed.

Modified: trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySession.idl (198832 => 198833)


--- trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySession.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySession.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -25,6 +25,7 @@
 
 [
     Conditional=ENCRYPTED_MEDIA_V2,
+    UsePointersEvenForNonNullableObjectArguments,
     InterfaceName=WebKitMediaKeySession,
     ActiveDOMObject,
 ] interface MediaKeySession : EventTarget {

Modified: trunk/Source/WebCore/Modules/encryptedmedia/MediaKeys.idl (198832 => 198833)


--- trunk/Source/WebCore/Modules/encryptedmedia/MediaKeys.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/Modules/encryptedmedia/MediaKeys.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -27,6 +27,7 @@
     Conditional=ENCRYPTED_MEDIA_V2,
     Constructor(DOMString keySystem),
     ConstructorRaisesException,
+    UsePointersEvenForNonNullableObjectArguments,
     InterfaceName=WebKitMediaKeys,
 ] interface MediaKeys {
     [CallWith=ScriptExecutionContext, RaisesException] MediaKeySession createSession([Default=Undefined] optional DOMString type, [Default=Undefined] optional Uint8Array initData);

Modified: trunk/Source/WebCore/Modules/fetch/DOMWindowFetch.cpp (198832 => 198833)


--- trunk/Source/WebCore/Modules/fetch/DOMWindowFetch.cpp	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/Modules/fetch/DOMWindowFetch.cpp	2016-03-30 08:18:19 UTC (rev 198833)
@@ -37,7 +37,7 @@
 
 namespace WebCore {
 
-void DOMWindowFetch::fetch(DOMWindow& window, FetchRequest* input, const Dictionary& dictionary, DeferredWrapper&& promise)
+void DOMWindowFetch::fetch(DOMWindow& window, FetchRequest& input, const Dictionary& dictionary, DeferredWrapper&& promise)
 {
     if (!window.scriptExecutionContext())
         return;

Modified: trunk/Source/WebCore/Modules/fetch/DOMWindowFetch.h (198832 => 198833)


--- trunk/Source/WebCore/Modules/fetch/DOMWindowFetch.h	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/Modules/fetch/DOMWindowFetch.h	2016-03-30 08:18:19 UTC (rev 198833)
@@ -41,7 +41,7 @@
 
 class DOMWindowFetch {
 public:
-    static void fetch(DOMWindow&, FetchRequest*, const Dictionary&, DeferredWrapper&&);
+    static void fetch(DOMWindow&, FetchRequest&, const Dictionary&, DeferredWrapper&&);
     static void fetch(DOMWindow&, const String&, const Dictionary&, DeferredWrapper&&);
 };
 

Modified: trunk/Source/WebCore/Modules/fetch/DOMWindowFetch.idl (198832 => 198833)


--- trunk/Source/WebCore/Modules/fetch/DOMWindowFetch.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/Modules/fetch/DOMWindowFetch.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -29,6 +29,6 @@
 [
     Conditional=FETCH_API,
 ] partial interface DOMWindow {
+    Promise fetch(FetchRequest input, optional Dictionary init);
     Promise fetch(DOMString input, optional Dictionary init);
-    Promise fetch(FetchRequest input, optional Dictionary init);
 };

Modified: trunk/Source/WebCore/Modules/fetch/FetchRequest.cpp (198832 => 198833)


--- trunk/Source/WebCore/Modules/fetch/FetchRequest.cpp	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/Modules/fetch/FetchRequest.cpp	2016-03-30 08:18:19 UTC (rev 198833)
@@ -269,29 +269,27 @@
     return adoptRef(*new FetchRequest(context, WTFMove(body), headers.releaseNonNull(), WTFMove(internalRequest)));
 }
 
-RefPtr<FetchRequest> FetchRequest::create(ScriptExecutionContext& context, FetchRequest* input, const Dictionary& init, ExceptionCode& ec)
+RefPtr<FetchRequest> FetchRequest::create(ScriptExecutionContext& context, FetchRequest& input, const Dictionary& init, ExceptionCode& ec)
 {
-    ASSERT(input);
-
-    if (input->isDisturbed()) {
+    if (input.isDisturbed()) {
         ec = TypeError;
         return nullptr;
     }
 
-    FetchRequest::InternalRequest internalRequest(input->m_internalRequest);
+    FetchRequest::InternalRequest internalRequest(input.m_internalRequest);
 
     if (!buildOptions(internalRequest, context, init)) {
         ec = TypeError;
         return nullptr;
     }
 
-    RefPtr<FetchHeaders> headers = buildHeaders(init, internalRequest, input->m_headers.ptr());
+    RefPtr<FetchHeaders> headers = buildHeaders(init, internalRequest, input.m_headers.ptr());
     if (!headers) {
         ec = TypeError;
         return nullptr;
     }
 
-    FetchBody body = buildBody(init, *headers, &input->m_body);
+    FetchBody body = buildBody(init, *headers, &input.m_body);
     if (!validateBodyAndMethod(body, internalRequest)) {
         ec = TypeError;
         return nullptr;

Modified: trunk/Source/WebCore/Modules/fetch/FetchRequest.h (198832 => 198833)


--- trunk/Source/WebCore/Modules/fetch/FetchRequest.h	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/Modules/fetch/FetchRequest.h	2016-03-30 08:18:19 UTC (rev 198833)
@@ -45,7 +45,7 @@
 
 class FetchRequest final : public FetchBodyOwner {
 public:
-    static RefPtr<FetchRequest> create(ScriptExecutionContext&, FetchRequest*, const Dictionary&, ExceptionCode&);
+    static RefPtr<FetchRequest> create(ScriptExecutionContext&, FetchRequest&, const Dictionary&, ExceptionCode&);
     static RefPtr<FetchRequest> create(ScriptExecutionContext&, const String&, const Dictionary&, ExceptionCode&);
 
     // Request API

Modified: trunk/Source/WebCore/Modules/fetch/WorkerGlobalScopeFetch.cpp (198832 => 198833)


--- trunk/Source/WebCore/Modules/fetch/WorkerGlobalScopeFetch.cpp	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/Modules/fetch/WorkerGlobalScopeFetch.cpp	2016-03-30 08:18:19 UTC (rev 198833)
@@ -33,7 +33,7 @@
 
 namespace WebCore {
 
-void WorkerGlobalScopeFetch::fetch(WorkerGlobalScope&, FetchRequest*, const Dictionary&, FetchPromise&& promise)
+void WorkerGlobalScopeFetch::fetch(WorkerGlobalScope&, FetchRequest&, const Dictionary&, FetchPromise&& promise)
 {
     promise.reject(ASCIILiteral("Fetch is not yet implemented"));
 }

Modified: trunk/Source/WebCore/Modules/fetch/WorkerGlobalScopeFetch.h (198832 => 198833)


--- trunk/Source/WebCore/Modules/fetch/WorkerGlobalScopeFetch.h	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/Modules/fetch/WorkerGlobalScopeFetch.h	2016-03-30 08:18:19 UTC (rev 198833)
@@ -43,7 +43,7 @@
 class WorkerGlobalScopeFetch {
 public:
     using FetchPromise = DOMPromise<RefPtr<FetchResponse>, String>;
-    static void fetch(WorkerGlobalScope&, FetchRequest*, const Dictionary&, FetchPromise&&);
+    static void fetch(WorkerGlobalScope&, FetchRequest&, const Dictionary&, FetchPromise&&);
     static void fetch(WorkerGlobalScope&, const String&, const Dictionary&, FetchPromise&&);
 };
 

Modified: trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.idl (198832 => 198833)


--- trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -32,6 +32,7 @@
 [
     NoInterfaceObject,
     Conditional=MEDIA_CONTROLS_SCRIPT,
+    UsePointersEvenForNonNullableObjectArguments,
     ImplementationLacksVTable,
 ] interface MediaControlsHost {
     TextTrack[] sortedTrackListForMenu(TextTrackList trackList);

Modified: trunk/Source/WebCore/Modules/mediasource/MediaSource.idl (198832 => 198833)


--- trunk/Source/WebCore/Modules/mediasource/MediaSource.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/Modules/mediasource/MediaSource.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -39,6 +39,7 @@
     EnabledBySetting=MediaSource,
     Constructor,
     ConstructorCallWith=ScriptExecutionContext,
+    UsePointersEvenForNonNullableObjectArguments,
 ] interface MediaSource : EventTarget {
     // All the source buffers created by this object.
     readonly attribute SourceBufferList sourceBuffers;

Modified: trunk/Source/WebCore/Modules/mediasource/SourceBuffer.idl (198832 => 198833)


--- trunk/Source/WebCore/Modules/mediasource/SourceBuffer.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/Modules/mediasource/SourceBuffer.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -37,6 +37,7 @@
     Conditional=MEDIA_SOURCE,
     NoInterfaceObject,
     ActiveDOMObject,
+    UsePointersEvenForNonNullableObjectArguments,
 ] interface SourceBuffer : EventTarget {
 
     [SetterRaisesException] attribute AppendMode mode;

Modified: trunk/Source/WebCore/Modules/mediastream/MediaStream.idl (198832 => 198833)


--- trunk/Source/WebCore/Modules/mediastream/MediaStream.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStream.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -28,6 +28,7 @@
     Constructor(MediaStream stream),
     Constructor(MediaStreamTrack[] tracks),
     ConstructorCallWith=ScriptExecutionContext,
+    UsePointersEvenForNonNullableObjectArguments,
 ] interface MediaStream : EventTarget {
 
     readonly attribute DOMString id;

Modified: trunk/Source/WebCore/Modules/speech/SpeechSynthesis.idl (198832 => 198833)


--- trunk/Source/WebCore/Modules/speech/SpeechSynthesis.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/Modules/speech/SpeechSynthesis.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -26,6 +26,7 @@
 [
     NoInterfaceObject,
     Conditional=SPEECH_SYNTHESIS,
+    UsePointersEvenForNonNullableObjectArguments,
 ] interface SpeechSynthesis  {
     readonly attribute boolean pending;
     readonly attribute boolean speaking;

Modified: trunk/Source/WebCore/Modules/webaudio/AudioContext.idl (198832 => 198833)


--- trunk/Source/WebCore/Modules/webaudio/AudioContext.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/Modules/webaudio/AudioContext.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -35,6 +35,7 @@
     Conditional=WEB_AUDIO,
     ActiveDOMObject,
     CustomConstructor,
+    UsePointersEvenForNonNullableObjectArguments,
     InterfaceName=webkitAudioContext,
 ] interface AudioContext : EventTarget {
     // All rendered audio ultimately connects to destination, which represents the audio hardware.

Modified: trunk/Source/WebCore/Modules/webaudio/OscillatorNode.idl (198832 => 198833)


--- trunk/Source/WebCore/Modules/webaudio/OscillatorNode.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/Modules/webaudio/OscillatorNode.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -25,6 +25,7 @@
 // OscillatorNode is an audio generator of periodic waveforms.
 [
     Conditional=WEB_AUDIO,
+    UsePointersEvenForNonNullableObjectArguments,
     JSGenerateToJSObject,
 ] interface OscillatorNode : AudioNode {
 

Modified: trunk/Source/WebCore/Modules/websockets/WebSocket.idl (198832 => 198833)


--- trunk/Source/WebCore/Modules/websockets/WebSocket.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/Modules/websockets/WebSocket.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -38,6 +38,7 @@
     Constructor(DOMString url, DOMString protocol),
     ConstructorRaisesException,
     ConstructorCallWith=ScriptExecutionContext,
+    UsePointersEvenForNonNullableObjectArguments,
 ] interface WebSocket : EventTarget {
     readonly attribute DOMString URL; // Lowercased .url is the one in the spec, but leaving .URL for compatibility reasons.
     readonly attribute DOMString url;

Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (198832 => 198833)


--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm	2016-03-30 08:18:19 UTC (rev 198833)
@@ -3558,7 +3558,7 @@
             push(@$outputArray, "    if (UNLIKELY(state->hadException()))\n");
             push(@$outputArray, "        return JSValue::encode(jsUndefined());\n");
 
-            if ($codeGenerator->IsSVGTypeNeedingTearOff($argType) and not $interfaceName =~ /List$/) {
+            if (IsPointerParameterPassedByReference($parameter, $interface) or ($codeGenerator->IsSVGTypeNeedingTearOff($argType) and not $interfaceName =~ /List$/)) {
                 push(@$outputArray, "    if (!$name) {\n");
                 push(@$outputArray, "        setDOMException(state, TYPE_MISMATCH_ERR);\n");
                 push(@$outputArray, "        return JSValue::encode(jsUndefined());\n");
@@ -3577,6 +3577,8 @@
             push @arguments, "$name.get()";
         } elsif ($codeGenerator->IsSVGTypeNeedingTearOff($argType) and not $interfaceName =~ /List$/) {
             push @arguments, "$name->propertyReference()";
+        } elsif (IsPointerParameterPassedByReference($parameter, $interface)) {
+            push @arguments, "*$name";
         } else {
             push @arguments, $name;
         }
@@ -4067,6 +4069,19 @@
     return "${type}*";
 }
 
+sub IsPointerParameterPassedByReference
+{
+    my $parameter = shift;
+    my $interface = shift;
+
+    return 0 if $parameter->isVariadic;
+    return 0 if $parameter->isNullable;
+    return 0 if $interface->extendedAttributes->{"UsePointersEvenForNonNullableObjectArguments"};
+    return 0 if $codeGenerator->IsCallbackInterface($parameter->type);
+    return 0 if $parameter->isOptional and $parameter->extendedAttributes->{"Default"} and $parameter->extendedAttributes->{"Default"} eq "Undefined";
+    return substr(GetNativeType($parameter->type), -1) eq '*';
+}
+
 sub GetNativeVectorInnerType
 {
     my $arrayOrSequenceType = shift;
@@ -4944,7 +4959,11 @@
             my $index = 0;
             foreach my $parameter (@{$function->parameters}) {
                 last if $index eq $paramIndex;
-                push(@constructorArgList, $parameter->name);
+                if (IsPointerParameterPassedByReference($parameter, $interface)) {
+                    push(@constructorArgList, "*" . $parameter->name);
+                } else {
+                    push(@constructorArgList, $parameter->name);
+                }
                 $index++;
             }
 

Modified: trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt (198832 => 198833)


--- trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt	2016-03-30 08:18:19 UTC (rev 198833)
@@ -51,6 +51,7 @@
 CustomReturn
 CustomSetter
 CustomToJSObject
+UsePointersEvenForNonNullableObjectArguments
 Default=NullString|Undefined
 Deletable
 DoNotCheckConstants

Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp (198832 => 198833)


--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp	2016-03-30 08:18:19 UTC (rev 198833)
@@ -206,7 +206,11 @@
     Node* nextChild = JSNode::toWrapped(state->argument(0));
     if (UNLIKELY(state->hadException()))
         return JSValue::encode(jsUndefined());
-    impl.excitingFunction(nextChild);
+    if (!nextChild) {
+        setDOMException(state, TYPE_MISMATCH_ERR);
+        return JSValue::encode(jsUndefined());
+    }
+    impl.excitingFunction(*nextChild);
     return JSValue::encode(jsUndefined());
 }
 

Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp (198832 => 198833)


--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp	2016-03-30 08:18:19 UTC (rev 198833)
@@ -801,7 +801,11 @@
     TestObj* objArg = JSTestObj::toWrapped(state->argument(1));
     if (UNLIKELY(state->hadException()))
         return JSValue::encode(jsUndefined());
-    JSValue result = toJS(state, castedThis->globalObject(), WTF::getPtr(impl.implementsMethod2(*context, strArg, objArg, ec)));
+    if (!objArg) {
+        setDOMException(state, TYPE_MISMATCH_ERR);
+        return JSValue::encode(jsUndefined());
+    }
+    JSValue result = toJS(state, castedThis->globalObject(), WTF::getPtr(impl.implementsMethod2(*context, strArg, *objArg, ec)));
 
     setDOMException(state, ec);
     return JSValue::encode(result);
@@ -867,7 +871,11 @@
     TestObj* objArg = JSTestObj::toWrapped(state->argument(1));
     if (UNLIKELY(state->hadException()))
         return JSValue::encode(jsUndefined());
-    JSValue result = toJS(state, castedThis->globalObject(), WTF::getPtr(WebCore::TestSupplemental::supplementalMethod2(impl, *context, strArg, objArg, ec)));
+    if (!objArg) {
+        setDOMException(state, TYPE_MISMATCH_ERR);
+        return JSValue::encode(jsUndefined());
+    }
+    JSValue result = toJS(state, castedThis->globalObject(), WTF::getPtr(WebCore::TestSupplemental::supplementalMethod2(impl, *context, strArg, *objArg, ec)));
 
     setDOMException(state, ec);
     return JSValue::encode(result);

Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp (198832 => 198833)


--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp	2016-03-30 08:18:19 UTC (rev 198833)
@@ -3188,7 +3188,11 @@
     TestObj* objArg = JSTestObj::toWrapped(state->argument(2));
     if (UNLIKELY(state->hadException()))
         return JSValue::encode(jsUndefined());
-    impl.voidMethodWithArgs(longArg, strArg, objArg);
+    if (!objArg) {
+        setDOMException(state, TYPE_MISMATCH_ERR);
+        return JSValue::encode(jsUndefined());
+    }
+    impl.voidMethodWithArgs(longArg, strArg, *objArg);
     return JSValue::encode(jsUndefined());
 }
 
@@ -3223,7 +3227,11 @@
     TestObj* objArg = JSTestObj::toWrapped(state->argument(2));
     if (UNLIKELY(state->hadException()))
         return JSValue::encode(jsUndefined());
-    JSValue result = jsNumber(impl.byteMethodWithArgs(byteArg, strArg, objArg));
+    if (!objArg) {
+        setDOMException(state, TYPE_MISMATCH_ERR);
+        return JSValue::encode(jsUndefined());
+    }
+    JSValue result = jsNumber(impl.byteMethodWithArgs(byteArg, strArg, *objArg));
     return JSValue::encode(result);
 }
 
@@ -3258,7 +3266,11 @@
     TestObj* objArg = JSTestObj::toWrapped(state->argument(2));
     if (UNLIKELY(state->hadException()))
         return JSValue::encode(jsUndefined());
-    JSValue result = jsNumber(impl.octetMethodWithArgs(octetArg, strArg, objArg));
+    if (!objArg) {
+        setDOMException(state, TYPE_MISMATCH_ERR);
+        return JSValue::encode(jsUndefined());
+    }
+    JSValue result = jsNumber(impl.octetMethodWithArgs(octetArg, strArg, *objArg));
     return JSValue::encode(result);
 }
 
@@ -3293,7 +3305,11 @@
     TestObj* objArg = JSTestObj::toWrapped(state->argument(2));
     if (UNLIKELY(state->hadException()))
         return JSValue::encode(jsUndefined());
-    JSValue result = jsNumber(impl.longMethodWithArgs(longArg, strArg, objArg));
+    if (!objArg) {
+        setDOMException(state, TYPE_MISMATCH_ERR);
+        return JSValue::encode(jsUndefined());
+    }
+    JSValue result = jsNumber(impl.longMethodWithArgs(longArg, strArg, *objArg));
     return JSValue::encode(result);
 }
 
@@ -3328,7 +3344,11 @@
     TestObj* objArg = JSTestObj::toWrapped(state->argument(2));
     if (UNLIKELY(state->hadException()))
         return JSValue::encode(jsUndefined());
-    JSValue result = toJS(state, castedThis->globalObject(), WTF::getPtr(impl.objMethodWithArgs(longArg, strArg, objArg)));
+    if (!objArg) {
+        setDOMException(state, TYPE_MISMATCH_ERR);
+        return JSValue::encode(jsUndefined());
+    }
+    JSValue result = toJS(state, castedThis->globalObject(), WTF::getPtr(impl.objMethodWithArgs(longArg, strArg, *objArg)));
     return JSValue::encode(result);
 }
 
@@ -3497,7 +3517,11 @@
     TestObj* objArg = JSTestObj::toWrapped(state->argument(1));
     if (UNLIKELY(state->hadException()))
         return JSValue::encode(jsUndefined());
-    JSValue result = toJS(state, castedThis->globalObject(), WTF::getPtr(impl.methodThatRequiresAllArgsAndThrows(strArg, objArg, ec)));
+    if (!objArg) {
+        setDOMException(state, TYPE_MISMATCH_ERR);
+        return JSValue::encode(jsUndefined());
+    }
+    JSValue result = toJS(state, castedThis->globalObject(), WTF::getPtr(impl.methodThatRequiresAllArgsAndThrows(strArg, *objArg, ec)));
 
     setDOMException(state, ec);
     return JSValue::encode(result);
@@ -4292,7 +4316,11 @@
     TestObj* objArg = JSTestObj::toWrapped(state->argument(0));
     if (UNLIKELY(state->hadException()))
         return JSValue::encode(jsUndefined());
-    impl.overloadedMethod(objArg);
+    if (!objArg) {
+        setDOMException(state, TYPE_MISMATCH_ERR);
+        return JSValue::encode(jsUndefined());
+    }
+    impl.overloadedMethod(*objArg);
     return JSValue::encode(jsUndefined());
 }
 
@@ -4700,7 +4728,11 @@
     TestNode* value = JSTestNode::toWrapped(state->argument(0));
     if (UNLIKELY(state->hadException()))
         return JSValue::encode(jsUndefined());
-    impl.convert1(value);
+    if (!value) {
+        setDOMException(state, TYPE_MISMATCH_ERR);
+        return JSValue::encode(jsUndefined());
+    }
+    impl.convert1(*value);
     return JSValue::encode(jsUndefined());
 }
 
@@ -4833,10 +4865,14 @@
     TestObj* objArg = JSTestObj::toWrapped(state->argument(0));
     if (UNLIKELY(state->hadException()))
         return JSValue::encode(jsUndefined());
+    if (!objArg) {
+        setDOMException(state, TYPE_MISMATCH_ERR);
+        return JSValue::encode(jsUndefined());
+    }
     Vector<unsigned> a = toNativeArray<unsigned>(state, state->argument(1));
     if (UNLIKELY(state->hadException()))
         return JSValue::encode(jsUndefined());
-    JSValue result = toJS(state, castedThis->globalObject(), WTF::getPtr(impl.strictFunctionWithSequence(objArg, a, ec)));
+    JSValue result = toJS(state, castedThis->globalObject(), WTF::getPtr(impl.strictFunctionWithSequence(*objArg, a, ec)));
 
     setDOMException(state, ec);
     return JSValue::encode(result);
@@ -4858,10 +4894,14 @@
     TestObj* objArg = JSTestObj::toWrapped(state->argument(0));
     if (UNLIKELY(state->hadException()))
         return JSValue::encode(jsUndefined());
+    if (!objArg) {
+        setDOMException(state, TYPE_MISMATCH_ERR);
+        return JSValue::encode(jsUndefined());
+    }
     Vector<int> array = toNativeArray<int>(state, state->argument(1));
     if (UNLIKELY(state->hadException()))
         return JSValue::encode(jsUndefined());
-    JSValue result = toJS(state, castedThis->globalObject(), WTF::getPtr(impl.strictFunctionWithArray(objArg, array, ec)));
+    JSValue result = toJS(state, castedThis->globalObject(), WTF::getPtr(impl.strictFunctionWithArray(*objArg, array, ec)));
 
     setDOMException(state, ec);
     return JSValue::encode(result);
@@ -4920,13 +4960,17 @@
     Node* head = JSNode::toWrapped(state->argument(0));
     if (UNLIKELY(state->hadException()))
         return JSValue::encode(jsUndefined());
+    if (!head) {
+        setDOMException(state, TYPE_MISMATCH_ERR);
+        return JSValue::encode(jsUndefined());
+    }
     Vector<Node*> tail;
     for (unsigned i = 1, count = state->argumentCount(); i < count; ++i) {
         if (!state->uncheckedArgument(i).inherits(JSNode::info()))
             return throwArgumentTypeError(*state, i, "tail", "TestObj", "variadicNodeMethod", "Node");
         tail.append(JSNode::toWrapped(state->uncheckedArgument(i)));
     }
-    impl.variadicNodeMethod(head, tail);
+    impl.variadicNodeMethod(*head, tail);
     return JSValue::encode(jsUndefined());
 }
 
@@ -5089,7 +5133,11 @@
     FetchRequest* request = JSFetchRequest::toWrapped(state->argument(0));
     if (UNLIKELY(state->hadException()))
         return JSValue::encode(jsUndefined());
-    impl.testPromiseOverloadedFunction(request, DeferredWrapper(state, castedThis->globalObject(), promiseDeferred));
+    if (!request) {
+        setDOMException(state, TYPE_MISMATCH_ERR);
+        return JSValue::encode(jsUndefined());
+    }
+    impl.testPromiseOverloadedFunction(*request, DeferredWrapper(state, castedThis->globalObject(), promiseDeferred));
     return JSValue::encode(jsUndefined());
 }
 

Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp (198832 => 198833)


--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp	2016-03-30 08:18:19 UTC (rev 198833)
@@ -73,7 +73,11 @@
     ArrayBuffer* arrayBuffer = toArrayBuffer(state->argument(0));
     if (UNLIKELY(state->hadException()))
         return JSValue::encode(jsUndefined());
-    RefPtr<TestOverloadedConstructors> object = TestOverloadedConstructors::create(arrayBuffer);
+    if (!arrayBuffer) {
+        setDOMException(state, TYPE_MISMATCH_ERR);
+        return JSValue::encode(jsUndefined());
+    }
+    RefPtr<TestOverloadedConstructors> object = TestOverloadedConstructors::create(*arrayBuffer);
     return JSValue::encode(asObject(toJS(state, castedThis->globalObject(), object.get())));
 }
 
@@ -97,7 +101,11 @@
     Blob* blob = JSBlob::toWrapped(state->argument(0));
     if (UNLIKELY(state->hadException()))
         return JSValue::encode(jsUndefined());
-    RefPtr<TestOverloadedConstructors> object = TestOverloadedConstructors::create(blob);
+    if (!blob) {
+        setDOMException(state, TYPE_MISMATCH_ERR);
+        return JSValue::encode(jsUndefined());
+    }
+    RefPtr<TestOverloadedConstructors> object = TestOverloadedConstructors::create(*blob);
     return JSValue::encode(asObject(toJS(state, castedThis->globalObject(), object.get())));
 }
 

Modified: trunk/Source/WebCore/css/FontFaceSet.idl (198832 => 198833)


--- trunk/Source/WebCore/css/FontFaceSet.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/css/FontFaceSet.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -30,7 +30,8 @@
 
 [
     ConstructorCallWith=Document,
-    Constructor(sequence<FontFace> initialFaces)
+    Constructor(sequence<FontFace> initialFaces),
+    UsePointersEvenForNonNullableObjectArguments,
 ] interface FontFaceSet : EventTarget {
     boolean has(FontFace font);
 

Modified: trunk/Source/WebCore/css/WebKitCSSMatrix.idl (198832 => 198833)


--- trunk/Source/WebCore/css/WebKitCSSMatrix.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/css/WebKitCSSMatrix.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -27,6 +27,7 @@
 [
     Constructor([Default=NullString] optional DOMString cssValue),
     ConstructorRaisesException,
+    UsePointersEvenForNonNullableObjectArguments,
     ImplementationLacksVTable,
 ] interface WebKitCSSMatrix {
 

Modified: trunk/Source/WebCore/dom/CompositionEvent.idl (198832 => 198833)


--- trunk/Source/WebCore/dom/CompositionEvent.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/dom/CompositionEvent.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -26,6 +26,7 @@
 [
     ConstructorConditional=DOM4_EVENTS_CONSTRUCTOR,
     ConstructorTemplate=Event,
+    UsePointersEvenForNonNullableObjectArguments,
 ] interface CompositionEvent : UIEvent {
 
     [InitializedByEventConstructor] readonly attribute DOMString data;

Modified: trunk/Source/WebCore/dom/DataTransfer.idl (198832 => 198833)


--- trunk/Source/WebCore/dom/DataTransfer.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/dom/DataTransfer.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -27,6 +27,7 @@
  */
 
 [
+    UsePointersEvenForNonNullableObjectArguments,
     SkipVTableValidation,
 ] interface DataTransfer {
     attribute DOMString dropEffect;

Modified: trunk/Source/WebCore/dom/Document.idl (198832 => 198833)


--- trunk/Source/WebCore/dom/Document.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/dom/Document.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -22,6 +22,7 @@
     Constructor,
     ConstructorCallWith=ScriptExecutionContext,
     CustomToJSObject,
+    UsePointersEvenForNonNullableObjectArguments,
     JSCustomHeader,
     JSGenerateToNativeObject,
 ] interface Document : Node {

Modified: trunk/Source/WebCore/dom/Element.idl (198832 => 198833)


--- trunk/Source/WebCore/dom/Element.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/dom/Element.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -19,6 +19,7 @@
  */
 
 [
+    UsePointersEvenForNonNullableObjectArguments,
     JSCustomHeader,
     JSGenerateToNativeObject,
 ] interface Element : Node {

Modified: trunk/Source/WebCore/dom/EventTarget.idl (198832 => 198833)


--- trunk/Source/WebCore/dom/EventTarget.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/dom/EventTarget.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -20,11 +20,12 @@
 
 // Introduced in DOM Level 2:
 [
-    ObjCProtocol,
     CPPPureInterface,
     CustomToJSObject,
+    UsePointersEvenForNonNullableObjectArguments,
     JSCustomToNativeObject,
     JSCustomHeader,
+    ObjCProtocol,
 ] interface EventTarget {
     [ObjCLegacyUnnamedParameters] void addEventListener(DOMString type, EventListener listener, optional boolean useCapture);
     [ObjCLegacyUnnamedParameters] void removeEventListener(DOMString type, EventListener listener, optional boolean useCapture);

Modified: trunk/Source/WebCore/dom/KeyboardEvent.idl (198832 => 198833)


--- trunk/Source/WebCore/dom/KeyboardEvent.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/dom/KeyboardEvent.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -21,6 +21,7 @@
 [
     ConstructorConditional=DOM4_EVENTS_CONSTRUCTOR,
     ConstructorTemplate=Event,
+    UsePointersEvenForNonNullableObjectArguments,
 ] interface KeyboardEvent : UIEvent {
 
 #if !defined(LANGUAGE_JAVASCRIPT) || !LANGUAGE_JAVASCRIPT

Modified: trunk/Source/WebCore/dom/MouseEvent.idl (198832 => 198833)


--- trunk/Source/WebCore/dom/MouseEvent.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/dom/MouseEvent.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -20,6 +20,7 @@
 [
     ConstructorConditional=DOM4_EVENTS_CONSTRUCTOR,
     ConstructorTemplate=Event,
+    UsePointersEvenForNonNullableObjectArguments,
     DoNotCheckConstants,
 ] interface MouseEvent : UIEvent {
 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT

Modified: trunk/Source/WebCore/dom/MutationEvent.idl (198832 => 198833)


--- trunk/Source/WebCore/dom/MutationEvent.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/dom/MutationEvent.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -18,7 +18,9 @@
  */
 
 // Introduced in DOM Level 2:
-interface MutationEvent : Event {
+[
+    UsePointersEvenForNonNullableObjectArguments,
+] interface MutationEvent : Event {
 
     // attrChangeType
     const unsigned short MODIFICATION = 1;

Modified: trunk/Source/WebCore/dom/MutationObserver.idl (198832 => 198833)


--- trunk/Source/WebCore/dom/MutationObserver.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/dom/MutationObserver.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -31,6 +31,7 @@
 [
     CustomConstructor(MutationCallback callback),
     CustomIsReachable,
+    UsePointersEvenForNonNullableObjectArguments,
     ImplementationLacksVTable,
 ] interface MutationObserver {
     [RaisesException] void observe(Node target, Dictionary options);

Modified: trunk/Source/WebCore/dom/NamedNodeMap.idl (198832 => 198833)


--- trunk/Source/WebCore/dom/NamedNodeMap.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/dom/NamedNodeMap.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -19,6 +19,7 @@
  */
 
 [
+    UsePointersEvenForNonNullableObjectArguments,
     GenerateIsReachable=ImplElementRoot,
     ImplementationLacksVTable,
 ] interface NamedNodeMap {

Modified: trunk/Source/WebCore/dom/Node.idl (198832 => 198833)


--- trunk/Source/WebCore/dom/Node.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/dom/Node.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -24,6 +24,7 @@
     JSCustomPushEventHandlerScope,
     CustomIsReachable,
     CustomToJSObject,
+    UsePointersEvenForNonNullableObjectArguments,
     ObjCPolymorphic,
 ] interface Node
 #if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C

Modified: trunk/Source/WebCore/dom/Range.idl (198832 => 198833)


--- trunk/Source/WebCore/dom/Range.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/dom/Range.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -22,6 +22,7 @@
 [
     Constructor,
     ConstructorCallWith=Document,
+    UsePointersEvenForNonNullableObjectArguments,
     ImplementationLacksVTable
 ] interface Range {
 

Modified: trunk/Source/WebCore/dom/TextEvent.idl (198832 => 198833)


--- trunk/Source/WebCore/dom/TextEvent.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/dom/TextEvent.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -24,7 +24,9 @@
  */
 
 // Introduced in DOM Level 3:
-interface TextEvent : UIEvent {
+[
+    UsePointersEvenForNonNullableObjectArguments,
+] interface TextEvent : UIEvent {
 
     readonly attribute DOMString data;
 

Modified: trunk/Source/WebCore/dom/TouchEvent.idl (198832 => 198833)


--- trunk/Source/WebCore/dom/TouchEvent.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/dom/TouchEvent.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -25,6 +25,7 @@
 
 [
     Conditional=TOUCH_EVENTS,
+    UsePointersEvenForNonNullableObjectArguments,
 ] interface TouchEvent : UIEvent {
     readonly attribute TouchList touches;
     readonly attribute TouchList targetTouches;

Modified: trunk/Source/WebCore/dom/UIEvent.idl (198832 => 198833)


--- trunk/Source/WebCore/dom/UIEvent.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/dom/UIEvent.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -20,6 +20,7 @@
 [
     ConstructorConditional=DOM4_EVENTS_CONSTRUCTOR,
     ConstructorTemplate=Event,
+    UsePointersEvenForNonNullableObjectArguments,
 ] interface UIEvent : Event {
     [InitializedByEventConstructor] readonly attribute DOMWindow view;
     [InitializedByEventConstructor] readonly attribute long detail;

Modified: trunk/Source/WebCore/dom/WebKitNamedFlow.idl (198832 => 198833)


--- trunk/Source/WebCore/dom/WebKitNamedFlow.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/dom/WebKitNamedFlow.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -28,6 +28,7 @@
  */
 
 [
+    UsePointersEvenForNonNullableObjectArguments,
     NoInterfaceObject,
     GenerateIsReachable=ImplOwnerNodeRoot,
 ] interface WebKitNamedFlow : EventTarget

Modified: trunk/Source/WebCore/dom/WheelEvent.idl (198832 => 198833)


--- trunk/Source/WebCore/dom/WheelEvent.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/dom/WheelEvent.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -23,6 +23,7 @@
 [
     ConstructorConditional=DOM4_EVENTS_CONSTRUCTOR,
     ConstructorTemplate=Event,
+    UsePointersEvenForNonNullableObjectArguments,
 ] interface WheelEvent : MouseEvent {
     // DeltaModeCode
     const unsigned long              DOM_DELTA_PIXEL = 0x00;

Modified: trunk/Source/WebCore/fileapi/FileReader.idl (198832 => 198833)


--- trunk/Source/WebCore/fileapi/FileReader.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/fileapi/FileReader.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -34,6 +34,7 @@
     ActiveDOMObject,
     Constructor,
     ConstructorCallWith=ScriptExecutionContext,
+    UsePointersEvenForNonNullableObjectArguments,
 ] interface FileReader : EventTarget {
     // ready states
     const unsigned short EMPTY = 0;

Modified: trunk/Source/WebCore/fileapi/FileReaderSync.idl (198832 => 198833)


--- trunk/Source/WebCore/fileapi/FileReaderSync.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/fileapi/FileReaderSync.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -29,8 +29,9 @@
  */
 
 [
+    Constructor,
+    UsePointersEvenForNonNullableObjectArguments,
     GlobalContext=WorkerGlobalScope,
-    Constructor,
 ] interface FileReaderSync {
     [CallWith=ScriptExecutionContext, RaisesException] ArrayBuffer readAsArrayBuffer(Blob blob);
     [CallWith=ScriptExecutionContext, RaisesException] DOMString readAsBinaryString(Blob blob);

Modified: trunk/Source/WebCore/html/DOMURL.idl (198832 => 198833)


--- trunk/Source/WebCore/html/DOMURL.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/html/DOMURL.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -30,6 +30,7 @@
     Constructor(DOMString url, DOMString base),
     Constructor(DOMString url, DOMURL base),
     ConstructorRaisesException,
+    UsePointersEvenForNonNullableObjectArguments,
     JSGenerateToNativeObject,
     JSGenerateToJSObject,
     InterfaceName=URL,

Modified: trunk/Source/WebCore/html/HTMLElement.idl (198832 => 198833)


--- trunk/Source/WebCore/html/HTMLElement.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/html/HTMLElement.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -22,6 +22,7 @@
 #if defined(ENABLE_CUSTOM_ELEMENTS) && ENABLE_CUSTOM_ELEMENTS
     CustomConstructor(),
 #endif
+    UsePointersEvenForNonNullableObjectArguments,
     JSGenerateToNativeObject,
     JSCustomPushEventHandlerScope,
 ] interface HTMLElement : Element {

Modified: trunk/Source/WebCore/html/HTMLMediaElement.idl (198832 => 198833)


--- trunk/Source/WebCore/html/HTMLMediaElement.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/html/HTMLMediaElement.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -25,6 +25,7 @@
 
 [
     Conditional=VIDEO,
+    UsePointersEvenForNonNullableObjectArguments,
     JSGenerateToNativeObject,
     ActiveDOMObject,
 ] interface HTMLMediaElement : HTMLElement {

Modified: trunk/Source/WebCore/html/HTMLOptionsCollection.idl (198832 => 198833)


--- trunk/Source/WebCore/html/HTMLOptionsCollection.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/html/HTMLOptionsCollection.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -21,6 +21,7 @@
 [
     JSGenerateToNativeObject,
     CustomIndexedSetter,
+    UsePointersEvenForNonNullableObjectArguments,
     GenerateIsReachable=ImplOwnerNodeRoot,
 ] interface HTMLOptionsCollection : HTMLCollection {
     attribute long selectedIndex;

Modified: trunk/Source/WebCore/html/HTMLSelectElement.idl (198832 => 198833)


--- trunk/Source/WebCore/html/HTMLSelectElement.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/html/HTMLSelectElement.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -20,6 +20,7 @@
 
 [
     CustomIndexedSetter,
+    UsePointersEvenForNonNullableObjectArguments,
 ] interface HTMLSelectElement : HTMLElement {
     [Reflect] attribute boolean autofocus;
     [Reflect] attribute boolean disabled;

Modified: trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.idl (198832 => 198833)


--- trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -26,7 +26,9 @@
 enum ImageSmoothingQuality { "low", "medium", "high" };
 enum CanvasWindingRule { "nonzero", "evenodd" };
 
-interface CanvasRenderingContext2D : CanvasRenderingContext {
+[
+    UsePointersEvenForNonNullableObjectArguments,
+] interface CanvasRenderingContext2D : CanvasRenderingContext {
 
     void save();
     void restore();

Modified: trunk/Source/WebCore/html/canvas/DOMPath.idl (198832 => 198833)


--- trunk/Source/WebCore/html/canvas/DOMPath.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/html/canvas/DOMPath.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -30,6 +30,7 @@
     Constructor,
     Constructor(DOMPath path),
     Constructor(DOMString text),
+    UsePointersEvenForNonNullableObjectArguments,
     InterfaceName=Path2D,
 ] interface DOMPath {
 

Modified: trunk/Source/WebCore/html/canvas/OESVertexArrayObject.idl (198832 => 198833)


--- trunk/Source/WebCore/html/canvas/OESVertexArrayObject.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/html/canvas/OESVertexArrayObject.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -24,10 +24,11 @@
  */
 
 [
-    NoInterfaceObject,
     Conditional=WEBGL, 
+    UsePointersEvenForNonNullableObjectArguments,
+    DoNotCheckConstants,
     GenerateIsReachable=ImplWebGLRenderingContext,
-    DoNotCheckConstants,
+    NoInterfaceObject,
 ] interface OESVertexArrayObject {
     const unsigned int VERTEX_ARRAY_BINDING_OES = 0x85B5;
     

Modified: trunk/Source/WebCore/html/canvas/WebGLDebugShaders.idl (198832 => 198833)


--- trunk/Source/WebCore/html/canvas/WebGLDebugShaders.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/html/canvas/WebGLDebugShaders.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -24,9 +24,10 @@
  */
 
 [
-    NoInterfaceObject,
     Conditional=WEBGL,
+    UsePointersEvenForNonNullableObjectArguments,
     GenerateIsReachable=ImplWebGLRenderingContext,
+    NoInterfaceObject,
 ] interface WebGLDebugShaders {
     [StrictTypeChecking, RaisesException] DOMString? getTranslatedShaderSource(WebGLShader shader);
 };

Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContext.idl (198832 => 198833)


--- trunk/Source/WebCore/html/canvas/WebGLRenderingContext.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContext.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -27,5 +27,6 @@
     Conditional=WEBGL,
     JSCustomMarkFunction,
     DoNotCheckConstants,
+    UsePointersEvenForNonNullableObjectArguments,
 ] interface WebGLRenderingContext : WebGLRenderingContextBase {
 };

Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.idl (198832 => 198833)


--- trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -42,6 +42,7 @@
 NoInterfaceObject,
 Conditional=WEBGL,
 JSCustomMarkFunction,
+UsePointersEvenForNonNullableObjectArguments,
 DoNotCheckConstants,
 ] interface WebGLRenderingContextBase : CanvasRenderingContext {
 

Modified: trunk/Source/WebCore/html/track/TextTrack.idl (198832 => 198833)


--- trunk/Source/WebCore/html/track/TextTrack.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/html/track/TextTrack.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -28,6 +28,7 @@
 
 [
     Conditional=VIDEO_TRACK,
+    UsePointersEvenForNonNullableObjectArguments,
     GenerateIsReachable=ImplElementRoot,
     JSCustomMarkFunction,
     SkipVTableValidation,

Modified: trunk/Source/WebCore/inspector/InspectorFrontendHost.idl (198832 => 198833)


--- trunk/Source/WebCore/inspector/InspectorFrontendHost.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/inspector/InspectorFrontendHost.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -32,6 +32,7 @@
 
 [
     NoInterfaceObject,
+    UsePointersEvenForNonNullableObjectArguments,
     ImplementationLacksVTable
 ] interface InspectorFrontendHost {
     void loaded();

Modified: trunk/Source/WebCore/page/DOMSelection.idl (198832 => 198833)


--- trunk/Source/WebCore/page/DOMSelection.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/page/DOMSelection.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -30,6 +30,7 @@
 // This is based off of Mozilla's Selection interface
 // https://developer.mozilla.org/En/DOM/Selection
 [
+    UsePointersEvenForNonNullableObjectArguments,
     GenerateIsReachable=ImplFrame,
     InterfaceName=Selection,
 ] interface DOMSelection {

Modified: trunk/Source/WebCore/storage/StorageEvent.idl (198832 => 198833)


--- trunk/Source/WebCore/storage/StorageEvent.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/storage/StorageEvent.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -25,6 +25,7 @@
 
 [
     ConstructorTemplate=Event,
+    UsePointersEvenForNonNullableObjectArguments,
 ] interface StorageEvent : Event {
     [InitializedByEventConstructor] readonly attribute DOMString key;
     [InitializedByEventConstructor] readonly attribute DOMString? oldValue;

Modified: trunk/Source/WebCore/svg/SVGGraphicsElement.idl (198832 => 198833)


--- trunk/Source/WebCore/svg/SVGGraphicsElement.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/svg/SVGGraphicsElement.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -22,8 +22,9 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
-
-interface SVGGraphicsElement : SVGElement {
+[
+    UsePointersEvenForNonNullableObjectArguments,
+] interface SVGGraphicsElement : SVGElement {
     readonly attribute SVGAnimatedTransformList transform;
 
     readonly attribute SVGElement nearestViewportElement;

Modified: trunk/Source/WebCore/svg/SVGLengthList.idl (198832 => 198833)


--- trunk/Source/WebCore/svg/SVGLengthList.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/svg/SVGLengthList.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -23,8 +23,9 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
-
-interface SVGLengthList { 
+[
+    UsePointersEvenForNonNullableObjectArguments,
+] interface SVGLengthList { 
     readonly attribute unsigned long numberOfItems;
 
     [RaisesException] void clear();

Modified: trunk/Source/WebCore/svg/SVGNumberList.idl (198832 => 198833)


--- trunk/Source/WebCore/svg/SVGNumberList.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/svg/SVGNumberList.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -23,8 +23,9 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
-
-interface SVGNumberList {
+[
+    UsePointersEvenForNonNullableObjectArguments,
+] interface SVGNumberList {
     readonly attribute unsigned long numberOfItems;
 
     [RaisesException] void clear();

Modified: trunk/Source/WebCore/svg/SVGPathSegList.idl (198832 => 198833)


--- trunk/Source/WebCore/svg/SVGPathSegList.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/svg/SVGPathSegList.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -23,8 +23,9 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
-
-interface SVGPathSegList {
+[
+    UsePointersEvenForNonNullableObjectArguments,
+] interface SVGPathSegList {
     readonly attribute unsigned long numberOfItems;
 
     [RaisesException] void clear();

Modified: trunk/Source/WebCore/svg/SVGPointList.idl (198832 => 198833)


--- trunk/Source/WebCore/svg/SVGPointList.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/svg/SVGPointList.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -22,8 +22,9 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
-
-interface SVGPointList {
+[
+    UsePointersEvenForNonNullableObjectArguments,
+] interface SVGPointList {
     readonly attribute unsigned long numberOfItems;
 
     [RaisesException] void clear();

Modified: trunk/Source/WebCore/svg/SVGSVGElement.idl (198832 => 198833)


--- trunk/Source/WebCore/svg/SVGSVGElement.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/svg/SVGSVGElement.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -23,7 +23,9 @@
 // TODO: no css::ViewCSS available!
 // TODO: Fix SVGSVGElement inheritance (css::DocumentCSS)! 
 // TODO: no events::DocumentEvent available!
-interface SVGSVGElement : SVGGraphicsElement {
+[
+    UsePointersEvenForNonNullableObjectArguments,
+] interface SVGSVGElement : SVGGraphicsElement {
     readonly attribute SVGAnimatedLength x;
     readonly attribute SVGAnimatedLength y;
     readonly attribute SVGAnimatedLength width;

Modified: trunk/Source/WebCore/svg/SVGTransformList.idl (198832 => 198833)


--- trunk/Source/WebCore/svg/SVGTransformList.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/svg/SVGTransformList.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -23,8 +23,9 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
-
-interface SVGTransformList {
+[
+    UsePointersEvenForNonNullableObjectArguments,
+] interface SVGTransformList {
     readonly attribute unsigned long numberOfItems;
 
     [RaisesException] void clear();

Modified: trunk/Source/WebCore/testing/Internals.idl (198832 => 198833)


--- trunk/Source/WebCore/testing/Internals.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/testing/Internals.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -64,6 +64,7 @@
 };
 
 [
+    UsePointersEvenForNonNullableObjectArguments,
     NoInterfaceObject,
 ] interface Internals {
     DOMString address(Node node);

Modified: trunk/Source/WebCore/xml/XMLSerializer.idl (198832 => 198833)


--- trunk/Source/WebCore/xml/XMLSerializer.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/xml/XMLSerializer.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -20,6 +20,7 @@
 
 [
     Constructor,
+    UsePointersEvenForNonNullableObjectArguments,
     ImplementationLacksVTable,
 ] interface XMLSerializer {
     [RaisesException] DOMString serializeToString([Default=Undefined] optional Node node);

Modified: trunk/Source/WebCore/xml/XPathEvaluator.idl (198832 => 198833)


--- trunk/Source/WebCore/xml/XPathEvaluator.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/xml/XPathEvaluator.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -19,6 +19,7 @@
 
 [
     Constructor,
+    UsePointersEvenForNonNullableObjectArguments,
     ImplementationLacksVTable,
 ] interface XPathEvaluator {
     [RaisesException] XPathExpression createExpression([Default=Undefined] optional DOMString _expression_,

Modified: trunk/Source/WebCore/xml/XPathExpression.idl (198832 => 198833)


--- trunk/Source/WebCore/xml/XPathExpression.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/xml/XPathExpression.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -18,6 +18,7 @@
  * Boston, MA 02110-1301, USA.
  */
 [
+    UsePointersEvenForNonNullableObjectArguments,
     ImplementationLacksVTable,
 ] interface XPathExpression {
     [ObjCLegacyUnnamedParameters, RaisesException] XPathResult evaluate([Default=Undefined] optional Node contextNode, 

Modified: trunk/Source/WebCore/xml/XSLTProcessor.idl (198832 => 198833)


--- trunk/Source/WebCore/xml/XSLTProcessor.idl	2016-03-30 07:17:14 UTC (rev 198832)
+++ trunk/Source/WebCore/xml/XSLTProcessor.idl	2016-03-30 08:18:19 UTC (rev 198833)
@@ -33,6 +33,7 @@
 [
     Conditional=XSLT,
     Constructor,
+    UsePointersEvenForNonNullableObjectArguments,
     ImplementationLacksVTable,
 ] interface XSLTProcessor {
     
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to