2011-06-17 Mark Pilgrim <pilgrim@chromium.org>

        Reviewed by Adam Barth.

        Change IDL code generator to require all arguments by default
        https://bugs.webkit.org/show_bug.cgi?id=62750

        As per discussion on public-webapps, WebIDL is changing the default
        behavior to require all function arguments by default and raise an
        exception when an argument is missing. (This behavior is currently
        opt-in in WebKit's IDL system, on a function-by-function basis, with
        the "RequiresAllArguments=Raise" flag.) To order to match WebIDL as
        closely as possible, this patch adds an interface-level
        "LegacyDefaultOptionalArguments" flag and sets it on all existing IDL
        files (500+), then changes the code generator Perl scripts to behave
        the old way in the presence of the flag.

        No new tests required, all existing tests still pass.

        * bindings/scripts/CodeGeneratorJS.pm:
        * bindings/scripts/CodeGeneratorV8.pm:
        * bindings/scripts/test/TestCallback.idl:
        * bindings/scripts/test/TestInterface.idl:
        * bindings/scripts/test/TestMediaQueryListListener.idl:
        * bindings/scripts/test/TestObj.idl:
        * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
        * css/CSSCharsetRule.idl:
        * css/CSSFontFaceRule.idl:
        * css/CSSImportRule.idl:
        * css/CSSMediaRule.idl:
        * css/CSSPageRule.idl:
        * css/CSSPrimitiveValue.idl:
        * css/CSSRule.idl:
        * css/CSSRuleList.idl:
        * css/CSSStyleDeclaration.idl:
        * css/CSSStyleRule.idl:
        * css/CSSStyleSheet.idl:
        * css/CSSUnknownRule.idl:
        * css/CSSValue.idl:
        * css/CSSValueList.idl:
        * css/Counter.idl:
        * css/MediaList.idl:
        * css/MediaQueryList.idl:
        * css/MediaQueryListListener.idl:
        * css/RGBColor.idl:
        * css/Rect.idl:
        * css/StyleMedia.idl:
        * css/StyleSheet.idl:
        * css/StyleSheetList.idl:
        * css/WebKitCSSKeyframeRule.idl:
        * css/WebKitCSSKeyframesRule.idl:
        * css/WebKitCSSMatrix.idl:
        * css/WebKitCSSTransformValue.idl:
        * dom/Attr.idl:
        * dom/BeforeLoadEvent.idl:
        * dom/BeforeProcessEvent.idl:
        * dom/CDATASection.idl:
        * dom/CharacterData.idl:
        * dom/ClientRect.idl:
        * dom/ClientRectList.idl:
        * dom/Clipboard.idl:
        * dom/Comment.idl:
        * dom/CompositionEvent.idl:
        * dom/CustomEvent.idl:
        * dom/DOMCoreException.idl:
        * dom/DOMImplementation.idl:
        * dom/DOMStringList.idl:
        * dom/DOMStringMap.idl:
        * dom/DataTransferItem.idl:
        * dom/DataTransferItems.idl:
        * dom/DeviceMotionEvent.idl:
        * dom/DeviceOrientationEvent.idl:
        * dom/Document.idl:
        * dom/DocumentFragment.idl:
        * dom/DocumentType.idl:
        * dom/Element.idl:
        * dom/Entity.idl:
        * dom/EntityReference.idl:
        * dom/ErrorEvent.idl:
        * dom/Event.idl:
        * dom/EventException.idl:
        * dom/EventListener.idl:
        * dom/EventTarget.idl:
        * dom/ExclusiveTrackList.idl:
        * dom/GeneratedStream.idl:
        * dom/HashChangeEvent.idl:
        * dom/KeyboardEvent.idl:
        * dom/MessageChannel.idl:
        * dom/MessageEvent.idl:
        * dom/MessagePort.idl:
        * dom/MouseEvent.idl:
        * dom/MultipleTrackList.idl:
        * dom/MutationEvent.idl:
        * dom/NamedNodeMap.idl:
        * dom/Node.idl:
        * dom/NodeFilter.idl:
        * dom/NodeIterator.idl:
        * dom/NodeList.idl:
        * dom/Notation.idl:
        * dom/OverflowEvent.idl:
        * dom/PageTransitionEvent.idl:
        * dom/PopStateEvent.idl:
        * dom/ProcessingInstruction.idl:
        * dom/ProgressEvent.idl:
        * dom/Range.idl:
        * dom/RangeException.idl:
        * dom/RequestAnimationFrameCallback.idl:
        * dom/Stream.idl:
        * dom/StreamEvent.idl:
        * dom/StreamList.idl:
        * dom/StringCallback.idl:
        * dom/Text.idl:
        * dom/TextEvent.idl:
        * dom/Touch.idl:
        * dom/TouchEvent.idl:
        * dom/TouchList.idl:
        * dom/TrackList.idl:
        * dom/TreeWalker.idl:
        * dom/UIEvent.idl:
        * dom/WebKitAnimationEvent.idl:
        * dom/WebKitTransitionEvent.idl:
        * dom/WheelEvent.idl:
        * fileapi/Blob.idl:
        * fileapi/DOMFileSystem.idl:
        * fileapi/DOMFileSystemSync.idl:
        * fileapi/DirectoryEntry.idl:
        * fileapi/DirectoryEntrySync.idl:
        * fileapi/DirectoryReader.idl:
        * fileapi/DirectoryReaderSync.idl:
        * fileapi/EntriesCallback.idl:
        * fileapi/Entry.idl:
        * fileapi/EntryArray.idl:
        * fileapi/EntryArraySync.idl:
        * fileapi/EntryCallback.idl:
        * fileapi/EntrySync.idl:
        * fileapi/ErrorCallback.idl:
        * fileapi/File.idl:
        * fileapi/FileCallback.idl:
        * fileapi/FileEntry.idl:
        * fileapi/FileEntrySync.idl:
        * fileapi/FileError.idl:
        * fileapi/FileException.idl:
        * fileapi/FileList.idl:
        * fileapi/FileReader.idl:
        * fileapi/FileReaderSync.idl:
        * fileapi/FileSystemCallback.idl:
        * fileapi/FileWriter.idl:
        * fileapi/FileWriterCallback.idl:
        * fileapi/FileWriterSync.idl:
        * fileapi/Metadata.idl:
        * fileapi/MetadataCallback.idl:
        * fileapi/OperationNotAllowedException.idl:
        * fileapi/WebKitBlobBuilder.idl:
        * fileapi/WebKitFlags.idl:
        * html/DOMFormData.idl:
        * html/DOMSettableTokenList.idl:
        * html/DOMTokenList.idl:
        * html/DOMURL.idl:
        * html/HTMLAllCollection.idl:
        * html/HTMLAnchorElement.idl:
        * html/HTMLAppletElement.idl:
        * html/HTMLAreaElement.idl:
        * html/HTMLAudioElement.idl:
        * html/HTMLBRElement.idl:
        * html/HTMLBaseElement.idl:
        * html/HTMLBaseFontElement.idl:
        * html/HTMLBlockquoteElement.idl:
        * html/HTMLBodyElement.idl:
        * html/HTMLButtonElement.idl:
        * html/HTMLCanvasElement.idl:
        * html/HTMLCollection.idl:
        * html/HTMLDListElement.idl:
        * html/HTMLDataListElement.idl:
        * html/HTMLDetailsElement.idl:
        * html/HTMLDirectoryElement.idl:
        * html/HTMLDivElement.idl:
        * html/HTMLDocument.idl:
        * html/HTMLElement.idl:
        * html/HTMLEmbedElement.idl:
        * html/HTMLFieldSetElement.idl:
        * html/HTMLFontElement.idl:
        * html/HTMLFormElement.idl:
        * html/HTMLFrameElement.idl:
        * html/HTMLFrameSetElement.idl:
        * html/HTMLHRElement.idl:
        * html/HTMLHeadElement.idl:
        * html/HTMLHeadingElement.idl:
        * html/HTMLHtmlElement.idl:
        * html/HTMLIFrameElement.idl:
        * html/HTMLImageElement.idl:
        * html/HTMLInputElement.idl:
        * html/HTMLIsIndexElement.idl:
        * html/HTMLKeygenElement.idl:
        * html/HTMLLIElement.idl:
        * html/HTMLLabelElement.idl:
        * html/HTMLLegendElement.idl:
        * html/HTMLLinkElement.idl:
        * html/HTMLMapElement.idl:
        * html/HTMLMarqueeElement.idl:
        * html/HTMLMediaElement.idl:
        * html/HTMLMenuElement.idl:
        * html/HTMLMetaElement.idl:
        * html/HTMLMeterElement.idl:
        * html/HTMLModElement.idl:
        * html/HTMLOListElement.idl:
        * html/HTMLObjectElement.idl:
        * html/HTMLOptGroupElement.idl:
        * html/HTMLOptionElement.idl:
        * html/HTMLOptionsCollection.idl:
        * html/HTMLOutputElement.idl:
        * html/HTMLParagraphElement.idl:
        * html/HTMLParamElement.idl:
        * html/HTMLPreElement.idl:
        * html/HTMLProgressElement.idl:
        * html/HTMLQuoteElement.idl:
        * html/HTMLScriptElement.idl:
        * html/HTMLSelectElement.idl:
        * html/HTMLSourceElement.idl:
        * html/HTMLStyleElement.idl:
        * html/HTMLTableCaptionElement.idl:
        * html/HTMLTableCellElement.idl:
        * html/HTMLTableColElement.idl:
        * html/HTMLTableElement.idl:
        * html/HTMLTableRowElement.idl:
        * html/HTMLTableSectionElement.idl:
        * html/HTMLTextAreaElement.idl:
        * html/HTMLTitleElement.idl:
        * html/HTMLTrackElement.idl:
        * html/HTMLUListElement.idl:
        * html/HTMLVideoElement.idl:
        * html/ImageData.idl:
        * html/MediaError.idl:
        * html/SpellcheckRange.idl:
        * html/SpellcheckRangeList.idl:
        * html/TextMetrics.idl:
        * html/TimeRanges.idl:
        * html/ValidityState.idl:
        * html/VoidCallback.idl:
        * html/canvas/ArrayBuffer.idl:
        * html/canvas/ArrayBufferView.idl:
        * html/canvas/CanvasGradient.idl:
        * html/canvas/CanvasPattern.idl:
        * html/canvas/CanvasPixelArray.idl:
        * html/canvas/CanvasRenderingContext.idl:
        * html/canvas/CanvasRenderingContext2D.idl:
        * html/canvas/DataView.idl:
        * html/canvas/Float32Array.idl:
        * html/canvas/Float64Array.idl:
        * html/canvas/Int16Array.idl:
        * html/canvas/Int32Array.idl:
        * html/canvas/Int8Array.idl:
        * html/canvas/OESStandardDerivatives.idl:
        * html/canvas/OESTextureFloat.idl:
        * html/canvas/OESVertexArrayObject.idl:
        * html/canvas/Uint16Array.idl:
        * html/canvas/Uint32Array.idl:
        * html/canvas/Uint8Array.idl:
        * html/canvas/WebGLActiveInfo.idl:
        * html/canvas/WebGLBuffer.idl:
        * html/canvas/WebGLContextAttributes.idl:
        * html/canvas/WebGLContextEvent.idl:
        * html/canvas/WebGLFramebuffer.idl:
        * html/canvas/WebGLProgram.idl:
        * html/canvas/WebGLRenderbuffer.idl:
        * html/canvas/WebGLRenderingContext.idl:
        * html/canvas/WebGLShader.idl:
        * html/canvas/WebGLTexture.idl:
        * html/canvas/WebGLUniformLocation.idl:
        * html/canvas/WebGLVertexArrayObjectOES.idl:
        * html/canvas/WebKitLoseContext.idl:
        * inspector/InjectedScriptHost.idl:
        * inspector/InspectorFrontendHost.idl:
        * inspector/JavaScriptCallFrame.idl:
        * inspector/ScriptProfile.idl:
        * inspector/ScriptProfileNode.idl:
        * loader/appcache/DOMApplicationCache.idl:
        * notifications/Notification.idl:
        * notifications/NotificationCenter.idl:
        * page/AbstractView.idl:
        * page/BarInfo.idl:
        * page/Console.idl:
        * page/Coordinates.idl:
        * page/Crypto.idl:
        * page/DOMSelection.idl:
        * page/DOMWindow.idl:
        * page/EventSource.idl:
        * page/Geolocation.idl:
        * page/Geoposition.idl:
        * page/History.idl:
        * page/Location.idl:
        * page/MemoryInfo.idl:
        * page/Navigator.idl:
        * page/NavigatorUserMediaError.idl:
        * page/NavigatorUserMediaErrorCallback.idl:
        * page/NavigatorUserMediaSuccessCallback.idl:
        * page/Performance.idl:
        * page/PerformanceNavigation.idl:
        * page/PerformanceTiming.idl:
        * page/PositionCallback.idl:
        * page/PositionError.idl:
        * page/PositionErrorCallback.idl:
        * page/Screen.idl:
        * page/SpeechInputEvent.idl:
        * page/SpeechInputResult.idl:
        * page/SpeechInputResultList.idl:
        * page/WebKitAnimation.idl:
        * page/WebKitAnimationList.idl:
        * page/WebKitPoint.idl:
        * page/WorkerNavigator.idl:
        * plugins/DOMMimeType.idl:
        * plugins/DOMMimeTypeArray.idl:
        * plugins/DOMPlugin.idl:
        * plugins/DOMPluginArray.idl:
        * storage/Database.idl:
        * storage/DatabaseCallback.idl:
        * storage/DatabaseSync.idl:
        * storage/IDBAny.idl:
        * storage/IDBCursor.idl:
        * storage/IDBCursorWithValue.idl:
        * storage/IDBDatabase.idl:
        * storage/IDBDatabaseError.idl:
        * storage/IDBDatabaseException.idl:
        * storage/IDBFactory.idl:
        * storage/IDBIndex.idl:
        * storage/IDBKey.idl:
        * storage/IDBKeyRange.idl:
        * storage/IDBObjectStore.idl:
        * storage/IDBRequest.idl:
        * storage/IDBTransaction.idl:
        * storage/IDBVersionChangeEvent.idl:
        * storage/IDBVersionChangeRequest.idl:
        * storage/SQLError.idl:
        * storage/SQLException.idl:
        * storage/SQLResultSet.idl:
        * storage/SQLResultSetRowList.idl:
        * storage/SQLStatementCallback.idl:
        * storage/SQLStatementErrorCallback.idl:
        * storage/SQLTransaction.idl:
        * storage/SQLTransactionCallback.idl:
        * storage/SQLTransactionErrorCallback.idl:
        * storage/SQLTransactionSync.idl:
        * storage/SQLTransactionSyncCallback.idl:
        * storage/Storage.idl:
        * storage/StorageEvent.idl:
        * storage/StorageInfo.idl:
        * storage/StorageInfoErrorCallback.idl:
        * storage/StorageInfoQuotaCallback.idl:
        * storage/StorageInfoUsageCallback.idl:
        * svg/ElementTimeControl.idl:
        * svg/SVGAElement.idl:
        * svg/SVGAltGlyphElement.idl:
        * svg/SVGAngle.idl:
        * svg/SVGAnimateColorElement.idl:
        * svg/SVGAnimateElement.idl:
        * svg/SVGAnimateMotionElement.idl:
        * svg/SVGAnimateTransformElement.idl:
        * svg/SVGAnimatedAngle.idl:
        * svg/SVGAnimatedBoolean.idl:
        * svg/SVGAnimatedEnumeration.idl:
        * svg/SVGAnimatedInteger.idl:
        * svg/SVGAnimatedLength.idl:
        * svg/SVGAnimatedLengthList.idl:
        * svg/SVGAnimatedNumber.idl:
        * svg/SVGAnimatedNumberList.idl:
        * svg/SVGAnimatedPreserveAspectRatio.idl:
        * svg/SVGAnimatedRect.idl:
        * svg/SVGAnimatedString.idl:
        * svg/SVGAnimatedTransformList.idl:
        * svg/SVGAnimationElement.idl:
        * svg/SVGCircleElement.idl:
        * svg/SVGClipPathElement.idl:
        * svg/SVGColor.idl:
        * svg/SVGComponentTransferFunctionElement.idl:
        * svg/SVGCursorElement.idl:
        * svg/SVGDefsElement.idl:
        * svg/SVGDescElement.idl:
        * svg/SVGDocument.idl:
        * svg/SVGElement.idl:
        * svg/SVGElementInstance.idl:
        * svg/SVGElementInstanceList.idl:
        * svg/SVGEllipseElement.idl:
        * svg/SVGException.idl:
        * svg/SVGExternalResourcesRequired.idl:
        * svg/SVGFEBlendElement.idl:
        * svg/SVGFEColorMatrixElement.idl:
        * svg/SVGFEComponentTransferElement.idl:
        * svg/SVGFECompositeElement.idl:
        * svg/SVGFEConvolveMatrixElement.idl:
        * svg/SVGFEDiffuseLightingElement.idl:
        * svg/SVGFEDisplacementMapElement.idl:
        * svg/SVGFEDistantLightElement.idl:
        * svg/SVGFEDropShadowElement.idl:
        * svg/SVGFEFloodElement.idl:
        * svg/SVGFEFuncAElement.idl:
        * svg/SVGFEFuncBElement.idl:
        * svg/SVGFEFuncGElement.idl:
        * svg/SVGFEFuncRElement.idl:
        * svg/SVGFEGaussianBlurElement.idl:
        * svg/SVGFEImageElement.idl:
        * svg/SVGFEMergeElement.idl:
        * svg/SVGFEMergeNodeElement.idl:
        * svg/SVGFEMorphologyElement.idl:
        * svg/SVGFEOffsetElement.idl:
        * svg/SVGFEPointLightElement.idl:
        * svg/SVGFESpecularLightingElement.idl:
        * svg/SVGFESpotLightElement.idl:
        * svg/SVGFETileElement.idl:
        * svg/SVGFETurbulenceElement.idl:
        * svg/SVGFilterElement.idl:
        * svg/SVGFilterPrimitiveStandardAttributes.idl:
        * svg/SVGFitToViewBox.idl:
        * svg/SVGFontElement.idl:
        * svg/SVGFontFaceElement.idl:
        * svg/SVGFontFaceFormatElement.idl:
        * svg/SVGFontFaceNameElement.idl:
        * svg/SVGFontFaceSrcElement.idl:
        * svg/SVGFontFaceUriElement.idl:
        * svg/SVGForeignObjectElement.idl:
        * svg/SVGGElement.idl:
        * svg/SVGGlyphElement.idl:
        * svg/SVGGradientElement.idl:
        * svg/SVGHKernElement.idl:
        * svg/SVGImageElement.idl:
        * svg/SVGLangSpace.idl:
        * svg/SVGLength.idl:
        * svg/SVGLengthList.idl:
        * svg/SVGLineElement.idl:
        * svg/SVGLinearGradientElement.idl:
        * svg/SVGLocatable.idl:
        * svg/SVGMPathElement.idl:
        * svg/SVGMarkerElement.idl:
        * svg/SVGMaskElement.idl:
        * svg/SVGMatrix.idl:
        * svg/SVGMetadataElement.idl:
        * svg/SVGMissingGlyphElement.idl:
        * svg/SVGNumber.idl:
        * svg/SVGNumberList.idl:
        * svg/SVGPaint.idl:
        * svg/SVGPathElement.idl:
        * svg/SVGPathSeg.idl:
        * svg/SVGPathSegArcAbs.idl:
        * svg/SVGPathSegArcRel.idl:
        * svg/SVGPathSegClosePath.idl:
        * svg/SVGPathSegCurvetoCubicAbs.idl:
        * svg/SVGPathSegCurvetoCubicRel.idl:
        * svg/SVGPathSegCurvetoCubicSmoothAbs.idl:
        * svg/SVGPathSegCurvetoCubicSmoothRel.idl:
        * svg/SVGPathSegCurvetoQuadraticAbs.idl:
        * svg/SVGPathSegCurvetoQuadraticRel.idl:
        * svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl:
        * svg/SVGPathSegCurvetoQuadraticSmoothRel.idl:
        * svg/SVGPathSegLinetoAbs.idl:
        * svg/SVGPathSegLinetoHorizontalAbs.idl:
        * svg/SVGPathSegLinetoHorizontalRel.idl:
        * svg/SVGPathSegLinetoRel.idl:
        * svg/SVGPathSegLinetoVerticalAbs.idl:
        * svg/SVGPathSegLinetoVerticalRel.idl:
        * svg/SVGPathSegList.idl:
        * svg/SVGPathSegMovetoAbs.idl:
        * svg/SVGPathSegMovetoRel.idl:
        * svg/SVGPatternElement.idl:
        * svg/SVGPoint.idl:
        * svg/SVGPointList.idl:
        * svg/SVGPolygonElement.idl:
        * svg/SVGPolylineElement.idl:
        * svg/SVGPreserveAspectRatio.idl:
        * svg/SVGRadialGradientElement.idl:
        * svg/SVGRect.idl:
        * svg/SVGRectElement.idl:
        * svg/SVGRenderingIntent.idl:
        * svg/SVGSVGElement.idl:
        * svg/SVGScriptElement.idl:
        * svg/SVGSetElement.idl:
        * svg/SVGStopElement.idl:
        * svg/SVGStringList.idl:
        * svg/SVGStylable.idl:
        * svg/SVGStyleElement.idl:
        * svg/SVGSwitchElement.idl:
        * svg/SVGSymbolElement.idl:
        * svg/SVGTRefElement.idl:
        * svg/SVGTSpanElement.idl:
        * svg/SVGTests.idl:
        * svg/SVGTextContentElement.idl:
        * svg/SVGTextElement.idl:
        * svg/SVGTextPathElement.idl:
        * svg/SVGTextPositioningElement.idl:
        * svg/SVGTitleElement.idl:
        * svg/SVGTransform.idl:
        * svg/SVGTransformList.idl:
        * svg/SVGTransformable.idl:
        * svg/SVGURIReference.idl:
        * svg/SVGUnitTypes.idl:
        * svg/SVGUseElement.idl:
        * svg/SVGVKernElement.idl:
        * svg/SVGViewElement.idl:
        * svg/SVGViewSpec.idl:
        * svg/SVGZoomAndPan.idl:
        * svg/SVGZoomEvent.idl:
        * testing/Internals.idl:
        * webaudio/AudioBuffer.idl:
        * webaudio/AudioBufferSourceNode.idl:
        * webaudio/AudioChannelMerger.idl:
        * webaudio/AudioChannelSplitter.idl:
        * webaudio/AudioContext.idl:
        * webaudio/AudioDestinationNode.idl:
        * webaudio/AudioGain.idl:
        * webaudio/AudioGainNode.idl:
        * webaudio/AudioListener.idl:
        * webaudio/AudioNode.idl:
        * webaudio/AudioPannerNode.idl:
        * webaudio/AudioParam.idl:
        * webaudio/AudioProcessingEvent.idl:
        * webaudio/AudioSourceNode.idl:
        * webaudio/BiquadFilterNode.idl:
        * webaudio/ConvolverNode.idl:
        * webaudio/DelayNode.idl:
        * webaudio/DynamicsCompressorNode.idl:
        * webaudio/HighPass2FilterNode.idl:
        * webaudio/JavaScriptAudioNode.idl:
        * webaudio/LowPass2FilterNode.idl:
        * webaudio/OfflineAudioCompletionEvent.idl:
        * webaudio/RealtimeAnalyserNode.idl:
        * websockets/CloseEvent.idl:
        * websockets/WebSocket.idl:
        * workers/AbstractWorker.idl:
        * workers/DedicatedWorkerContext.idl:
        * workers/SharedWorker.idl:
        * workers/SharedWorkerContext.idl:
        * workers/Worker.idl:
        * workers/WorkerContext.idl:
        * workers/WorkerLocation.idl:
        * xml/DOMParser.idl:
        * xml/XMLHttpRequest.idl:
        * xml/XMLHttpRequestException.idl:
        * xml/XMLHttpRequestProgressEvent.idl:
        * xml/XMLHttpRequestUpload.idl:
        * xml/XMLSerializer.idl:
        * xml/XPathEvaluator.idl:
        * xml/XPathException.idl:
        * xml/XPathExpression.idl:
        * xml/XPathNSResolver.idl:
        * xml/XPathResult.idl:
        * xml/XSLTProcessor.idl:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@89148 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent 2db9529b
