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 {