tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

TestExampleGen.webidl (48470B)


      1 /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
      2 /* This Source Code Form is subject to the terms of the Mozilla Public
      3 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
      4 * You can obtain one at http://mozilla.org/MPL/2.0/.
      5 */
      6 [LegacyFactoryFunction=Example,
      7 LegacyFactoryFunction=Example(DOMString str),
      8 LegacyFactoryFunction=Example2(DictForConstructor dict, any any1, object obj1,
      9                           object? obj2, sequence<Dict> seq, optional any any2,
     10                           optional object obj3, optional object? obj4),
     11 LegacyFactoryFunction=Example2((long or record<DOMString, any>) arg1),
     12 Exposed=Window]
     13 interface TestExampleInterface {
     14  constructor();
     15  constructor(DOMString str);
     16  constructor(unsigned long num, boolean? boolArg);
     17  constructor(TestInterface? iface);
     18  constructor(unsigned long arg1, TestInterface iface);
     19  constructor(ArrayBuffer arrayBuf);
     20  constructor(Uint8Array typedArr);
     21  // constructor(long arg1, long arg2, (TestInterface or OnlyForUseInConstructor) arg3);
     22 
     23  // Integer types
     24  // XXXbz add tests for throwing versions of all the integer stuff
     25  readonly attribute byte readonlyByte;
     26  attribute byte writableByte;
     27  undefined passByte(byte arg);
     28  byte receiveByte();
     29  undefined passOptionalByte(optional byte arg);
     30  undefined passOptionalByteBeforeRequired(optional byte arg1, byte arg2);
     31  undefined passOptionalByteWithDefault(optional byte arg = 0);
     32  undefined passOptionalByteWithDefaultBeforeRequired(optional byte arg1 = 0, byte arg2);
     33  undefined passNullableByte(byte? arg);
     34  undefined passOptionalNullableByte(optional byte? arg);
     35  undefined passVariadicByte(byte... arg);
     36  [Cached, Pure]
     37  readonly attribute byte cachedByte;
     38  [StoreInSlot, Constant]
     39  readonly attribute byte cachedConstantByte;
     40  [Cached, Pure]
     41  attribute byte cachedWritableByte;
     42  [Affects=Nothing]
     43  attribute byte sideEffectFreeByte;
     44  [Affects=Nothing, DependsOn=DOMState]
     45  attribute byte domDependentByte;
     46  [Affects=Nothing, DependsOn=Nothing]
     47  readonly attribute byte constantByte;
     48  [DependsOn=DeviceState, Affects=Nothing]
     49  readonly attribute byte deviceStateDependentByte;
     50  [Affects=Nothing]
     51  byte returnByteSideEffectFree();
     52  [Affects=Nothing, DependsOn=DOMState]
     53  byte returnDOMDependentByte();
     54  [Affects=Nothing, DependsOn=Nothing]
     55  byte returnConstantByte();
     56  [DependsOn=DeviceState, Affects=Nothing]
     57  byte returnDeviceStateDependentByte();
     58 
     59  readonly attribute short readonlyShort;
     60  attribute short writableShort;
     61  undefined passShort(short arg);
     62  short receiveShort();
     63  undefined passOptionalShort(optional short arg);
     64  undefined passOptionalShortWithDefault(optional short arg = 5);
     65 
     66  readonly attribute long readonlyLong;
     67  attribute long writableLong;
     68  undefined passLong(long arg);
     69  long receiveLong();
     70  undefined passOptionalLong(optional long arg);
     71  undefined passOptionalLongWithDefault(optional long arg = 7);
     72 
     73  readonly attribute long long readonlyLongLong;
     74  attribute long long writableLongLong;
     75  undefined passLongLong(long long arg);
     76  long long receiveLongLong();
     77  undefined passOptionalLongLong(optional long long arg);
     78  undefined passOptionalLongLongWithDefault(optional long long arg = -12);
     79 
     80  readonly attribute octet readonlyOctet;
     81  attribute octet writableOctet;
     82  undefined passOctet(octet arg);
     83  octet receiveOctet();
     84  undefined passOptionalOctet(optional octet arg);
     85  undefined passOptionalOctetWithDefault(optional octet arg = 19);
     86 
     87  readonly attribute unsigned short readonlyUnsignedShort;
     88  attribute unsigned short writableUnsignedShort;
     89  undefined passUnsignedShort(unsigned short arg);
     90  unsigned short receiveUnsignedShort();
     91  undefined passOptionalUnsignedShort(optional unsigned short arg);
     92  undefined passOptionalUnsignedShortWithDefault(optional unsigned short arg = 2);
     93 
     94  readonly attribute unsigned long readonlyUnsignedLong;
     95  attribute unsigned long writableUnsignedLong;
     96  undefined passUnsignedLong(unsigned long arg);
     97  unsigned long receiveUnsignedLong();
     98  undefined passOptionalUnsignedLong(optional unsigned long arg);
     99  undefined passOptionalUnsignedLongWithDefault(optional unsigned long arg = 6);
    100 
    101  readonly attribute unsigned long long readonlyUnsignedLongLong;
    102  attribute unsigned long long  writableUnsignedLongLong;
    103  undefined passUnsignedLongLong(unsigned long long arg);
    104  unsigned long long receiveUnsignedLongLong();
    105  undefined passOptionalUnsignedLongLong(optional unsigned long long arg);
    106  undefined passOptionalUnsignedLongLongWithDefault(optional unsigned long long arg = 17);
    107 
    108  attribute float writableFloat;
    109  attribute unrestricted float writableUnrestrictedFloat;
    110  attribute float? writableNullableFloat;
    111  attribute unrestricted float? writableNullableUnrestrictedFloat;
    112  attribute double writableDouble;
    113  attribute unrestricted double writableUnrestrictedDouble;
    114  attribute double? writableNullableDouble;
    115  attribute unrestricted double? writableNullableUnrestrictedDouble;
    116  undefined passFloat(float arg1, unrestricted float arg2,
    117                      float? arg3, unrestricted float? arg4,
    118                      double arg5, unrestricted double arg6,
    119                      double? arg7, unrestricted double? arg8,
    120                      sequence<float> arg9, sequence<unrestricted float> arg10,
    121                      sequence<float?> arg11, sequence<unrestricted float?> arg12,
    122                      sequence<double> arg13, sequence<unrestricted double> arg14,
    123                      sequence<double?> arg15, sequence<unrestricted double?> arg16);
    124  [LenientFloat]
    125  undefined passLenientFloat(float arg1, unrestricted float arg2,
    126                             float? arg3, unrestricted float? arg4,
    127                             double arg5, unrestricted double arg6,
    128                             double? arg7, unrestricted double? arg8,
    129                             sequence<float> arg9,
    130                             sequence<unrestricted float> arg10,
    131                             sequence<float?> arg11,
    132                             sequence<unrestricted float?> arg12,
    133                             sequence<double> arg13,
    134                             sequence<unrestricted double> arg14,
    135                             sequence<double?> arg15,
    136                             sequence<unrestricted double?> arg16);
    137  [LenientFloat]
    138  attribute float lenientFloatAttr;
    139  [LenientFloat]
    140  attribute double lenientDoubleAttr;
    141 
    142  // Castable interface types
    143  // XXXbz add tests for throwing versions of all the castable interface stuff
    144  TestInterface receiveSelf();
    145  TestInterface? receiveNullableSelf();
    146  TestInterface receiveWeakSelf();
    147  TestInterface? receiveWeakNullableSelf();
    148  undefined passSelf(TestInterface arg);
    149  undefined passNullableSelf(TestInterface? arg);
    150  attribute TestInterface nonNullSelf;
    151  attribute TestInterface? nullableSelf;
    152  [Cached, Pure]
    153  readonly attribute TestInterface cachedSelf;
    154  // Optional arguments
    155  undefined passOptionalSelf(optional TestInterface? arg);
    156  undefined passOptionalNonNullSelf(optional TestInterface arg);
    157  undefined passOptionalSelfWithDefault(optional TestInterface? arg = null);
    158 
    159  // Non-wrapper-cache interface types
    160  [NewObject]
    161  TestNonWrapperCacheInterface receiveNonWrapperCacheInterface();
    162  [NewObject]
    163  TestNonWrapperCacheInterface? receiveNullableNonWrapperCacheInterface();
    164  [NewObject]
    165  sequence<TestNonWrapperCacheInterface> receiveNonWrapperCacheInterfaceSequence();
    166  [NewObject]
    167  sequence<TestNonWrapperCacheInterface?> receiveNullableNonWrapperCacheInterfaceSequence();
    168  [NewObject]
    169  sequence<TestNonWrapperCacheInterface>? receiveNonWrapperCacheInterfaceNullableSequence();
    170  [NewObject]
    171  sequence<TestNonWrapperCacheInterface?>? receiveNullableNonWrapperCacheInterfaceNullableSequence();
    172 
    173  // External interface types
    174  TestExternalInterface receiveExternal();
    175  TestExternalInterface? receiveNullableExternal();
    176  TestExternalInterface receiveWeakExternal();
    177  TestExternalInterface? receiveWeakNullableExternal();
    178  undefined passExternal(TestExternalInterface arg);
    179  undefined passNullableExternal(TestExternalInterface? arg);
    180  attribute TestExternalInterface nonNullExternal;
    181  attribute TestExternalInterface? nullableExternal;
    182  // Optional arguments
    183  undefined passOptionalExternal(optional TestExternalInterface? arg);
    184  undefined passOptionalNonNullExternal(optional TestExternalInterface arg);
    185  undefined passOptionalExternalWithDefault(optional TestExternalInterface? arg = null);
    186 
    187  // Callback interface types
    188  TestCallbackInterface receiveCallbackInterface();
    189  TestCallbackInterface? receiveNullableCallbackInterface();
    190  TestCallbackInterface receiveWeakCallbackInterface();
    191  TestCallbackInterface? receiveWeakNullableCallbackInterface();
    192  undefined passCallbackInterface(TestCallbackInterface arg);
    193  undefined passNullableCallbackInterface(TestCallbackInterface? arg);
    194  attribute TestCallbackInterface nonNullCallbackInterface;
    195  attribute TestCallbackInterface? nullableCallbackInterface;
    196  // Optional arguments
    197  undefined passOptionalCallbackInterface(optional TestCallbackInterface? arg);
    198  undefined passOptionalNonNullCallbackInterface(optional TestCallbackInterface arg);
    199  undefined passOptionalCallbackInterfaceWithDefault(optional TestCallbackInterface? arg = null);
    200 
    201  // Sequence types
    202  [Cached, Pure]
    203  readonly attribute sequence<long> readonlySequence;
    204  [Cached, Pure]
    205  readonly attribute sequence<Dict> readonlySequenceOfDictionaries;
    206  [Cached, Pure]
    207  readonly attribute sequence<Dict>? readonlyNullableSequenceOfDictionaries;
    208  [Cached, Pure, Frozen]
    209  readonly attribute sequence<long> readonlyFrozenSequence;
    210  [Cached, Pure, Frozen]
    211  readonly attribute sequence<long>? readonlyFrozenNullableSequence;
    212  sequence<long> receiveSequence();
    213  sequence<long>? receiveNullableSequence();
    214  sequence<long?> receiveSequenceOfNullableInts();
    215  sequence<long?>? receiveNullableSequenceOfNullableInts();
    216  undefined passSequence(sequence<long> arg);
    217  undefined passNullableSequence(sequence<long>? arg);
    218  undefined passSequenceOfNullableInts(sequence<long?> arg);
    219  undefined passOptionalSequenceOfNullableInts(optional sequence<long?> arg);
    220  undefined passOptionalNullableSequenceOfNullableInts(optional sequence<long?>? arg);
    221  sequence<TestInterface> receiveCastableObjectSequence();
    222  sequence<TestCallbackInterface> receiveCallbackObjectSequence();
    223  sequence<TestInterface?> receiveNullableCastableObjectSequence();
    224  sequence<TestCallbackInterface?> receiveNullableCallbackObjectSequence();
    225  sequence<TestInterface>? receiveCastableObjectNullableSequence();
    226  sequence<TestInterface?>? receiveNullableCastableObjectNullableSequence();
    227  sequence<TestInterface> receiveWeakCastableObjectSequence();
    228  sequence<TestInterface?> receiveWeakNullableCastableObjectSequence();
    229  sequence<TestInterface>? receiveWeakCastableObjectNullableSequence();
    230  sequence<TestInterface?>? receiveWeakNullableCastableObjectNullableSequence();
    231  undefined passCastableObjectSequence(sequence<TestInterface> arg);
    232  undefined passNullableCastableObjectSequence(sequence<TestInterface?> arg);
    233  undefined passCastableObjectNullableSequence(sequence<TestInterface>? arg);
    234  undefined passNullableCastableObjectNullableSequence(sequence<TestInterface?>? arg);
    235  undefined passOptionalSequence(optional sequence<long> arg);
    236  undefined passOptionalSequenceWithDefaultValue(optional sequence<long> arg = []);
    237  undefined passOptionalNullableSequence(optional sequence<long>? arg);
    238  undefined passOptionalNullableSequenceWithDefaultValue(optional sequence<long>? arg = null);
    239  undefined passOptionalNullableSequenceWithDefaultValue2(optional sequence<long>? arg = []);
    240  undefined passOptionalObjectSequence(optional sequence<TestInterface> arg);
    241  undefined passExternalInterfaceSequence(sequence<TestExternalInterface> arg);
    242  undefined passNullableExternalInterfaceSequence(sequence<TestExternalInterface?> arg);
    243 
    244  sequence<DOMString> receiveStringSequence();
    245  undefined passStringSequence(sequence<DOMString> arg);
    246 
    247  sequence<ByteString> receiveByteStringSequence();
    248  undefined passByteStringSequence(sequence<ByteString> arg);
    249 
    250  sequence<UTF8String> receiveUTF8StringSequence();
    251  undefined passUTF8StringSequence(sequence<UTF8String> arg);
    252 
    253  sequence<any> receiveAnySequence();
    254  sequence<any>? receiveNullableAnySequence();
    255  //XXXbz No support for sequence of sequence return values yet.
    256  //sequence<sequence<any>> receiveAnySequenceSequence();
    257 
    258  sequence<object> receiveObjectSequence();
    259  sequence<object?> receiveNullableObjectSequence();
    260 
    261  undefined passSequenceOfSequences(sequence<sequence<long>> arg);
    262  undefined passSequenceOfSequencesOfSequences(sequence<sequence<sequence<long>>> arg);
    263  //XXXbz No support for sequence of sequence return values yet.
    264  //sequence<sequence<long>> receiveSequenceOfSequences();
    265 
    266  // record types
    267  undefined passRecord(record<DOMString, long> arg);
    268  undefined passNullableRecord(record<DOMString, long>? arg);
    269  undefined passRecordOfNullableInts(record<DOMString, long?> arg);
    270  undefined passOptionalRecordOfNullableInts(optional record<DOMString, long?> arg);
    271  undefined passOptionalNullableRecordOfNullableInts(optional record<DOMString, long?>? arg);
    272  undefined passCastableObjectRecord(record<DOMString, TestInterface> arg);
    273  undefined passNullableCastableObjectRecord(record<DOMString, TestInterface?> arg);
    274  undefined passCastableObjectNullableRecord(record<DOMString, TestInterface>? arg);
    275  undefined passNullableCastableObjectNullableRecord(record<DOMString, TestInterface?>? arg);
    276  undefined passOptionalRecord(optional record<DOMString, long> arg);
    277  undefined passOptionalNullableRecord(optional record<DOMString, long>? arg);
    278  undefined passOptionalNullableRecordWithDefaultValue(optional record<DOMString, long>? arg = null);
    279  undefined passOptionalObjectRecord(optional record<DOMString, TestInterface> arg);
    280  undefined passExternalInterfaceRecord(record<DOMString, TestExternalInterface> arg);
    281  undefined passNullableExternalInterfaceRecord(record<DOMString, TestExternalInterface?> arg);
    282  undefined passStringRecord(record<DOMString, DOMString> arg);
    283  undefined passByteStringRecord(record<DOMString, ByteString> arg);
    284  undefined passUTF8StringRecord(record<DOMString, UTF8String> arg);
    285  undefined passRecordOfRecords(record<DOMString, record<DOMString, long>> arg);
    286  record<DOMString, long> receiveRecord();
    287  record<DOMString, long>? receiveNullableRecord();
    288  record<DOMString, long?> receiveRecordOfNullableInts();
    289  record<DOMString, long?>? receiveNullableRecordOfNullableInts();
    290  //XXXbz No support for record of records return values yet.
    291  //record<DOMString, record<DOMString, long>> receiveRecordOfRecords();
    292  record<DOMString, any> receiveAnyRecord();
    293 
    294  // Typed array types
    295  undefined passArrayBuffer(ArrayBuffer arg);
    296  undefined passNullableArrayBuffer(ArrayBuffer? arg);
    297  undefined passOptionalArrayBuffer(optional ArrayBuffer arg);
    298  undefined passOptionalNullableArrayBuffer(optional ArrayBuffer? arg);
    299  undefined passOptionalNullableArrayBufferWithDefaultValue(optional ArrayBuffer? arg= null);
    300  undefined passArrayBufferView(ArrayBufferView arg);
    301  undefined passInt8Array(Int8Array arg);
    302  undefined passInt16Array(Int16Array arg);
    303  undefined passInt32Array(Int32Array arg);
    304  undefined passUint8Array(Uint8Array arg);
    305  undefined passUint16Array(Uint16Array arg);
    306  undefined passUint32Array(Uint32Array arg);
    307  undefined passUint8ClampedArray(Uint8ClampedArray arg);
    308  undefined passFloat32Array(Float32Array arg);
    309  undefined passFloat64Array(Float64Array arg);
    310  undefined passBigUint64Array(BigUint64Array arg);
    311  undefined passBigInt64Array(BigInt64Array arg);
    312  undefined passSequenceOfArrayBuffers(sequence<ArrayBuffer> arg);
    313  undefined passSequenceOfNullableArrayBuffers(sequence<ArrayBuffer?> arg);
    314  undefined passRecordOfArrayBuffers(record<DOMString, ArrayBuffer> arg);
    315  undefined passRecordOfNullableArrayBuffers(record<DOMString, ArrayBuffer?> arg);
    316  undefined passVariadicTypedArray(Float32Array... arg);
    317  undefined passVariadicNullableTypedArray(Float32Array?... arg);
    318  Uint8Array receiveUint8Array();
    319  attribute Uint8Array uint8ArrayAttr;
    320 
    321  // DOMString types
    322  undefined passString(DOMString arg);
    323  undefined passNullableString(DOMString? arg);
    324  undefined passOptionalString(optional DOMString arg);
    325  undefined passOptionalStringWithDefaultValue(optional DOMString arg = "abc");
    326  undefined passOptionalNullableString(optional DOMString? arg);
    327  undefined passOptionalNullableStringWithDefaultValue(optional DOMString? arg = null);
    328  undefined passVariadicString(DOMString... arg);
    329 
    330  // ByteString types
    331  undefined passByteString(ByteString arg);
    332  undefined passNullableByteString(ByteString? arg);
    333  undefined passOptionalByteString(optional ByteString arg);
    334  undefined passOptionalByteStringWithDefaultValue(optional ByteString arg = "abc");
    335  undefined passOptionalNullableByteString(optional ByteString? arg);
    336  undefined passOptionalNullableByteStringWithDefaultValue(optional ByteString? arg = null);
    337  undefined passVariadicByteString(ByteString... arg);
    338  undefined passUnionByteString((ByteString or long) arg);
    339  undefined passOptionalUnionByteString(optional (ByteString or long) arg);
    340  undefined passOptionalUnionByteStringWithDefaultValue(optional (ByteString or long) arg = "abc");
    341 
    342  // UTF8String types
    343  undefined passUTF8String(UTF8String arg);
    344  undefined passNullableUTF8String(UTF8String? arg);
    345  undefined passOptionalUTF8String(optional UTF8String arg);
    346  undefined passOptionalUTF8StringWithDefaultValue(optional UTF8String arg = "abc");
    347  undefined passOptionalNullableUTF8String(optional UTF8String? arg);
    348  undefined passOptionalNullableUTF8StringWithDefaultValue(optional UTF8String? arg = null);
    349  undefined passVariadicUTF8String(UTF8String... arg);
    350  undefined passUnionUTF8String((UTF8String or long) arg);
    351  undefined passOptionalUnionUTF8String(optional (UTF8String or long) arg);
    352  undefined passOptionalUnionUTF8StringWithDefaultValue(optional (UTF8String or long) arg = "abc");
    353 
    354  // USVString types
    355  undefined passSVS(USVString arg);
    356  undefined passNullableSVS(USVString? arg);
    357  undefined passOptionalSVS(optional USVString arg);
    358  undefined passOptionalSVSWithDefaultValue(optional USVString arg = "abc");
    359  undefined passOptionalNullableSVS(optional USVString? arg);
    360  undefined passOptionalNullableSVSWithDefaultValue(optional USVString? arg = null);
    361  undefined passVariadicSVS(USVString... arg);
    362  USVString receiveSVS();
    363 
    364  // JSString types
    365  undefined passJSString(JSString arg);
    366  // undefined passNullableJSString(JSString? arg); // NOT SUPPORTED YET
    367  // undefined passOptionalJSString(optional JSString arg); // NOT SUPPORTED YET
    368  undefined passOptionalJSStringWithDefaultValue(optional JSString arg = "abc");
    369  // undefined passOptionalNullableJSString(optional JSString? arg); // NOT SUPPORTED YET
    370  // undefined passOptionalNullableJSStringWithDefaultValue(optional JSString? arg = null); // NOT SUPPORTED YET
    371  // undefined passVariadicJSString(JSString... arg); // NOT SUPPORTED YET
    372  // undefined passRecordOfJSString(record<DOMString, JSString> arg); // NOT SUPPORTED YET
    373  // undefined passSequenceOfJSString(sequence<JSString> arg); // NOT SUPPORTED YET
    374  // undefined passUnionJSString((JSString or long) arg); // NOT SUPPORTED YET
    375  JSString receiveJSString();
    376  // sequence<JSString> receiveJSStringSequence(); // NOT SUPPORTED YET
    377  // (JSString or long) receiveJSStringUnion(); // NOT SUPPORTED YET
    378  // record<DOMString, JSString> receiveJSStringRecord(); // NOT SUPPORTED YET
    379  readonly attribute JSString readonlyJSStringAttr;
    380  attribute JSString jsStringAttr;
    381 
    382  // Enumerated types
    383  undefined passEnum(TestEnum arg);
    384  undefined passNullableEnum(TestEnum? arg);
    385  undefined passOptionalEnum(optional TestEnum arg);
    386  undefined passEnumWithDefault(optional TestEnum arg = "a");
    387  undefined passOptionalNullableEnum(optional TestEnum? arg);
    388  undefined passOptionalNullableEnumWithDefaultValue(optional TestEnum? arg = null);
    389  undefined passOptionalNullableEnumWithDefaultValue2(optional TestEnum? arg = "a");
    390  TestEnum receiveEnum();
    391  TestEnum? receiveNullableEnum();
    392  attribute TestEnum enumAttribute;
    393  readonly attribute TestEnum readonlyEnumAttribute;
    394 
    395  // Callback types
    396  undefined passCallback(TestCallback arg);
    397  undefined passNullableCallback(TestCallback? arg);
    398  undefined passOptionalCallback(optional TestCallback arg);
    399  undefined passOptionalNullableCallback(optional TestCallback? arg);
    400  undefined passOptionalNullableCallbackWithDefaultValue(optional TestCallback? arg = null);
    401  TestCallback receiveCallback();
    402  TestCallback? receiveNullableCallback();
    403  undefined passNullableTreatAsNullCallback(TestTreatAsNullCallback? arg);
    404  undefined passOptionalNullableTreatAsNullCallback(optional TestTreatAsNullCallback? arg);
    405  undefined passOptionalNullableTreatAsNullCallbackWithDefaultValue(optional TestTreatAsNullCallback? arg = null);
    406 
    407  // Any types
    408  undefined passAny(any arg);
    409  undefined passVariadicAny(any... arg);
    410  undefined passOptionalAny(optional any arg);
    411  undefined passAnyDefaultNull(optional any arg = null);
    412  undefined passSequenceOfAny(sequence<any> arg);
    413  undefined passNullableSequenceOfAny(sequence<any>? arg);
    414  undefined passOptionalSequenceOfAny(optional sequence<any> arg);
    415  undefined passOptionalNullableSequenceOfAny(optional sequence<any>? arg);
    416  undefined passOptionalSequenceOfAnyWithDefaultValue(optional sequence<any>? arg = null);
    417  undefined passSequenceOfSequenceOfAny(sequence<sequence<any>> arg);
    418  undefined passSequenceOfNullableSequenceOfAny(sequence<sequence<any>?> arg);
    419  undefined passNullableSequenceOfNullableSequenceOfAny(sequence<sequence<any>?>? arg);
    420  undefined passOptionalNullableSequenceOfNullableSequenceOfAny(optional sequence<sequence<any>?>? arg);
    421  undefined passRecordOfAny(record<DOMString, any> arg);
    422  undefined passNullableRecordOfAny(record<DOMString, any>? arg);
    423  undefined passOptionalRecordOfAny(optional record<DOMString, any> arg);
    424  undefined passOptionalNullableRecordOfAny(optional record<DOMString, any>? arg);
    425  undefined passOptionalRecordOfAnyWithDefaultValue(optional record<DOMString, any>? arg = null);
    426  undefined passRecordOfRecordOfAny(record<DOMString, record<DOMString, any>> arg);
    427  undefined passRecordOfNullableRecordOfAny(record<DOMString, record<DOMString, any>?> arg);
    428  undefined passNullableRecordOfNullableRecordOfAny(record<DOMString, record<DOMString, any>?>? arg);
    429  undefined passOptionalNullableRecordOfNullableRecordOfAny(optional record<DOMString, record<DOMString, any>?>? arg);
    430  undefined passOptionalNullableRecordOfNullableSequenceOfAny(optional record<DOMString, sequence<any>?>? arg);
    431  undefined passOptionalNullableSequenceOfNullableRecordOfAny(optional sequence<record<DOMString, any>?>? arg);
    432  any receiveAny();
    433 
    434  // object types
    435  undefined passObject(object arg);
    436  undefined passVariadicObject(object... arg);
    437  undefined passNullableObject(object? arg);
    438  undefined passVariadicNullableObject(object... arg);
    439  undefined passOptionalObject(optional object arg);
    440  undefined passOptionalNullableObject(optional object? arg);
    441  undefined passOptionalNullableObjectWithDefaultValue(optional object? arg = null);
    442  undefined passSequenceOfObject(sequence<object> arg);
    443  undefined passSequenceOfNullableObject(sequence<object?> arg);
    444  undefined passNullableSequenceOfObject(sequence<object>? arg);
    445  undefined passOptionalNullableSequenceOfNullableSequenceOfObject(optional sequence<sequence<object>?>? arg);
    446  undefined passOptionalNullableSequenceOfNullableSequenceOfNullableObject(optional sequence<sequence<object?>?>? arg);
    447  undefined passRecordOfObject(record<DOMString, object> arg);
    448  object receiveObject();
    449  object? receiveNullableObject();
    450 
    451  // Union types
    452  undefined passUnion((object or long) arg);
    453  // Some union tests are debug-only to avoid creating all those
    454  // unused union types in opt builds.
    455 
    456 #ifdef DEBUG
    457  undefined passUnion2((long or boolean) arg);
    458  undefined passUnion3((object or long or boolean) arg);
    459  undefined passUnion4((Node or long or boolean) arg);
    460  undefined passUnion5((object or boolean) arg);
    461  undefined passUnion6((object or DOMString) arg);
    462  undefined passUnion7((object or DOMString or long) arg);
    463  undefined passUnion8((object or DOMString or boolean) arg);
    464  undefined passUnion9((object or DOMString or long or boolean) arg);
    465  undefined passUnion10(optional (EventInit or long) arg = {});
    466  undefined passUnion11(optional (CustomEventInit or long) arg = {});
    467  undefined passUnion12(optional (EventInit or long) arg = 5);
    468  undefined passUnion13(optional (object or long?) arg = null);
    469  undefined passUnion14(optional (object or long?) arg = 5);
    470  undefined passUnion15((sequence<long> or long) arg);
    471  undefined passUnion16(optional (sequence<long> or long) arg);
    472  undefined passUnion17(optional (sequence<long>? or long) arg = 5);
    473  undefined passUnion18((sequence<object> or long) arg);
    474  undefined passUnion19(optional (sequence<object> or long) arg);
    475  undefined passUnion20(optional (sequence<object> or long) arg = []);
    476  undefined passUnion21((record<DOMString, long> or long) arg);
    477  undefined passUnion22((record<DOMString, object> or long) arg);
    478  undefined passUnion23((sequence<ImageData> or long) arg);
    479  undefined passUnion24((sequence<ImageData?> or long) arg);
    480  undefined passUnion25((sequence<sequence<ImageData>> or long) arg);
    481  undefined passUnion26((sequence<sequence<ImageData?>> or long) arg);
    482  undefined passUnion27(optional (sequence<DOMString> or EventInit) arg = {});
    483  undefined passUnion28(optional (EventInit or sequence<DOMString>) arg = {});
    484  undefined passUnionWithCallback((EventHandler or long) arg);
    485  undefined passUnionWithByteString((ByteString or long) arg);
    486  undefined passUnionWithUTF8String((UTF8String or long) arg);
    487  undefined passUnionWithRecord((record<DOMString, DOMString> or DOMString) arg);
    488  undefined passUnionWithRecordAndSequence((record<DOMString, DOMString> or sequence<DOMString>) arg);
    489  undefined passUnionWithSequenceAndRecord((sequence<DOMString> or record<DOMString, DOMString>) arg);
    490  undefined passUnionWithSVS((USVString or long) arg);
    491 #endif
    492  undefined passUnionWithNullable((object? or long) arg);
    493  undefined passNullableUnion((object or long)? arg);
    494  undefined passOptionalUnion(optional (object or long) arg);
    495  undefined passOptionalNullableUnion(optional (object or long)? arg);
    496  undefined passOptionalNullableUnionWithDefaultValue(optional (object or long)? arg = null);
    497  //undefined passUnionWithInterfaces((TestInterface or TestExternalInterface) arg);
    498  //undefined passUnionWithInterfacesAndNullable((TestInterface? or TestExternalInterface) arg);
    499  //undefined passUnionWithSequence((sequence<object> or long) arg);
    500  undefined passUnionWithArrayBuffer((UTF8String or ArrayBuffer) arg);
    501  undefined passUnionWithArrayBufferOrNull((UTF8String or ArrayBuffer?) arg);
    502  undefined passUnionWithTypedArrays((ArrayBufferView or ArrayBuffer) arg);
    503  undefined passUnionWithTypedArraysOrNull((ArrayBufferView or ArrayBuffer?) arg);
    504  undefined passUnionWithString((DOMString or object) arg);
    505  // Using an enum in a union.  Note that we use some enum not declared in our
    506  // binding file, because UnionTypes.h will need to include the binding header
    507  // for this enum.  Pick an enum from an interface that won't drag in too much
    508  // stuff.
    509  undefined passUnionWithEnum((SupportedType or object) arg);
    510 
    511  // Trying to use a callback in a union won't include the test
    512  // headers, unfortunately, so won't compile.
    513  //  undefined passUnionWithCallback((TestCallback or long) arg);
    514  undefined passUnionWithObject((object or long) arg);
    515  //undefined passUnionWithDict((Dict or long) arg);
    516 
    517  undefined passUnionWithDefaultValue1(optional (double or DOMString) arg = "");
    518  undefined passUnionWithDefaultValue2(optional (double or DOMString) arg = 1);
    519  undefined passUnionWithDefaultValue3(optional (double or DOMString) arg = 1.5);
    520  undefined passUnionWithDefaultValue4(optional (float or DOMString) arg = "");
    521  undefined passUnionWithDefaultValue5(optional (float or DOMString) arg = 1);
    522  undefined passUnionWithDefaultValue6(optional (float or DOMString) arg = 1.5);
    523  undefined passUnionWithDefaultValue7(optional (unrestricted double or DOMString) arg = "");
    524  undefined passUnionWithDefaultValue8(optional (unrestricted double or DOMString) arg = 1);
    525  undefined passUnionWithDefaultValue9(optional (unrestricted double or DOMString) arg = 1.5);
    526  undefined passUnionWithDefaultValue10(optional (unrestricted double or DOMString) arg = Infinity);
    527  undefined passUnionWithDefaultValue11(optional (unrestricted float or DOMString) arg = "");
    528  undefined passUnionWithDefaultValue12(optional (unrestricted float or DOMString) arg = 1);
    529  undefined passUnionWithDefaultValue13(optional (unrestricted float or DOMString) arg = Infinity);
    530  undefined passUnionWithDefaultValue14(optional (double or ByteString) arg = "");
    531  undefined passUnionWithDefaultValue15(optional (double or ByteString) arg = 1);
    532  undefined passUnionWithDefaultValue16(optional (double or ByteString) arg = 1.5);
    533  undefined passUnionWithDefaultValue17(optional (double or SupportedType) arg = "text/html");
    534  undefined passUnionWithDefaultValue18(optional (double or SupportedType) arg = 1);
    535  undefined passUnionWithDefaultValue19(optional (double or SupportedType) arg = 1.5);
    536  undefined passUnionWithDefaultValue20(optional (double or USVString) arg = "abc");
    537  undefined passUnionWithDefaultValue21(optional (double or USVString) arg = 1);
    538  undefined passUnionWithDefaultValue22(optional (double or USVString) arg = 1.5);
    539  undefined passUnionWithDefaultValue23(optional (double or UTF8String) arg = "");
    540  undefined passUnionWithDefaultValue24(optional (double or UTF8String) arg = 1);
    541  undefined passUnionWithDefaultValue25(optional (double or UTF8String) arg = 1.5);
    542 
    543  undefined passNullableUnionWithDefaultValue1(optional (double or DOMString)? arg = "");
    544  undefined passNullableUnionWithDefaultValue2(optional (double or DOMString)? arg = 1);
    545  undefined passNullableUnionWithDefaultValue3(optional (double or DOMString)? arg = null);
    546  undefined passNullableUnionWithDefaultValue4(optional (float or DOMString)? arg = "");
    547  undefined passNullableUnionWithDefaultValue5(optional (float or DOMString)? arg = 1);
    548  undefined passNullableUnionWithDefaultValue6(optional (float or DOMString)? arg = null);
    549  undefined passNullableUnionWithDefaultValue7(optional (unrestricted double or DOMString)? arg = "");
    550  undefined passNullableUnionWithDefaultValue8(optional (unrestricted double or DOMString)? arg = 1);
    551  undefined passNullableUnionWithDefaultValue9(optional (unrestricted double or DOMString)? arg = null);
    552  undefined passNullableUnionWithDefaultValue10(optional (unrestricted float or DOMString)? arg = "");
    553  undefined passNullableUnionWithDefaultValue11(optional (unrestricted float or DOMString)? arg = 1);
    554  undefined passNullableUnionWithDefaultValue12(optional (unrestricted float or DOMString)? arg = null);
    555  undefined passNullableUnionWithDefaultValue13(optional (double or ByteString)? arg = "");
    556  undefined passNullableUnionWithDefaultValue14(optional (double or ByteString)? arg = 1);
    557  undefined passNullableUnionWithDefaultValue15(optional (double or ByteString)? arg = 1.5);
    558  undefined passNullableUnionWithDefaultValue16(optional (double or ByteString)? arg = null);
    559  undefined passNullableUnionWithDefaultValue17(optional (double or SupportedType)? arg = "text/html");
    560  undefined passNullableUnionWithDefaultValue18(optional (double or SupportedType)? arg = 1);
    561  undefined passNullableUnionWithDefaultValue19(optional (double or SupportedType)? arg = 1.5);
    562  undefined passNullableUnionWithDefaultValue20(optional (double or SupportedType)? arg = null);
    563  undefined passNullableUnionWithDefaultValue21(optional (double or USVString)? arg = "abc");
    564  undefined passNullableUnionWithDefaultValue22(optional (double or USVString)? arg = 1);
    565  undefined passNullableUnionWithDefaultValue23(optional (double or USVString)? arg = 1.5);
    566  undefined passNullableUnionWithDefaultValue24(optional (double or USVString)? arg = null);
    567  undefined passNullableUnionWithDefaultValue25(optional (double or UTF8String)? arg = "");
    568  undefined passNullableUnionWithDefaultValue26(optional (double or UTF8String)? arg = 1);
    569  undefined passNullableUnionWithDefaultValue27(optional (double or UTF8String)? arg = 1.5);
    570  undefined passNullableUnionWithDefaultValue28(optional (double or UTF8String)? arg = null);
    571 
    572  undefined passSequenceOfUnions(sequence<(CanvasPattern or CanvasGradient)> arg);
    573  undefined passSequenceOfUnions2(sequence<(object or long)> arg);
    574  undefined passVariadicUnion((CanvasPattern or CanvasGradient)... arg);
    575 
    576  undefined passSequenceOfNullableUnions(sequence<(CanvasPattern or CanvasGradient)?> arg);
    577  undefined passVariadicNullableUnion((CanvasPattern or CanvasGradient)?... arg);
    578  undefined passRecordOfUnions(record<DOMString, (CanvasPattern or CanvasGradient)> arg);
    579  // XXXbz no move constructor on some unions
    580  // undefined passRecordOfUnions2(record<DOMString, (object or long)> arg);
    581 
    582  (CanvasPattern or CanvasGradient) receiveUnion();
    583  (object or long) receiveUnion2();
    584  (CanvasPattern? or CanvasGradient) receiveUnionContainingNull();
    585  (CanvasPattern or CanvasGradient)? receiveNullableUnion();
    586  (object or long)? receiveNullableUnion2();
    587  (undefined or CanvasPattern) receiveUnionWithUndefined();
    588  (undefined? or CanvasPattern) receiveUnionWithNullableUndefined();
    589  (undefined or CanvasPattern?) receiveUnionWithUndefinedAndNullable();
    590  (undefined or CanvasPattern)? receiveNullableUnionWithUndefined();
    591 
    592  attribute (CanvasPattern or CanvasGradient) writableUnion;
    593  attribute (CanvasPattern? or CanvasGradient) writableUnionContainingNull;
    594  attribute (CanvasPattern or CanvasGradient)? writableNullableUnion;
    595  attribute (undefined or CanvasPattern) writableUnionWithUndefined;
    596  attribute (undefined? or CanvasPattern) writableUnionWithNullableUndefined;
    597  attribute (undefined or CanvasPattern?) writableUnionWithUndefinedAndNullable;
    598  attribute (undefined or CanvasPattern)? writableNullableUnionWithUndefined;
    599 
    600  // Promise types
    601  undefined passPromise(Promise<any> arg);
    602  undefined passOptionalPromise(optional Promise<any> arg);
    603  undefined passPromiseSequence(sequence<Promise<any>> arg);
    604  Promise<any> receivePromise();
    605  Promise<any> receiveAddrefedPromise();
    606 
    607  // ObservableArray types
    608  attribute ObservableArray<boolean> booleanObservableArray;
    609  attribute ObservableArray<object> objectObservableArray;
    610  attribute ObservableArray<any> anyObservableArray;
    611  attribute ObservableArray<TestInterface> interfaceObservableArray;
    612  attribute ObservableArray<long?> nullableObservableArray;
    613 
    614  // binaryNames tests
    615  [BinaryName="methodRenamedTo"]
    616  undefined methodRenamedFrom();
    617  [BinaryName="methodRenamedTo"]
    618  undefined methodRenamedFrom(byte argument);
    619  [BinaryName="attributeGetterRenamedTo"]
    620  readonly attribute byte attributeGetterRenamedFrom;
    621  [BinaryName="attributeRenamedTo"]
    622  attribute byte attributeRenamedFrom;
    623 
    624  undefined passDictionary(optional Dict x = {});
    625  undefined passDictionary2(Dict x);
    626  [Cached, Pure]
    627  readonly attribute Dict readonlyDictionary;
    628  [Cached, Pure]
    629  readonly attribute Dict? readonlyNullableDictionary;
    630  [Cached, Pure]
    631  attribute Dict writableDictionary;
    632  [Cached, Pure, Frozen]
    633  readonly attribute Dict readonlyFrozenDictionary;
    634  [Cached, Pure, Frozen]
    635  readonly attribute Dict? readonlyFrozenNullableDictionary;
    636  [Cached, Pure, Frozen]
    637  attribute Dict writableFrozenDictionary;
    638  Dict receiveDictionary();
    639  Dict? receiveNullableDictionary();
    640  undefined passOtherDictionary(optional GrandparentDict x = {});
    641  undefined passSequenceOfDictionaries(sequence<Dict> x);
    642  undefined passRecordOfDictionaries(record<DOMString, GrandparentDict> x);
    643  // No support for nullable dictionaries inside a sequence (nor should there be)
    644  //  undefined passSequenceOfNullableDictionaries(sequence<Dict?> x);
    645  undefined passDictionaryOrLong(optional Dict x = {});
    646  undefined passDictionaryOrLong(long x);
    647 
    648  undefined passDictContainingDict(optional DictContainingDict arg = {});
    649  undefined passDictContainingSequence(optional DictContainingSequence arg = {});
    650  DictContainingSequence receiveDictContainingSequence();
    651  undefined passVariadicDictionary(Dict... arg);
    652 
    653  // EnforceRange/Clamp tests
    654  undefined dontEnforceRangeOrClamp(byte arg);
    655  undefined doEnforceRange([EnforceRange] byte arg);
    656  undefined doEnforceRangeNullable([EnforceRange] byte? arg);
    657  undefined doClamp([Clamp] byte arg);
    658  undefined doClampNullable([Clamp] byte? arg);
    659  attribute [EnforceRange] byte enforcedByte;
    660  attribute [EnforceRange] byte? enforcedByteNullable;
    661  attribute [Clamp] byte clampedByte;
    662  attribute [Clamp] byte? clampedByteNullable;
    663 
    664  // Typedefs
    665  const myLong myLongConstant = 5;
    666  undefined exerciseTypedefInterfaces1(AnotherNameForTestInterface arg);
    667  AnotherNameForTestInterface exerciseTypedefInterfaces2(NullableTestInterface arg);
    668  undefined exerciseTypedefInterfaces3(YetAnotherNameForTestInterface arg);
    669 
    670  // Deprecated methods and attributes
    671  [Deprecated="Components"]
    672  attribute boolean deprecatedAttribute;
    673  [Deprecated="Components"]
    674  undefined deprecatedMethod(boolean arg);
    675  [Deprecated="Components"]
    676  undefined deprecatedMethodWithContext(any arg);
    677 
    678  // Static methods and attributes
    679  static attribute boolean staticAttribute;
    680  static undefined staticMethod(boolean arg);
    681  static undefined staticMethodWithContext(any arg);
    682 
    683  // Deprecated methods and attributes;
    684  [Deprecated="Components"]
    685  static attribute boolean staticDeprecatedAttribute;
    686  [Deprecated="Components"]
    687  static undefined staticDeprecatedMethod(boolean arg);
    688  [Deprecated="Components"]
    689  static undefined staticDeprecatedMethodWithContext(any arg);
    690 
    691  // Overload resolution tests
    692  //undefined overload1(DOMString... strs);
    693  boolean overload1(TestInterface arg);
    694  TestInterface overload1(DOMString strs, TestInterface arg);
    695  undefined overload2(TestInterface arg);
    696  undefined overload2(optional Dict arg = {});
    697  undefined overload2(boolean arg);
    698  undefined overload2(DOMString arg);
    699  undefined overload3(TestInterface arg);
    700  undefined overload3(TestCallback arg);
    701  undefined overload3(boolean arg);
    702  undefined overload4(TestInterface arg);
    703  undefined overload4(TestCallbackInterface arg);
    704  undefined overload4(DOMString arg);
    705  undefined overload5(long arg);
    706  undefined overload5(TestEnum arg);
    707  undefined overload6(long arg);
    708  undefined overload6(boolean arg);
    709  undefined overload7(long arg);
    710  undefined overload7(boolean arg);
    711  undefined overload7(ByteString arg);
    712  undefined overload8(long arg);
    713  undefined overload8(TestInterface arg);
    714  undefined overload9(long? arg);
    715  undefined overload9(DOMString arg);
    716  undefined overload10(long? arg);
    717  undefined overload10(object arg);
    718  undefined overload11(long arg);
    719  undefined overload11(DOMString? arg);
    720  undefined overload12(long arg);
    721  undefined overload12(boolean? arg);
    722  undefined overload13(long? arg);
    723  undefined overload13(boolean arg);
    724  undefined overload14(optional long arg);
    725  undefined overload14(TestInterface arg);
    726  undefined overload15(long arg);
    727  undefined overload15(optional TestInterface arg);
    728  undefined overload16(long arg);
    729  undefined overload16(optional TestInterface? arg);
    730  undefined overload17(sequence<long> arg);
    731  undefined overload17(record<DOMString, long> arg);
    732  undefined overload18(record<DOMString, DOMString> arg);
    733  undefined overload18(sequence<DOMString> arg);
    734  undefined overload19(sequence<long> arg);
    735  undefined overload19(optional Dict arg = {});
    736  undefined overload20(optional Dict arg = {});
    737  undefined overload20(sequence<long> arg);
    738 
    739  // Variadic handling
    740  undefined passVariadicThirdArg(DOMString arg1, long arg2, TestInterface... arg3);
    741 
    742  // Conditionally exposed methods/attributes
    743  [Pref="dom.webidl.test1"]
    744  readonly attribute boolean prefable1;
    745  [Pref="dom.webidl.test1"]
    746  readonly attribute boolean prefable2;
    747  [Pref="dom.webidl.test2"]
    748  readonly attribute boolean prefable3;
    749  [Pref="dom.webidl.test2"]
    750  readonly attribute boolean prefable4;
    751  [Pref="dom.webidl.test1"]
    752  readonly attribute boolean prefable5;
    753  [Pref="dom.webidl.test1", Func="nsGenericHTMLElement::LegacyTouchAPIEnabled"]
    754  readonly attribute boolean prefable6;
    755  [Pref="dom.webidl.test1", Func="nsGenericHTMLElement::LegacyTouchAPIEnabled"]
    756  readonly attribute boolean prefable7;
    757  [Pref="dom.webidl.test2", Func="nsGenericHTMLElement::LegacyTouchAPIEnabled"]
    758  readonly attribute boolean prefable8;
    759  [Pref="dom.webidl.test1", Func="nsGenericHTMLElement::LegacyTouchAPIEnabled"]
    760  readonly attribute boolean prefable9;
    761  [Pref="dom.webidl.test1"]
    762  undefined prefable10();
    763  [Pref="dom.webidl.test1", Func="nsGenericHTMLElement::LegacyTouchAPIEnabled"]
    764  undefined prefable11();
    765  [Pref="dom.webidl.test1", Func="TestFuncControlledMember"]
    766  readonly attribute boolean prefable12;
    767  [Pref="dom.webidl.test1", Func="nsGenericHTMLElement::LegacyTouchAPIEnabled"]
    768  undefined prefable13();
    769  [Pref="dom.webidl.test1", Func="TestFuncControlledMember"]
    770  readonly attribute boolean prefable14;
    771  [Func="TestFuncControlledMember"]
    772  readonly attribute boolean prefable15;
    773  [Func="TestFuncControlledMember"]
    774  readonly attribute boolean prefable16;
    775  [Pref="dom.webidl.test1", Func="TestFuncControlledMember"]
    776  undefined prefable17();
    777  [Func="TestFuncControlledMember"]
    778  undefined prefable18();
    779  [Func="TestFuncControlledMember"]
    780  undefined prefable19();
    781  [Trial="TestTrial"]
    782  undefined prefable20();
    783  [Trial="TestTrial"]
    784  readonly attribute boolean prefable21;
    785  [Trial="TestTrial", Func="TestFuncControlledMember"]
    786  readonly attribute boolean prefable22;
    787 
    788  // Conditionally exposed methods/attributes involving [SecureContext]
    789  [SecureContext]
    790  readonly attribute boolean conditionalOnSecureContext1;
    791  [SecureContext, Pref="dom.webidl.test1"]
    792  readonly attribute boolean conditionalOnSecureContext2;
    793  [SecureContext, Pref="dom.webidl.test1", Func="nsGenericHTMLElement::LegacyTouchAPIEnabled"]
    794  readonly attribute boolean conditionalOnSecureContext3;
    795  [SecureContext, Pref="dom.webidl.test1", Func="TestFuncControlledMember"]
    796  readonly attribute boolean conditionalOnSecureContext4;
    797  [SecureContext]
    798  undefined conditionalOnSecureContext5();
    799  [SecureContext, Pref="dom.webidl.test1"]
    800  undefined conditionalOnSecureContext6();
    801  [SecureContext, Pref="dom.webidl.test1", Func="nsGenericHTMLElement::LegacyTouchAPIEnabled"]
    802  undefined conditionalOnSecureContext7();
    803  [SecureContext, Pref="dom.webidl.test1", Func="TestFuncControlledMember"]
    804  undefined conditionalOnSecureContext8();
    805  [SecureContext, Trial="TestTrial"]
    806  readonly attribute boolean conditionalOnSecureContext9;
    807  [SecureContext, Trial="TestTrial"]
    808  undefined conditionalOnSecureContext10();
    809 
    810  // Miscellania
    811  [LegacyLenientThis] attribute long attrWithLenientThis;
    812  [LegacyUnforgeable] readonly attribute long unforgeableAttr;
    813  [LegacyUnforgeable, ChromeOnly] readonly attribute long unforgeableAttr2;
    814  [LegacyUnforgeable] long unforgeableMethod();
    815  [LegacyUnforgeable, ChromeOnly] long unforgeableMethod2();
    816  stringifier;
    817  undefined passRenamedInterface(TestRenamedInterface arg);
    818  [PutForwards=writableByte] readonly attribute TestExampleInterface putForwardsAttr;
    819  [PutForwards=writableByte, LegacyLenientThis] readonly attribute TestExampleInterface putForwardsAttr2;
    820  [PutForwards=writableByte, ChromeOnly] readonly attribute TestExampleInterface putForwardsAttr3;
    821  [Throws] undefined throwingMethod();
    822  [Throws] attribute boolean throwingAttr;
    823  [GetterThrows] attribute boolean throwingGetterAttr;
    824  [SetterThrows] attribute boolean throwingSetterAttr;
    825  [CanOOM] undefined canOOMMethod();
    826  [CanOOM] attribute boolean canOOMAttr;
    827  [GetterCanOOM] attribute boolean canOOMGetterAttr;
    828  [SetterCanOOM] attribute boolean canOOMSetterAttr;
    829  [NeedsSubjectPrincipal] undefined needsSubjectPrincipalMethod();
    830  [NeedsSubjectPrincipal] attribute boolean needsSubjectPrincipalAttr;
    831  [NeedsSubjectPrincipal=NonSystem] undefined needsNonSystemSubjectPrincipalMethod();
    832  [NeedsSubjectPrincipal=NonSystem] attribute boolean needsNonSystemSubjectPrincipalAttr;
    833  [NeedsCallerType] undefined needsCallerTypeMethod();
    834  [NeedsCallerType] attribute boolean needsCallerTypeAttr;
    835  [CEReactions] undefined ceReactionsMethod();
    836  [CEReactions] undefined ceReactionsMethodOverload();
    837  [CEReactions] undefined ceReactionsMethodOverload(DOMString bar);
    838  [CEReactions] attribute boolean ceReactionsAttr;
    839  legacycaller short(unsigned long arg1, TestInterface arg2);
    840  undefined passArgsWithDefaults(optional long arg1,
    841                            optional TestInterface? arg2 = null,
    842                            optional Dict arg3 = {}, optional double arg4 = 5.0,
    843                            optional float arg5);
    844  attribute any toJSONShouldSkipThis;
    845  attribute TestParentInterface toJSONShouldSkipThis2;
    846  attribute TestCallbackInterface toJSONShouldSkipThis3;
    847  [Default] object toJSON();
    848 
    849  attribute byte dashed-attribute;
    850  undefined dashed-method();
    851 
    852  // [NonEnumerable] tests
    853  [NonEnumerable]
    854  attribute boolean nonEnumerableAttr;
    855  [NonEnumerable]
    856  const boolean nonEnumerableConst = true;
    857  [NonEnumerable]
    858  undefined nonEnumerableMethod();
    859 
    860  // [AllowShared] tests
    861  attribute [AllowShared] ArrayBufferViewTypedef allowSharedArrayBufferViewTypedef;
    862  attribute [AllowShared] ArrayBufferView allowSharedArrayBufferView;
    863  attribute [AllowShared] ArrayBufferView? allowSharedNullableArrayBufferView;
    864  attribute [AllowShared] ArrayBuffer allowSharedArrayBuffer;
    865  attribute [AllowShared] ArrayBuffer? allowSharedNullableArrayBuffer;
    866 
    867  undefined passAllowSharedArrayBufferViewTypedef(AllowSharedArrayBufferViewTypedef foo);
    868  undefined passAllowSharedArrayBufferView([AllowShared] ArrayBufferView foo);
    869  undefined passAllowSharedNullableArrayBufferView([AllowShared] ArrayBufferView? foo);
    870  undefined passAllowSharedArrayBuffer([AllowShared] ArrayBuffer foo);
    871  undefined passAllowSharedNullableArrayBuffer([AllowShared] ArrayBuffer? foo);
    872  undefined passUnionArrayBuffer((DOMString or ArrayBuffer) foo);
    873  undefined passUnionAllowSharedArrayBuffer((DOMString or [AllowShared] ArrayBuffer) foo);
    874  undefined passAllowSharedInt8ArrayOrInt16Array([AllowShared] (Int8Array or Int16Array) foo);
    875 
    876  [Frozen, ReflectedHTMLAttributeReturningFrozenArray]
    877  attribute sequence<Element>? reflectedHTMLAttributeReturningFrozenArray;
    878 
    879  // If you add things here, add them to TestExampleGen. If they need to be
    880  // supported in JS-implemented WebIDL then you need to add them to
    881  // TestJSImplGen as well, if they are not supported in JS-implemented WebIDL
    882  // then the codegen should throw for that specific case.
    883 };
    884 
    885 [Exposed=Window]
    886 interface TestExampleProxyInterface {
    887  getter long longIndexedGetter(unsigned long ix);
    888  setter undefined longIndexedSetter(unsigned long y, long z);
    889  readonly attribute unsigned long length;
    890  stringifier DOMString myStringifier();
    891  getter short shortNameGetter(DOMString nom);
    892  deleter undefined (DOMString nomnom);
    893  setter undefined shortNamedSetter(DOMString me, short value);
    894 };
    895 
    896 [Exposed=(Window,Worker)]
    897 interface TestExampleWorkerInterface {
    898  [NeedsSubjectPrincipal] undefined needsSubjectPrincipalMethod();
    899  [NeedsSubjectPrincipal] attribute boolean needsSubjectPrincipalAttr;
    900  [NeedsCallerType] undefined needsCallerTypeMethod();
    901  [NeedsCallerType] attribute boolean needsCallerTypeAttr;
    902  [NeedsSubjectPrincipal=NonSystem] undefined needsNonSystemSubjectPrincipalMethod();
    903  [NeedsSubjectPrincipal=NonSystem] attribute boolean needsNonSystemSubjectPrincipalAttr;
    904 };
    905 
    906 [Exposed=Window]
    907 interface TestExampleThrowingConstructorInterface {
    908  [Throws]
    909  constructor();
    910  [Throws]
    911  constructor(DOMString str);
    912  [Throws]
    913  constructor(unsigned long num, boolean? boolArg);
    914  [Throws]
    915  constructor(TestInterface? iface);
    916  [Throws]
    917  constructor(unsigned long arg1, TestInterface iface);
    918  [Throws]
    919  constructor(ArrayBuffer arrayBuf);
    920  [Throws]
    921  constructor(Uint8Array typedArr);
    922  // [Throws] constructor(long arg1, long arg2, (TestInterface or OnlyForUseInConstructor) arg3);
    923 };