dom/bindings/test/TestExampleGen.webidl

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

michael@0 1 /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
michael@0 2 /* This Source Code Form is subject to the terms of the Mozilla Public
michael@0 3 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
michael@0 4 * You can obtain one at http://mozilla.org/MPL/2.0/.
michael@0 5 */
michael@0 6 [Constructor,
michael@0 7 Constructor(DOMString str),
michael@0 8 Constructor(unsigned long num, boolean? boolArg),
michael@0 9 Constructor(TestInterface? iface),
michael@0 10 Constructor(long arg1, IndirectlyImplementedInterface iface),
michael@0 11 // Constructor(long arg1, long arg2, (TestInterface or OnlyForUseInConstructor) arg3),
michael@0 12 NamedConstructor=Example,
michael@0 13 NamedConstructor=Example(DOMString str),
michael@0 14 NamedConstructor=Example2(DictForConstructor dict, any any1, object obj1,
michael@0 15 object? obj2, sequence<Dict> seq, optional any any2,
michael@0 16 optional object obj3, optional object? obj4)
michael@0 17 ]
michael@0 18 interface TestExampleInterface {
michael@0 19 // Integer types
michael@0 20 // XXXbz add tests for throwing versions of all the integer stuff
michael@0 21 readonly attribute byte readonlyByte;
michael@0 22 attribute byte writableByte;
michael@0 23 void passByte(byte arg);
michael@0 24 byte receiveByte();
michael@0 25 void passOptionalByte(optional byte arg);
michael@0 26 void passOptionalByteBeforeRequired(optional byte arg1, byte arg2);
michael@0 27 void passOptionalByteWithDefault(optional byte arg = 0);
michael@0 28 void passOptionalByteWithDefaultBeforeRequired(optional byte arg1 = 0, byte arg2);
michael@0 29 void passNullableByte(byte? arg);
michael@0 30 void passOptionalNullableByte(optional byte? arg);
michael@0 31 void passVariadicByte(byte... arg);
michael@0 32 [Cached, Pure]
michael@0 33 readonly attribute byte cachedByte;
michael@0 34 [StoreInSlot, Constant]
michael@0 35 readonly attribute byte cachedConstantByte;
michael@0 36 [Cached, Pure]
michael@0 37 attribute byte cachedWritableByte;
michael@0 38
michael@0 39 readonly attribute short readonlyShort;
michael@0 40 attribute short writableShort;
michael@0 41 void passShort(short arg);
michael@0 42 short receiveShort();
michael@0 43 void passOptionalShort(optional short arg);
michael@0 44 void passOptionalShortWithDefault(optional short arg = 5);
michael@0 45
michael@0 46 readonly attribute long readonlyLong;
michael@0 47 attribute long writableLong;
michael@0 48 void passLong(long arg);
michael@0 49 long receiveLong();
michael@0 50 void passOptionalLong(optional long arg);
michael@0 51 void passOptionalLongWithDefault(optional long arg = 7);
michael@0 52
michael@0 53 readonly attribute long long readonlyLongLong;
michael@0 54 attribute long long writableLongLong;
michael@0 55 void passLongLong(long long arg);
michael@0 56 long long receiveLongLong();
michael@0 57 void passOptionalLongLong(optional long long arg);
michael@0 58 void passOptionalLongLongWithDefault(optional long long arg = -12);
michael@0 59
michael@0 60 readonly attribute octet readonlyOctet;
michael@0 61 attribute octet writableOctet;
michael@0 62 void passOctet(octet arg);
michael@0 63 octet receiveOctet();
michael@0 64 void passOptionalOctet(optional octet arg);
michael@0 65 void passOptionalOctetWithDefault(optional octet arg = 19);
michael@0 66
michael@0 67 readonly attribute unsigned short readonlyUnsignedShort;
michael@0 68 attribute unsigned short writableUnsignedShort;
michael@0 69 void passUnsignedShort(unsigned short arg);
michael@0 70 unsigned short receiveUnsignedShort();
michael@0 71 void passOptionalUnsignedShort(optional unsigned short arg);
michael@0 72 void passOptionalUnsignedShortWithDefault(optional unsigned short arg = 2);
michael@0 73
michael@0 74 readonly attribute unsigned long readonlyUnsignedLong;
michael@0 75 attribute unsigned long writableUnsignedLong;
michael@0 76 void passUnsignedLong(unsigned long arg);
michael@0 77 unsigned long receiveUnsignedLong();
michael@0 78 void passOptionalUnsignedLong(optional unsigned long arg);
michael@0 79 void passOptionalUnsignedLongWithDefault(optional unsigned long arg = 6);
michael@0 80
michael@0 81 readonly attribute unsigned long long readonlyUnsignedLongLong;
michael@0 82 attribute unsigned long long writableUnsignedLongLong;
michael@0 83 void passUnsignedLongLong(unsigned long long arg);
michael@0 84 unsigned long long receiveUnsignedLongLong();
michael@0 85 void passOptionalUnsignedLongLong(optional unsigned long long arg);
michael@0 86 void passOptionalUnsignedLongLongWithDefault(optional unsigned long long arg = 17);
michael@0 87
michael@0 88 attribute float writableFloat;
michael@0 89 attribute unrestricted float writableUnrestrictedFloat;
michael@0 90 attribute float? writableNullableFloat;
michael@0 91 attribute unrestricted float? writableNullableUnrestrictedFloat;
michael@0 92 attribute double writableDouble;
michael@0 93 attribute unrestricted double writableUnrestrictedDouble;
michael@0 94 attribute double? writableNullableDouble;
michael@0 95 attribute unrestricted double? writableNullableUnrestrictedDouble;
michael@0 96 void passFloat(float arg1, unrestricted float arg2,
michael@0 97 float? arg3, unrestricted float? arg4,
michael@0 98 double arg5, unrestricted double arg6,
michael@0 99 double? arg7, unrestricted double? arg8,
michael@0 100 sequence<float> arg9, sequence<unrestricted float> arg10,
michael@0 101 sequence<float?> arg11, sequence<unrestricted float?> arg12,
michael@0 102 sequence<double> arg13, sequence<unrestricted double> arg14,
michael@0 103 sequence<double?> arg15, sequence<unrestricted double?> arg16);
michael@0 104 [LenientFloat]
michael@0 105 void passLenientFloat(float arg1, unrestricted float arg2,
michael@0 106 float? arg3, unrestricted float? arg4,
michael@0 107 double arg5, unrestricted double arg6,
michael@0 108 double? arg7, unrestricted double? arg8,
michael@0 109 sequence<float> arg9,
michael@0 110 sequence<unrestricted float> arg10,
michael@0 111 sequence<float?> arg11,
michael@0 112 sequence<unrestricted float?> arg12,
michael@0 113 sequence<double> arg13,
michael@0 114 sequence<unrestricted double> arg14,
michael@0 115 sequence<double?> arg15,
michael@0 116 sequence<unrestricted double?> arg16);
michael@0 117 [LenientFloat]
michael@0 118 attribute float lenientFloatAttr;
michael@0 119 [LenientFloat]
michael@0 120 attribute double lenientDoubleAttr;
michael@0 121
michael@0 122 // Castable interface types
michael@0 123 // XXXbz add tests for throwing versions of all the castable interface stuff
michael@0 124 TestInterface receiveSelf();
michael@0 125 TestInterface? receiveNullableSelf();
michael@0 126 TestInterface receiveWeakSelf();
michael@0 127 TestInterface? receiveWeakNullableSelf();
michael@0 128 void passSelf(TestInterface arg);
michael@0 129 void passNullableSelf(TestInterface? arg);
michael@0 130 attribute TestInterface nonNullSelf;
michael@0 131 attribute TestInterface? nullableSelf;
michael@0 132 [Cached, Pure]
michael@0 133 readonly attribute TestInterface cachedSelf;
michael@0 134 // Optional arguments
michael@0 135 void passOptionalSelf(optional TestInterface? arg);
michael@0 136 void passOptionalNonNullSelf(optional TestInterface arg);
michael@0 137 void passOptionalSelfWithDefault(optional TestInterface? arg = null);
michael@0 138
michael@0 139 // Non-wrapper-cache interface types
michael@0 140 [NewObject]
michael@0 141 TestNonWrapperCacheInterface receiveNonWrapperCacheInterface();
michael@0 142 [NewObject]
michael@0 143 TestNonWrapperCacheInterface? receiveNullableNonWrapperCacheInterface();
michael@0 144 [NewObject]
michael@0 145 sequence<TestNonWrapperCacheInterface> receiveNonWrapperCacheInterfaceSequence();
michael@0 146 [NewObject]
michael@0 147 sequence<TestNonWrapperCacheInterface?> receiveNullableNonWrapperCacheInterfaceSequence();
michael@0 148 [NewObject]
michael@0 149 sequence<TestNonWrapperCacheInterface>? receiveNonWrapperCacheInterfaceNullableSequence();
michael@0 150 [NewObject]
michael@0 151 sequence<TestNonWrapperCacheInterface?>? receiveNullableNonWrapperCacheInterfaceNullableSequence();
michael@0 152
michael@0 153 // Non-castable interface types
michael@0 154 IndirectlyImplementedInterface receiveOther();
michael@0 155 IndirectlyImplementedInterface? receiveNullableOther();
michael@0 156 IndirectlyImplementedInterface receiveWeakOther();
michael@0 157 IndirectlyImplementedInterface? receiveWeakNullableOther();
michael@0 158 void passOther(IndirectlyImplementedInterface arg);
michael@0 159 void passNullableOther(IndirectlyImplementedInterface? arg);
michael@0 160 attribute IndirectlyImplementedInterface nonNullOther;
michael@0 161 attribute IndirectlyImplementedInterface? nullableOther;
michael@0 162 // Optional arguments
michael@0 163 void passOptionalOther(optional IndirectlyImplementedInterface? arg);
michael@0 164 void passOptionalNonNullOther(optional IndirectlyImplementedInterface arg);
michael@0 165 void passOptionalOtherWithDefault(optional IndirectlyImplementedInterface? arg = null);
michael@0 166
michael@0 167 // External interface types
michael@0 168 TestExternalInterface receiveExternal();
michael@0 169 TestExternalInterface? receiveNullableExternal();
michael@0 170 TestExternalInterface receiveWeakExternal();
michael@0 171 TestExternalInterface? receiveWeakNullableExternal();
michael@0 172 void passExternal(TestExternalInterface arg);
michael@0 173 void passNullableExternal(TestExternalInterface? arg);
michael@0 174 attribute TestExternalInterface nonNullExternal;
michael@0 175 attribute TestExternalInterface? nullableExternal;
michael@0 176 // Optional arguments
michael@0 177 void passOptionalExternal(optional TestExternalInterface? arg);
michael@0 178 void passOptionalNonNullExternal(optional TestExternalInterface arg);
michael@0 179 void passOptionalExternalWithDefault(optional TestExternalInterface? arg = null);
michael@0 180
michael@0 181 // Callback interface types
michael@0 182 TestCallbackInterface receiveCallbackInterface();
michael@0 183 TestCallbackInterface? receiveNullableCallbackInterface();
michael@0 184 TestCallbackInterface receiveWeakCallbackInterface();
michael@0 185 TestCallbackInterface? receiveWeakNullableCallbackInterface();
michael@0 186 void passCallbackInterface(TestCallbackInterface arg);
michael@0 187 void passNullableCallbackInterface(TestCallbackInterface? arg);
michael@0 188 attribute TestCallbackInterface nonNullCallbackInterface;
michael@0 189 attribute TestCallbackInterface? nullableCallbackInterface;
michael@0 190 // Optional arguments
michael@0 191 void passOptionalCallbackInterface(optional TestCallbackInterface? arg);
michael@0 192 void passOptionalNonNullCallbackInterface(optional TestCallbackInterface arg);
michael@0 193 void passOptionalCallbackInterfaceWithDefault(optional TestCallbackInterface? arg = null);
michael@0 194
michael@0 195 // Miscellaneous interface tests
michael@0 196 IndirectlyImplementedInterface receiveConsequentialInterface();
michael@0 197 void passConsequentialInterface(IndirectlyImplementedInterface arg);
michael@0 198
michael@0 199 // Sequence types
michael@0 200 [Cached, Pure]
michael@0 201 readonly attribute sequence<long> readonlySequence;
michael@0 202 [Cached, Pure]
michael@0 203 readonly attribute sequence<Dict> readonlySequenceOfDictionaries;
michael@0 204 [Cached, Pure]
michael@0 205 readonly attribute sequence<Dict>? readonlyNullableSequenceOfDictionaries;
michael@0 206 [Cached, Pure, Frozen]
michael@0 207 readonly attribute sequence<long> readonlyFrozenSequence;
michael@0 208 [Cached, Pure, Frozen]
michael@0 209 readonly attribute sequence<long>? readonlyFrozenNullableSequence;
michael@0 210 sequence<long> receiveSequence();
michael@0 211 sequence<long>? receiveNullableSequence();
michael@0 212 sequence<long?> receiveSequenceOfNullableInts();
michael@0 213 sequence<long?>? receiveNullableSequenceOfNullableInts();
michael@0 214 void passSequence(sequence<long> arg);
michael@0 215 void passNullableSequence(sequence<long>? arg);
michael@0 216 void passSequenceOfNullableInts(sequence<long?> arg);
michael@0 217 void passOptionalSequenceOfNullableInts(optional sequence<long?> arg);
michael@0 218 void passOptionalNullableSequenceOfNullableInts(optional sequence<long?>? arg);
michael@0 219 sequence<TestInterface> receiveCastableObjectSequence();
michael@0 220 sequence<TestCallbackInterface> receiveCallbackObjectSequence();
michael@0 221 sequence<TestInterface?> receiveNullableCastableObjectSequence();
michael@0 222 sequence<TestCallbackInterface?> receiveNullableCallbackObjectSequence();
michael@0 223 sequence<TestInterface>? receiveCastableObjectNullableSequence();
michael@0 224 sequence<TestInterface?>? receiveNullableCastableObjectNullableSequence();
michael@0 225 sequence<TestInterface> receiveWeakCastableObjectSequence();
michael@0 226 sequence<TestInterface?> receiveWeakNullableCastableObjectSequence();
michael@0 227 sequence<TestInterface>? receiveWeakCastableObjectNullableSequence();
michael@0 228 sequence<TestInterface?>? receiveWeakNullableCastableObjectNullableSequence();
michael@0 229 void passCastableObjectSequence(sequence<TestInterface> arg);
michael@0 230 void passNullableCastableObjectSequence(sequence<TestInterface?> arg);
michael@0 231 void passCastableObjectNullableSequence(sequence<TestInterface>? arg);
michael@0 232 void passNullableCastableObjectNullableSequence(sequence<TestInterface?>? arg);
michael@0 233 void passOptionalSequence(optional sequence<long> arg);
michael@0 234 void passOptionalNullableSequence(optional sequence<long>? arg);
michael@0 235 void passOptionalNullableSequenceWithDefaultValue(optional sequence<long>? arg = null);
michael@0 236 void passOptionalObjectSequence(optional sequence<TestInterface> arg);
michael@0 237 void passExternalInterfaceSequence(sequence<TestExternalInterface> arg);
michael@0 238 void passNullableExternalInterfaceSequence(sequence<TestExternalInterface?> arg);
michael@0 239
michael@0 240 sequence<DOMString> receiveStringSequence();
michael@0 241 void passStringSequence(sequence<DOMString> arg);
michael@0 242
michael@0 243 sequence<ByteString> receiveByteStringSequence();
michael@0 244 void passByteStringSequence(sequence<ByteString> arg);
michael@0 245
michael@0 246 sequence<any> receiveAnySequence();
michael@0 247 sequence<any>? receiveNullableAnySequence();
michael@0 248 //XXXbz No support for sequence of sequence return values yet.
michael@0 249 //sequence<sequence<any>> receiveAnySequenceSequence();
michael@0 250
michael@0 251 sequence<object> receiveObjectSequence();
michael@0 252 sequence<object?> receiveNullableObjectSequence();
michael@0 253
michael@0 254 void passSequenceOfSequences(sequence<sequence<long>> arg);
michael@0 255 //XXXbz No support for sequence of sequence return values yet.
michael@0 256 //sequence<sequence<long>> receiveSequenceOfSequences();
michael@0 257
michael@0 258 // MozMap types
michael@0 259 void passMozMap(MozMap<long> arg);
michael@0 260 void passNullableMozMap(MozMap<long>? arg);
michael@0 261 void passMozMapOfNullableInts(MozMap<long?> arg);
michael@0 262 void passOptionalMozMapOfNullableInts(optional MozMap<long?> arg);
michael@0 263 void passOptionalNullableMozMapOfNullableInts(optional MozMap<long?>? arg);
michael@0 264 void passCastableObjectMozMap(MozMap<TestInterface> arg);
michael@0 265 void passNullableCastableObjectMozMap(MozMap<TestInterface?> arg);
michael@0 266 void passCastableObjectNullableMozMap(MozMap<TestInterface>? arg);
michael@0 267 void passNullableCastableObjectNullableMozMap(MozMap<TestInterface?>? arg);
michael@0 268 void passOptionalMozMap(optional MozMap<long> arg);
michael@0 269 void passOptionalNullableMozMap(optional MozMap<long>? arg);
michael@0 270 void passOptionalNullableMozMapWithDefaultValue(optional MozMap<long>? arg = null);
michael@0 271 void passOptionalObjectMozMap(optional MozMap<TestInterface> arg);
michael@0 272 void passExternalInterfaceMozMap(MozMap<TestExternalInterface> arg);
michael@0 273 void passNullableExternalInterfaceMozMap(MozMap<TestExternalInterface?> arg);
michael@0 274 void passStringMozMap(MozMap<DOMString> arg);
michael@0 275 void passByteStringMozMap(MozMap<ByteString> arg);
michael@0 276 void passMozMapOfMozMaps(MozMap<MozMap<long>> arg);
michael@0 277 MozMap<long> receiveMozMap();
michael@0 278 MozMap<long>? receiveNullableMozMap();
michael@0 279 MozMap<long?> receiveMozMapOfNullableInts();
michael@0 280 MozMap<long?>? receiveNullableMozMapOfNullableInts();
michael@0 281 //XXXbz No support for MozMap of MozMaps return values yet.
michael@0 282 //MozMap<MozMap<long>> receiveMozMapOfMozMaps();
michael@0 283 MozMap<any> receiveAnyMozMap();
michael@0 284
michael@0 285 // Typed array types
michael@0 286 void passArrayBuffer(ArrayBuffer arg);
michael@0 287 void passNullableArrayBuffer(ArrayBuffer? arg);
michael@0 288 void passOptionalArrayBuffer(optional ArrayBuffer arg);
michael@0 289 void passOptionalNullableArrayBuffer(optional ArrayBuffer? arg);
michael@0 290 void passOptionalNullableArrayBufferWithDefaultValue(optional ArrayBuffer? arg= null);
michael@0 291 void passArrayBufferView(ArrayBufferView arg);
michael@0 292 void passInt8Array(Int8Array arg);
michael@0 293 void passInt16Array(Int16Array arg);
michael@0 294 void passInt32Array(Int32Array arg);
michael@0 295 void passUint8Array(Uint8Array arg);
michael@0 296 void passUint16Array(Uint16Array arg);
michael@0 297 void passUint32Array(Uint32Array arg);
michael@0 298 void passUint8ClampedArray(Uint8ClampedArray arg);
michael@0 299 void passFloat32Array(Float32Array arg);
michael@0 300 void passFloat64Array(Float64Array arg);
michael@0 301 void passSequenceOfArrayBuffers(sequence<ArrayBuffer> arg);
michael@0 302 void passSequenceOfNullableArrayBuffers(sequence<ArrayBuffer?> arg);
michael@0 303 void passMozMapOfArrayBuffers(MozMap<ArrayBuffer> arg);
michael@0 304 void passMozMapOfNullableArrayBuffers(MozMap<ArrayBuffer?> arg);
michael@0 305 void passVariadicTypedArray(Float32Array... arg);
michael@0 306 void passVariadicNullableTypedArray(Float32Array?... arg);
michael@0 307 Uint8Array receiveUint8Array();
michael@0 308
michael@0 309 // DOMString types
michael@0 310 void passString(DOMString arg);
michael@0 311 void passNullableString(DOMString? arg);
michael@0 312 void passOptionalString(optional DOMString arg);
michael@0 313 void passOptionalStringWithDefaultValue(optional DOMString arg = "abc");
michael@0 314 void passOptionalNullableString(optional DOMString? arg);
michael@0 315 void passOptionalNullableStringWithDefaultValue(optional DOMString? arg = null);
michael@0 316 void passVariadicString(DOMString... arg);
michael@0 317
michael@0 318 // ByteString types
michael@0 319 void passByteString(ByteString arg);
michael@0 320 void passNullableByteString(ByteString? arg);
michael@0 321 void passOptionalByteString(optional ByteString arg);
michael@0 322 void passOptionalNullableByteString(optional ByteString? arg);
michael@0 323 void passVariadicByteString(ByteString... arg);
michael@0 324
michael@0 325 // Enumerated types
michael@0 326 void passEnum(TestEnum arg);
michael@0 327 void passNullableEnum(TestEnum? arg);
michael@0 328 void passOptionalEnum(optional TestEnum arg);
michael@0 329 void passEnumWithDefault(optional TestEnum arg = "a");
michael@0 330 void passOptionalNullableEnum(optional TestEnum? arg);
michael@0 331 void passOptionalNullableEnumWithDefaultValue(optional TestEnum? arg = null);
michael@0 332 void passOptionalNullableEnumWithDefaultValue2(optional TestEnum? arg = "a");
michael@0 333 TestEnum receiveEnum();
michael@0 334 TestEnum? receiveNullableEnum();
michael@0 335 attribute TestEnum enumAttribute;
michael@0 336 readonly attribute TestEnum readonlyEnumAttribute;
michael@0 337
michael@0 338 // Callback types
michael@0 339 void passCallback(TestCallback arg);
michael@0 340 void passNullableCallback(TestCallback? arg);
michael@0 341 void passOptionalCallback(optional TestCallback arg);
michael@0 342 void passOptionalNullableCallback(optional TestCallback? arg);
michael@0 343 void passOptionalNullableCallbackWithDefaultValue(optional TestCallback? arg = null);
michael@0 344 TestCallback receiveCallback();
michael@0 345 TestCallback? receiveNullableCallback();
michael@0 346 void passNullableTreatAsNullCallback(TestTreatAsNullCallback? arg);
michael@0 347 void passOptionalNullableTreatAsNullCallback(optional TestTreatAsNullCallback? arg);
michael@0 348 void passOptionalNullableTreatAsNullCallbackWithDefaultValue(optional TestTreatAsNullCallback? arg = null);
michael@0 349
michael@0 350 // Any types
michael@0 351 void passAny(any arg);
michael@0 352 void passVariadicAny(any... arg);
michael@0 353 void passOptionalAny(optional any arg);
michael@0 354 void passAnyDefaultNull(optional any arg = null);
michael@0 355 void passSequenceOfAny(sequence<any> arg);
michael@0 356 void passNullableSequenceOfAny(sequence<any>? arg);
michael@0 357 void passOptionalSequenceOfAny(optional sequence<any> arg);
michael@0 358 void passOptionalNullableSequenceOfAny(optional sequence<any>? arg);
michael@0 359 void passOptionalSequenceOfAnyWithDefaultValue(optional sequence<any>? arg = null);
michael@0 360 void passSequenceOfSequenceOfAny(sequence<sequence<any>> arg);
michael@0 361 void passSequenceOfNullableSequenceOfAny(sequence<sequence<any>?> arg);
michael@0 362 void passNullableSequenceOfNullableSequenceOfAny(sequence<sequence<any>?>? arg);
michael@0 363 void passOptionalNullableSequenceOfNullableSequenceOfAny(optional sequence<sequence<any>?>? arg);
michael@0 364 void passMozMapOfAny(MozMap<any> arg);
michael@0 365 void passNullableMozMapOfAny(MozMap<any>? arg);
michael@0 366 void passOptionalMozMapOfAny(optional MozMap<any> arg);
michael@0 367 void passOptionalNullableMozMapOfAny(optional MozMap<any>? arg);
michael@0 368 void passOptionalMozMapOfAnyWithDefaultValue(optional MozMap<any>? arg = null);
michael@0 369 void passMozMapOfMozMapOfAny(MozMap<MozMap<any>> arg);
michael@0 370 void passMozMapOfNullableMozMapOfAny(MozMap<MozMap<any>?> arg);
michael@0 371 void passNullableMozMapOfNullableMozMapOfAny(MozMap<MozMap<any>?>? arg);
michael@0 372 void passOptionalNullableMozMapOfNullableMozMapOfAny(optional MozMap<MozMap<any>?>? arg);
michael@0 373 void passOptionalNullableMozMapOfNullableSequenceOfAny(optional MozMap<sequence<any>?>? arg);
michael@0 374 void passOptionalNullableSequenceOfNullableMozMapOfAny(optional sequence<MozMap<any>?>? arg);
michael@0 375 any receiveAny();
michael@0 376
michael@0 377 // object types
michael@0 378 void passObject(object arg);
michael@0 379 void passVariadicObject(object... arg);
michael@0 380 void passNullableObject(object? arg);
michael@0 381 void passVariadicNullableObject(object... arg);
michael@0 382 void passOptionalObject(optional object arg);
michael@0 383 void passOptionalNullableObject(optional object? arg);
michael@0 384 void passOptionalNullableObjectWithDefaultValue(optional object? arg = null);
michael@0 385 void passSequenceOfObject(sequence<object> arg);
michael@0 386 void passSequenceOfNullableObject(sequence<object?> arg);
michael@0 387 void passNullableSequenceOfObject(sequence<object>? arg);
michael@0 388 void passOptionalNullableSequenceOfNullableSequenceOfObject(optional sequence<sequence<object>?>? arg);
michael@0 389 void passOptionalNullableSequenceOfNullableSequenceOfNullableObject(optional sequence<sequence<object?>?>? arg);
michael@0 390 void passMozMapOfObject(MozMap<object> arg);
michael@0 391 object receiveObject();
michael@0 392 object? receiveNullableObject();
michael@0 393
michael@0 394 // Union types
michael@0 395 void passUnion((object or long) arg);
michael@0 396 // Some union tests are debug-only to avoid creating all those
michael@0 397 // unused union types in opt builds.
michael@0 398 #ifdef DEBUG
michael@0 399 void passUnion2((long or boolean) arg);
michael@0 400 void passUnion3((object or long or boolean) arg);
michael@0 401 void passUnion4((Node or long or boolean) arg);
michael@0 402 void passUnion5((object or boolean) arg);
michael@0 403 void passUnion6((object or DOMString) arg);
michael@0 404 void passUnion7((object or DOMString or long) arg);
michael@0 405 void passUnion8((object or DOMString or boolean) arg);
michael@0 406 void passUnion9((object or DOMString or long or boolean) arg);
michael@0 407 void passUnion10(optional (EventInit or long) arg);
michael@0 408 void passUnion11(optional (CustomEventInit or long) arg);
michael@0 409 void passUnion12(optional (EventInit or long) arg = 5);
michael@0 410 void passUnion13(optional (object or long?) arg = null);
michael@0 411 void passUnion14(optional (object or long?) arg = 5);
michael@0 412 void passUnionWithCallback((EventHandler or long) arg);
michael@0 413 #endif
michael@0 414 void passUnionWithNullable((object? or long) arg);
michael@0 415 void passNullableUnion((object or long)? arg);
michael@0 416 void passOptionalUnion(optional (object or long) arg);
michael@0 417 void passOptionalNullableUnion(optional (object or long)? arg);
michael@0 418 void passOptionalNullableUnionWithDefaultValue(optional (object or long)? arg = null);
michael@0 419 //void passUnionWithInterfaces((TestInterface or TestExternalInterface) arg);
michael@0 420 //void passUnionWithInterfacesAndNullable((TestInterface? or TestExternalInterface) arg);
michael@0 421 //void passUnionWithSequence((sequence<object> or long) arg);
michael@0 422 void passUnionWithArrayBuffer((ArrayBuffer or long) arg);
michael@0 423 void passUnionWithString((DOMString or object) arg);
michael@0 424 //void passUnionWithEnum((TestEnum or object) arg);
michael@0 425 // Trying to use a callback in a union won't include the test
michael@0 426 // headers, unfortunately, so won't compile.
michael@0 427 // void passUnionWithCallback((TestCallback or long) arg);
michael@0 428 void passUnionWithObject((object or long) arg);
michael@0 429 //void passUnionWithDict((Dict or long) arg);
michael@0 430
michael@0 431 void passUnionWithDefaultValue1(optional (double or DOMString) arg = "");
michael@0 432 void passUnionWithDefaultValue2(optional (double or DOMString) arg = 1);
michael@0 433 void passUnionWithDefaultValue3(optional (double or DOMString) arg = 1.5);
michael@0 434 void passUnionWithDefaultValue4(optional (float or DOMString) arg = "");
michael@0 435 void passUnionWithDefaultValue5(optional (float or DOMString) arg = 1);
michael@0 436 void passUnionWithDefaultValue6(optional (float or DOMString) arg = 1.5);
michael@0 437 void passUnionWithDefaultValue7(optional (unrestricted double or DOMString) arg = "");
michael@0 438 void passUnionWithDefaultValue8(optional (unrestricted double or DOMString) arg = 1);
michael@0 439 void passUnionWithDefaultValue9(optional (unrestricted double or DOMString) arg = 1.5);
michael@0 440 void passUnionWithDefaultValue10(optional (unrestricted double or DOMString) arg = Infinity);
michael@0 441 void passUnionWithDefaultValue11(optional (unrestricted float or DOMString) arg = "");
michael@0 442 void passUnionWithDefaultValue12(optional (unrestricted float or DOMString) arg = 1);
michael@0 443 void passUnionWithDefaultValue13(optional (unrestricted float or DOMString) arg = Infinity);
michael@0 444
michael@0 445 void passNullableUnionWithDefaultValue1(optional (double or DOMString)? arg = "");
michael@0 446 void passNullableUnionWithDefaultValue2(optional (double or DOMString)? arg = 1);
michael@0 447 void passNullableUnionWithDefaultValue3(optional (double or DOMString)? arg = null);
michael@0 448 void passNullableUnionWithDefaultValue4(optional (float or DOMString)? arg = "");
michael@0 449 void passNullableUnionWithDefaultValue5(optional (float or DOMString)? arg = 1);
michael@0 450 void passNullableUnionWithDefaultValue6(optional (float or DOMString)? arg = null);
michael@0 451 void passNullableUnionWithDefaultValue7(optional (unrestricted double or DOMString)? arg = "");
michael@0 452 void passNullableUnionWithDefaultValue8(optional (unrestricted double or DOMString)? arg = 1);
michael@0 453 void passNullableUnionWithDefaultValue9(optional (unrestricted double or DOMString)? arg = null);
michael@0 454 void passNullableUnionWithDefaultValue10(optional (unrestricted float or DOMString)? arg = "");
michael@0 455 void passNullableUnionWithDefaultValue11(optional (unrestricted float or DOMString)? arg = 1);
michael@0 456 void passNullableUnionWithDefaultValue12(optional (unrestricted float or DOMString)? arg = null);
michael@0 457
michael@0 458 void passSequenceOfUnions(sequence<(CanvasPattern or CanvasGradient)> arg);
michael@0 459 void passSequenceOfUnions2(sequence<(object or long)> arg);
michael@0 460 void passVariadicUnion((CanvasPattern or CanvasGradient)... arg);
michael@0 461
michael@0 462 void passSequenceOfNullableUnions(sequence<(CanvasPattern or CanvasGradient)?> arg);
michael@0 463 void passVariadicNullableUnion((CanvasPattern or CanvasGradient)?... arg);
michael@0 464 void passMozMapOfUnions(MozMap<(CanvasPattern or CanvasGradient)> arg);
michael@0 465 // XXXbz no move constructor on some unions
michael@0 466 // void passMozMapOfUnions2(MozMap<(object or long)> arg);
michael@0 467
michael@0 468 //(CanvasPattern or CanvasGradient) receiveUnion();
michael@0 469 //(object or long) receiveUnion2();
michael@0 470 //(CanvasPattern? or CanvasGradient) receiveUnionContainingNull();
michael@0 471 //(CanvasPattern or CanvasGradient)? receiveNullableUnion();
michael@0 472 //(object or long)? receiveNullableUnion2();
michael@0 473
michael@0 474 //attribute (CanvasPattern or CanvasGradient) writableUnion;
michael@0 475 //attribute (CanvasPattern? or CanvasGradient) writableUnionContainingNull;
michael@0 476 //attribute (CanvasPattern or CanvasGradient)? writableNullableUnion;
michael@0 477
michael@0 478 // Date types
michael@0 479 void passDate(Date arg);
michael@0 480 void passNullableDate(Date? arg);
michael@0 481 void passOptionalDate(optional Date arg);
michael@0 482 void passOptionalNullableDate(optional Date? arg);
michael@0 483 void passOptionalNullableDateWithDefaultValue(optional Date? arg = null);
michael@0 484 void passDateSequence(sequence<Date> arg);
michael@0 485 void passNullableDateSequence(sequence<Date?> arg);
michael@0 486 void passDateMozMap(MozMap<Date> arg);
michael@0 487 Date receiveDate();
michael@0 488 Date? receiveNullableDate();
michael@0 489
michael@0 490 // binaryNames tests
michael@0 491 void methodRenamedFrom();
michael@0 492 void methodRenamedFrom(byte argument);
michael@0 493 readonly attribute byte attributeGetterRenamedFrom;
michael@0 494 attribute byte attributeRenamedFrom;
michael@0 495
michael@0 496 void passDictionary(optional Dict x);
michael@0 497 [Cached, Pure]
michael@0 498 readonly attribute Dict readonlyDictionary;
michael@0 499 [Cached, Pure]
michael@0 500 readonly attribute Dict? readonlyNullableDictionary;
michael@0 501 [Cached, Pure]
michael@0 502 attribute Dict writableDictionary;
michael@0 503 [Cached, Pure, Frozen]
michael@0 504 readonly attribute Dict readonlyFrozenDictionary;
michael@0 505 [Cached, Pure, Frozen]
michael@0 506 readonly attribute Dict? readonlyFrozenNullableDictionary;
michael@0 507 [Cached, Pure, Frozen]
michael@0 508 attribute Dict writableFrozenDictionary;
michael@0 509 Dict receiveDictionary();
michael@0 510 Dict? receiveNullableDictionary();
michael@0 511 void passOtherDictionary(optional GrandparentDict x);
michael@0 512 void passSequenceOfDictionaries(sequence<Dict> x);
michael@0 513 void passMozMapOfDictionaries(MozMap<GrandparentDict> x);
michael@0 514 // No support for nullable dictionaries inside a sequence (nor should there be)
michael@0 515 // void passSequenceOfNullableDictionaries(sequence<Dict?> x);
michael@0 516 void passDictionaryOrLong(optional Dict x);
michael@0 517 void passDictionaryOrLong(long x);
michael@0 518
michael@0 519 void passDictContainingDict(optional DictContainingDict arg);
michael@0 520 void passDictContainingSequence(optional DictContainingSequence arg);
michael@0 521 DictContainingSequence receiveDictContainingSequence();
michael@0 522
michael@0 523 // EnforceRange/Clamp tests
michael@0 524 void dontEnforceRangeOrClamp(byte arg);
michael@0 525 void doEnforceRange([EnforceRange] byte arg);
michael@0 526 void doClamp([Clamp] byte arg);
michael@0 527 [EnforceRange] attribute byte enforcedByte;
michael@0 528 [Clamp] attribute byte clampedByte;
michael@0 529
michael@0 530 // Typedefs
michael@0 531 const myLong myLongConstant = 5;
michael@0 532 void exerciseTypedefInterfaces1(AnotherNameForTestInterface arg);
michael@0 533 AnotherNameForTestInterface exerciseTypedefInterfaces2(NullableTestInterface arg);
michael@0 534 void exerciseTypedefInterfaces3(YetAnotherNameForTestInterface arg);
michael@0 535
michael@0 536 // Static methods and attributes
michael@0 537 static attribute boolean staticAttribute;
michael@0 538 static void staticMethod(boolean arg);
michael@0 539 static void staticMethodWithContext(any arg);
michael@0 540
michael@0 541 // Overload resolution tests
michael@0 542 //void overload1(DOMString... strs);
michael@0 543 boolean overload1(TestInterface arg);
michael@0 544 TestInterface overload1(DOMString strs, TestInterface arg);
michael@0 545 void overload2(TestInterface arg);
michael@0 546 void overload2(optional Dict arg);
michael@0 547 void overload2(boolean arg);
michael@0 548 void overload2(DOMString arg);
michael@0 549 void overload2(Date arg);
michael@0 550 void overload3(TestInterface arg);
michael@0 551 void overload3(TestCallback arg);
michael@0 552 void overload3(boolean arg);
michael@0 553 void overload4(TestInterface arg);
michael@0 554 void overload4(TestCallbackInterface arg);
michael@0 555 void overload4(DOMString arg);
michael@0 556 void overload5(long arg);
michael@0 557 void overload5(TestEnum arg);
michael@0 558 void overload6(long arg);
michael@0 559 void overload6(boolean arg);
michael@0 560 void overload7(long arg);
michael@0 561 void overload7(boolean arg);
michael@0 562 void overload7(ByteString arg);
michael@0 563 void overload8(long arg);
michael@0 564 void overload8(TestInterface arg);
michael@0 565 void overload9(long? arg);
michael@0 566 void overload9(DOMString arg);
michael@0 567 void overload10(long? arg);
michael@0 568 void overload10(object arg);
michael@0 569 void overload11(long arg);
michael@0 570 void overload11(DOMString? arg);
michael@0 571 void overload12(long arg);
michael@0 572 void overload12(boolean? arg);
michael@0 573 void overload13(long? arg);
michael@0 574 void overload13(boolean arg);
michael@0 575 void overload14(optional long arg);
michael@0 576 void overload14(TestInterface arg);
michael@0 577 void overload15(long arg);
michael@0 578 void overload15(optional TestInterface arg);
michael@0 579 void overload16(long arg);
michael@0 580 void overload16(optional TestInterface? arg);
michael@0 581
michael@0 582 // Variadic handling
michael@0 583 void passVariadicThirdArg(DOMString arg1, long arg2, TestInterface... arg3);
michael@0 584
michael@0 585 // Conditionally exposed methods/attributes
michael@0 586 [Pref="abc.def"]
michael@0 587 readonly attribute boolean prefable1;
michael@0 588 [Pref="abc.def"]
michael@0 589 readonly attribute boolean prefable2;
michael@0 590 [Pref="ghi.jkl"]
michael@0 591 readonly attribute boolean prefable3;
michael@0 592 [Pref="ghi.jkl"]
michael@0 593 readonly attribute boolean prefable4;
michael@0 594 [Pref="abc.def"]
michael@0 595 readonly attribute boolean prefable5;
michael@0 596 [Pref="abc.def", Func="nsGenericHTMLElement::TouchEventsEnabled"]
michael@0 597 readonly attribute boolean prefable6;
michael@0 598 [Pref="abc.def", Func="nsGenericHTMLElement::TouchEventsEnabled"]
michael@0 599 readonly attribute boolean prefable7;
michael@0 600 [Pref="ghi.jkl", Func="nsGenericHTMLElement::TouchEventsEnabled"]
michael@0 601 readonly attribute boolean prefable8;
michael@0 602 [Pref="abc.def", Func="nsGenericHTMLElement::TouchEventsEnabled"]
michael@0 603 readonly attribute boolean prefable9;
michael@0 604 [Pref="abc.def"]
michael@0 605 void prefable10();
michael@0 606 [Pref="abc.def", Func="nsGenericHTMLElement::TouchEventsEnabled"]
michael@0 607 void prefable11();
michael@0 608 [Pref="abc.def", Func="TestFuncControlledMember"]
michael@0 609 readonly attribute boolean prefable12;
michael@0 610 [Pref="abc.def", Func="nsGenericHTMLElement::TouchEventsEnabled"]
michael@0 611 void prefable13();
michael@0 612 [Pref="abc.def", Func="TestFuncControlledMember"]
michael@0 613 readonly attribute boolean prefable14;
michael@0 614 [Func="TestFuncControlledMember"]
michael@0 615 readonly attribute boolean prefable15;
michael@0 616 [Func="TestFuncControlledMember"]
michael@0 617 readonly attribute boolean prefable16;
michael@0 618 [Pref="abc.def", Func="TestFuncControlledMember"]
michael@0 619 void prefable17();
michael@0 620 [Func="TestFuncControlledMember"]
michael@0 621 void prefable18();
michael@0 622 [Func="TestFuncControlledMember"]
michael@0 623 void prefable19();
michael@0 624
michael@0 625 // Miscellania
michael@0 626 [LenientThis] attribute long attrWithLenientThis;
michael@0 627 [Unforgeable] readonly attribute long unforgeableAttr;
michael@0 628 [Unforgeable, ChromeOnly] readonly attribute long unforgeableAttr2;
michael@0 629 stringifier;
michael@0 630 void passRenamedInterface(TestRenamedInterface arg);
michael@0 631 [PutForwards=writableByte] readonly attribute TestExampleInterface putForwardsAttr;
michael@0 632 [PutForwards=writableByte, LenientThis] readonly attribute TestExampleInterface putForwardsAttr2;
michael@0 633 [PutForwards=writableByte, ChromeOnly] readonly attribute TestExampleInterface putForwardsAttr3;
michael@0 634 [Throws] void throwingMethod();
michael@0 635 [Throws] attribute boolean throwingAttr;
michael@0 636 [GetterThrows] attribute boolean throwingGetterAttr;
michael@0 637 [SetterThrows] attribute boolean throwingSetterAttr;
michael@0 638 legacycaller short(unsigned long arg1, TestInterface arg2);
michael@0 639 void passArgsWithDefaults(optional long arg1,
michael@0 640 optional TestInterface? arg2 = null,
michael@0 641 optional Dict arg3, optional double arg4 = 5.0,
michael@0 642 optional float arg5);
michael@0 643 attribute any jsonifierShouldSkipThis;
michael@0 644 attribute TestParentInterface jsonifierShouldSkipThis2;
michael@0 645 attribute TestCallbackInterface jsonifierShouldSkipThis3;
michael@0 646 jsonifier;
michael@0 647
michael@0 648 // If you add things here, add them to TestCodeGen and TestJSImplGen as well
michael@0 649 };
michael@0 650
michael@0 651 interface TestExampleProxyInterface {
michael@0 652 getter long longIndexedGetter(unsigned long ix);
michael@0 653 deleter void (unsigned long ix);
michael@0 654 setter creator void longIndexedSetter(unsigned long y, long z);
michael@0 655 stringifier DOMString myStringifier();
michael@0 656 getter short shortNameGetter(DOMString nom);
michael@0 657 deleter void (DOMString nomnom);
michael@0 658 setter creator void shortNamedSetter(DOMString me, short value);
michael@0 659 };

mercurial