/* * Copyright (C) 2013 Google Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following disclaimer * in the documentation and/or other materials provided with the * distribution. * * Neither the name of Google Inc. nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ enum TestEnum {"", "EnumValue1", "EnumValue2", "EnumValue3"}; callback VoidCallbackFunction = void (); callback AnyCallbackFunctionOptionalAnyArg = any (optional any optionalAnyArg); interface TestObjectPython { // Constants const unsigned short CONST_VALUE_0 = 0; const unsigned short CONST_VALUE_1 = 1; const unsigned short CONST_VALUE_2 = 2; const unsigned short CONST_VALUE_4 = 4; const unsigned short CONST_VALUE_8 = 8; const short CONST_VALUE_9 = -1; const DOMString CONST_VALUE_10 = "my constant string"; const unsigned short CONST_VALUE_11 = 0xffffffff; const unsigned short CONST_VALUE_12 = 0x01; const unsigned short CONST_VALUE_13 = 0X20; const unsigned short CONST_VALUE_14 = 0x1abc; const unsigned short CONST_VALUE_15 = 010; const unsigned short CONST_VALUE_16 = -010; const unsigned short CONST_VALUE_16 = -0x1A; const unsigned short CONST_VALUE_17 = -0X1a; // Extended attributes [DeprecateAs=Constant] const short DEPRECATED_CONSTANT = 1; [RuntimeEnabled=FeatureName] const short FEATURE_ENABLED_CONST = 1; [Reflect=CONST_IMPL] const short CONST_JAVASCRIPT = 1; // Attributes // TestInterfaceEmpty is used as a stub interface type, for testing behavior // that should not depend on particular type (beyond "interface or not"). // read only readonly attribute DOMString readonlyStringAttribute; readonly attribute TestInterfaceEmpty readonlyTestInterfaceEmptyAttribute; readonly attribute long readonlyLongAttribute; // Basic types attribute Date dateAttribute; attribute DOMString stringAttribute; readonly attribute DOMTimeStamp readonlyDOMTimeStampAttribute; // FIXME: Perl CG doesn't translate typedef DOMTimeStamp -> unsigned long long; remove readonly once moved to Python-only attribute boolean booleanAttribute; attribute byte byteAttribute; attribute double doubleAttribute; attribute float floatAttribute; attribute long longAttribute; attribute long long longLongAttribute; attribute octet octetAttribute; attribute short shortAttribute; attribute unsigned long unsignedLongAttribute; attribute unsigned long long unsignedLongLongAttribute; attribute unsigned short unsignedShortAttribute; // Interface type attribute TestInterfaceEmpty testInterfaceEmptyAttribute; // Self-reference attribute TestObjectPython testObjectPythonAttribute; // Callback function type attribute VoidCallbackFunction voidCallbackFunctionAttribute; attribute AnyCallbackFunctionOptionalAnyArg anyCallbackFunctionOptionalAnyArgAttribute; // Names that begin with an acronym attribute long cssAttribute; attribute long imeAttribute; attribute long svgAttribute; attribute long xmlAttribute; // Non-wrapper types attribute NodeFilter nodeFilterAttribute; attribute SerializedScriptValue serializedScriptValueAttribute; attribute any anyAttribute; // Custom type conversions attribute Promise promiseAttribute; attribute Window windowAttribute; // DOM Node types attribute Document documentAttribute; attribute DocumentFragment documentFragmentAttribute; attribute DocumentType documentTypeAttribute; attribute Element elementAttribute; attribute Node nodeAttribute; attribute ShadowRoot shadowRootAttribute; // Typed arrays attribute ArrayBuffer arrayBufferAttribute; attribute Float32Array float32ArrayAttribute; attribute Uint8Array uint8ArrayAttribute; // Exceptions for is_keep_alive_for_gc readonly attribute TestInterfaceEmpty self; readonly attribute EventTarget readonlyEventTargetAttribute; readonly attribute Window readonlyWindowAttribute; readonly attribute HTMLCollection htmlCollectionAttribute; readonly attribute HTMLElement htmlElementAttribute; // Arrays attribute DOMString[] stringArrayAttribute; attribute TestInterfaceEmpty[] testInterfaceEmptyArrayAttribute; attribute float[] floatArrayAttribute; // Nullable attributes attribute DOMString? nullableStringAttribute; attribute long? nullableLongAttribute; attribute TestInterface? nullableTestInterfaceAttribute; // Enumerations attribute TestEnum testEnumAttribute; // Static attributes static attribute DOMString staticStringAttribute; static attribute long staticLongAttribute; // Constructors attribute TestObjectAConstructor testObjectAConstructorAttribute; // Exceptional type attribute EventHandler eventHandlerAttribute; // Extended attributes [ActivityLogging=ForAllWorlds] attribute long activityLoggingAccessForAllWorldsLongAttribute; [ActivityLogging=GetterForAllWorlds] attribute long activityLoggingGetterForAllWorldsLongAttribute; [ActivityLogging=SetterForAllWorlds] attribute long activityLoggingSetterForAllWorldsLongAttribute; [CachedAttribute=isValueDirty] attribute any cachedAttributeAnyAttribute; [CallWith=ExecutionContext] attribute any callWithExecutionContextAnyAttribute; [CheckSecurity=Node] readonly attribute Document checkSecurityForNodeReadonlyDocumentAttribute; // All uses are read only [Conditional=CONDITION] attribute long conditionalLongAttribute; [Conditional=CONDITION_1&CONDITION_2] attribute long conditionalAndLongAttribute; [Conditional=CONDITION_1|CONDITION_2] attribute long conditionalOrLongAttribute; [Custom] attribute object customObjectAttribute; [Custom=Getter] attribute long customGetterLongAttribute; [Custom=Getter] readonly attribute object customGetterReadonlyObjectAttribute; [Custom=Setter] attribute long customSetterLongAttribute; [Conditional=CONDITION, Custom] attribute long customLongAttribute; [CustomElementCallbacks] readonly attribute long customElementsCallbacksReadonlyLongAttribute; [DeprecateAs=LongAttribute] attribute long deprecatedLongAttribute; [EnforceRange] attribute long enforceRangeLongAttribute; [ExposeJSAccessors] attribute long exposeJSAccessorsLongAttribute; [ImplementedAs=implementedAsName] attribute long implementedAsLongAttribute; [Custom, ImplementedAs=implementedAsNameWithCustom] attribute long customImplementedAsLongAttribute; [Custom=Getter, ImplementedAs=implementedAsNameWithCustomGetter] attribute long customGetterImplementedAsLongAttribute; [Custom=Setter, ImplementedAs=implementedAsNameWithCustomGetter] attribute long customSetterImplementedAsLongAttribute; [MeasureAs=TestFeature] attribute long measureAsLongAttribute; [NotEnumerable] attribute long notEnumerableLongAttribute; [PerContextEnabled=FeatureName] attribute long perContextEnabledLongAttribute; [PerWorldBindings] attribute long perWorldBindingsLongAttribute; [PerWorldBindings] readonly attribute long perWorldBindingsReadonlyLongAttribute; // Separate read only attribute to check attribute configuration [PerWorldBindings] readonly attribute TestInterfaceEmpty perWorldBindingsReadonlyTestInterfaceEmptyAttribute; [ActivityLogging=ForAllWorlds, PerWorldBindings] attribute long activityLoggingAccessPerWorldBindingsLongAttribute; [ActivityLogging=ForIsolatedWorlds, PerWorldBindings] attribute long activityLoggingAccessForIsolatedWorldsPerWorldBindingsLongAttribute; [ActivityLogging=GetterForAllWorlds, PerWorldBindings] attribute long activityLoggingGetterPerWorldBindingsLongAttribute; [ActivityLogging=GetterForIsolatedWorlds, PerWorldBindings] attribute long activityLoggingGetterForIsolatedWorldsPerWorldBindingsLongAttribute; [PutForwards=href] readonly attribute TestNode location; [PutForwards=hrefThrows] readonly attribute TestNode locationWithException; [PutForwards=hrefCallWith] readonly attribute TestNode locationWithCallWith; [PerWorldBindings, PutForwards=href] readonly attribute TestNode locationWithPerWorldBindings; [RaisesException] attribute long raisesExceptionLongAttribute; [RaisesException=Getter] attribute long raisesExceptionGetterLongAttribute; [RaisesException=Setter] attribute long setterRaisesExceptionLongAttribute; [RaisesException] attribute TestInterfaceEmpty raisesExceptionTestInterfaceEmptyAttribute; [CachedAttribute=isValueDirty, RaisesException] attribute any cachedAttributeRaisesExceptionGetterAnyAttribute; [Reflect] attribute TestInterface reflectTestInterfaceAttribute; [Reflect=reflectedNameAttribute] attribute TestInterface reflectReflectedNameAttributeTestAttribute; // [Reflect] exceptional types: exceptional getters, exceptional setters, // or range checking for unsigned [Reflect] attribute boolean reflectBooleanAttribute; [Reflect] attribute long reflectLongAttribute; [Reflect] attribute unsigned short reflectUnsignedShortAttribute; [Reflect] attribute unsigned long reflectUnsignedLongAttribute; // [Reflect] exceptional names [Reflect] attribute DOMString id; [Reflect] attribute DOMString name; [Reflect] attribute DOMString class; [Reflect=id] attribute DOMString reflectedId; [Reflect=name] attribute DOMString reflectedName; [Reflect=class] attribute DOMString reflectedClass; // Limited value attributes and enumerated attributes [Reflect, ReflectOnly="unique"] attribute DOMString limitedToOnlyOneAttribute; [Reflect, ReflectOnly="Per"|"Paal"|"Espen"] attribute DOMString limitedToOnlyAttribute; [Reflect=Other, ReflectOnly="Value1"|"Value2" ] attribute DOMString limitedToOnlyOtherAttribute; [Reflect, ReflectOnly="rsa"|"dsa", ReflectMissing="rsa"] attribute DOMString limitedWithMissingDefaultAttribute; [Reflect, ReflectOnly="ltr"|"rtl"|"auto", ReflectMissing="auto", ReflectInvalid="ltr"] attribute DOMString limitedWithInvalidMissingDefaultAttribute; [Reflect, ReflectOnly="anonymous"|"use-credentials", ReflectEmpty="anonymous", ReflectInvalid="anonymous"] readonly attribute DOMString corsSettingAttribute; [Reflect, ReflectOnly="empty"|"missing"|"invalid"|"a-normal", ReflectEmpty="empty", ReflectMissing="missing", ReflectInvalid="invalid"] readonly attribute DOMString limitedWithEmptyMissingInvalidAttribute; [Replaceable] readonly attribute long replaceableReadonlyLongAttribute; [Replaceable, PutForwards=href] readonly attribute TestNode locationReplaceable; [RuntimeEnabled=FeatureName] attribute long runtimeEnabledLongAttribute; [PerContextEnabled=FeatureName, RuntimeEnabled=FeatureName] attribute long perContextEnabledRuntimeEnabledLongAttribute; [Conditional=CONDITION, RuntimeEnabled=FeatureName] attribute long conditionalRuntimeEnabledLongAttribute; [SetterCallWith=ActiveWindow&FirstWindow] attribute DOMString setterCallWithActiveWindowAndFirstWindowStringAttribute; [SetterCallWith=ExecutionContext] attribute DOMString setterCallWithExecutionContextStringAttribute; [StrictTypeChecking] attribute float strictTypeCheckingFloatAttribute; // nop for non-interface types [StrictTypeChecking] attribute TestInterface strictTypeCheckingTestInterfaceAttribute; [TreatNullAs=NullString] attribute DOMString treatNullAsNullStringStringAttribute; [TreatReturnedNullStringAs=Null] attribute DOMString treatReturnedNullStringAsNullStringAttribute; [TreatReturnedNullStringAs=Undefined] attribute DOMString treatReturnedNullStringAsUndefinedStringAttribute; [Reflect, URL] attribute DOMString urlStringAttribute; [Reflect=ReflectUrlAttribute, URL] attribute DOMString urlStringAttribute; [Unforgeable] attribute long unforgeableLongAttribute; [Reflect="ReflectUrlAttributeAsAString"] attribute DOMString anotherStringAttribute; // Methods void voidMethod(); static void staticVoidMethod(); // Types // Basic types Date dateMethod(); DOMString stringMethod(); DOMTimeStamp readonlyDOMTimeStampMethod(); boolean booleanMethod(); byte byteMethod(); double doubleMethod(); float floatMethod(); long longMethod(); long long longLongMethod(); octet octetMethod(); short shortMethod(); unsigned long unsignedLongMethod(); unsigned long long unsignedLongLongMethod(); unsigned short unsignedShortMethod(); void voidMethodDateArg(Date dateArg); void voidMethodStringArg(DOMString stringArg); // void voidMethodDOMTimeStampArg(DOMTimeStamp domTimeStampArg); // FIXME: Perl CG doesn't translate typedef DOMTimeStamp -> unsigned long long; uncomment once moved to Python-only void voidMethodBooleanArg(boolean booleanArg); void voidMethodByteArg(byte byteArg); void voidMethodDoubleArg(double doubleArg); void voidMethodFloatArg(float floatArg); void voidMethodLongArg(long longArg); void voidMethodLongLongArg(long long longLongArg); void voidMethodOctetArg(octet octetArg); void voidMethodShortArg(short shortArg); void voidMethodUnsignedLongArg(unsigned long unsignedLongArg); void voidMethodUnsignedLongLongArg(unsigned long long unsignedLongLongArg); void voidMethodUnsignedShortArg(unsigned short unsignedShortArg); // Interface types TestInterfaceEmpty testInterfaceEmptyMethod(); void voidMethodTestInterfaceEmptyArg(TestInterfaceEmpty testInterfaceEmptyArg); void voidMethodLongArgTestInterfaceEmptyArg(long longArg, TestInterfaceEmpty testInterfaceEmptyArg); // Callback function type VoidCallbackFunction voidCallbackFunctionMethod(); AnyCallbackFunctionOptionalAnyArg anyCallbackFunctionOptionalAnyArgMethod(); void voidMethodVoidCallbackFunctionArg(VoidCallbackFunction voidCallbackFunctionArg); void voidMethodAnyCallbackFunctionOptionalAnyArg(AnyCallbackFunctionOptionalAnyArg anyCallbackFunctionOptionalAnyArgArg); // Custom type conversions CompareHow compareHowMethod(); any anyMethod(); void voidMethodCompareHowArg(CompareHow compareHowArg); void voidMethodEventTargetArg(EventTarget eventTargetArg); void voidMethodMediaQueryListListenerArg(MediaQueryListListener mediaQueryListListenerArg); void voidMethodAnyArg(any anyArg); // DOM node types void voidMethodAttrArg(Attr attrArg); void voidMethodDocumentArg(Document documentArg); void voidMethodDocumentTypeArg(DocumentType documentTypeArg); void voidMethodElementArg(Element elementArg); void voidMethodNodeArg(Node nodeArg); // Typed arrays ArrayBuffer arrayBufferMethod(); ArrayBufferView arrayBufferViewMethod(); Float32Array float32ArrayMethod(); Int32Array int32ArrayMethod(); Uint8Array uint8ArrayMethod(); void voidMethodArrayBufferArg(ArrayBuffer arrayBufferArg); void voidMethodArrayBufferViewArg(ArrayBufferView arrayBufferViewArg); void voidMethodFloat32ArrayArg(Float32Array float32ArrayArg); void voidMethodInt32ArrayArg(Int32Array int32ArrayArg); void voidMethodUint8ArrayArg(Uint8Array uint8ArrayArg); // Arrays long[] longArrayMethod(); DOMString[] stringArrayMethod(); TestInterfaceEmpty[] testInterfaceEmptyArrayMethod(); void voidMethodArrayLongArg(long[] arrayLongArg); void voidMethodArrayStringArg(DOMString[] arrayStringArg); void voidMethodArrayTestInterfaceEmptyArg(TestInterfaceEmpty[] arrayTestInterfaceEmptyArg); // Sequences sequence sequenceLongMethod(); sequence sequenceStringMethod(); sequence sequenceTestInterfaceEmptyMethod(); void voidMethodSequenceLongArg(sequence sequenceLongArg); void voidMethodSequenceStringArg(sequence sequenceStringArg); void voidMethodSequenceTestInterfaceEmptyArg(sequence sequenceTestInterfaceEmptyArg); // Nullable types // Currently only used on interface type arguments void voidMethodNullableStringArg(TestInterfaceEmpty? nullableTestInterfaceEmptyArg); // Callback interface types void voidMethodTestCallbackInterfaceArg(TestCallbackInterface testCallbackInterfaceArg); void voidMethodOptionalTestCallbackInterfaceArg(optional TestCallbackInterface optionalTestCallbackInterfaceArg); void voidMethodNullableTestCallbackInterfaceArg(TestCallbackInterface? testCallbackInterfaceArg); // Enumerations TestEnum testEnumMethod(); void voidMethodTestEnumArg(TestEnum testEnumTypeArg); // Exceptional types Dictionary dictionaryMethod(); NodeFilter nodeFilterMethod(); Promise promiseMethod(); SerializedScriptValue serializedScriptValueMethod(); XPathNSResolver xPathNSResolverMethod(); void voidMethodDictionaryArg(Dictionary dictionaryArg); void voidMethodNodeFilterArg(NodeFilter nodeFilterArg); void voidMethodPromiseArg(Promise promiseArg); void voidMethodSerializedScriptValueArg(SerializedScriptValue serializedScriptValueArg); void voidMethodXPathNSResolverArg(XPathNSResolver xPathNSResolverArg); void voidMethodSequenceDictionaryArg(sequence sequenceDictionaryArg); // Arguments void voidMethodStringArgLongArg(DOMString stringArg, long longArg); // Optional arguments void voidMethodOptionalStringArg(optional DOMString optionalStringArg); void voidMethodOptionalTestInterfaceEmptyArg(optional TestInterfaceEmpty optionalTestInterfaceEmptyArg); void voidMethodOptionalLongArg(optional long optionalLongArg); DOMString stringMethodOptionalLongArg(optional long optionalLongArg); TestInterfaceEmpty testInterfaceEmptyMethodOptionalLongArg(optional long optionalLongArg); long longMethodOptionalLongArg(optional long optionalLongArg); void voidMethodLongArgOptionalLongArg(long longArg, optional long optionalLongArg); void voidMethodLongArgOptionalLongArgOptionalLongArg(long longArg, optional long optionalLongArg1, optional long optionalLongArg2); void voidMethodLongArgOptionalTestInterfaceEmptyArg(long longArg, optional TestInterfaceEmpty optionalTestInterfaceEmpty); void voidMethodTestInterfaceEmptyArgOptionalLongArg(TestInterfaceEmpty optionalTestInterfaceEmpty, optional long longArg); // Optional arguments: exceptional case void voidMethodOptionalDictionaryArg(optional Dictionary optionalDictionaryArg); // Variadic operations void voidMethodVariadicStringArg(DOMString... variadicStringArgs); void voidMethodStringArgVariadicStringArg(DOMString stringArg, DOMString... variadicStringArgs); void voidMethodVariadicTestInterfaceEmptyArg(TestInterfaceEmpty... variadicTestInterfaceEmptyArgs); void voidMethodTestInterfaceEmptyArgVariadicTestInterfaceEmptyArg(TestInterfaceEmpty testInterfaceEmptyArg, TestInterfaceEmpty... variadicTestInterfaceEmptyArgs); // Overloaded methods void overloadedMethodA(long longArg); void overloadedMethodA(long longArg1, long longArg2); void overloadedMethodB(long longArg); void overloadedMethodB(long longArg1, optional long longArg2); void overloadedMethodC(long longArg); void overloadedMethodC(long longArg, long... longArgs); void overloadedMethodD(long longArg); void overloadedMethodD(TestInterfaceEmpty testInterfaceEmptyArg); void overloadedMethodE(long longArg); void overloadedMethodE(long[] longArrayArg); void overloadedMethodF(long longArg); void overloadedMethodF(TestInterfaceEmpty? testInterfaceEmptyNullableArg); void overloadedMethodG(); void overloadedMethodG([StrictTypeChecking] DOMString strictTypeCheckingStringArg); void overloadedMethodH(); void overloadedMethodH(TestCallbackInterface testCallbackInterfaceArg); [PerWorldBindings] void overloadedPerWorldBindingsMethod(); [PerWorldBindings] void overloadedPerWorldBindingsMethod(long longArg); static void overloadedStaticMethod(long longArg); static void overloadedStaticMethod(long longArg1, long longArg2); // Exceptional methods for EventListener void addEventListener(DOMString type, EventListener listener, optional boolean useCapture); void removeEventListener(DOMString type, EventListener listener, optional boolean useCapture); [RaisesException] boolean dispatchEvent(Event event); // Extended attributes for arguments // [Clamp] void voidMethodClampUnsignedShortArg([Clamp] unsigned short clampUnsignedShortArg); void voidMethodClampUnsignedLongArg([Clamp] unsigned long clampUnsignedLongArg); // [Default] void voidMethodDefaultUndefinedTestInterfaceEmptyArg([Default=Undefined] optional TestInterfaceEmpty defaultUndefinedTestInterfaceEmptyArg); void voidMethodDefaultUndefinedLongArg([Default=Undefined] optional long defaultUndefinedLongArg); void voidMethodDefaultUndefinedStringArg([Default=Undefined] optional DOMString defaultUndefinedStringArg); void voidMethodDefaultNullStringStringArg([Default=NullString] optional DOMString defaultNullStringStringArg); // [EnforceRange] void voidMethodEnforceRangeLongArg([EnforceRange] long enforceRangeLongArg); // [TreatNullAs], [TreatUndefinedAs] void voidMethodTreatNullAsNullStringStringArg([TreatNullAs=NullString] DOMString treatNullAsNullStringStringArg); void voidMethodTreatNullAsNullStringTreatUndefinedAsNullStringStringArg([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString treatNullAsNullStringStringArg); // Extended attributes for methods [ActivityLogging=ForAllWorlds] void activityLoggingAccessForAllWorldsMethod(); [CallWith=ScriptState] void callWithScriptStateVoidMethod(); [CallWith=ScriptState] long callWithScriptStateLongMethod(); [CallWith=ExecutionContext] void callWithExecutionContextVoidMethod(); [CallWith=ScriptState&ExecutionContext] void callWithScriptStateExecutionContextVoidMethod(); [CallWith=ScriptState&ScriptArguments] void callWithScriptStateScriptArgumentsVoidMethod(); [CallWith=ScriptState&ScriptArguments] void callWithScriptStateScriptArgumentsVoidMethodOptionalBooleanArg(optional boolean optionalBooleanArg); [CallWith=ActiveWindow] void callWithActiveWindow(); [CallWith=ActiveWindow&FirstWindow] void callWithActiveWindowScriptWindow(); [CheckSecurity=Node] void checkSecurityForNodeVoidMethod(); [Conditional=CONDITION] void conditionalConditionVoidMethod(); [Conditional=CONDITION_1&CONDITION_2] void conditionalCondition1AndCondition2VoidMethod(); [Conditional=CONDITION] static void conditionalConditionStaticVoidMethod(); [Custom] void customVoidMethod(); [Conditional=CONDITION, Custom] void conditionalConditionCustomVoidMethod(); [CustomElementCallbacks] void customElementCallbacksVoidMethod(); [DeprecateAs=voidMethod] void deprecatedVoidMethod(); [DoNotCheckSignature] void doNotCheckSignatureVoidMethod(); [ImplementedAs=implementedAsMethodName] void implementedAsVoidMethod(); [MeasureAs=TestFeature] void measureAsVoidMethod(); [NotEnumerable] void notEnumerableVoidMethod(); [PerContextEnabled=FeatureName] void perContextEnabledVoidMethod(); [PerWorldBindings] void perWorldBindingsVoidMethod(); [PerWorldBindings] void perWorldBindingsVoidMethodTestInterfaceEmptyArg(TestInterfaceEmpty testInterfaceEmptyArg); [ActivityLogging=ForAllWorlds, PerWorldBindings] void activityLoggingForAllWorldsPerWorldBindingsVoidMethod(); [ActivityLogging=ForIsolatedWorlds, PerWorldBindings] void activityLoggingForIsolatedWorldsPerWorldBindingsVoidMethod(); [RaisesException] void raisesExceptionVoidMethod(); [RaisesException] DOMString raisesExceptionStringMethod(); [RaisesException] void raisesExceptionVoidMethodOptionalLongArg(optional long optionalLongArg); [RaisesException] void raisesExceptionVoidMethodTestCallbackInterfaceArg(TestCallbackInterface testCallbackInterfaceArg); [RaisesException] void raisesExceptionVoidMethodOptionalTestCallbackInterfaceArg(optional TestCallbackInterface optionalTestCallbackInterfaceArg); [RaisesException] TestInterfaceEmpty raisesExceptionTestInterfaceEmptyVoidMethod(); [ReadOnly] void readOnlyVoidMethod(); [NotEnumerable, ReadOnly] void notEnumerableReadOnlyVoidMethod(); [RuntimeEnabled=FeatureName] void runtimeEnabledVoidMethod(); [PerWorldBindings, RuntimeEnabled=FeatureName] void perWorldBindingsRuntimeEnabledVoidMethod(); [StrictTypeChecking] void strictTypeCheckingVoidMethodTestInterfaceEmptyArg(TestInterfaceEmpty testInterfaceEmptyArg); [StrictTypeChecking] void strictTypeCheckingVoidMethodNullableTestInterfaceEmptyArg(TestInterfaceEmpty? testInterfaceEmptyArg); [TreatReturnedNullStringAs=Null] DOMString treatReturnedNullStringAsNullStringMethod(); [TreatReturnedNullStringAs=Undefined] DOMString treatReturnedNullStringAsUndefinedStringMethod(); [Unforgeable] void unforgeableVoidMethod(); // Extended attributes on referenced interfaces // (not self; self-reference tests at interface themselves) attribute TestInterfacePython testInterfacePythonAttribute; // [ImplementedAs] attribute TestInterfaceWillBeGarbageCollected? testInterfaceWillBeGarbageCollectedAttribute; // [WillBeGarbageCollected] };