1/* 2 * Copyright (C) 2013 Google Inc. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions are 6 * met: 7 * 8 * * Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * * Redistributions in binary form must reproduce the above 11 * copyright notice, this list of conditions and the following disclaimer 12 * in the documentation and/or other materials provided with the 13 * distribution. 14 * * Neither the name of Google Inc. nor the names of its 15 * contributors may be used to endorse or promote products derived from 16 * this software without specific prior written permission. 17 * 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 */ 30 31enum TestEnum {"", "EnumValue1", "EnumValue2", "EnumValue3"}; 32 33interface TestObjectPython { 34 // Constants 35 const unsigned short CONST_VALUE_0 = 0; 36 const unsigned short CONST_VALUE_1 = 1; 37 const unsigned short CONST_VALUE_2 = 2; 38 const unsigned short CONST_VALUE_4 = 4; 39 const unsigned short CONST_VALUE_8 = 8; 40 const short CONST_VALUE_9 = -1; 41 const DOMString CONST_VALUE_10 = "my constant string"; 42 const unsigned short CONST_VALUE_11 = 0xffffffff; 43 const unsigned short CONST_VALUE_12 = 0x01; 44 const unsigned short CONST_VALUE_13 = 0X20; 45 const unsigned short CONST_VALUE_14 = 0x1abc; 46 const unsigned short CONST_VALUE_15 = 010; 47 const unsigned short CONST_VALUE_16 = -010; 48 const unsigned short CONST_VALUE_16 = -0x1A; 49 const unsigned short CONST_VALUE_17 = -0X1a; 50 51 // Extended attributes 52 [DeprecateAs=Constant] const short DEPRECATED_CONSTANT = 1; 53 [RuntimeEnabled=FeatureName] const short FEATURE_ENABLED_CONST = 1; 54 [Reflect=CONST_IMPL] const short CONST_JAVASCRIPT = 1; 55 56 57 // Attributes 58 // TestInterfaceEmpty is used as a stub interface type, for testing behavior 59 // that should not depend on particular type (beyond "interface or not"). 60 // read only 61 readonly attribute DOMString readonlyStringAttribute; 62 readonly attribute TestInterfaceEmpty readonlyTestInterfaceEmptyAttribute; 63 readonly attribute long readonlyLongAttribute; 64 // Basic types 65 attribute Date dateAttribute; 66 attribute DOMString stringAttribute; 67 readonly attribute DOMTimeStamp readonlyDOMTimeStampAttribute; // FIXME: Perl CG doesn't translate typedef DOMTimeStamp -> unsigned long long; remove readonly once moved to Python-only 68 attribute boolean booleanAttribute; 69 attribute byte byteAttribute; 70 attribute double doubleAttribute; 71 attribute float floatAttribute; 72 attribute long longAttribute; 73 attribute long long longLongAttribute; 74 attribute octet octetAttribute; 75 attribute short shortAttribute; 76 attribute unsigned long unsignedLongAttribute; 77 attribute unsigned long long unsignedLongLongAttribute; 78 attribute unsigned short unsignedShortAttribute; 79 // Names that with an acronym 80 attribute long cssAttribute; 81 attribute long imeAttribute; 82 attribute long svgAttribute; 83 attribute long xmlAttribute; 84 // Non-wrapper types 85 attribute NodeFilter nodeFilterAttribute; 86 attribute SerializedScriptValue serializedScriptValueAttribute; 87 attribute any anyAttribute; 88 // Custom type conversions 89 attribute Promise promiseAttribute; 90 // DOM Node types 91 attribute Document documentAttribute; 92 attribute DocumentFragment documentFragmentAttribute; 93 attribute DocumentType documentTypeAttribute; 94 attribute Element elementAttribute; 95 attribute Entity entityAttribute; 96 attribute Node nodeAttribute; 97 attribute ShadowRoot shadowRootAttribute; 98 // Typed arrays 99 attribute ArrayBuffer arrayBufferAttribute; 100 attribute Float32Array float32ArrayAttribute; 101 attribute Uint8Array uint8ArrayAttribute; 102 // Usual case for is_keep_alive_for_gc 103 attribute TestInterfaceEmpty testInterfaceEmptyAttribute; 104 // Exceptions for is_keep_alive_for_gc 105 attribute TestInterfaceEmpty self; 106 readonly attribute Window readonlyWindowAttribute; // FIXME: support [ImplementedAs] on interface 107 attribute HTMLCollection htmlCollectionAttribute; 108 attribute HTMLElement htmlElementAttribute; 109 // Arrays 110 attribute DOMString[] stringArrayAttribute; 111 attribute TestInterfaceEmpty[] testInterfaceEmptyArrayAttribute; 112 attribute float[] floatArrayAttribute; 113 // Nullable attributes 114 attribute DOMString? nullableStringAttribute; 115 attribute long? nullableLongAttribute; 116 // Enumerations 117 attribute TestEnum testEnumAttribute; 118 // Static attributes 119 static attribute DOMString staticStringAttribute; 120 static attribute long staticLongAttribute; 121 // Constructors 122 // attribute attribute TestSubObjConstructor TestSubObj; 123 attribute TestObjectAConstructor testObjectAConstructorAttribute; 124 // Exceptional type 125 attribute EventHandler eventHandlerAttribute; 126 127 // Extended attributes 128 [ActivityLogging=ForAllWorlds] attribute long activityLoggingAccessForAllWorldsLongAttribute; 129 [ActivityLogging=GetterForAllWorlds] attribute long activityLoggingGetterForAllWorldsLongAttribute; 130 [ActivityLogging=SetterForAllWorlds] attribute long activityLoggingSetterForAllWorldsLongAttribute; 131 [CachedAttribute=isValueDirty] attribute any cachedAttributeAnyAttribute; 132 [CallWith=ExecutionContext] attribute any callWithExecutionContextAnyAttribute; 133 [CheckSecurity=Node] readonly attribute Document checkSecurityForNodeReadonlyDocumentAttribute; // All uses are read only 134 [Conditional=CONDITION] attribute long conditionalLongAttribute; 135 [Conditional=CONDITION_1&CONDITION_2] attribute long conditionalAndLongAttribute; 136 [Conditional=CONDITION_1|CONDITION_2] attribute long conditionalOrLongAttribute; 137 [Custom] attribute object customObjectAttribute; 138 [Custom=Getter] attribute long customGetterLongAttribute; 139 [Custom=Getter] readonly attribute object customGetterReadonlyObjectAttribute; 140 [Custom=Setter] attribute long customSetterLongAttribute; 141 [Conditional=CONDITION, Custom] attribute long customLongAttribute; 142 [CustomElementCallbacks] readonly attribute long customElementsCallbacksReadonlyLongAttribute; 143 [DeprecateAs=LongAttribute] attribute long deprecatedLongAttribute; 144 [EnforceRange] attribute long enforceRangeLongAttribute; 145 [ExposeJSAccessors] attribute long exposeJSAccessorsLongAttribute; 146 [RaisesException=Getter] attribute long getterRaisesExceptionLongAttribute; 147 [ImplementedAs=implementedAsName] attribute long implementedAsLongAttribute; 148 [Custom, ImplementedAs=implementedAsNameWithCustom] attribute long customImplementedAsLongAttribute; 149 [Custom=Getter, ImplementedAs=implementedAsNameWithCustomGetter] attribute long customGetterImplementedAsLongAttribute; 150 [Custom=Setter, ImplementedAs=implementedAsNameWithCustomGetter] attribute long customSetterImplementedAsLongAttribute; 151 [MeasureAs=TestFeature] attribute long measureAsLongAttribute; 152 [NotEnumerable] attribute long notEnumerableLongAttribute; 153 [PerContextEnabled=FeatureName] attribute long perContextEnabledLongAttribute; 154 [PerWorldBindings] attribute long perWorldBindingsLongAttribute; 155 [PerWorldBindings] readonly attribute long perWorldBindingsReadonlyLongAttribute; // Separate read only attribute to check attribute configuration 156 [ActivityLogging=ForAllWorlds, PerWorldBindings] attribute long activityLoggingAccessPerWorldBindingsLongAttribute; 157 [ActivityLogging=ForIsolatedWorlds, PerWorldBindings] attribute long activityLoggingAccessForIsolatedWorldsPerWorldBindingsLongAttribute; 158 [ActivityLogging=GetterForAllWorlds, PerWorldBindings] attribute long activityLoggingGetterPerWorldBindingsLongAttribute; 159 [ActivityLogging=GetterForIsolatedWorlds, PerWorldBindings] attribute long activityLoggingGetterForIsolatedWorldsPerWorldBindingsLongAttribute; 160 [RaisesException] attribute long raisesExceptionLongAttribute; 161 [Reflect] attribute TestInterface reflectTestInterfaceAttribute; 162 [Reflect=reflectedNameAttribute] attribute TestInterface reflectReflectedNameAttributeTestAttribute; 163 // [Reflect] exceptional types: exceptional getters, exceptional setters, 164 // or range checking for unsigned 165 [Reflect] attribute boolean reflectBooleanAttribute; 166 [Reflect] attribute long reflectLongAttribute; 167 [Reflect] attribute unsigned short reflectUnsignedShortAttribute; 168 [Reflect] attribute unsigned long reflectUnsignedLongAttribute; 169 // [Reflect] exceptional names 170 [Reflect] attribute DOMString id; 171 [Reflect] attribute DOMString name; 172 [Reflect] attribute DOMString class; 173 [Reflect=id] attribute DOMString reflectedId; 174 [Reflect=name] attribute DOMString reflectedName; 175 [Reflect=class] attribute DOMString reflectedClass; 176 [Replaceable] readonly attribute long replaceableReadonlyLongAttribute; 177 [RuntimeEnabled=FeatureName] attribute long runtimeEnabledLongAttribute; 178 [Conditional=CONDITION, RuntimeEnabled=FeatureName] attribute long conditionalRuntimeEnabledLongAttribute; 179 [SetterCallWith=ActiveWindow&FirstWindow] attribute DOMString setterCallWithActiveWindowAndFirstWindowStringAttribute; 180 [RaisesException=Setter] attribute long setterRaisesExceptionLongAttribute; 181 [StrictTypeChecking] attribute float strictTypeCheckingFloatAttribute; // nop for non-interface types 182 [StrictTypeChecking] attribute TestInterface strictTypeCheckingTestInterfaceAttribute; 183 [TreatNullAs=NullString] attribute DOMString treatNullAsNullStringStringAttribute; 184 [TreatReturnedNullStringAs=Null] attribute DOMString treatReturnedNullStringAsNullStringAttribute; 185 [TreatReturnedNullStringAs=Undefined] attribute DOMString treatReturnedNullStringAsUndefinedStringAttribute; 186 [Reflect, URL] attribute DOMString urlStringAttribute; 187 [Reflect=ReflectUrlAttribute, URL] attribute DOMString urlStringAttribute; 188 [Unforgeable] attribute long unforgeableLongAttribute; 189 190 191 // Methods 192 void voidMethod(); 193 static void staticVoidMethod(); 194 195 // Types 196 // Basic types 197 Date dateMethod(); 198 DOMString stringMethod(); 199 DOMTimeStamp readonlyDOMTimeStampMethod(); 200 boolean booleanMethod(); 201 byte byteMethod(); 202 double doubleMethod(); 203 float floatMethod(); 204 long longMethod(); 205 long long longLongMethod(); 206 octet octetMethod(); 207 short shortMethod(); 208 unsigned long unsignedLongMethod(); 209 unsigned long long unsignedLongLongMethod(); 210 unsigned short unsignedShortMethod(); 211 212 void voidMethodDateArg(Date dateArg); 213 void voidMethodStringArg(DOMString stringArg); 214 // void voidMethodDOMTimeStampArg(DOMTimeStamp domTimeStampArg); // FIXME: Perl CG doesn't translate typedef DOMTimeStamp -> unsigned long long; uncomment once moved to Python-only 215 void voidMethodBooleanArg(boolean booleanArg); 216 void voidMethodByteArg(byte byteArg); 217 void voidMethodDoubleArg(double doubleArg); 218 void voidMethodFloatArg(float floatArg); 219 void voidMethodLongArg(long longArg); 220 void voidMethodLongLongArg(long long longLongArg); 221 void voidMethodOctetArg(octet octetArg); 222 void voidMethodShortArg(short shortArg); 223 void voidMethodUnsignedLongArg(unsigned long unsignedLongArg); 224 void voidMethodUnsignedLongLongArg(unsigned long long unsignedLongLongArg); 225 void voidMethodUnsignedShortArg(unsigned short unsignedShortArg); 226 // Interface types 227 TestInterfaceEmpty testInterfaceEmptyMethod(); 228 void voidMethodTestInterfaceEmptyArg(TestInterfaceEmpty testInterfaceEmptyArg); 229 void voidMethodLongArgTestInterfaceEmptyArg(long longArg, TestInterfaceEmpty testInterfaceEmptyArg); 230 // Custom type conversions 231 CompareHow compareHowMethod(); 232 any anyMethod(); 233 void voidMethodMediaQueryListListenerArg(MediaQueryListListener mediaQueryListListenerArg); 234 void voidMethodCompareHowArg(CompareHow compareHowArg); 235 void voidMethodAnyArg(any anyArg); 236 // DOM node types 237 void voidMethodAttrArg(Attr attrArg); 238 void voidMethodDocumentArg(Document documentArg); 239 void voidMethodDocumentTypeArg(DocumentType documentTypeArg); 240 void voidMethodElementArg(Element elementArg); 241 void voidMethodNodeArg(Node nodeArg); 242 // Typed arrays 243 ArrayBuffer arrayBufferMethod(); 244 ArrayBufferView arrayBufferViewMethod(); 245 Float32Array float32ArrayMethod(); 246 Int32Array int32ArrayMethod(); 247 Uint8Array uint8ArrayMethod(); 248 void voidMethodArrayBufferArg(ArrayBuffer arrayBufferArg); 249 void voidMethodArrayBufferViewArg(ArrayBufferView arrayBufferViewArg); 250 void voidMethodFloat32ArrayArg(Float32Array float32ArrayArg); 251 void voidMethodInt32ArrayArg(Int32Array int32ArrayArg); 252 void voidMethodUint8ArrayArg(Uint8Array uint8ArrayArg); 253 // Arrays 254 long[] longArrayMethod(); 255 DOMString[] stringArrayMethod(); 256 TestInterfaceEmpty[] testInterfaceEmptyArrayMethod(); 257 void voidMethodArrayLongArg(long[] arrayLongArg); 258 void voidMethodArrayStringArg(DOMString[] arrayStringArg); 259 void voidMethodArrayTestInterfaceEmptyArg(TestInterfaceEmpty[] arrayTestInterfaceEmptyArg); 260 // Sequences 261 sequence<long> sequenceLongMethod(); 262 sequence<DOMString> sequenceStringMethod(); 263 sequence<TestInterfaceEmpty> sequenceTestInterfaceEmptyMethod(); 264 void voidMethodSequenceLongArg(sequence<long> sequenceLongArg); 265 void voidMethodSequenceStringArg(sequence<DOMString> sequenceStringArg); 266 void voidMethodSequenceTestInterfaceEmptyArg(sequence<TestInterfaceEmpty> sequenceTestInterfaceEmptyArg); 267 // Nullable types 268 // Currently only used on interface type arguments 269 void voidMethodNullableStringArg(TestInterfaceEmpty? nullableTestInterfaceEmptyArg); 270 // Enumerations 271 TestEnum testEnumMethod(); 272 void voidMethodTestEnumArg(TestEnum testEnumTypeArg); 273 // Exceptional types 274 Dictionary dictionaryMethod(); 275 NodeFilter nodeFilterMethod(); 276 Promise promiseMethod(); 277 SerializedScriptValue serializedScriptValueMethod(); 278 XPathNSResolver xPathNSResolverMethod(); 279 void voidMethodDictionaryArg(Dictionary dictionaryArg); 280 void voidMethodNodeFilterArg(NodeFilter nodeFilterArg); 281 void voidMethodPromiseArg(Promise promiseArg); 282 void voidMethodSerializedScriptValueArg(SerializedScriptValue serializedScriptValueArg); 283 void voidMethodXPathNSResolverArg(XPathNSResolver xPathNSResolverArg); 284 void voidMethodSequenceDictionaryArg(sequence<Dictionary> sequenceDictionaryArg); 285 286 // Arguments 287 void voidMethodStringArgLongArg(DOMString stringArg, long longArg); 288 // Optional arguments 289 void voidMethodOptionalStringArg(optional DOMString optionalStringArg); 290 void voidMethodOptionalTestInterfaceEmptyArg(optional TestInterfaceEmpty optionalTestInterfaceEmptyArg); 291 void voidMethodOptionalLongArg(optional long optionalLongArg); 292 DOMString stringMethodOptionalLongArg(optional long optionalLongArg); 293 TestInterfaceEmpty testInterfaceEmptyMethodOptionalLongArg(optional long optionalLongArg); 294 long longMethodOptionalLongArg(optional long optionalLongArg); 295 void voidMethodLongArgOptionalLongArg(long longArg, optional long optionalLongArg); 296 void voidMethodLongArgOptionalLongArgOptionalLongArg(long longArg, optional long optionalLongArg1, optional long optionalLongArg2); 297 void voidMethodLongArgOptionalTestInterfaceEmptyArg(long longArg, optional TestInterfaceEmpty optionalTestInterfaceEmpty); 298 void voidMethodTestInterfaceEmptyArgOptionalLongArg(TestInterfaceEmpty optionalTestInterfaceEmpty, optional long longArg); 299 // Optional arguments: exceptional case 300 void voidMethodOptionalDictionaryArg(optional Dictionary optionalDictionaryArg); 301 302 // Variadic operations 303 void voidMethodVariadicStringArg(DOMString... variadicStringArgs); 304 void voidMethodStringArgVariadicStringArg(DOMString stringArg, DOMString... variadicStringArgs); 305 void voidMethodVariadicTestInterfaceEmptyArg(TestInterfaceEmpty... variadicTestInterfaceEmptyArgs); 306 void voidMethodTestInterfaceEmptyArgVariadicTestInterfaceEmptyArg(TestInterfaceEmpty testInterfaceEmptyArg, TestInterfaceEmpty... variadicTestInterfaceEmptyArgs); 307 308 // Overloaded methods 309 void overloadedMethodA(long longArg); 310 void overloadedMethodA(long longArg1, long longArg2); 311 void overloadedMethodB(long longArg); 312 void overloadedMethodB(long longArg1, optional long longArg2); 313 void overloadedMethodC(long longArg); 314 void overloadedMethodC(long longArg, long... longArgs); 315 void overloadedMethodD(long longArg); 316 void overloadedMethodD(TestInterfaceEmpty testInterfaceEmptyArg); 317 void overloadedMethodE(long longArg); 318 void overloadedMethodE(long[] longArrayArg); 319 void overloadedMethodF(long longArg); 320 void overloadedMethodF(TestInterfaceEmpty? testInterfaceEmptyNullableArg); 321 void overloadedMethodG(); 322 void overloadedMethodG([StrictTypeChecking] DOMString strictTypeCheckingStringArg); 323 324 [PerWorldBindings] void overloadedPerWorldBindingsMethod(); 325 [PerWorldBindings] void overloadedPerWorldBindingsMethod(long longArg); 326 327 static void overloadedStaticMethod(long longArg); 328 static void overloadedStaticMethod(long longArg1, long longArg2); 329 330 // Exceptional methods for EventListener 331 void addEventListener(DOMString type, 332 EventListener listener, 333 optional boolean useCapture); 334 void removeEventListener(DOMString type, 335 EventListener listener, 336 optional boolean useCapture); 337 338 // Extended attributes for arguments 339 // [Clamp] 340 void voidMethodClampUnsignedShortArg([Clamp] unsigned short clampUnsignedShortArg); 341 void voidMethodClampUnsignedLongArg([Clamp] unsigned long clampUnsignedLongArg); 342 // [Default] 343 void voidMethodDefaultUndefinedTestInterfaceEmptyArg([Default=Undefined] optional TestInterfaceEmpty defaultUndefinedTestInterfaceEmptyArg); 344 void voidMethodDefaultUndefinedLongArg([Default=Undefined] optional long defaultUndefinedLongArg); 345 void voidMethodDefaultUndefinedStringArg([Default=Undefined] optional DOMString defaultUndefinedStringArg); 346 void voidMethodDefaultNullStringStringArg([Default=NullString] optional DOMString defaultNullStringStringArg); 347 // [EnforceRange] 348 void voidMethodEnforceRangeLongArg([EnforceRange] long enforceRangeLongArg); 349 // [TreatNullAs], [TreatUndefinedAs] 350 void voidMethodTreatNullAsNullStringStringArg([TreatNullAs=NullString] DOMString treatNullAsNullStringStringArg); 351 void voidMethodTreatNullAsNullStringTreatUndefinedAsNullStringStringArg([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString treatNullAsNullStringStringArg); 352 353 // Extended attributes for methods 354 [ActivityLogging=ForAllWorlds] void activityLoggingAccessForAllWorldsMethod(); 355 [CallWith=ScriptState] void callWithScriptStateVoidMethod(); 356 [CallWith=ScriptState] long callWithScriptStateLongMethod(); 357 [CallWith=ExecutionContext] void callWithExecutionContextVoidMethod(); 358 [CallWith=ScriptState&ExecutionContext] void callWithScriptStateExecutionContextVoidMethod(); 359 [CallWith=ScriptState&ScriptArguments] void callWithScriptStateScriptArgumentsVoidMethod(); 360 [CallWith=ScriptState&ScriptArguments] void callWithScriptStateScriptArgumentsVoidMethodOptionalBooleanArg(optional boolean optionalBooleanArg); 361 [CallWith=ActiveWindow] void callWithActiveWindow(); 362 [CallWith=ActiveWindow&FirstWindow] void callWithActiveWindowScriptWindow(); 363 [CheckSecurity=Node] void checkSecurityForNodeVoidMethod(); 364 [Conditional=CONDITION] void conditionalConditionVoidMethod(); 365 [Conditional=CONDITION_1&CONDITION_2] void conditionalCondition1AndCondition2VoidMethod(); 366 [Conditional=CONDITION] static void conditionalConditionStaticVoidMethod(); 367 [Custom] void customVoidMethod(); 368 [Conditional=CONDITION, Custom] void conditionalConditionCustomVoidMethod(); 369 [CustomElementCallbacks] void customElementCallbacksVoidMethod(); 370 [DeprecateAs=voidMethod] void deprecatedVoidMethod(); 371 [DoNotCheckSignature] void doNotCheckSignatureVoidMethod(); 372 [ImplementedAs=implementedAsMethodName] void implementedAsVoidMethod(); 373 [MeasureAs=TestFeature] void measureAsVoidMethod(); 374 [NotEnumerable] void notEnumerableVoidMethod(); 375 [PerContextEnabled=FeatureName] void perContextEnabledVoidMethod(); 376 [PerWorldBindings] void perWorldBindingsVoidMethod(); 377 [ActivityLogging=ForAllWorlds, PerWorldBindings] void activityLoggingForAllWorldsPerWorldBindingsVoidMethod(); 378 [ActivityLogging=ForIsolatedWorlds, PerWorldBindings] void activityLoggingForIsolatedWorldsPerWorldBindingsVoidMethod(); 379 [PerWorldBindings] void perWorldBindingsVoidMethodTestInterfaceEmptyArg(TestInterfaceEmpty testInterfaceEmptyArg); 380 [RaisesException] void raisesExceptionVoidMethod(); 381 [RaisesException] void raisesExceptionVoidMethodOptionalLongArg(optional long optionalLongArg); 382 [ReadOnly] void readOnlyVoidMethod(); 383 [NotEnumerable, ReadOnly] void notEnumerableReadOnlyVoidMethod(); 384 [RuntimeEnabled=FeatureName] void runtimeEnabledVoidMethod(); 385 [PerWorldBindings, RuntimeEnabled=FeatureName] void perWorldBindingsRuntimeEnabledVoidMethod(); 386 [StrictTypeChecking] void strictTypeCheckingVoidMethodTestInterfaceEmptyArg(TestInterfaceEmpty testInterfaceEmptyArg); 387 [TreatReturnedNullStringAs=Null] DOMString treatReturnedNullStringAsNullStringMethod(); 388 [TreatReturnedNullStringAs=Undefined] DOMString treatReturnedNullStringAsUndefinedStringMethod(); 389 [Unforgeable] void unforgeableVoidMethod(); 390}; 391