This diff is collapsed.
......@@ -1929,7 +1929,12 @@ sub GenerateImplementation
my $numParameters = @{$function->parameters};
my $requiresAllArguments = $function->signature->extendedAttributes->{"RequiresAllArguments"};
my $requiresAllArguments;
if ($dataNode->extendedAttributes->{"LegacyDefaultOptionalArguments"}) {
$requiresAllArguments = $function->signature->extendedAttributes->{"RequiresAllArguments"};
} else {
$requiresAllArguments = "Raise";
}
if ($requiresAllArguments) {
my $numMandatoryParams = @{$function->parameters};
foreach my $param (reverse(@{$function->parameters})) {
......
......@@ -1242,7 +1242,12 @@ END
my $numParameters = @{$function->parameters};
my $requiresAllArguments = $function->signature->extendedAttributes->{"RequiresAllArguments"};
my $requiresAllArguments;
if ($dataNode->extendedAttributes->{"LegacyDefaultOptionalArguments"}) {
$requiresAllArguments = $function->signature->extendedAttributes->{"RequiresAllArguments"};
} else {
$requiresAllArguments = "Raise";
}
if ($requiresAllArguments) {
my $numMandatoryParams = @{$function->parameters};
foreach my $param (reverse(@{$function->parameters})) {
......
......@@ -31,6 +31,7 @@
module test {
interface [
Conditional=DATABASE,
LegacyDefaultOptionalArguments,
Callback
] TestCallback {
boolean callbackWithNoParam();
......
......@@ -31,6 +31,7 @@
module test {
interface [
Conditional=Condition1|Condition2,
LegacyDefaultOptionalArguments,
CanBeConstructed,
CallWith=ScriptExecutionContext
] TestInterface {
......
......@@ -26,7 +26,9 @@
// This IDL file is for testing the bindings code generator with an interface
// that has methods receiving a parameter of the type MediaQueryListListener.
module test {
interface TestMediaQueryListListener {
interface [
LegacyDefaultOptionalArguments,
] TestMediaQueryListListener {
void method(in MediaQueryListListener listener);
};
}
......@@ -30,7 +30,9 @@
// This IDL file is for testing the bindings code generator and for tracking
// changes in its ouput.
module test {
interface TestObj {
interface [
LegacyDefaultOptionalArguments,
] TestObj {
// Attributes
readonly attribute long readOnlyIntAttr;
readonly attribute DOMString readOnlyStringAttr;
......
......@@ -28,6 +28,7 @@
module test {
interface [
Conditional=Condition1|Condition2,
LegacyDefaultOptionalArguments,
] TestSerializedScriptValueInterface {
// The case of a single SerializedScriptValue attribute is a bit of a
// special case.
......
......@@ -21,7 +21,9 @@
module css {
// Introduced in DOM Level 2:
interface CSSCharsetRule : CSSRule {
interface [
LegacyDefaultOptionalArguments,
] CSSCharsetRule : CSSRule {
#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
readonly attribute [ConvertNullStringTo=Null] DOMString encoding;
#else
......
......@@ -21,7 +21,9 @@
module css {
// Introduced in DOM Level 2:
interface CSSFontFaceRule : CSSRule {
interface [
LegacyDefaultOptionalArguments,
] CSSFontFaceRule : CSSRule {
readonly attribute CSSStyleDeclaration style;
};
......
......@@ -21,7 +21,9 @@
module css {
// Introduced in DOM Level 2:
interface CSSImportRule : CSSRule {
interface [
LegacyDefaultOptionalArguments,
] CSSImportRule : CSSRule {
readonly attribute [ConvertNullStringTo=Null] DOMString href;
readonly attribute MediaList media;
readonly attribute CSSStyleSheet styleSheet;
......
......@@ -21,7 +21,9 @@
module css {
// Introduced in DOM Level 2:
interface CSSMediaRule : CSSRule {
interface [
LegacyDefaultOptionalArguments,
] CSSMediaRule : CSSRule {
readonly attribute MediaList media;
readonly attribute CSSRuleList cssRules;
......
......@@ -21,7 +21,9 @@
module css {
// Introduced in DOM Level 2:
interface CSSPageRule : CSSRule {
interface [
LegacyDefaultOptionalArguments,
] CSSPageRule : CSSRule {
attribute [ConvertNullStringTo=Null, ConvertNullToNullString] DOMString selectorText;
......
......@@ -19,7 +19,9 @@
module css {
interface CSSPrimitiveValue : CSSValue {
interface [
LegacyDefaultOptionalArguments,
] CSSPrimitiveValue : CSSValue {
// UnitTypes
const unsigned short CSS_UNKNOWN = 0;
......
......@@ -22,6 +22,7 @@ module css {
// Introduced in DOM Level 2:
interface [
LegacyDefaultOptionalArguments,
CustomMarkFunction,
GenerateIsReachable,
CustomToJS,
......
......@@ -27,6 +27,7 @@ module css {
// Introduced in DOM Level 2:
interface [
LegacyDefaultOptionalArguments,
CustomIsReachable,
HasIndexGetter,
V8DependentLifetime
......
......@@ -22,6 +22,7 @@ module css {
// Introduced in DOM Level 2:
interface [
LegacyDefaultOptionalArguments,
CustomMarkFunction,
GenerateIsReachable=ImplRoot,
DelegatingPutFunction,
......
......@@ -21,7 +21,9 @@
module css {
// Introduced in DOM Level 2:
interface CSSStyleRule : CSSRule {
interface [
LegacyDefaultOptionalArguments,
] CSSStyleRule : CSSRule {
attribute [ConvertNullStringTo=Null, ConvertNullToNullString] DOMString selectorText;
......
......@@ -21,7 +21,9 @@
module css {
// Introduced in DOM Level 2:
interface CSSStyleSheet : StyleSheet {
interface [
LegacyDefaultOptionalArguments,
] CSSStyleSheet : StyleSheet {
readonly attribute CSSRule ownerRule;
readonly attribute CSSRuleList cssRules;
......
......@@ -22,6 +22,7 @@ module css {
// Introduced in DOM Level 2:
interface [
LegacyDefaultOptionalArguments,
OmitConstructor
] CSSUnknownRule : CSSRule {
};
......
......@@ -21,6 +21,7 @@
module css {
interface [
LegacyDefaultOptionalArguments,
CustomToJS,
CustomIsReachable,
CustomFinalize,
......
......@@ -27,6 +27,7 @@ module css {
// Introduced in DOM Level 2:
interface [
LegacyDefaultOptionalArguments,
HasIndexGetter
] CSSValueList : CSSValue {
readonly attribute unsigned long length;
......
......@@ -20,7 +20,9 @@
module css {
// Introduced in DOM Level 2:
interface Counter {
interface [
LegacyDefaultOptionalArguments,
] Counter {
readonly attribute DOMString identifier;
readonly attribute DOMString listStyle;
readonly attribute DOMString separator;
......
......@@ -27,6 +27,7 @@ module stylesheets {
// Introduced in DOM Level 2:
interface [
LegacyDefaultOptionalArguments,
GenerateIsReachable,
HasIndexGetter
] MediaList {
......
......@@ -18,7 +18,9 @@
*/
module view {
interface MediaQueryList {
interface [
LegacyDefaultOptionalArguments,
] MediaQueryList {
readonly attribute DOMString media;
readonly attribute boolean matches;
void addListener(in MediaQueryListListener listener);
......
......@@ -19,6 +19,7 @@
module view {
interface [
LegacyDefaultOptionalArguments,
NoStaticTables,
ObjCProtocol,
PureInterface,
......
......@@ -21,7 +21,9 @@
module css {
// Introduced in DOM Level 2:
interface RGBColor {
interface [
LegacyDefaultOptionalArguments,
] RGBColor {
readonly attribute CSSPrimitiveValue red;
readonly attribute CSSPrimitiveValue green;
readonly attribute CSSPrimitiveValue blue;
......
......@@ -19,7 +19,9 @@
module css {
interface Rect {
interface [
LegacyDefaultOptionalArguments,
] Rect {
readonly attribute CSSPrimitiveValue top;
readonly attribute CSSPrimitiveValue right;
readonly attribute CSSPrimitiveValue bottom;
......
......@@ -26,6 +26,7 @@
module view {
interface [
LegacyDefaultOptionalArguments,
GenerateIsReachable=ImplFrame
] StyleMedia {
readonly attribute DOMString type;
......
......@@ -22,6 +22,7 @@ module stylesheets {
// Introduced in DOM Level 2:
interface [
LegacyDefaultOptionalArguments,
CustomMarkFunction,
GenerateIsReachable,
CustomToJS,
......
......@@ -22,6 +22,7 @@ module stylesheets {
// Introduced in DOM Level 2:
interface [
LegacyDefaultOptionalArguments,
GenerateIsReachable=ImplDocument,
HasIndexGetter,
HasNameGetter,
......
......@@ -29,7 +29,9 @@
module css {
// Introduced in DOM Level ?:
interface WebKitCSSKeyframeRule : CSSRule {
interface [
LegacyDefaultOptionalArguments,
] WebKitCSSKeyframeRule : CSSRule {
attribute DOMString keyText;
readonly attribute CSSStyleDeclaration style;
......
......@@ -30,6 +30,7 @@ module css {
// Introduced in DOM Level ?:
interface [
LegacyDefaultOptionalArguments,
HasIndexGetter
] WebKitCSSKeyframesRule : CSSRule {
......
......@@ -27,6 +27,7 @@ module css {
// Introduced in DOM Level ?:
interface [
LegacyDefaultOptionalArguments,
CanBeConstructed,
CustomConstructFunction,
ConstructorParameters=1,
......
......@@ -29,6 +29,7 @@
module css {
interface [
LegacyDefaultOptionalArguments,
HasIndexGetter,
DontCheckEnums
] WebKitCSSTransformValue : CSSValueList {
......
......@@ -21,6 +21,7 @@
module core {
interface [
LegacyDefaultOptionalArguments,
CustomMarkFunction,
GenerateNativeConverter
] Attr : Node {
......
......@@ -26,7 +26,9 @@
module events {
interface BeforeLoadEvent : Event {
interface [
LegacyDefaultOptionalArguments,
] BeforeLoadEvent : Event {
void initBeforeLoadEvent(in DOMString type,
in boolean canBubble,
in boolean cancelable,
......
......@@ -26,7 +26,9 @@
module events {
interface BeforeProcessEvent : Event {
interface [
LegacyDefaultOptionalArguments,
] BeforeProcessEvent : Event {
void initBeforeProcessEvent(in DOMString type, in boolean canBubble, in boolean cancelable);
attribute DOMString text;
};
......
......@@ -19,7 +19,9 @@
module core {
interface CDATASection : Text {
interface [
LegacyDefaultOptionalArguments,
] CDATASection : Text {
};
}
......@@ -19,7 +19,9 @@
module core {
interface CharacterData : Node {
interface [
LegacyDefaultOptionalArguments,
] CharacterData : Node {
attribute [ConvertNullToNullString] DOMString data
setter raises(DOMException);
......
......@@ -26,7 +26,9 @@
module view {
interface ClientRect {
interface [
LegacyDefaultOptionalArguments,
] ClientRect {
readonly attribute float top;
readonly attribute float right;