diff options
| author | Georg Brandl <georg@python.org> | 2021-01-18 21:24:00 +0100 |
|---|---|---|
| committer | Georg Brandl <georg@python.org> | 2021-01-18 22:08:36 +0100 |
| commit | 2a3d3a7d5b9c60dedf6638d876161d9563faebcf (patch) | |
| tree | 809c0b4a686db98f5954afa1944404cd9652c6b2 /tests/lexers/webidl | |
| parent | f0445be718da83541ea3401aad882f3937147263 (diff) | |
| download | pygments-git-examplefiles.tar.gz | |
Move test_examplefiles to new tests/lexers scheme.examplefiles
Diffstat (limited to 'tests/lexers/webidl')
| -rw-r--r-- | tests/lexers/webidl/example.txt | 13204 |
1 files changed, 13204 insertions, 0 deletions
diff --git a/tests/lexers/webidl/example.txt b/tests/lexers/webidl/example.txt new file mode 100644 index 00000000..694617ed --- /dev/null +++ b/tests/lexers/webidl/example.txt @@ -0,0 +1,13204 @@ +---input--- +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +typedef long myLong; +typedef TestInterface AnotherNameForTestInterface; +typedef TestInterface? NullableTestInterface; +typedef CustomEventInit TestDictionaryTypedef; + +interface TestExternalInterface; + +[Pref="xyz"] +interface TestRenamedInterface { +}; + +callback interface TestCallbackInterface { + readonly attribute long foo; + attribute DOMString bar; + void doSomething(); + long doSomethingElse(DOMString arg, TestInterface otherArg); + void doSequenceLongArg(sequence<long> arg); + void doSequenceStringArg(sequence<DOMString> arg); + void doMozMapLongArg(MozMap<long> arg); + sequence<long> getSequenceOfLong(); + sequence<TestInterface> getSequenceOfInterfaces(); + sequence<TestInterface>? getNullableSequenceOfInterfaces(); + sequence<TestInterface?> getSequenceOfNullableInterfaces(); + sequence<TestInterface?>? getNullableSequenceOfNullableInterfaces(); + sequence<TestCallbackInterface> getSequenceOfCallbackInterfaces(); + sequence<TestCallbackInterface>? getNullableSequenceOfCallbackInterfaces(); + sequence<TestCallbackInterface?> getSequenceOfNullableCallbackInterfaces(); + sequence<TestCallbackInterface?>? getNullableSequenceOfNullableCallbackInterfaces(); + MozMap<long> getMozMapOfLong(); + Dict? getDictionary(); + void passArrayBuffer(ArrayBuffer arg); + void passNullableArrayBuffer(ArrayBuffer? arg); + void passOptionalArrayBuffer(optional ArrayBuffer arg); + void passOptionalNullableArrayBuffer(optional ArrayBuffer? arg); + void passOptionalNullableArrayBufferWithDefaultValue(optional ArrayBuffer? arg= null); + void passArrayBufferView(ArrayBufferView arg); + void passInt8Array(Int8Array arg); + void passInt16Array(Int16Array arg); + void passInt32Array(Int32Array arg); + void passUint8Array(Uint8Array arg); + void passUint16Array(Uint16Array arg); + void passUint32Array(Uint32Array arg); + void passUint8ClampedArray(Uint8ClampedArray arg); + void passFloat32Array(Float32Array arg); + void passFloat64Array(Float64Array arg); + void passSequenceOfArrayBuffers(sequence<ArrayBuffer> arg); + void passSequenceOfNullableArrayBuffers(sequence<ArrayBuffer?> arg); + void passVariadicTypedArray(Float32Array... arg); + void passVariadicNullableTypedArray(Float32Array?... arg); + Uint8Array receiveUint8Array(); + attribute Uint8Array uint8ArrayAttr; + Promise<void> receivePromise(); +}; + +callback interface TestSingleOperationCallbackInterface { + TestInterface doSomething(short arg, sequence<double> anotherArg); +}; + +enum TestEnum { + "1", + "a", + "b" +}; + +callback TestCallback = void(); +[TreatNonCallableAsNull] callback TestTreatAsNullCallback = void(); + +// Callback return value tests +callback TestIntegerReturn = long(); +callback TestNullableIntegerReturn = long?(); +callback TestBooleanReturn = boolean(); +callback TestFloatReturn = float(); +callback TestStringReturn = DOMString(long arg); +callback TestEnumReturn = TestEnum(); +callback TestInterfaceReturn = TestInterface(); +callback TestNullableInterfaceReturn = TestInterface?(); +callback TestExternalInterfaceReturn = TestExternalInterface(); +callback TestNullableExternalInterfaceReturn = TestExternalInterface?(); +callback TestCallbackInterfaceReturn = TestCallbackInterface(); +callback TestNullableCallbackInterfaceReturn = TestCallbackInterface?(); +callback TestCallbackReturn = TestCallback(); +callback TestNullableCallbackReturn = TestCallback?(); +callback TestObjectReturn = object(); +callback TestNullableObjectReturn = object?(); +callback TestTypedArrayReturn = ArrayBuffer(); +callback TestNullableTypedArrayReturn = ArrayBuffer?(); +callback TestSequenceReturn = sequence<boolean>(); +callback TestNullableSequenceReturn = sequence<boolean>?(); +// Callback argument tests +callback TestIntegerArguments = sequence<long>(long arg1, long? arg2, + sequence<long> arg3, + sequence<long?>? arg4); +callback TestInterfaceArguments = void(TestInterface arg1, TestInterface? arg2, + TestExternalInterface arg3, + TestExternalInterface? arg4, + TestCallbackInterface arg5, + TestCallbackInterface? arg6, + sequence<TestInterface> arg7, + sequence<TestInterface?>? arg8, + sequence<TestExternalInterface> arg9, + sequence<TestExternalInterface?>? arg10, + sequence<TestCallbackInterface> arg11, + sequence<TestCallbackInterface?>? arg12); +callback TestStringEnumArguments = void(DOMString myString, DOMString? nullString, + TestEnum myEnum); +callback TestObjectArguments = void(object anObj, object? anotherObj, + ArrayBuffer buf, ArrayBuffer? buf2); +callback TestOptionalArguments = void(optional DOMString aString, + optional object something, + optional sequence<TestInterface> aSeq, + optional TestInterface? anInterface, + optional TestInterface anotherInterface, + optional long aLong); +// If you add a new test callback, add it to the forceCallbackGeneration +// method on TestInterface so it actually gets tested. + +TestInterface implements ImplementedInterface; + +// This interface is only for use in the constructor below +interface OnlyForUseInConstructor { +}; + +[Constructor, + Constructor(DOMString str), + Constructor(unsigned long num, boolean? boolArg), + Constructor(TestInterface? iface), + Constructor(long arg1, IndirectlyImplementedInterface iface), + Constructor(Date arg1), + Constructor(ArrayBuffer arrayBuf), + Constructor(Uint8Array typedArr), + // Constructor(long arg1, long arg2, (TestInterface or OnlyForUseInConstructor) arg3), + NamedConstructor=Test, + NamedConstructor=Test(DOMString str), + NamedConstructor=Test2(DictForConstructor dict, any any1, object obj1, + object? obj2, sequence<Dict> seq, optional any any2, + optional object obj3, optional object? obj4), + NamedConstructor=Test3((long or MozMap<any>) arg1) + ] +interface TestInterface { + // Integer types + // XXXbz add tests for throwing versions of all the integer stuff + readonly attribute byte readonlyByte; + attribute byte writableByte; + void passByte(byte arg); + byte receiveByte(); + void passOptionalByte(optional byte arg); + void passOptionalByteBeforeRequired(optional byte arg1, byte arg2); + void passOptionalByteWithDefault(optional byte arg = 0); + void passOptionalByteWithDefaultBeforeRequired(optional byte arg1 = 0, byte arg2); + void passNullableByte(byte? arg); + void passOptionalNullableByte(optional byte? arg); + void passVariadicByte(byte... arg); + [StoreInSlot, Pure] + readonly attribute byte cachedByte; + [StoreInSlot, Constant] + readonly attribute byte cachedConstantByte; + [StoreInSlot, Pure] + attribute byte cachedWritableByte; + [Affects=Nothing] + attribute byte sideEffectFreeByte; + [Affects=Nothing, DependsOn=DOMState] + attribute byte domDependentByte; + [Affects=Nothing, DependsOn=Nothing] + readonly attribute byte constantByte; + [DependsOn=DeviceState, Affects=Nothing] + readonly attribute byte deviceStateDependentByte; + [Affects=Nothing] + byte returnByteSideEffectFree(); + [Affects=Nothing, DependsOn=DOMState] + byte returnDOMDependentByte(); + [Affects=Nothing, DependsOn=Nothing] + byte returnConstantByte(); + [DependsOn=DeviceState, Affects=Nothing] + byte returnDeviceStateDependentByte(); + + [UnsafeInPrerendering] + void unsafePrerenderMethod(); + [UnsafeInPrerendering] + attribute long unsafePrerenderWritable; + [UnsafeInPrerendering] + readonly attribute long unsafePrerenderReadonly; + readonly attribute short readonlyShort; + attribute short writableShort; + void passShort(short arg); + short receiveShort(); + void passOptionalShort(optional short arg); + void passOptionalShortWithDefault(optional short arg = 5); + + readonly attribute long readonlyLong; + attribute long writableLong; + void passLong(long arg); + long receiveLong(); + void passOptionalLong(optional long arg); + void passOptionalLongWithDefault(optional long arg = 7); + + readonly attribute long long readonlyLongLong; + attribute long long writableLongLong; + void passLongLong(long long arg); + long long receiveLongLong(); + void passOptionalLongLong(optional long long arg); + void passOptionalLongLongWithDefault(optional long long arg = -12); + + readonly attribute octet readonlyOctet; + attribute octet writableOctet; + void passOctet(octet arg); + octet receiveOctet(); + void passOptionalOctet(optional octet arg); + void passOptionalOctetWithDefault(optional octet arg = 19); + + readonly attribute unsigned short readonlyUnsignedShort; + attribute unsigned short writableUnsignedShort; + void passUnsignedShort(unsigned short arg); + unsigned short receiveUnsignedShort(); + void passOptionalUnsignedShort(optional unsigned short arg); + void passOptionalUnsignedShortWithDefault(optional unsigned short arg = 2); + + readonly attribute unsigned long readonlyUnsignedLong; + attribute unsigned long writableUnsignedLong; + void passUnsignedLong(unsigned long arg); + unsigned long receiveUnsignedLong(); + void passOptionalUnsignedLong(optional unsigned long arg); + void passOptionalUnsignedLongWithDefault(optional unsigned long arg = 6); + + readonly attribute unsigned long long readonlyUnsignedLongLong; + attribute unsigned long long writableUnsignedLongLong; + void passUnsignedLongLong(unsigned long long arg); + unsigned long long receiveUnsignedLongLong(); + void passOptionalUnsignedLongLong(optional unsigned long long arg); + void passOptionalUnsignedLongLongWithDefault(optional unsigned long long arg = 17); + + attribute float writableFloat; + attribute unrestricted float writableUnrestrictedFloat; + attribute float? writableNullableFloat; + attribute unrestricted float? writableNullableUnrestrictedFloat; + attribute double writableDouble; + attribute unrestricted double writableUnrestrictedDouble; + attribute double? writableNullableDouble; + attribute unrestricted double? writableNullableUnrestrictedDouble; + void passFloat(float arg1, unrestricted float arg2, + float? arg3, unrestricted float? arg4, + double arg5, unrestricted double arg6, + double? arg7, unrestricted double? arg8, + sequence<float> arg9, sequence<unrestricted float> arg10, + sequence<float?> arg11, sequence<unrestricted float?> arg12, + sequence<double> arg13, sequence<unrestricted double> arg14, + sequence<double?> arg15, sequence<unrestricted double?> arg16); + [LenientFloat] + void passLenientFloat(float arg1, unrestricted float arg2, + float? arg3, unrestricted float? arg4, + double arg5, unrestricted double arg6, + double? arg7, unrestricted double? arg8, + sequence<float> arg9, + sequence<unrestricted float> arg10, + sequence<float?> arg11, + sequence<unrestricted float?> arg12, + sequence<double> arg13, + sequence<unrestricted double> arg14, + sequence<double?> arg15, + sequence<unrestricted double?> arg16); + [LenientFloat] + attribute float lenientFloatAttr; + [LenientFloat] + attribute double lenientDoubleAttr; + + void passUnrestricted(optional unrestricted float arg1 = 0, + optional unrestricted float arg2 = Infinity, + optional unrestricted float arg3 = -Infinity, + optional unrestricted float arg4 = NaN, + optional unrestricted double arg5 = 0, + optional unrestricted double arg6 = Infinity, + optional unrestricted double arg7 = -Infinity, + optional unrestricted double arg8 = NaN); + + // Castable interface types + // XXXbz add tests for throwing versions of all the castable interface stuff + TestInterface receiveSelf(); + TestInterface? receiveNullableSelf(); + TestInterface receiveWeakSelf(); + TestInterface? receiveWeakNullableSelf(); + void passSelf(TestInterface arg); + void passNullableSelf(TestInterface? arg); + attribute TestInterface nonNullSelf; + attribute TestInterface? nullableSelf; + [Cached, Pure] + readonly attribute TestInterface cachedSelf; + // Optional arguments + void passOptionalSelf(optional TestInterface? arg); + void passOptionalNonNullSelf(optional TestInterface arg); + void passOptionalSelfWithDefault(optional TestInterface? arg = null); + + // Non-wrapper-cache interface types + [NewObject] + TestNonWrapperCacheInterface receiveNonWrapperCacheInterface(); + [NewObject] + TestNonWrapperCacheInterface? receiveNullableNonWrapperCacheInterface(); + [NewObject] + sequence<TestNonWrapperCacheInterface> receiveNonWrapperCacheInterfaceSequence(); + [NewObject] + sequence<TestNonWrapperCacheInterface?> receiveNullableNonWrapperCacheInterfaceSequence(); + [NewObject] + sequence<TestNonWrapperCacheInterface>? receiveNonWrapperCacheInterfaceNullableSequence(); + [NewObject] + sequence<TestNonWrapperCacheInterface?>? receiveNullableNonWrapperCacheInterfaceNullableSequence(); + + // Non-castable interface types + IndirectlyImplementedInterface receiveOther(); + IndirectlyImplementedInterface? receiveNullableOther(); + IndirectlyImplementedInterface receiveWeakOther(); + IndirectlyImplementedInterface? receiveWeakNullableOther(); + void passOther(IndirectlyImplementedInterface arg); + void passNullableOther(IndirectlyImplementedInterface? arg); + attribute IndirectlyImplementedInterface nonNullOther; + attribute IndirectlyImplementedInterface? nullableOther; + // Optional arguments + void passOptionalOther(optional IndirectlyImplementedInterface? arg); + void passOptionalNonNullOther(optional IndirectlyImplementedInterface arg); + void passOptionalOtherWithDefault(optional IndirectlyImplementedInterface? arg = null); + + // External interface types + TestExternalInterface receiveExternal(); + TestExternalInterface? receiveNullableExternal(); + TestExternalInterface receiveWeakExternal(); + TestExternalInterface? receiveWeakNullableExternal(); + void passExternal(TestExternalInterface arg); + void passNullableExternal(TestExternalInterface? arg); + attribute TestExternalInterface nonNullExternal; + attribute TestExternalInterface? nullableExternal; + // Optional arguments + void passOptionalExternal(optional TestExternalInterface? arg); + void passOptionalNonNullExternal(optional TestExternalInterface arg); + void passOptionalExternalWithDefault(optional TestExternalInterface? arg = null); + + // Callback interface types + TestCallbackInterface receiveCallbackInterface(); + TestCallbackInterface? receiveNullableCallbackInterface(); + TestCallbackInterface receiveWeakCallbackInterface(); + TestCallbackInterface? receiveWeakNullableCallbackInterface(); + void passCallbackInterface(TestCallbackInterface arg); + void passNullableCallbackInterface(TestCallbackInterface? arg); + attribute TestCallbackInterface nonNullCallbackInterface; + attribute TestCallbackInterface? nullableCallbackInterface; + // Optional arguments + void passOptionalCallbackInterface(optional TestCallbackInterface? arg); + void passOptionalNonNullCallbackInterface(optional TestCallbackInterface arg); + void passOptionalCallbackInterfaceWithDefault(optional TestCallbackInterface? arg = null); + + // Miscellaneous interface tests + IndirectlyImplementedInterface receiveConsequentialInterface(); + void passConsequentialInterface(IndirectlyImplementedInterface arg); + + // Sequence types + [Cached, Pure] + readonly attribute sequence<long> readonlySequence; + [Cached, Pure] + readonly attribute sequence<Dict> readonlySequenceOfDictionaries; + [Cached, Pure] + readonly attribute sequence<Dict>? readonlyNullableSequenceOfDictionaries; + [Cached, Pure, Frozen] + readonly attribute sequence<Dict> readonlyFrozenSequence; + [Cached, Pure, Frozen] + readonly attribute sequence<Dict>? readonlyFrozenNullableSequence; + sequence<long> receiveSequence(); + sequence<long>? receiveNullableSequence(); + sequence<long?> receiveSequenceOfNullableInts(); + sequence<long?>? receiveNullableSequenceOfNullableInts(); + void passSequence(sequence<long> arg); + void passNullableSequence(sequence<long>? arg); + void passSequenceOfNullableInts(sequence<long?> arg); + void passOptionalSequenceOfNullableInts(optional sequence<long?> arg); + void passOptionalNullableSequenceOfNullableInts(optional sequence<long?>? arg); + sequence<TestInterface> receiveCastableObjectSequence(); + sequence<TestCallbackInterface> receiveCallbackObjectSequence(); + sequence<TestInterface?> receiveNullableCastableObjectSequence(); + sequence<TestCallbackInterface?> receiveNullableCallbackObjectSequence(); + sequence<TestInterface>? receiveCastableObjectNullableSequence(); + sequence<TestInterface?>? receiveNullableCastableObjectNullableSequence(); + sequence<TestInterface> receiveWeakCastableObjectSequence(); + sequence<TestInterface?> receiveWeakNullableCastableObjectSequence(); + sequence<TestInterface>? receiveWeakCastableObjectNullableSequence(); + sequence<TestInterface?>? receiveWeakNullableCastableObjectNullableSequence(); + void passCastableObjectSequence(sequence<TestInterface> arg); + void passNullableCastableObjectSequence(sequence<TestInterface?> arg); + void passCastableObjectNullableSequence(sequence<TestInterface>? arg); + void passNullableCastableObjectNullableSequence(sequence<TestInterface?>? arg); + void passOptionalSequence(optional sequence<long> arg); + void passOptionalSequenceWithDefaultValue(optional sequence<long> arg = []); + void passOptionalNullableSequence(optional sequence<long>? arg); + void passOptionalNullableSequenceWithDefaultValue(optional sequence<long>? arg = null); + void passOptionalNullableSequenceWithDefaultValue2(optional sequence<long>? arg = []); + void passOptionalObjectSequence(optional sequence<TestInterface> arg); + void passExternalInterfaceSequence(sequence<TestExternalInterface> arg); + void passNullableExternalInterfaceSequence(sequence<TestExternalInterface?> arg); + + sequence<DOMString> receiveStringSequence(); + void passStringSequence(sequence<DOMString> arg); + + sequence<ByteString> receiveByteStringSequence(); + void passByteStringSequence(sequence<ByteString> arg); + + sequence<any> receiveAnySequence(); + sequence<any>? receiveNullableAnySequence(); + sequence<sequence<any>> receiveAnySequenceSequence(); + + sequence<object> receiveObjectSequence(); + sequence<object?> receiveNullableObjectSequence(); + + void passSequenceOfSequences(sequence<sequence<long>> arg); + void passSequenceOfSequencesOfSequences(sequence<sequence<sequence<long>>> arg); + sequence<sequence<long>> receiveSequenceOfSequences(); + sequence<sequence<sequence<long>>> receiveSequenceOfSequencesOfSequences(); + + // MozMap types + void passMozMap(MozMap<long> arg); + void passNullableMozMap(MozMap<long>? arg); + void passMozMapOfNullableInts(MozMap<long?> arg); + void passOptionalMozMapOfNullableInts(optional MozMap<long?> arg); + void passOptionalNullableMozMapOfNullableInts(optional MozMap<long?>? arg); + void passCastableObjectMozMap(MozMap<TestInterface> arg); + void passNullableCastableObjectMozMap(MozMap<TestInterface?> arg); + void passCastableObjectNullableMozMap(MozMap<TestInterface>? arg); + void passNullableCastableObjectNullableMozMap(MozMap<TestInterface?>? arg); + void passOptionalMozMap(optional MozMap<long> arg); + void passOptionalNullableMozMap(optional MozMap<long>? arg); + void passOptionalNullableMozMapWithDefaultValue(optional MozMap<long>? arg = null); + void passOptionalObjectMozMap(optional MozMap<TestInterface> arg); + void passExternalInterfaceMozMap(MozMap<TestExternalInterface> arg); + void passNullableExternalInterfaceMozMap(MozMap<TestExternalInterface?> arg); + void passStringMozMap(MozMap<DOMString> arg); + void passByteStringMozMap(MozMap<ByteString> arg); + void passMozMapOfMozMaps(MozMap<MozMap<long>> arg); + MozMap<long> receiveMozMap(); + MozMap<long>? receiveNullableMozMap(); + MozMap<long?> receiveMozMapOfNullableInts(); + MozMap<long?>? receiveNullableMozMapOfNullableInts(); + MozMap<MozMap<long>> receiveMozMapOfMozMaps(); + MozMap<any> receiveAnyMozMap(); + + // Typed array types + void passArrayBuffer(ArrayBuffer arg); + void passNullableArrayBuffer(ArrayBuffer? arg); + void passOptionalArrayBuffer(optional ArrayBuffer arg); + void passOptionalNullableArrayBuffer(optional ArrayBuffer? arg); + void passOptionalNullableArrayBufferWithDefaultValue(optional ArrayBuffer? arg= null); + void passArrayBufferView(ArrayBufferView arg); + void passInt8Array(Int8Array arg); + void passInt16Array(Int16Array arg); + void passInt32Array(Int32Array arg); + void passUint8Array(Uint8Array arg); + void passUint16Array(Uint16Array arg); + void passUint32Array(Uint32Array arg); + void passUint8ClampedArray(Uint8ClampedArray arg); + void passFloat32Array(Float32Array arg); + void passFloat64Array(Float64Array arg); + void passSequenceOfArrayBuffers(sequence<ArrayBuffer> arg); + void passSequenceOfNullableArrayBuffers(sequence<ArrayBuffer?> arg); + void passMozMapOfArrayBuffers(MozMap<ArrayBuffer> arg); + void passMozMapOfNullableArrayBuffers(MozMap<ArrayBuffer?> arg); + void passVariadicTypedArray(Float32Array... arg); + void passVariadicNullableTypedArray(Float32Array?... arg); + Uint8Array receiveUint8Array(); + attribute Uint8Array uint8ArrayAttr; + + // DOMString types + void passString(DOMString arg); + void passNullableString(DOMString? arg); + void passOptionalString(optional DOMString arg); + void passOptionalStringWithDefaultValue(optional DOMString arg = "abc"); + void passOptionalNullableString(optional DOMString? arg); + void passOptionalNullableStringWithDefaultValue(optional DOMString? arg = null); + void passVariadicString(DOMString... arg); + DOMString receiveString(); + + // ByteString types + void passByteString(ByteString arg); + void passNullableByteString(ByteString? arg); + void passOptionalByteString(optional ByteString arg); + void passOptionalByteStringWithDefaultValue(optional ByteString arg = "abc"); + void passOptionalNullableByteString(optional ByteString? arg); + void passOptionalNullableByteStringWithDefaultValue(optional ByteString? arg = null); + void passVariadicByteString(ByteString... arg); + void passOptionalUnionByteString(optional (ByteString or long) arg); + void passOptionalUnionByteStringWithDefaultValue(optional (ByteString or long) arg = "abc"); + + // USVString types + void passUSVS(USVString arg); + void passNullableUSVS(USVString? arg); + void passOptionalUSVS(optional USVString arg); + void passOptionalUSVSWithDefaultValue(optional USVString arg = "abc"); + void passOptionalNullableUSVS(optional USVString? arg); + void passOptionalNullableUSVSWithDefaultValue(optional USVString? arg = null); + void passVariadicUSVS(USVString... arg); + USVString receiveUSVS(); + + // Enumerated types + void passEnum(TestEnum arg); + void passNullableEnum(TestEnum? arg); + void passOptionalEnum(optional TestEnum arg); + void passEnumWithDefault(optional TestEnum arg = "a"); + void passOptionalNullableEnum(optional TestEnum? arg); + void passOptionalNullableEnumWithDefaultValue(optional TestEnum? arg = null); + void passOptionalNullableEnumWithDefaultValue2(optional TestEnum? arg = "a"); + TestEnum receiveEnum(); + TestEnum? receiveNullableEnum(); + attribute TestEnum enumAttribute; + readonly attribute TestEnum readonlyEnumAttribute; + + // Callback types + void passCallback(TestCallback arg); + void passNullableCallback(TestCallback? arg); + void passOptionalCallback(optional TestCallback arg); + void passOptionalNullableCallback(optional TestCallback? arg); + void passOptionalNullableCallbackWithDefaultValue(optional TestCallback? arg = null); + TestCallback receiveCallback(); + TestCallback? receiveNullableCallback(); + void passNullableTreatAsNullCallback(TestTreatAsNullCallback? arg); + void passOptionalNullableTreatAsNullCallback(optional TestTreatAsNullCallback? arg); + void passOptionalNullableTreatAsNullCallbackWithDefaultValue(optional TestTreatAsNullCallback? arg = null); + attribute TestTreatAsNullCallback treatAsNullCallback; + attribute TestTreatAsNullCallback? nullableTreatAsNullCallback; + + // Force code generation of the various test callbacks we have. + void forceCallbackGeneration(TestIntegerReturn arg1, + TestNullableIntegerReturn arg2, + TestBooleanReturn arg3, + TestFloatReturn arg4, + TestStringReturn arg5, + TestEnumReturn arg6, + TestInterfaceReturn arg7, + TestNullableInterfaceReturn arg8, + TestExternalInterfaceReturn arg9, + TestNullableExternalInterfaceReturn arg10, + TestCallbackInterfaceReturn arg11, + TestNullableCallbackInterfaceReturn arg12, + TestCallbackReturn arg13, + TestNullableCallbackReturn arg14, + TestObjectReturn arg15, + TestNullableObjectReturn arg16, + TestTypedArrayReturn arg17, + TestNullableTypedArrayReturn arg18, + TestSequenceReturn arg19, + TestNullableSequenceReturn arg20, + TestIntegerArguments arg21, + TestInterfaceArguments arg22, + TestStringEnumArguments arg23, + TestObjectArguments arg24, + TestOptionalArguments arg25); + + // Any types + void passAny(any arg); + void passVariadicAny(any... arg); + void passOptionalAny(optional any arg); + void passAnyDefaultNull(optional any arg = null); + void passSequenceOfAny(sequence<any> arg); + void passNullableSequenceOfAny(sequence<any>? arg); + void passOptionalSequenceOfAny(optional sequence<any> arg); + void passOptionalNullableSequenceOfAny(optional sequence<any>? arg); + void passOptionalSequenceOfAnyWithDefaultValue(optional sequence<any>? arg = null); + void passSequenceOfSequenceOfAny(sequence<sequence<any>> arg); + void passSequenceOfNullableSequenceOfAny(sequence<sequence<any>?> arg); + void passNullableSequenceOfNullableSequenceOfAny(sequence<sequence<any>?>? arg); + void passOptionalNullableSequenceOfNullableSequenceOfAny(optional sequence<sequence<any>?>? arg); + void passMozMapOfAny(MozMap<any> arg); + void passNullableMozMapOfAny(MozMap<any>? arg); + void passOptionalMozMapOfAny(optional MozMap<any> arg); + void passOptionalNullableMozMapOfAny(optional MozMap<any>? arg); + void passOptionalMozMapOfAnyWithDefaultValue(optional MozMap<any>? arg = null); + void passMozMapOfMozMapOfAny(MozMap<MozMap<any>> arg); + void passMozMapOfNullableMozMapOfAny(MozMap<MozMap<any>?> arg); + void passNullableMozMapOfNullableMozMapOfAny(MozMap<MozMap<any>?>? arg); + void passOptionalNullableMozMapOfNullableMozMapOfAny(optional MozMap<MozMap<any>?>? arg); + void passOptionalNullableMozMapOfNullableSequenceOfAny(optional MozMap<sequence<any>?>? arg); + void passOptionalNullableSequenceOfNullableMozMapOfAny(optional sequence<MozMap<any>?>? arg); + any receiveAny(); + + // object types + void passObject(object arg); + void passVariadicObject(object... arg); + void passNullableObject(object? arg); + void passVariadicNullableObject(object... arg); + void passOptionalObject(optional object arg); + void passOptionalNullableObject(optional object? arg); + void passOptionalNullableObjectWithDefaultValue(optional object? arg = null); + void passSequenceOfObject(sequence<object> arg); + void passSequenceOfNullableObject(sequence<object?> arg); + void passNullableSequenceOfObject(sequence<object>? arg); + void passOptionalNullableSequenceOfNullableSequenceOfObject(optional sequence<sequence<object>?>? arg); + void passOptionalNullableSequenceOfNullableSequenceOfNullableObject(optional sequence<sequence<object?>?>? arg); + void passMozMapOfObject(MozMap<object> arg); + object receiveObject(); + object? receiveNullableObject(); + + // Union types + void passUnion((object or long) arg); + // Some union tests are debug-only to avoid creating all those + // unused union types in opt builds. +#ifdef DEBUG + void passUnion2((long or boolean) arg); + void passUnion3((object or long or boolean) arg); + void passUnion4((Node or long or boolean) arg); + void passUnion5((object or boolean) arg); + void passUnion6((object or DOMString) arg); + void passUnion7((object or DOMString or long) arg); + void passUnion8((object or DOMString or boolean) arg); + void passUnion9((object or DOMString or long or boolean) arg); + void passUnion10(optional (EventInit or long) arg); + void passUnion11(optional (CustomEventInit or long) arg); + void passUnion12(optional (EventInit or long) arg = 5); + void passUnion13(optional (object or long?) arg = null); + void passUnion14(optional (object or long?) arg = 5); + void passUnion15((sequence<long> or long) arg); + void passUnion16(optional (sequence<long> or long) arg); + void passUnion17(optional (sequence<long>? or long) arg = 5); + void passUnion18((sequence<object> or long) arg); + void passUnion19(optional (sequence<object> or long) arg); + void passUnion20(optional (sequence<object> or long) arg = []); + void passUnion21((MozMap<long> or long) arg); + void passUnion22((MozMap<object> or long) arg); + void passUnion23((sequence<ImageData> or long) arg); + void passUnion24((sequence<ImageData?> or long) arg); + void passUnion25((sequence<sequence<ImageData>> or long) arg); + void passUnion26((sequence<sequence<ImageData?>> or long) arg); + void passUnion27(optional (sequence<DOMString> or EventInit) arg); + void passUnion28(optional (EventInit or sequence<DOMString>) arg); + void passUnionWithCallback((EventHandler or long) arg); + void passUnionWithByteString((ByteString or long) arg); + void passUnionWithMozMap((MozMap<DOMString> or DOMString) arg); + void passUnionWithMozMapAndSequence((MozMap<DOMString> or sequence<DOMString>) arg); + void passUnionWithSequenceAndMozMap((sequence<DOMString> or MozMap<DOMString>) arg); + void passUnionWithUSVS((USVString or long) arg); +#endif + void passUnionWithNullable((object? or long) arg); + void passNullableUnion((object or long)? arg); + void passOptionalUnion(optional (object or long) arg); + void passOptionalNullableUnion(optional (object or long)? arg); + void passOptionalNullableUnionWithDefaultValue(optional (object or long)? arg = null); + //void passUnionWithInterfaces((TestInterface or TestExternalInterface) arg); + //void passUnionWithInterfacesAndNullable((TestInterface? or TestExternalInterface) arg); + //void passUnionWithSequence((sequence<object> or long) arg); + void passUnionWithArrayBuffer((ArrayBuffer or long) arg); + void passUnionWithString((DOMString or object) arg); + // Using an enum in a union. Note that we use some enum not declared in our + // binding file, because UnionTypes.h will need to include the binding header + // for this enum. Pick an enum from an interface that won't drag in too much + // stuff. + void passUnionWithEnum((SupportedType or object) arg); + + // Trying to use a callback in a union won't include the test + // headers, unfortunately, so won't compile. + //void passUnionWithCallback((TestCallback or long) arg); + void passUnionWithObject((object or long) arg); + //void passUnionWithDict((Dict or long) arg); + + void passUnionWithDefaultValue1(optional (double or DOMString) arg = ""); + void passUnionWithDefaultValue2(optional (double or DOMString) arg = 1); + void passUnionWithDefaultValue3(optional (double or DOMString) arg = 1.5); + void passUnionWithDefaultValue4(optional (float or DOMString) arg = ""); + void passUnionWithDefaultValue5(optional (float or DOMString) arg = 1); + void passUnionWithDefaultValue6(optional (float or DOMString) arg = 1.5); + void passUnionWithDefaultValue7(optional (unrestricted double or DOMString) arg = ""); + void passUnionWithDefaultValue8(optional (unrestricted double or DOMString) arg = 1); + void passUnionWithDefaultValue9(optional (unrestricted double or DOMString) arg = 1.5); + void passUnionWithDefaultValue10(optional (unrestricted double or DOMString) arg = Infinity); + void passUnionWithDefaultValue11(optional (unrestricted float or DOMString) arg = ""); + void passUnionWithDefaultValue12(optional (unrestricted float or DOMString) arg = 1); + void passUnionWithDefaultValue13(optional (unrestricted float or DOMString) arg = Infinity); + void passUnionWithDefaultValue14(optional (double or ByteString) arg = ""); + void passUnionWithDefaultValue15(optional (double or ByteString) arg = 1); + void passUnionWithDefaultValue16(optional (double or ByteString) arg = 1.5); + void passUnionWithDefaultValue17(optional (double or SupportedType) arg = "text/html"); + void passUnionWithDefaultValue18(optional (double or SupportedType) arg = 1); + void passUnionWithDefaultValue19(optional (double or SupportedType) arg = 1.5); + + void passNullableUnionWithDefaultValue1(optional (double or DOMString)? arg = ""); + void passNullableUnionWithDefaultValue2(optional (double or DOMString)? arg = 1); + void passNullableUnionWithDefaultValue3(optional (double or DOMString)? arg = null); + void passNullableUnionWithDefaultValue4(optional (float or DOMString)? arg = ""); + void passNullableUnionWithDefaultValue5(optional (float or DOMString)? arg = 1); + void passNullableUnionWithDefaultValue6(optional (float or DOMString)? arg = null); + void passNullableUnionWithDefaultValue7(optional (unrestricted double or DOMString)? arg = ""); + void passNullableUnionWithDefaultValue8(optional (unrestricted double or DOMString)? arg = 1); + void passNullableUnionWithDefaultValue9(optional (unrestricted double or DOMString)? arg = null); + void passNullableUnionWithDefaultValue10(optional (unrestricted float or DOMString)? arg = ""); + void passNullableUnionWithDefaultValue11(optional (unrestricted float or DOMString)? arg = 1); + void passNullableUnionWithDefaultValue12(optional (unrestricted float or DOMString)? arg = null); + void passNullableUnionWithDefaultValue13(optional (double or ByteString)? arg = ""); + void passNullableUnionWithDefaultValue14(optional (double or ByteString)? arg = 1); + void passNullableUnionWithDefaultValue15(optional (double or ByteString)? arg = 1.5); + void passNullableUnionWithDefaultValue16(optional (double or ByteString)? arg = null); + void passNullableUnionWithDefaultValue17(optional (double or SupportedType)? arg = "text/html"); + void passNullableUnionWithDefaultValue18(optional (double or SupportedType)? arg = 1); + void passNullableUnionWithDefaultValue19(optional (double or SupportedType)? arg = 1.5); + void passNullableUnionWithDefaultValue20(optional (double or SupportedType)? arg = null); + + void passSequenceOfUnions(sequence<(CanvasPattern or CanvasGradient)> arg); + void passSequenceOfUnions2(sequence<(object or long)> arg); + void passVariadicUnion((CanvasPattern or CanvasGradient)... arg); + + void passSequenceOfNullableUnions(sequence<(CanvasPattern or CanvasGradient)?> arg); + void passVariadicNullableUnion((CanvasPattern or CanvasGradient)?... arg); + void passMozMapOfUnions(MozMap<(CanvasPattern or CanvasGradient)> arg); + // XXXbz no move constructor on some unions + // void passMozMapOfUnions2(MozMap<(object or long)> arg); + + (CanvasPattern or CanvasGradient) receiveUnion(); + (object or long) receiveUnion2(); + (CanvasPattern? or CanvasGradient) receiveUnionContainingNull(); + (CanvasPattern or CanvasGradient)? receiveNullableUnion(); + (object or long)? receiveNullableUnion2(); + + attribute (CanvasPattern or CanvasGradient) writableUnion; + attribute (CanvasPattern? or CanvasGradient) writableUnionContainingNull; + attribute (CanvasPattern or CanvasGradient)? writableNullableUnion; + + // Date types + void passDate(Date arg); + void passNullableDate(Date? arg); + void passOptionalDate(optional Date arg); + void passOptionalNullableDate(optional Date? arg); + void passOptionalNullableDateWithDefaultValue(optional Date? arg = null); + void passDateSequence(sequence<Date> arg); + void passNullableDateSequence(sequence<Date?> arg); + void passDateMozMap(MozMap<Date> arg); + Date receiveDate(); + Date? receiveNullableDate(); + + // Promise types + void passPromise(Promise<any> arg); + void passNullablePromise(Promise<any>? arg); + void passOptionalPromise(optional Promise<any> arg); + void passOptionalNullablePromise(optional Promise<any>? arg); + void passOptionalNullablePromiseWithDefaultValue(optional Promise<any>? arg = null); + void passPromiseSequence(sequence<Promise<any>> arg); + void passNullablePromiseSequence(sequence<Promise<any>?> arg); + Promise<any> receivePromise(); + Promise<any> receiveAddrefedPromise(); + + // binaryNames tests + void methodRenamedFrom(); + [BinaryName="otherMethodRenamedTo"] + void otherMethodRenamedFrom(); + void methodRenamedFrom(byte argument); + readonly attribute byte attributeGetterRenamedFrom; + attribute byte attributeRenamedFrom; + [BinaryName="otherAttributeRenamedTo"] + attribute byte otherAttributeRenamedFrom; + + void passDictionary(optional Dict x); + void passDictionary2(Dict x); + [Cached, Pure] + readonly attribute Dict readonlyDictionary; + [Cached, Pure] + readonly attribute Dict? readonlyNullableDictionary; + [Cached, Pure] + attribute Dict writableDictionary; + [Cached, Pure, Frozen] + readonly attribute Dict readonlyFrozenDictionary; + [Cached, Pure, Frozen] + readonly attribute Dict? readonlyFrozenNullableDictionary; + [Cached, Pure, Frozen] + attribute Dict writableFrozenDictionary; + Dict receiveDictionary(); + Dict? receiveNullableDictionary(); + void passOtherDictionary(optional GrandparentDict x); + void passSequenceOfDictionaries(sequence<Dict> x); + void passMozMapOfDictionaries(MozMap<GrandparentDict> x); + // No support for nullable dictionaries inside a sequence (nor should there be) + // void passSequenceOfNullableDictionaries(sequence<Dict?> x); + void passDictionaryOrLong(optional Dict x); + void passDictionaryOrLong(long x); + + void passDictContainingDict(optional DictContainingDict arg); + void passDictContainingSequence(optional DictContainingSequence arg); + DictContainingSequence receiveDictContainingSequence(); + void passVariadicDictionary(Dict... arg); + + // EnforceRange/Clamp tests + void dontEnforceRangeOrClamp(byte arg); + void doEnforceRange([EnforceRange] byte arg); + void doClamp([Clamp] byte arg); + [EnforceRange] attribute byte enforcedByte; + [Clamp] attribute byte clampedByte; + + // Typedefs + const myLong myLongConstant = 5; + void exerciseTypedefInterfaces1(AnotherNameForTestInterface arg); + AnotherNameForTestInterface exerciseTypedefInterfaces2(NullableTestInterface arg); + void exerciseTypedefInterfaces3(YetAnotherNameForTestInterface arg); + + // Deprecated methods and attributes + [Deprecated="GetAttributeNode"] + attribute byte deprecatedAttribute; + [Deprecated="GetAttributeNode"] + byte deprecatedMethod(); + [Deprecated="GetAttributeNode"] + byte deprecatedMethodWithContext(any arg); + + // Static methods and attributes + static attribute boolean staticAttribute; + static void staticMethod(boolean arg); + static void staticMethodWithContext(any arg); + + // Testing static method with a reserved C++ keyword as the name + static void assert(boolean arg); + + // Deprecated static methods and attributes + [Deprecated="GetAttributeNode"] + static attribute byte staticDeprecatedAttribute; + [Deprecated="GetAttributeNode"] + static void staticDeprecatedMethod(); + [Deprecated="GetAttributeNode"] + static void staticDeprecatedMethodWithContext(any arg); + + // Overload resolution tests + //void overload1(DOMString... strs); + boolean overload1(TestInterface arg); + TestInterface overload1(DOMString strs, TestInterface arg); + void overload2(TestInterface arg); + void overload2(optional Dict arg); + void overload2(boolean arg); + void overload2(DOMString arg); + void overload2(Date arg); + void overload3(TestInterface arg); + void overload3(TestCallback arg); + void overload3(boolean arg); + void overload4(TestInterface arg); + void overload4(TestCallbackInterface arg); + void overload4(DOMString arg); + void overload5(long arg); + void overload5(TestEnum arg); + void overload6(long arg); + void overload6(boolean arg); + void overload7(long arg); + void overload7(boolean arg); + void overload7(ByteString arg); + void overload8(long arg); + void overload8(TestInterface arg); + void overload9(long? arg); + void overload9(DOMString arg); + void overload10(long? arg); + void overload10(object arg); + void overload11(long arg); + void overload11(DOMString? arg); + void overload12(long arg); + void overload12(boolean? arg); + void overload13(long? arg); + void overload13(boolean arg); + void overload14(optional long arg); + void overload14(TestInterface arg); + void overload15(long arg); + void overload15(optional TestInterface arg); + void overload16(long arg); + void overload16(optional TestInterface? arg); + void overload17(sequence<long> arg); + void overload17(MozMap<long> arg); + void overload18(MozMap<DOMString> arg); + void overload18(sequence<DOMString> arg); + void overload19(sequence<long> arg); + void overload19(optional Dict arg); + void overload20(optional Dict arg); + void overload20(sequence<long> arg); + + // Variadic handling + void passVariadicThirdArg(DOMString arg1, long arg2, TestInterface... arg3); + + // Conditionally exposed methods/attributes + [Pref="abc.def"] + readonly attribute boolean prefable1; + [Pref="abc.def"] + readonly attribute boolean prefable2; + [Pref="ghi.jkl"] + readonly attribute boolean prefable3; + [Pref="ghi.jkl"] + readonly attribute boolean prefable4; + [Pref="abc.def"] + readonly attribute boolean prefable5; + [Pref="abc.def", Func="nsGenericHTMLElement::TouchEventsEnabled"] + readonly attribute boolean prefable6; + [Pref="abc.def", Func="nsGenericHTMLElement::TouchEventsEnabled"] + readonly attribute boolean prefable7; + [Pref="ghi.jkl", Func="nsGenericHTMLElement::TouchEventsEnabled"] + readonly attribute boolean prefable8; + [Pref="abc.def", Func="nsGenericHTMLElement::TouchEventsEnabled"] + readonly attribute boolean prefable9; + [Pref="abc.def"] + void prefable10(); + [Pref="abc.def", Func="nsGenericHTMLElement::TouchEventsEnabled"] + void prefable11(); + [Pref="abc.def", Func="TestFuncControlledMember"] + readonly attribute boolean prefable12; + [Pref="abc.def", Func="nsGenericHTMLElement::TouchEventsEnabled"] + void prefable13(); + [Pref="abc.def", Func="TestFuncControlledMember"] + readonly attribute boolean prefable14; + [Func="TestFuncControlledMember"] + readonly attribute boolean prefable15; + [Func="TestFuncControlledMember"] + readonly attribute boolean prefable16; + [Pref="abc.def", Func="TestFuncControlledMember"] + void prefable17(); + [Func="TestFuncControlledMember"] + void prefable18(); + [Func="TestFuncControlledMember"] + void prefable19(); + [Pref="abc.def", Func="TestFuncControlledMember", ChromeOnly] + void prefable20(); + + // Conditionally exposed methods/attributes involving [SecureContext] + [SecureContext] + readonly attribute boolean conditionalOnSecureContext1; + [SecureContext, Pref="abc.def"] + readonly attribute boolean conditionalOnSecureContext2; + [SecureContext, Pref="abc.def", Func="nsGenericHTMLElement::TouchEventsEnabled"] + readonly attribute boolean conditionalOnSecureContext3; + [SecureContext, Pref="abc.def", Func="TestFuncControlledMember"] + readonly attribute boolean conditionalOnSecureContext4; + [SecureContext] + void conditionalOnSecureContext5(); + [SecureContext, Pref="abc.def"] + void conditionalOnSecureContext6(); + [SecureContext, Pref="abc.def", Func="nsGenericHTMLElement::TouchEventsEnabled"] + void conditionalOnSecureContext7(); + [SecureContext, Pref="abc.def", Func="TestFuncControlledMember"] + void conditionalOnSecureContext8(); + + // Miscellania + [LenientThis] attribute long attrWithLenientThis; + [Unforgeable] readonly attribute long unforgeableAttr; + [Unforgeable, ChromeOnly] readonly attribute long unforgeableAttr2; + [Unforgeable] long unforgeableMethod(); + [Unforgeable, ChromeOnly] long unforgeableMethod2(); + stringifier; + void passRenamedInterface(TestRenamedInterface arg); + [PutForwards=writableByte] readonly attribute TestInterface putForwardsAttr; + [PutForwards=writableByte, LenientThis] readonly attribute TestInterface putForwardsAttr2; + [PutForwards=writableByte, ChromeOnly] readonly attribute TestInterface putForwardsAttr3; + [Throws] void throwingMethod(); + [Throws] attribute boolean throwingAttr; + [GetterThrows] attribute boolean throwingGetterAttr; + [SetterThrows] attribute boolean throwingSetterAttr; + legacycaller short(unsigned long arg1, TestInterface arg2); + void passArgsWithDefaults(optional long arg1, + optional TestInterface? arg2 = null, + optional Dict arg3, optional double arg4 = 5.0, + optional float arg5); + + attribute any jsonifierShouldSkipThis; + attribute TestParentInterface jsonifierShouldSkipThis2; + attribute TestCallbackInterface jsonifierShouldSkipThis3; + jsonifier; + + attribute byte dashed-attribute; + void dashed-method(); + + // If you add things here, add them to TestExampleGen and TestJSImplGen as well +}; + +interface TestParentInterface { +}; + +interface TestChildInterface : TestParentInterface { +}; + +interface TestNonWrapperCacheInterface { +}; + +[NoInterfaceObject] +interface ImplementedInterfaceParent { + void implementedParentMethod(); + attribute boolean implementedParentProperty; + + const long implementedParentConstant = 8; +}; + +ImplementedInterfaceParent implements IndirectlyImplementedInterface; + +[NoInterfaceObject] +interface IndirectlyImplementedInterface { + void indirectlyImplementedMethod(); + attribute boolean indirectlyImplementedProperty; + + const long indirectlyImplementedConstant = 9; +}; + +[NoInterfaceObject] +interface ImplementedInterface : ImplementedInterfaceParent { + void implementedMethod(); + attribute boolean implementedProperty; + + const long implementedConstant = 5; +}; + +[NoInterfaceObject] +interface DiamondImplements { + readonly attribute long diamondImplementedProperty; +}; +[NoInterfaceObject] +interface DiamondBranch1A { +}; +[NoInterfaceObject] +interface DiamondBranch1B { +}; +[NoInterfaceObject] +interface DiamondBranch2A : DiamondImplements { +}; +[NoInterfaceObject] +interface DiamondBranch2B : DiamondImplements { +}; +TestInterface implements DiamondBranch1A; +TestInterface implements DiamondBranch1B; +TestInterface implements DiamondBranch2A; +TestInterface implements DiamondBranch2B; +DiamondBranch1A implements DiamondImplements; +DiamondBranch1B implements DiamondImplements; + +dictionary Dict : ParentDict { + TestEnum someEnum; + long x; + long a; + long b = 8; + long z = 9; + [EnforceRange] unsigned long enforcedUnsignedLong; + [Clamp] unsigned long clampedUnsignedLong; + DOMString str; + DOMString empty = ""; + TestEnum otherEnum = "b"; + DOMString otherStr = "def"; + DOMString? yetAnotherStr = null; + DOMString template; + ByteString byteStr; + ByteString emptyByteStr = ""; + ByteString otherByteStr = "def"; + object someObj; + boolean prototype; + object? anotherObj = null; + TestCallback? someCallback = null; + any someAny; + any anotherAny = null; + + unrestricted float urFloat = 0; + unrestricted float urFloat2 = 1.1; + unrestricted float urFloat3 = -1.1; + unrestricted float? urFloat4 = null; + unrestricted float infUrFloat = Infinity; + unrestricted float negativeInfUrFloat = -Infinity; + unrestricted float nanUrFloat = NaN; + + unrestricted double urDouble = 0; + unrestricted double urDouble2 = 1.1; + unrestricted double urDouble3 = -1.1; + unrestricted double? urDouble4 = null; + unrestricted double infUrDouble = Infinity; + unrestricted double negativeInfUrDouble = -Infinity; + unrestricted double nanUrDouble = NaN; + + (float or DOMString) floatOrString = "str"; + (float or DOMString)? nullableFloatOrString = "str"; + (object or long) objectOrLong; +#ifdef DEBUG + (EventInit or long) eventInitOrLong; + (EventInit or long)? nullableEventInitOrLong; + (HTMLElement or long)? nullableHTMLElementOrLong; + // CustomEventInit is useful to test because it needs rooting. + (CustomEventInit or long) eventInitOrLong2; + (CustomEventInit or long)? nullableEventInitOrLong2; + (EventInit or long) eventInitOrLongWithDefaultValue = null; + (CustomEventInit or long) eventInitOrLongWithDefaultValue2 = null; + (EventInit or long) eventInitOrLongWithDefaultValue3 = 5; + (CustomEventInit or long) eventInitOrLongWithDefaultValue4 = 5; + (EventInit or long)? nullableEventInitOrLongWithDefaultValue = null; + (CustomEventInit or long)? nullableEventInitOrLongWithDefaultValue2 = null; + (EventInit or long)? nullableEventInitOrLongWithDefaultValue3 = 5; + (CustomEventInit or long)? nullableEventInitOrLongWithDefaultValue4 = 5; + (sequence<object> or long) objectSequenceOrLong; + (sequence<object> or long) objectSequenceOrLongWithDefaultValue1 = 1; + (sequence<object> or long) objectSequenceOrLongWithDefaultValue2 = []; + (sequence<object> or long)? nullableObjectSequenceOrLong; + (sequence<object> or long)? nullableObjectSequenceOrLongWithDefaultValue1 = 1; + (sequence<object> or long)? nullableObjectSequenceOrLongWithDefaultValue2 = []; +#endif + + ArrayBuffer arrayBuffer; + ArrayBuffer? nullableArrayBuffer; + Uint8Array uint8Array; + Float64Array? float64Array = null; + + sequence<long> seq1; + sequence<long> seq2 = []; + sequence<long>? seq3; + sequence<long>? seq4 = null; + sequence<long>? seq5 = []; + + long dashed-name; + + required long requiredLong; + required object requiredObject; + + CustomEventInit customEventInit; + TestDictionaryTypedef dictionaryTypedef; + + Promise<void> promise; + sequence<Promise<void>> promiseSequence; +}; + +dictionary ParentDict : GrandparentDict { + long c = 5; + TestInterface someInterface; + TestInterface? someNullableInterface = null; + TestExternalInterface someExternalInterface; + any parentAny; +}; + +dictionary DictContainingDict { + Dict memberDict; +}; + +dictionary DictContainingSequence { + sequence<long> ourSequence; + sequence<TestInterface> ourSequence2; + sequence<any> ourSequence3; + sequence<object> ourSequence4; + sequence<object?> ourSequence5; + sequence<object>? ourSequence6; + sequence<object?>? ourSequence7; + sequence<object>? ourSequence8 = null; + sequence<object?>? ourSequence9 = null; + sequence<(float or DOMString)> ourSequence10; +}; + +dictionary DictForConstructor { + Dict dict; + DictContainingDict dict2; + sequence<Dict> seq1; + sequence<sequence<Dict>>? seq2; + sequence<sequence<Dict>?> seq3; + sequence<any> seq4; + sequence<any> seq5; + sequence<DictContainingSequence> seq6; + object obj1; + object? obj2; + any any1 = null; +}; + +dictionary DictWithConditionalMembers { + [ChromeOnly] + long chromeOnlyMember; + [Func="TestFuncControlledMember"] + long funcControlledMember; + [ChromeOnly, Func="nsGenericHTMLElement::TouchEventsEnabled"] + long chromeOnlyFuncControlledMember; +}; + +interface TestIndexedGetterInterface { + getter long item(unsigned long idx); + readonly attribute unsigned long length; + legacycaller void(); +}; + +interface TestNamedGetterInterface { + getter DOMString (DOMString name); +}; + +interface TestIndexedGetterAndSetterAndNamedGetterInterface { + getter DOMString (DOMString myName); + getter long (unsigned long index); + setter creator void (unsigned long index, long arg); +}; + +interface TestIndexedAndNamedGetterInterface { + getter long (unsigned long index); + getter DOMString namedItem(DOMString name); + readonly attribute unsigned long length; +}; + +interface TestIndexedSetterInterface { + setter creator void setItem(unsigned long idx, DOMString item); + getter DOMString (unsigned long idx); +}; + +interface TestNamedSetterInterface { + setter creator void (DOMString myName, TestIndexedSetterInterface item); + getter TestIndexedSetterInterface (DOMString name); +}; + +interface TestIndexedAndNamedSetterInterface { + setter creator void (unsigned long index, TestIndexedSetterInterface item); + getter TestIndexedSetterInterface (unsigned long index); + setter creator void setNamedItem(DOMString name, TestIndexedSetterInterface item); + getter TestIndexedSetterInterface (DOMString name); +}; + +interface TestIndexedAndNamedGetterAndSetterInterface : TestIndexedSetterInterface { + getter long item(unsigned long index); + getter DOMString namedItem(DOMString name); + setter creator void (unsigned long index, long item); + setter creator void (DOMString name, DOMString item); + stringifier DOMString (); + readonly attribute unsigned long length; +}; + +interface TestIndexedDeleterInterface { + deleter void delItem(unsigned long idx); + getter long (unsigned long index); +}; + +interface TestIndexedDeleterWithRetvalInterface { + deleter boolean delItem(unsigned long index); + getter long (unsigned long index); +}; + +interface TestNamedDeleterInterface { + deleter void (DOMString name); + getter long (DOMString name); +}; + +interface TestNamedDeleterWithRetvalInterface { + deleter boolean delNamedItem(DOMString name); + getter long (DOMString name); +}; + +interface TestIndexedAndNamedDeleterInterface { + deleter void (unsigned long index); + getter long (unsigned long index); + deleter void delNamedItem(DOMString name); + getter long (DOMString name); +}; + +interface TestCppKeywordNamedMethodsInterface { + boolean continue(); + boolean delete(); + long volatile(); +}; + +[Deprecated="GetAttributeNode", Constructor()] +interface TestDeprecatedInterface { + static void alsoDeprecated(); +}; + + +[Constructor(Promise<void> promise)] +interface TestInterfaceWithPromiseConstructorArg { +}; + +namespace TestNamespace { + readonly attribute boolean foo; + long bar(); +}; + +partial namespace TestNamespace { + void baz(); +}; + +[ClassString="RenamedNamespaceClassName"] +namespace TestRenamedNamespace { +}; + +[ProtoObjectHack] +namespace TestProtoObjectHackedNamespace { +}; + +[SecureContext] +interface TestSecureContextInterface { + static void alsoSecureContext(); +}; + +---tokens--- +'/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */' Comment.Multiline +'\n' Text + +'/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this file,\n * You can obtain one at http://mozilla.org/MPL/2.0/.\n */' Comment.Multiline +'\n\n' Text + +'typedef' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'myLong' Name.Class +';' Punctuation +'\n' Text + +'typedef' Keyword +' ' Text +'TestInterface' Name.Class +' ' Text +'AnotherNameForTestInterface' Name.Class +';' Punctuation +'\n' Text + +'typedef' Keyword +' ' Text +'TestInterface' Name.Class +'?' Punctuation +' ' Text +'NullableTestInterface' Name.Class +';' Punctuation +'\n' Text + +'typedef' Keyword +' ' Text +'CustomEventInit' Name.Class +' ' Text +'TestDictionaryTypedef' Name.Class +';' Punctuation +'\n\n' Text + +'interface' Keyword +' ' Text +'TestExternalInterface' Name.Class +';' Punctuation +'\n\n' Text + +'[' Punctuation +'Pref' Name.Decorator +'=' Punctuation +'"xyz"' Literal.String +']' Punctuation +'\n' Text + +'interface' Keyword +' ' Text +'TestRenamedInterface' Name.Class +' ' Text +'{' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'callback' Keyword +' ' Text +'interface' Keyword +' ' Text +'TestCallbackInterface' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'foo' Name.Variable +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'DOMString' Keyword.Type +' ' Text +'bar' Name.Variable +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'doSomething' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'long' Keyword.Type +' ' Text +'doSomethingElse' Name.Function +'(' Punctuation +'DOMString' Keyword.Type +' ' Text +'arg' Name.Variable +',' Punctuation +' ' Text +'TestInterface' Name.Class +' ' Text +'otherArg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'doSequenceLongArg' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'doSequenceStringArg' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'DOMString' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'doMozMapLongArg' Name.Function +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +' ' Text +'getSequenceOfLong' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestInterface' Name.Class +'>' Punctuation +' ' Text +'getSequenceOfInterfaces' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestInterface' Name.Class +'>' Punctuation +'?' Punctuation +' ' Text +'getNullableSequenceOfInterfaces' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestInterface' Name.Class +'?' Punctuation +'>' Punctuation +' ' Text +'getSequenceOfNullableInterfaces' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestInterface' Name.Class +'?' Punctuation +'>' Punctuation +'?' Punctuation +' ' Text +'getNullableSequenceOfNullableInterfaces' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestCallbackInterface' Name.Class +'>' Punctuation +' ' Text +'getSequenceOfCallbackInterfaces' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestCallbackInterface' Name.Class +'>' Punctuation +'?' Punctuation +' ' Text +'getNullableSequenceOfCallbackInterfaces' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestCallbackInterface' Name.Class +'?' Punctuation +'>' Punctuation +' ' Text +'getSequenceOfNullableCallbackInterfaces' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestCallbackInterface' Name.Class +'?' Punctuation +'>' Punctuation +'?' Punctuation +' ' Text +'getNullableSequenceOfNullableCallbackInterfaces' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'MozMap' Name.Class +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +' ' Text +'getMozMapOfLong' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'Dict' Name.Class +'?' Punctuation +' ' Text +'getDictionary' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passArrayBuffer' Name.Function +'(' Punctuation +'ArrayBuffer' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableArrayBuffer' Name.Function +'(' Punctuation +'ArrayBuffer' Keyword.Type +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalArrayBuffer' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'ArrayBuffer' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableArrayBuffer' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'ArrayBuffer' Keyword.Type +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableArrayBufferWithDefaultValue' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'ArrayBuffer' Keyword.Type +'?' Punctuation +' ' Text +'arg' Name.Variable +'=' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passArrayBufferView' Name.Function +'(' Punctuation +'ArrayBufferView' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passInt8Array' Name.Function +'(' Punctuation +'Int8Array' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passInt16Array' Name.Function +'(' Punctuation +'Int16Array' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passInt32Array' Name.Function +'(' Punctuation +'Int32Array' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUint8Array' Name.Function +'(' Punctuation +'Uint8Array' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUint16Array' Name.Function +'(' Punctuation +'Uint16Array' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUint32Array' Name.Function +'(' Punctuation +'Uint32Array' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUint8ClampedArray' Name.Function +'(' Punctuation +'Uint8ClampedArray' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passFloat32Array' Name.Function +'(' Punctuation +'Float32Array' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passFloat64Array' Name.Function +'(' Punctuation +'Float64Array' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passSequenceOfArrayBuffers' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'ArrayBuffer' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passSequenceOfNullableArrayBuffers' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'ArrayBuffer' Keyword.Type +'?' Punctuation +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passVariadicTypedArray' Name.Function +'(' Punctuation +'Float32Array' Keyword.Type +'...' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passVariadicNullableTypedArray' Name.Function +'(' Punctuation +'Float32Array' Keyword.Type +'?' Punctuation +'...' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'Uint8Array' Keyword.Type +' ' Text +'receiveUint8Array' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'Uint8Array' Keyword.Type +' ' Text +'uint8ArrayAttr' Name.Variable +';' Punctuation +'\n ' Text +'Promise' Keyword.Type +'<' Punctuation +'void' Keyword.Type +'>' Punctuation +' ' Text +'receivePromise' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'callback' Keyword +' ' Text +'interface' Keyword +' ' Text +'TestSingleOperationCallbackInterface' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'TestInterface' Name.Class +' ' Text +'doSomething' Name.Function +'(' Punctuation +'short' Keyword.Type +' ' Text +'arg' Name.Variable +',' Punctuation +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'double' Keyword.Type +'>' Punctuation +' ' Text +'anotherArg' Name.Variable +')' Punctuation +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'enum' Keyword +' ' Text +'TestEnum' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'"1"' Literal.String +',' Punctuation +'\n ' Text +'"a"' Literal.String +',' Punctuation +'\n ' Text +'"b"' Literal.String +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'callback' Keyword +' ' Text +'TestCallback' Name.Class +' ' Text +'=' Punctuation +' ' Text +'void' Keyword.Type +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'[' Punctuation +'TreatNonCallableAsNull' Name.Decorator +']' Punctuation +' ' Text +'callback' Keyword +' ' Text +'TestTreatAsNullCallback' Name.Class +' ' Text +'=' Punctuation +' ' Text +'void' Keyword.Type +'(' Punctuation +')' Punctuation +';' Punctuation +'\n\n' Text + +'// Callback return value tests' Comment.Single +'\n' Text + +'callback' Keyword +' ' Text +'TestIntegerReturn' Name.Class +' ' Text +'=' Punctuation +' ' Text +'long' Keyword.Type +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'callback' Keyword +' ' Text +'TestNullableIntegerReturn' Name.Class +' ' Text +'=' Punctuation +' ' Text +'long' Keyword.Type +'?' Punctuation +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'callback' Keyword +' ' Text +'TestBooleanReturn' Name.Class +' ' Text +'=' Punctuation +' ' Text +'boolean' Keyword.Type +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'callback' Keyword +' ' Text +'TestFloatReturn' Name.Class +' ' Text +'=' Punctuation +' ' Text +'float' Keyword.Type +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'callback' Keyword +' ' Text +'TestStringReturn' Name.Class +' ' Text +'=' Punctuation +' ' Text +'DOMString' Keyword.Type +'(' Punctuation +'long' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n' Text + +'callback' Keyword +' ' Text +'TestEnumReturn' Name.Class +' ' Text +'=' Punctuation +' ' Text +'TestEnum' Name.Class +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'callback' Keyword +' ' Text +'TestInterfaceReturn' Name.Class +' ' Text +'=' Punctuation +' ' Text +'TestInterface' Name.Class +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'callback' Keyword +' ' Text +'TestNullableInterfaceReturn' Name.Class +' ' Text +'=' Punctuation +' ' Text +'TestInterface' Name.Class +'?' Punctuation +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'callback' Keyword +' ' Text +'TestExternalInterfaceReturn' Name.Class +' ' Text +'=' Punctuation +' ' Text +'TestExternalInterface' Name.Class +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'callback' Keyword +' ' Text +'TestNullableExternalInterfaceReturn' Name.Class +' ' Text +'=' Punctuation +' ' Text +'TestExternalInterface' Name.Class +'?' Punctuation +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'callback' Keyword +' ' Text +'TestCallbackInterfaceReturn' Name.Class +' ' Text +'=' Punctuation +' ' Text +'TestCallbackInterface' Name.Class +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'callback' Keyword +' ' Text +'TestNullableCallbackInterfaceReturn' Name.Class +' ' Text +'=' Punctuation +' ' Text +'TestCallbackInterface' Name.Class +'?' Punctuation +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'callback' Keyword +' ' Text +'TestCallbackReturn' Name.Class +' ' Text +'=' Punctuation +' ' Text +'TestCallback' Name.Class +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'callback' Keyword +' ' Text +'TestNullableCallbackReturn' Name.Class +' ' Text +'=' Punctuation +' ' Text +'TestCallback' Name.Class +'?' Punctuation +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'callback' Keyword +' ' Text +'TestObjectReturn' Name.Class +' ' Text +'=' Punctuation +' ' Text +'object' Keyword.Type +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'callback' Keyword +' ' Text +'TestNullableObjectReturn' Name.Class +' ' Text +'=' Punctuation +' ' Text +'object' Keyword.Type +'?' Punctuation +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'callback' Keyword +' ' Text +'TestTypedArrayReturn' Name.Class +' ' Text +'=' Punctuation +' ' Text +'ArrayBuffer' Keyword.Type +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'callback' Keyword +' ' Text +'TestNullableTypedArrayReturn' Name.Class +' ' Text +'=' Punctuation +' ' Text +'ArrayBuffer' Keyword.Type +'?' Punctuation +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'callback' Keyword +' ' Text +'TestSequenceReturn' Name.Class +' ' Text +'=' Punctuation +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'boolean' Keyword.Type +'>' Punctuation +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'callback' Keyword +' ' Text +'TestNullableSequenceReturn' Name.Class +' ' Text +'=' Punctuation +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'boolean' Keyword.Type +'>' Punctuation +'?' Punctuation +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'// Callback argument tests' Comment.Single +'\n' Text + +'callback' Keyword +' ' Text +'TestIntegerArguments' Name.Class +' ' Text +'=' Punctuation +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +'(' Punctuation +'long' Keyword.Type +' ' Text +'arg1' Name.Variable +',' Punctuation +' ' Text +'long' Keyword.Type +'?' Punctuation +' ' Text +'arg2' Name.Variable +',' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +' ' Text +'arg3' Name.Variable +',' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'?' Punctuation +'>' Punctuation +'?' Punctuation +' ' Text +'arg4' Name.Variable +')' Punctuation +';' Punctuation +'\n' Text + +'callback' Keyword +' ' Text +'TestInterfaceArguments' Name.Class +' ' Text +'=' Punctuation +' ' Text +'void' Keyword.Type +'(' Punctuation +'TestInterface' Name.Class +' ' Text +'arg1' Name.Variable +',' Punctuation +' ' Text +'TestInterface' Name.Class +'?' Punctuation +' ' Text +'arg2' Name.Variable +',' Punctuation +'\n ' Text +'TestExternalInterface' Name.Class +' ' Text +'arg3' Name.Variable +',' Punctuation +'\n ' Text +'TestExternalInterface' Name.Class +'?' Punctuation +' ' Text +'arg4' Name.Variable +',' Punctuation +'\n ' Text +'TestCallbackInterface' Name.Class +' ' Text +'arg5' Name.Variable +',' Punctuation +'\n ' Text +'TestCallbackInterface' Name.Class +'?' Punctuation +' ' Text +'arg6' Name.Variable +',' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestInterface' Name.Class +'>' Punctuation +' ' Text +'arg7' Name.Variable +',' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestInterface' Name.Class +'?' Punctuation +'>' Punctuation +'?' Punctuation +' ' Text +'arg8' Name.Variable +',' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestExternalInterface' Name.Class +'>' Punctuation +' ' Text +'arg9' Name.Variable +',' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestExternalInterface' Name.Class +'?' Punctuation +'>' Punctuation +'?' Punctuation +' ' Text +'arg10' Name.Variable +',' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestCallbackInterface' Name.Class +'>' Punctuation +' ' Text +'arg11' Name.Variable +',' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestCallbackInterface' Name.Class +'?' Punctuation +'>' Punctuation +'?' Punctuation +' ' Text +'arg12' Name.Variable +')' Punctuation +';' Punctuation +'\n' Text + +'callback' Keyword +' ' Text +'TestStringEnumArguments' Name.Class +' ' Text +'=' Punctuation +' ' Text +'void' Keyword.Type +'(' Punctuation +'DOMString' Keyword.Type +' ' Text +'myString' Name.Variable +',' Punctuation +' ' Text +'DOMString' Keyword.Type +'?' Punctuation +' ' Text +'nullString' Name.Variable +',' Punctuation +'\n ' Text +'TestEnum' Name.Class +' ' Text +'myEnum' Name.Variable +')' Punctuation +';' Punctuation +'\n' Text + +'callback' Keyword +' ' Text +'TestObjectArguments' Name.Class +' ' Text +'=' Punctuation +' ' Text +'void' Keyword.Type +'(' Punctuation +'object' Keyword.Type +' ' Text +'anObj' Name.Variable +',' Punctuation +' ' Text +'object' Keyword.Type +'?' Punctuation +' ' Text +'anotherObj' Name.Variable +',' Punctuation +'\n ' Text +'ArrayBuffer' Keyword.Type +' ' Text +'buf' Name.Variable +',' Punctuation +' ' Text +'ArrayBuffer' Keyword.Type +'?' Punctuation +' ' Text +'buf2' Name.Variable +')' Punctuation +';' Punctuation +'\n' Text + +'callback' Keyword +' ' Text +'TestOptionalArguments' Name.Class +' ' Text +'=' Punctuation +' ' Text +'void' Keyword.Type +'(' Punctuation +'optional' Keyword +' ' Text +'DOMString' Keyword.Type +' ' Text +'aString' Name.Variable +',' Punctuation +'\n ' Text +'optional' Keyword +' ' Text +'object' Keyword.Type +' ' Text +'something' Name.Variable +',' Punctuation +'\n ' Text +'optional' Keyword +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestInterface' Name.Class +'>' Punctuation +' ' Text +'aSeq' Name.Variable +',' Punctuation +'\n ' Text +'optional' Keyword +' ' Text +'TestInterface' Name.Class +'?' Punctuation +' ' Text +'anInterface' Name.Variable +',' Punctuation +'\n ' Text +'optional' Keyword +' ' Text +'TestInterface' Name.Class +' ' Text +'anotherInterface' Name.Variable +',' Punctuation +'\n ' Text +'optional' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'aLong' Name.Variable +')' Punctuation +';' Punctuation +'\n' Text + +'// If you add a new test callback, add it to the forceCallbackGeneration' Comment.Single +'\n' Text + +'// method on TestInterface so it actually gets tested.' Comment.Single +'\n\n' Text + +'TestInterface' Name.Class +' ' Text +'implements' Keyword +' ' Text +'ImplementedInterface' Name.Class +';' Punctuation +'\n\n' Text + +'// This interface is only for use in the constructor below' Comment.Single +'\n' Text + +'interface' Keyword +' ' Text +'OnlyForUseInConstructor' Name.Class +' ' Text +'{' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'[' Punctuation +'Constructor' Name.Decorator +',' Punctuation +'\n ' Text +'Constructor' Name.Decorator +'(' Punctuation +'DOMString' Keyword.Type +' ' Text +'str' Name.Variable +')' Punctuation +',' Punctuation +'\n ' Text +'Constructor' Name.Decorator +'(' Punctuation +'unsigned long' Keyword.Type +' ' Text +'num' Name.Variable +',' Punctuation +' ' Text +'boolean' Keyword.Type +'?' Punctuation +' ' Text +'boolArg' Name.Variable +')' Punctuation +',' Punctuation +'\n ' Text +'Constructor' Name.Decorator +'(' Punctuation +'TestInterface' Name.Class +'?' Punctuation +' ' Text +'iface' Name.Variable +')' Punctuation +',' Punctuation +'\n ' Text +'Constructor' Name.Decorator +'(' Punctuation +'long' Keyword.Type +' ' Text +'arg1' Name.Variable +',' Punctuation +' ' Text +'IndirectlyImplementedInterface' Name.Class +' ' Text +'iface' Name.Variable +')' Punctuation +',' Punctuation +'\n ' Text +'Constructor' Name.Decorator +'(' Punctuation +'Date' Name.Class +' ' Text +'arg1' Name.Variable +')' Punctuation +',' Punctuation +'\n ' Text +'Constructor' Name.Decorator +'(' Punctuation +'ArrayBuffer' Keyword.Type +' ' Text +'arrayBuf' Name.Variable +')' Punctuation +',' Punctuation +'\n ' Text +'Constructor' Name.Decorator +'(' Punctuation +'Uint8Array' Keyword.Type +' ' Text +'typedArr' Name.Variable +')' Punctuation +',' Punctuation +'\n ' Text +'// Constructor(long arg1, long arg2, (TestInterface or OnlyForUseInConstructor) arg3),' Comment.Single +'\n ' Text +'NamedConstructor' Name.Decorator +'=' Punctuation +'Test' Name +',' Punctuation +'\n ' Text +'NamedConstructor' Name.Decorator +'=' Punctuation +'Test' Name +'(' Punctuation +'DOMString' Keyword.Type +' ' Text +'str' Name.Variable +')' Punctuation +',' Punctuation +'\n ' Text +'NamedConstructor' Name.Decorator +'=' Punctuation +'Test2' Name +'(' Punctuation +'DictForConstructor' Name.Class +' ' Text +'dict' Name.Variable +',' Punctuation +' ' Text +'any' Keyword.Type +' ' Text +'any1' Name.Variable +',' Punctuation +' ' Text +'object' Keyword.Type +' ' Text +'obj1' Name.Variable +',' Punctuation +'\n ' Text +'object' Keyword.Type +'?' Punctuation +' ' Text +'obj2' Name.Variable +',' Punctuation +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'Dict' Name.Class +'>' Punctuation +' ' Text +'seq' Name.Variable +',' Punctuation +' ' Text +'optional' Keyword +' ' Text +'any' Keyword.Type +' ' Text +'any2' Name.Variable +',' Punctuation +'\n ' Text +'optional' Keyword +' ' Text +'object' Keyword.Type +' ' Text +'obj3' Name.Variable +',' Punctuation +' ' Text +'optional' Keyword +' ' Text +'object' Keyword.Type +'?' Punctuation +' ' Text +'obj4' Name.Variable +')' Punctuation +',' Punctuation +'\n ' Text +'NamedConstructor' Name.Decorator +'=' Punctuation +'Test3' Name +'(' Punctuation +'(' Punctuation +'long' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'MozMap' Name.Class +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +')' Punctuation +' ' Text +'arg1' Name.Variable +')' Punctuation +'\n ' Text +']' Punctuation +'\n' Text + +'interface' Keyword +' ' Text +'TestInterface' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'// Integer types' Comment.Single +'\n ' Text +'// XXXbz add tests for throwing versions of all the integer stuff' Comment.Single +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'byte' Keyword.Type +' ' Text +'readonlyByte' Name.Variable +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'byte' Keyword.Type +' ' Text +'writableByte' Name.Variable +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passByte' Name.Function +'(' Punctuation +'byte' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'byte' Keyword.Type +' ' Text +'receiveByte' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalByte' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'byte' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalByteBeforeRequired' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'byte' Keyword.Type +' ' Text +'arg1' Name.Variable +',' Punctuation +' ' Text +'byte' Keyword.Type +' ' Text +'arg2' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalByteWithDefault' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'byte' Keyword.Type +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'0' Literal.Number.Oct +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalByteWithDefaultBeforeRequired' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'byte' Keyword.Type +' ' Text +'arg1' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'0' Literal.Number.Oct +',' Punctuation +' ' Text +'byte' Keyword.Type +' ' Text +'arg2' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableByte' Name.Function +'(' Punctuation +'byte' Keyword.Type +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableByte' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'byte' Keyword.Type +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passVariadicByte' Name.Function +'(' Punctuation +'byte' Keyword.Type +'...' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'StoreInSlot' Name.Decorator +',' Punctuation +' ' Text +'Pure' Name.Decorator +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'byte' Keyword.Type +' ' Text +'cachedByte' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'StoreInSlot' Name.Decorator +',' Punctuation +' ' Text +'Constant' Name.Decorator +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'byte' Keyword.Type +' ' Text +'cachedConstantByte' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'StoreInSlot' Name.Decorator +',' Punctuation +' ' Text +'Pure' Name.Decorator +']' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'byte' Keyword.Type +' ' Text +'cachedWritableByte' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Affects' Name.Decorator +'=' Punctuation +'Nothing' Name +']' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'byte' Keyword.Type +' ' Text +'sideEffectFreeByte' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Affects' Name.Decorator +'=' Punctuation +'Nothing' Name +',' Punctuation +' ' Text +'DependsOn' Name.Decorator +'=' Punctuation +'DOMState' Name +']' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'byte' Keyword.Type +' ' Text +'domDependentByte' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Affects' Name.Decorator +'=' Punctuation +'Nothing' Name +',' Punctuation +' ' Text +'DependsOn' Name.Decorator +'=' Punctuation +'Nothing' Name +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'byte' Keyword.Type +' ' Text +'constantByte' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'DependsOn' Name.Decorator +'=' Punctuation +'DeviceState' Name +',' Punctuation +' ' Text +'Affects' Name.Decorator +'=' Punctuation +'Nothing' Name +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'byte' Keyword.Type +' ' Text +'deviceStateDependentByte' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Affects' Name.Decorator +'=' Punctuation +'Nothing' Name +']' Punctuation +'\n ' Text +'byte' Keyword.Type +' ' Text +'returnByteSideEffectFree' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'Affects' Name.Decorator +'=' Punctuation +'Nothing' Name +',' Punctuation +' ' Text +'DependsOn' Name.Decorator +'=' Punctuation +'DOMState' Name +']' Punctuation +'\n ' Text +'byte' Keyword.Type +' ' Text +'returnDOMDependentByte' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'Affects' Name.Decorator +'=' Punctuation +'Nothing' Name +',' Punctuation +' ' Text +'DependsOn' Name.Decorator +'=' Punctuation +'Nothing' Name +']' Punctuation +'\n ' Text +'byte' Keyword.Type +' ' Text +'returnConstantByte' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'DependsOn' Name.Decorator +'=' Punctuation +'DeviceState' Name +',' Punctuation +' ' Text +'Affects' Name.Decorator +'=' Punctuation +'Nothing' Name +']' Punctuation +'\n ' Text +'byte' Keyword.Type +' ' Text +'returnDeviceStateDependentByte' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n\n ' Text +'[' Punctuation +'UnsafeInPrerendering' Name.Decorator +']' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'unsafePrerenderMethod' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'UnsafeInPrerendering' Name.Decorator +']' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'unsafePrerenderWritable' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'UnsafeInPrerendering' Name.Decorator +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'unsafePrerenderReadonly' Name.Variable +';' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'short' Keyword.Type +' ' Text +'readonlyShort' Name.Variable +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'short' Keyword.Type +' ' Text +'writableShort' Name.Variable +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passShort' Name.Function +'(' Punctuation +'short' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'short' Keyword.Type +' ' Text +'receiveShort' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalShort' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'short' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalShortWithDefault' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'short' Keyword.Type +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'5' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'readonlyLong' Name.Variable +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'writableLong' Name.Variable +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passLong' Name.Function +'(' Punctuation +'long' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'long' Keyword.Type +' ' Text +'receiveLong' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalLong' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalLongWithDefault' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'7' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'long long' Keyword.Type +' ' Text +'readonlyLongLong' Name.Variable +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'long long' Keyword.Type +' ' Text +'writableLongLong' Name.Variable +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passLongLong' Name.Function +'(' Punctuation +'long long' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'long long' Keyword.Type +' ' Text +'receiveLongLong' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalLongLong' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'long long' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalLongLongWithDefault' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'long long' Keyword.Type +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'-12' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'octet' Keyword.Type +' ' Text +'readonlyOctet' Name.Variable +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'octet' Keyword.Type +' ' Text +'writableOctet' Name.Variable +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOctet' Name.Function +'(' Punctuation +'octet' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'octet' Keyword.Type +' ' Text +'receiveOctet' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalOctet' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'octet' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalOctetWithDefault' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'octet' Keyword.Type +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'19' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'unsigned short' Keyword.Type +' ' Text +'readonlyUnsignedShort' Name.Variable +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'unsigned short' Keyword.Type +' ' Text +'writableUnsignedShort' Name.Variable +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnsignedShort' Name.Function +'(' Punctuation +'unsigned short' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'unsigned short' Keyword.Type +' ' Text +'receiveUnsignedShort' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalUnsignedShort' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'unsigned short' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalUnsignedShortWithDefault' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'unsigned short' Keyword.Type +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'2' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'unsigned long' Keyword.Type +' ' Text +'readonlyUnsignedLong' Name.Variable +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'unsigned long' Keyword.Type +' ' Text +'writableUnsignedLong' Name.Variable +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnsignedLong' Name.Function +'(' Punctuation +'unsigned long' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'unsigned long' Keyword.Type +' ' Text +'receiveUnsignedLong' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalUnsignedLong' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'unsigned long' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalUnsignedLongWithDefault' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'unsigned long' Keyword.Type +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'6' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'unsigned long long' Keyword.Type +' ' Text +'readonlyUnsignedLongLong' Name.Variable +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'unsigned long long' Keyword.Type +' ' Text +'writableUnsignedLongLong' Name.Variable +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnsignedLongLong' Name.Function +'(' Punctuation +'unsigned long long' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'unsigned long long' Keyword.Type +' ' Text +'receiveUnsignedLongLong' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalUnsignedLongLong' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'unsigned long long' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalUnsignedLongLongWithDefault' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'unsigned long long' Keyword.Type +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'17' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n\n ' Text +'attribute' Keyword +' ' Text +'float' Keyword.Type +' ' Text +'writableFloat' Name.Variable +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'unrestricted float' Keyword.Type +' ' Text +'writableUnrestrictedFloat' Name.Variable +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'float' Keyword.Type +'?' Punctuation +' ' Text +'writableNullableFloat' Name.Variable +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'unrestricted float' Keyword.Type +'?' Punctuation +' ' Text +'writableNullableUnrestrictedFloat' Name.Variable +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'double' Keyword.Type +' ' Text +'writableDouble' Name.Variable +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'unrestricted double' Keyword.Type +' ' Text +'writableUnrestrictedDouble' Name.Variable +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'double' Keyword.Type +'?' Punctuation +' ' Text +'writableNullableDouble' Name.Variable +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'unrestricted double' Keyword.Type +'?' Punctuation +' ' Text +'writableNullableUnrestrictedDouble' Name.Variable +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passFloat' Name.Function +'(' Punctuation +'float' Keyword.Type +' ' Text +'arg1' Name.Variable +',' Punctuation +' ' Text +'unrestricted float' Keyword.Type +' ' Text +'arg2' Name.Variable +',' Punctuation +'\n ' Text +'float' Keyword.Type +'?' Punctuation +' ' Text +'arg3' Name.Variable +',' Punctuation +' ' Text +'unrestricted float' Keyword.Type +'?' Punctuation +' ' Text +'arg4' Name.Variable +',' Punctuation +'\n ' Text +'double' Keyword.Type +' ' Text +'arg5' Name.Variable +',' Punctuation +' ' Text +'unrestricted double' Keyword.Type +' ' Text +'arg6' Name.Variable +',' Punctuation +'\n ' Text +'double' Keyword.Type +'?' Punctuation +' ' Text +'arg7' Name.Variable +',' Punctuation +' ' Text +'unrestricted double' Keyword.Type +'?' Punctuation +' ' Text +'arg8' Name.Variable +',' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'float' Keyword.Type +'>' Punctuation +' ' Text +'arg9' Name.Variable +',' Punctuation +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'unrestricted float' Keyword.Type +'>' Punctuation +' ' Text +'arg10' Name.Variable +',' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'float' Keyword.Type +'?' Punctuation +'>' Punctuation +' ' Text +'arg11' Name.Variable +',' Punctuation +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'unrestricted float' Keyword.Type +'?' Punctuation +'>' Punctuation +' ' Text +'arg12' Name.Variable +',' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'double' Keyword.Type +'>' Punctuation +' ' Text +'arg13' Name.Variable +',' Punctuation +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'unrestricted double' Keyword.Type +'>' Punctuation +' ' Text +'arg14' Name.Variable +',' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'double' Keyword.Type +'?' Punctuation +'>' Punctuation +' ' Text +'arg15' Name.Variable +',' Punctuation +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'unrestricted double' Keyword.Type +'?' Punctuation +'>' Punctuation +' ' Text +'arg16' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'LenientFloat' Name.Decorator +']' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passLenientFloat' Name.Function +'(' Punctuation +'float' Keyword.Type +' ' Text +'arg1' Name.Variable +',' Punctuation +' ' Text +'unrestricted float' Keyword.Type +' ' Text +'arg2' Name.Variable +',' Punctuation +'\n ' Text +'float' Keyword.Type +'?' Punctuation +' ' Text +'arg3' Name.Variable +',' Punctuation +' ' Text +'unrestricted float' Keyword.Type +'?' Punctuation +' ' Text +'arg4' Name.Variable +',' Punctuation +'\n ' Text +'double' Keyword.Type +' ' Text +'arg5' Name.Variable +',' Punctuation +' ' Text +'unrestricted double' Keyword.Type +' ' Text +'arg6' Name.Variable +',' Punctuation +'\n ' Text +'double' Keyword.Type +'?' Punctuation +' ' Text +'arg7' Name.Variable +',' Punctuation +' ' Text +'unrestricted double' Keyword.Type +'?' Punctuation +' ' Text +'arg8' Name.Variable +',' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'float' Keyword.Type +'>' Punctuation +' ' Text +'arg9' Name.Variable +',' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'unrestricted float' Keyword.Type +'>' Punctuation +' ' Text +'arg10' Name.Variable +',' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'float' Keyword.Type +'?' Punctuation +'>' Punctuation +' ' Text +'arg11' Name.Variable +',' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'unrestricted float' Keyword.Type +'?' Punctuation +'>' Punctuation +' ' Text +'arg12' Name.Variable +',' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'double' Keyword.Type +'>' Punctuation +' ' Text +'arg13' Name.Variable +',' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'unrestricted double' Keyword.Type +'>' Punctuation +' ' Text +'arg14' Name.Variable +',' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'double' Keyword.Type +'?' Punctuation +'>' Punctuation +' ' Text +'arg15' Name.Variable +',' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'unrestricted double' Keyword.Type +'?' Punctuation +'>' Punctuation +' ' Text +'arg16' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'LenientFloat' Name.Decorator +']' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'float' Keyword.Type +' ' Text +'lenientFloatAttr' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'LenientFloat' Name.Decorator +']' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'double' Keyword.Type +' ' Text +'lenientDoubleAttr' Name.Variable +';' Punctuation +'\n\n ' Text +'void' Keyword.Type +' ' Text +'passUnrestricted' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'unrestricted float' Keyword.Type +' ' Text +'arg1' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'0' Literal.Number.Oct +',' Punctuation +'\n ' Text +'optional' Keyword +' ' Text +'unrestricted float' Keyword.Type +' ' Text +'arg2' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'Infinity' Keyword.Constant +',' Punctuation +'\n ' Text +'optional' Keyword +' ' Text +'unrestricted float' Keyword.Type +' ' Text +'arg3' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'-Infinity' Keyword.Constant +',' Punctuation +'\n ' Text +'optional' Keyword +' ' Text +'unrestricted float' Keyword.Type +' ' Text +'arg4' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'NaN' Keyword.Constant +',' Punctuation +'\n ' Text +'optional' Keyword +' ' Text +'unrestricted double' Keyword.Type +' ' Text +'arg5' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'0' Literal.Number.Oct +',' Punctuation +'\n ' Text +'optional' Keyword +' ' Text +'unrestricted double' Keyword.Type +' ' Text +'arg6' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'Infinity' Keyword.Constant +',' Punctuation +'\n ' Text +'optional' Keyword +' ' Text +'unrestricted double' Keyword.Type +' ' Text +'arg7' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'-Infinity' Keyword.Constant +',' Punctuation +'\n ' Text +'optional' Keyword +' ' Text +'unrestricted double' Keyword.Type +' ' Text +'arg8' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'NaN' Keyword.Constant +')' Punctuation +';' Punctuation +'\n\n ' Text +'// Castable interface types' Comment.Single +'\n ' Text +'// XXXbz add tests for throwing versions of all the castable interface stuff' Comment.Single +'\n ' Text +'TestInterface' Name.Class +' ' Text +'receiveSelf' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'TestInterface' Name.Class +'?' Punctuation +' ' Text +'receiveNullableSelf' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'TestInterface' Name.Class +' ' Text +'receiveWeakSelf' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'TestInterface' Name.Class +'?' Punctuation +' ' Text +'receiveWeakNullableSelf' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passSelf' Name.Function +'(' Punctuation +'TestInterface' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableSelf' Name.Function +'(' Punctuation +'TestInterface' Name.Class +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'TestInterface' Name.Class +' ' Text +'nonNullSelf' Name.Variable +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'TestInterface' Name.Class +'?' Punctuation +' ' Text +'nullableSelf' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Cached' Name.Decorator +',' Punctuation +' ' Text +'Pure' Name.Decorator +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'TestInterface' Name.Class +' ' Text +'cachedSelf' Name.Variable +';' Punctuation +'\n ' Text +'// Optional arguments' Comment.Single +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalSelf' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'TestInterface' Name.Class +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNonNullSelf' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'TestInterface' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalSelfWithDefault' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'TestInterface' Name.Class +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n\n ' Text +'// Non-wrapper-cache interface types' Comment.Single +'\n ' Text +'[' Punctuation +'NewObject' Name.Decorator +']' Punctuation +'\n ' Text +'TestNonWrapperCacheInterface' Name.Class +' ' Text +'receiveNonWrapperCacheInterface' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'NewObject' Name.Decorator +']' Punctuation +'\n ' Text +'TestNonWrapperCacheInterface' Name.Class +'?' Punctuation +' ' Text +'receiveNullableNonWrapperCacheInterface' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'NewObject' Name.Decorator +']' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestNonWrapperCacheInterface' Name.Class +'>' Punctuation +' ' Text +'receiveNonWrapperCacheInterfaceSequence' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'NewObject' Name.Decorator +']' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestNonWrapperCacheInterface' Name.Class +'?' Punctuation +'>' Punctuation +' ' Text +'receiveNullableNonWrapperCacheInterfaceSequence' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'NewObject' Name.Decorator +']' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestNonWrapperCacheInterface' Name.Class +'>' Punctuation +'?' Punctuation +' ' Text +'receiveNonWrapperCacheInterfaceNullableSequence' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'NewObject' Name.Decorator +']' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestNonWrapperCacheInterface' Name.Class +'?' Punctuation +'>' Punctuation +'?' Punctuation +' ' Text +'receiveNullableNonWrapperCacheInterfaceNullableSequence' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n\n ' Text +'// Non-castable interface types' Comment.Single +'\n ' Text +'IndirectlyImplementedInterface' Name.Class +' ' Text +'receiveOther' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'IndirectlyImplementedInterface' Name.Class +'?' Punctuation +' ' Text +'receiveNullableOther' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'IndirectlyImplementedInterface' Name.Class +' ' Text +'receiveWeakOther' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'IndirectlyImplementedInterface' Name.Class +'?' Punctuation +' ' Text +'receiveWeakNullableOther' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOther' Name.Function +'(' Punctuation +'IndirectlyImplementedInterface' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableOther' Name.Function +'(' Punctuation +'IndirectlyImplementedInterface' Name.Class +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'IndirectlyImplementedInterface' Name.Class +' ' Text +'nonNullOther' Name.Variable +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'IndirectlyImplementedInterface' Name.Class +'?' Punctuation +' ' Text +'nullableOther' Name.Variable +';' Punctuation +'\n ' Text +'// Optional arguments' Comment.Single +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalOther' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'IndirectlyImplementedInterface' Name.Class +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNonNullOther' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'IndirectlyImplementedInterface' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalOtherWithDefault' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'IndirectlyImplementedInterface' Name.Class +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n\n ' Text +'// External interface types' Comment.Single +'\n ' Text +'TestExternalInterface' Name.Class +' ' Text +'receiveExternal' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'TestExternalInterface' Name.Class +'?' Punctuation +' ' Text +'receiveNullableExternal' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'TestExternalInterface' Name.Class +' ' Text +'receiveWeakExternal' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'TestExternalInterface' Name.Class +'?' Punctuation +' ' Text +'receiveWeakNullableExternal' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passExternal' Name.Function +'(' Punctuation +'TestExternalInterface' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableExternal' Name.Function +'(' Punctuation +'TestExternalInterface' Name.Class +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'TestExternalInterface' Name.Class +' ' Text +'nonNullExternal' Name.Variable +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'TestExternalInterface' Name.Class +'?' Punctuation +' ' Text +'nullableExternal' Name.Variable +';' Punctuation +'\n ' Text +'// Optional arguments' Comment.Single +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalExternal' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'TestExternalInterface' Name.Class +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNonNullExternal' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'TestExternalInterface' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalExternalWithDefault' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'TestExternalInterface' Name.Class +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n\n ' Text +'// Callback interface types' Comment.Single +'\n ' Text +'TestCallbackInterface' Name.Class +' ' Text +'receiveCallbackInterface' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'TestCallbackInterface' Name.Class +'?' Punctuation +' ' Text +'receiveNullableCallbackInterface' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'TestCallbackInterface' Name.Class +' ' Text +'receiveWeakCallbackInterface' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'TestCallbackInterface' Name.Class +'?' Punctuation +' ' Text +'receiveWeakNullableCallbackInterface' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passCallbackInterface' Name.Function +'(' Punctuation +'TestCallbackInterface' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableCallbackInterface' Name.Function +'(' Punctuation +'TestCallbackInterface' Name.Class +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'TestCallbackInterface' Name.Class +' ' Text +'nonNullCallbackInterface' Name.Variable +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'TestCallbackInterface' Name.Class +'?' Punctuation +' ' Text +'nullableCallbackInterface' Name.Variable +';' Punctuation +'\n ' Text +'// Optional arguments' Comment.Single +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalCallbackInterface' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'TestCallbackInterface' Name.Class +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNonNullCallbackInterface' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'TestCallbackInterface' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalCallbackInterfaceWithDefault' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'TestCallbackInterface' Name.Class +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n\n ' Text +'// Miscellaneous interface tests' Comment.Single +'\n ' Text +'IndirectlyImplementedInterface' Name.Class +' ' Text +'receiveConsequentialInterface' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passConsequentialInterface' Name.Function +'(' Punctuation +'IndirectlyImplementedInterface' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n\n ' Text +'// Sequence types' Comment.Single +'\n ' Text +'[' Punctuation +'Cached' Name.Decorator +',' Punctuation +' ' Text +'Pure' Name.Decorator +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +' ' Text +'readonlySequence' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Cached' Name.Decorator +',' Punctuation +' ' Text +'Pure' Name.Decorator +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'Dict' Name.Class +'>' Punctuation +' ' Text +'readonlySequenceOfDictionaries' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Cached' Name.Decorator +',' Punctuation +' ' Text +'Pure' Name.Decorator +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'Dict' Name.Class +'>' Punctuation +'?' Punctuation +' ' Text +'readonlyNullableSequenceOfDictionaries' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Cached' Name.Decorator +',' Punctuation +' ' Text +'Pure' Name.Decorator +',' Punctuation +' ' Text +'Frozen' Name.Decorator +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'Dict' Name.Class +'>' Punctuation +' ' Text +'readonlyFrozenSequence' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Cached' Name.Decorator +',' Punctuation +' ' Text +'Pure' Name.Decorator +',' Punctuation +' ' Text +'Frozen' Name.Decorator +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'Dict' Name.Class +'>' Punctuation +'?' Punctuation +' ' Text +'readonlyFrozenNullableSequence' Name.Variable +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +' ' Text +'receiveSequence' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +'?' Punctuation +' ' Text +'receiveNullableSequence' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'?' Punctuation +'>' Punctuation +' ' Text +'receiveSequenceOfNullableInts' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'?' Punctuation +'>' Punctuation +'?' Punctuation +' ' Text +'receiveNullableSequenceOfNullableInts' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passSequence' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableSequence' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passSequenceOfNullableInts' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'?' Punctuation +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalSequenceOfNullableInts' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'?' Punctuation +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableSequenceOfNullableInts' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'?' Punctuation +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestInterface' Name.Class +'>' Punctuation +' ' Text +'receiveCastableObjectSequence' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestCallbackInterface' Name.Class +'>' Punctuation +' ' Text +'receiveCallbackObjectSequence' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestInterface' Name.Class +'?' Punctuation +'>' Punctuation +' ' Text +'receiveNullableCastableObjectSequence' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestCallbackInterface' Name.Class +'?' Punctuation +'>' Punctuation +' ' Text +'receiveNullableCallbackObjectSequence' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestInterface' Name.Class +'>' Punctuation +'?' Punctuation +' ' Text +'receiveCastableObjectNullableSequence' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestInterface' Name.Class +'?' Punctuation +'>' Punctuation +'?' Punctuation +' ' Text +'receiveNullableCastableObjectNullableSequence' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestInterface' Name.Class +'>' Punctuation +' ' Text +'receiveWeakCastableObjectSequence' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestInterface' Name.Class +'?' Punctuation +'>' Punctuation +' ' Text +'receiveWeakNullableCastableObjectSequence' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestInterface' Name.Class +'>' Punctuation +'?' Punctuation +' ' Text +'receiveWeakCastableObjectNullableSequence' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestInterface' Name.Class +'?' Punctuation +'>' Punctuation +'?' Punctuation +' ' Text +'receiveWeakNullableCastableObjectNullableSequence' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passCastableObjectSequence' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'TestInterface' Name.Class +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableCastableObjectSequence' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'TestInterface' Name.Class +'?' Punctuation +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passCastableObjectNullableSequence' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'TestInterface' Name.Class +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableCastableObjectNullableSequence' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'TestInterface' Name.Class +'?' Punctuation +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalSequence' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalSequenceWithDefaultValue' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'[]' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableSequence' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableSequenceWithDefaultValue' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableSequenceWithDefaultValue2' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'[]' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalObjectSequence' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestInterface' Name.Class +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passExternalInterfaceSequence' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'TestExternalInterface' Name.Class +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableExternalInterfaceSequence' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'TestExternalInterface' Name.Class +'?' Punctuation +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'DOMString' Keyword.Type +'>' Punctuation +' ' Text +'receiveStringSequence' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passStringSequence' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'DOMString' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'ByteString' Keyword.Type +'>' Punctuation +' ' Text +'receiveByteStringSequence' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passByteStringSequence' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'ByteString' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +' ' Text +'receiveAnySequence' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +'?' Punctuation +' ' Text +'receiveNullableAnySequence' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +'>' Punctuation +' ' Text +'receiveAnySequenceSequence' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'object' Keyword.Type +'>' Punctuation +' ' Text +'receiveObjectSequence' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'object' Keyword.Type +'?' Punctuation +'>' Punctuation +' ' Text +'receiveNullableObjectSequence' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n\n ' Text +'void' Keyword.Type +' ' Text +'passSequenceOfSequences' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passSequenceOfSequencesOfSequences' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +'>' Punctuation +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +'>' Punctuation +' ' Text +'receiveSequenceOfSequences' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +'>' Punctuation +'>' Punctuation +' ' Text +'receiveSequenceOfSequencesOfSequences' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n\n ' Text +'// MozMap types' Comment.Single +'\n ' Text +'void' Keyword.Type +' ' Text +'passMozMap' Name.Function +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableMozMap' Name.Function +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passMozMapOfNullableInts' Name.Function +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'long' Keyword.Type +'?' Punctuation +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalMozMapOfNullableInts' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'MozMap' Name.Class +'<' Punctuation +'long' Keyword.Type +'?' Punctuation +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableMozMapOfNullableInts' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'MozMap' Name.Class +'<' Punctuation +'long' Keyword.Type +'?' Punctuation +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passCastableObjectMozMap' Name.Function +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'TestInterface' Name.Class +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableCastableObjectMozMap' Name.Function +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'TestInterface' Name.Class +'?' Punctuation +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passCastableObjectNullableMozMap' Name.Function +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'TestInterface' Name.Class +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableCastableObjectNullableMozMap' Name.Function +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'TestInterface' Name.Class +'?' Punctuation +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalMozMap' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'MozMap' Name.Class +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableMozMap' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'MozMap' Name.Class +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableMozMapWithDefaultValue' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'MozMap' Name.Class +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalObjectMozMap' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'MozMap' Name.Class +'<' Punctuation +'TestInterface' Name.Class +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passExternalInterfaceMozMap' Name.Function +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'TestExternalInterface' Name.Class +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableExternalInterfaceMozMap' Name.Function +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'TestExternalInterface' Name.Class +'?' Punctuation +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passStringMozMap' Name.Function +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'DOMString' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passByteStringMozMap' Name.Function +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'ByteString' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passMozMapOfMozMaps' Name.Function +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'MozMap' Name.Class +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'MozMap' Name.Class +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +' ' Text +'receiveMozMap' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'MozMap' Name.Class +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +'?' Punctuation +' ' Text +'receiveNullableMozMap' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'MozMap' Name.Class +'<' Punctuation +'long' Keyword.Type +'?' Punctuation +'>' Punctuation +' ' Text +'receiveMozMapOfNullableInts' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'MozMap' Name.Class +'<' Punctuation +'long' Keyword.Type +'?' Punctuation +'>' Punctuation +'?' Punctuation +' ' Text +'receiveNullableMozMapOfNullableInts' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'MozMap' Name.Class +'<' Punctuation +'MozMap' Name.Class +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +'>' Punctuation +' ' Text +'receiveMozMapOfMozMaps' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'MozMap' Name.Class +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +' ' Text +'receiveAnyMozMap' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n\n ' Text +'// Typed array types' Comment.Single +'\n ' Text +'void' Keyword.Type +' ' Text +'passArrayBuffer' Name.Function +'(' Punctuation +'ArrayBuffer' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableArrayBuffer' Name.Function +'(' Punctuation +'ArrayBuffer' Keyword.Type +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalArrayBuffer' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'ArrayBuffer' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableArrayBuffer' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'ArrayBuffer' Keyword.Type +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableArrayBufferWithDefaultValue' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'ArrayBuffer' Keyword.Type +'?' Punctuation +' ' Text +'arg' Name.Variable +'=' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passArrayBufferView' Name.Function +'(' Punctuation +'ArrayBufferView' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passInt8Array' Name.Function +'(' Punctuation +'Int8Array' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passInt16Array' Name.Function +'(' Punctuation +'Int16Array' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passInt32Array' Name.Function +'(' Punctuation +'Int32Array' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUint8Array' Name.Function +'(' Punctuation +'Uint8Array' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUint16Array' Name.Function +'(' Punctuation +'Uint16Array' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUint32Array' Name.Function +'(' Punctuation +'Uint32Array' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUint8ClampedArray' Name.Function +'(' Punctuation +'Uint8ClampedArray' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passFloat32Array' Name.Function +'(' Punctuation +'Float32Array' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passFloat64Array' Name.Function +'(' Punctuation +'Float64Array' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passSequenceOfArrayBuffers' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'ArrayBuffer' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passSequenceOfNullableArrayBuffers' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'ArrayBuffer' Keyword.Type +'?' Punctuation +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passMozMapOfArrayBuffers' Name.Function +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'ArrayBuffer' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passMozMapOfNullableArrayBuffers' Name.Function +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'ArrayBuffer' Keyword.Type +'?' Punctuation +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passVariadicTypedArray' Name.Function +'(' Punctuation +'Float32Array' Keyword.Type +'...' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passVariadicNullableTypedArray' Name.Function +'(' Punctuation +'Float32Array' Keyword.Type +'?' Punctuation +'...' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'Uint8Array' Keyword.Type +' ' Text +'receiveUint8Array' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'Uint8Array' Keyword.Type +' ' Text +'uint8ArrayAttr' Name.Variable +';' Punctuation +'\n\n ' Text +'// DOMString types' Comment.Single +'\n ' Text +'void' Keyword.Type +' ' Text +'passString' Name.Function +'(' Punctuation +'DOMString' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableString' Name.Function +'(' Punctuation +'DOMString' Keyword.Type +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalString' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'DOMString' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalStringWithDefaultValue' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'DOMString' Keyword.Type +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'"abc"' Literal.String +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableString' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'DOMString' Keyword.Type +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableStringWithDefaultValue' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'DOMString' Keyword.Type +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passVariadicString' Name.Function +'(' Punctuation +'DOMString' Keyword.Type +'...' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'DOMString' Keyword.Type +' ' Text +'receiveString' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n\n ' Text +'// ByteString types' Comment.Single +'\n ' Text +'void' Keyword.Type +' ' Text +'passByteString' Name.Function +'(' Punctuation +'ByteString' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableByteString' Name.Function +'(' Punctuation +'ByteString' Keyword.Type +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalByteString' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'ByteString' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalByteStringWithDefaultValue' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'ByteString' Keyword.Type +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'"abc"' Literal.String +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableByteString' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'ByteString' Keyword.Type +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableByteStringWithDefaultValue' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'ByteString' Keyword.Type +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passVariadicByteString' Name.Function +'(' Punctuation +'ByteString' Keyword.Type +'...' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalUnionByteString' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'ByteString' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalUnionByteStringWithDefaultValue' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'ByteString' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'"abc"' Literal.String +')' Punctuation +';' Punctuation +'\n\n ' Text +'// USVString types' Comment.Single +'\n ' Text +'void' Keyword.Type +' ' Text +'passUSVS' Name.Function +'(' Punctuation +'USVString' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableUSVS' Name.Function +'(' Punctuation +'USVString' Keyword.Type +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalUSVS' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'USVString' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalUSVSWithDefaultValue' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'USVString' Keyword.Type +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'"abc"' Literal.String +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableUSVS' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'USVString' Keyword.Type +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableUSVSWithDefaultValue' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'USVString' Keyword.Type +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passVariadicUSVS' Name.Function +'(' Punctuation +'USVString' Keyword.Type +'...' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'USVString' Keyword.Type +' ' Text +'receiveUSVS' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n\n ' Text +'// Enumerated types' Comment.Single +'\n ' Text +'void' Keyword.Type +' ' Text +'passEnum' Name.Function +'(' Punctuation +'TestEnum' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableEnum' Name.Function +'(' Punctuation +'TestEnum' Name.Class +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalEnum' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'TestEnum' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passEnumWithDefault' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'TestEnum' Name.Class +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'"a"' Literal.String +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableEnum' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'TestEnum' Name.Class +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableEnumWithDefaultValue' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'TestEnum' Name.Class +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableEnumWithDefaultValue2' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'TestEnum' Name.Class +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'"a"' Literal.String +')' Punctuation +';' Punctuation +'\n ' Text +'TestEnum' Name.Class +' ' Text +'receiveEnum' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'TestEnum' Name.Class +'?' Punctuation +' ' Text +'receiveNullableEnum' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'TestEnum' Name.Class +' ' Text +'enumAttribute' Name.Variable +';' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'TestEnum' Name.Class +' ' Text +'readonlyEnumAttribute' Name.Variable +';' Punctuation +'\n\n ' Text +'// Callback types' Comment.Single +'\n ' Text +'void' Keyword.Type +' ' Text +'passCallback' Name.Function +'(' Punctuation +'TestCallback' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableCallback' Name.Function +'(' Punctuation +'TestCallback' Name.Class +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalCallback' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'TestCallback' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableCallback' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'TestCallback' Name.Class +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableCallbackWithDefaultValue' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'TestCallback' Name.Class +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n ' Text +'TestCallback' Name.Class +' ' Text +'receiveCallback' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'TestCallback' Name.Class +'?' Punctuation +' ' Text +'receiveNullableCallback' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableTreatAsNullCallback' Name.Function +'(' Punctuation +'TestTreatAsNullCallback' Name.Class +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableTreatAsNullCallback' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'TestTreatAsNullCallback' Name.Class +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableTreatAsNullCallbackWithDefaultValue' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'TestTreatAsNullCallback' Name.Class +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'TestTreatAsNullCallback' Name.Class +' ' Text +'treatAsNullCallback' Name.Variable +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'TestTreatAsNullCallback' Name.Class +'?' Punctuation +' ' Text +'nullableTreatAsNullCallback' Name.Variable +';' Punctuation +'\n\n ' Text +'// Force code generation of the various test callbacks we have.' Comment.Single +'\n ' Text +'void' Keyword.Type +' ' Text +'forceCallbackGeneration' Name.Function +'(' Punctuation +'TestIntegerReturn' Name.Class +' ' Text +'arg1' Name.Variable +',' Punctuation +'\n ' Text +'TestNullableIntegerReturn' Name.Class +' ' Text +'arg2' Name.Variable +',' Punctuation +'\n ' Text +'TestBooleanReturn' Name.Class +' ' Text +'arg3' Name.Variable +',' Punctuation +'\n ' Text +'TestFloatReturn' Name.Class +' ' Text +'arg4' Name.Variable +',' Punctuation +'\n ' Text +'TestStringReturn' Name.Class +' ' Text +'arg5' Name.Variable +',' Punctuation +'\n ' Text +'TestEnumReturn' Name.Class +' ' Text +'arg6' Name.Variable +',' Punctuation +'\n ' Text +'TestInterfaceReturn' Name.Class +' ' Text +'arg7' Name.Variable +',' Punctuation +'\n ' Text +'TestNullableInterfaceReturn' Name.Class +' ' Text +'arg8' Name.Variable +',' Punctuation +'\n ' Text +'TestExternalInterfaceReturn' Name.Class +' ' Text +'arg9' Name.Variable +',' Punctuation +'\n ' Text +'TestNullableExternalInterfaceReturn' Name.Class +' ' Text +'arg10' Name.Variable +',' Punctuation +'\n ' Text +'TestCallbackInterfaceReturn' Name.Class +' ' Text +'arg11' Name.Variable +',' Punctuation +'\n ' Text +'TestNullableCallbackInterfaceReturn' Name.Class +' ' Text +'arg12' Name.Variable +',' Punctuation +'\n ' Text +'TestCallbackReturn' Name.Class +' ' Text +'arg13' Name.Variable +',' Punctuation +'\n ' Text +'TestNullableCallbackReturn' Name.Class +' ' Text +'arg14' Name.Variable +',' Punctuation +'\n ' Text +'TestObjectReturn' Name.Class +' ' Text +'arg15' Name.Variable +',' Punctuation +'\n ' Text +'TestNullableObjectReturn' Name.Class +' ' Text +'arg16' Name.Variable +',' Punctuation +'\n ' Text +'TestTypedArrayReturn' Name.Class +' ' Text +'arg17' Name.Variable +',' Punctuation +'\n ' Text +'TestNullableTypedArrayReturn' Name.Class +' ' Text +'arg18' Name.Variable +',' Punctuation +'\n ' Text +'TestSequenceReturn' Name.Class +' ' Text +'arg19' Name.Variable +',' Punctuation +'\n ' Text +'TestNullableSequenceReturn' Name.Class +' ' Text +'arg20' Name.Variable +',' Punctuation +'\n ' Text +'TestIntegerArguments' Name.Class +' ' Text +'arg21' Name.Variable +',' Punctuation +'\n ' Text +'TestInterfaceArguments' Name.Class +' ' Text +'arg22' Name.Variable +',' Punctuation +'\n ' Text +'TestStringEnumArguments' Name.Class +' ' Text +'arg23' Name.Variable +',' Punctuation +'\n ' Text +'TestObjectArguments' Name.Class +' ' Text +'arg24' Name.Variable +',' Punctuation +'\n ' Text +'TestOptionalArguments' Name.Class +' ' Text +'arg25' Name.Variable +')' Punctuation +';' Punctuation +'\n\n ' Text +'// Any types' Comment.Single +'\n ' Text +'void' Keyword.Type +' ' Text +'passAny' Name.Function +'(' Punctuation +'any' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passVariadicAny' Name.Function +'(' Punctuation +'any' Keyword.Type +'...' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalAny' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'any' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passAnyDefaultNull' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'any' Keyword.Type +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passSequenceOfAny' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableSequenceOfAny' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalSequenceOfAny' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableSequenceOfAny' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalSequenceOfAnyWithDefaultValue' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passSequenceOfSequenceOfAny' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passSequenceOfNullableSequenceOfAny' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +'?' Punctuation +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableSequenceOfNullableSequenceOfAny' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +'?' Punctuation +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableSequenceOfNullableSequenceOfAny' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +'?' Punctuation +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passMozMapOfAny' Name.Function +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableMozMapOfAny' Name.Function +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalMozMapOfAny' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'MozMap' Name.Class +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableMozMapOfAny' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'MozMap' Name.Class +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalMozMapOfAnyWithDefaultValue' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'MozMap' Name.Class +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passMozMapOfMozMapOfAny' Name.Function +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'MozMap' Name.Class +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passMozMapOfNullableMozMapOfAny' Name.Function +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'MozMap' Name.Class +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +'?' Punctuation +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableMozMapOfNullableMozMapOfAny' Name.Function +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'MozMap' Name.Class +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +'?' Punctuation +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableMozMapOfNullableMozMapOfAny' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'MozMap' Name.Class +'<' Punctuation +'MozMap' Name.Class +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +'?' Punctuation +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableMozMapOfNullableSequenceOfAny' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'MozMap' Name.Class +'<' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +'?' Punctuation +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableSequenceOfNullableMozMapOfAny' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'MozMap' Name.Class +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +'?' Punctuation +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'any' Keyword.Type +' ' Text +'receiveAny' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n\n ' Text +'// object types' Comment.Single +'\n ' Text +'void' Keyword.Type +' ' Text +'passObject' Name.Function +'(' Punctuation +'object' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passVariadicObject' Name.Function +'(' Punctuation +'object' Keyword.Type +'...' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableObject' Name.Function +'(' Punctuation +'object' Keyword.Type +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passVariadicNullableObject' Name.Function +'(' Punctuation +'object' Keyword.Type +'...' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalObject' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'object' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableObject' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'object' Keyword.Type +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableObjectWithDefaultValue' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'object' Keyword.Type +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passSequenceOfObject' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'object' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passSequenceOfNullableObject' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'object' Keyword.Type +'?' Punctuation +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableSequenceOfObject' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'object' Keyword.Type +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableSequenceOfNullableSequenceOfObject' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'object' Keyword.Type +'>' Punctuation +'?' Punctuation +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableSequenceOfNullableSequenceOfNullableObject' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'object' Keyword.Type +'?' Punctuation +'>' Punctuation +'?' Punctuation +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passMozMapOfObject' Name.Function +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'object' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'object' Keyword.Type +' ' Text +'receiveObject' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'object' Keyword.Type +'?' Punctuation +' ' Text +'receiveNullableObject' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n\n ' Text +'// Union types' Comment.Single +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnion' Name.Function +'(' Punctuation +'(' Punctuation +'object' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'// Some union tests are debug-only to avoid creating all those' Comment.Single +'\n ' Text +'// unused union types in opt builds.' Comment.Single +'\n' Text + +'#ifdef DEBUG' Comment.Preproc +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnion2' Name.Function +'(' Punctuation +'(' Punctuation +'long' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'boolean' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnion3' Name.Function +'(' Punctuation +'(' Punctuation +'object' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'boolean' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnion4' Name.Function +'(' Punctuation +'(' Punctuation +'Node' Name.Class +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'boolean' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnion5' Name.Function +'(' Punctuation +'(' Punctuation +'object' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'boolean' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnion6' Name.Function +'(' Punctuation +'(' Punctuation +'object' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnion7' Name.Function +'(' Punctuation +'(' Punctuation +'object' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnion8' Name.Function +'(' Punctuation +'(' Punctuation +'object' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'boolean' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnion9' Name.Function +'(' Punctuation +'(' Punctuation +'object' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'boolean' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnion10' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'EventInit' Name.Class +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnion11' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'CustomEventInit' Name.Class +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnion12' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'EventInit' Name.Class +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'5' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnion13' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'object' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +'?' Punctuation +')' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnion14' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'object' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +'?' Punctuation +')' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'5' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnion15' Name.Function +'(' Punctuation +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnion16' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnion17' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +'?' Punctuation +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'5' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnion18' Name.Function +'(' Punctuation +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'object' Keyword.Type +'>' Punctuation +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnion19' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'object' Keyword.Type +'>' Punctuation +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnion20' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'object' Keyword.Type +'>' Punctuation +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'[]' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnion21' Name.Function +'(' Punctuation +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnion22' Name.Function +'(' Punctuation +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'object' Keyword.Type +'>' Punctuation +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnion23' Name.Function +'(' Punctuation +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'ImageData' Name.Class +'>' Punctuation +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnion24' Name.Function +'(' Punctuation +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'ImageData' Name.Class +'?' Punctuation +'>' Punctuation +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnion25' Name.Function +'(' Punctuation +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'ImageData' Name.Class +'>' Punctuation +'>' Punctuation +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnion26' Name.Function +'(' Punctuation +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'ImageData' Name.Class +'?' Punctuation +'>' Punctuation +'>' Punctuation +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnion27' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'DOMString' Keyword.Type +'>' Punctuation +' ' Text +'or' Keyword +' ' Text +'EventInit' Name.Class +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnion28' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'EventInit' Name.Class +' ' Text +'or' Keyword +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'DOMString' Keyword.Type +'>' Punctuation +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithCallback' Name.Function +'(' Punctuation +'(' Punctuation +'EventHandler' Name.Class +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithByteString' Name.Function +'(' Punctuation +'(' Punctuation +'ByteString' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithMozMap' Name.Function +'(' Punctuation +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'DOMString' Keyword.Type +'>' Punctuation +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithMozMapAndSequence' Name.Function +'(' Punctuation +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'DOMString' Keyword.Type +'>' Punctuation +' ' Text +'or' Keyword +' ' Text +'sequence' Keyword.Type +'<' Punctuation +'DOMString' Keyword.Type +'>' Punctuation +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithSequenceAndMozMap' Name.Function +'(' Punctuation +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'DOMString' Keyword.Type +'>' Punctuation +' ' Text +'or' Keyword +' ' Text +'MozMap' Name.Class +'<' Punctuation +'DOMString' Keyword.Type +'>' Punctuation +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithUSVS' Name.Function +'(' Punctuation +'(' Punctuation +'USVString' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n' Text + +'#endif' Comment.Preproc +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithNullable' Name.Function +'(' Punctuation +'(' Punctuation +'object' Keyword.Type +'?' Punctuation +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableUnion' Name.Function +'(' Punctuation +'(' Punctuation +'object' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalUnion' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'object' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableUnion' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'object' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableUnionWithDefaultValue' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'object' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n ' Text +'//void passUnionWithInterfaces((TestInterface or TestExternalInterface) arg);' Comment.Single +'\n ' Text +'//void passUnionWithInterfacesAndNullable((TestInterface? or TestExternalInterface) arg);' Comment.Single +'\n ' Text +'//void passUnionWithSequence((sequence<object> or long) arg);' Comment.Single +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithArrayBuffer' Name.Function +'(' Punctuation +'(' Punctuation +'ArrayBuffer' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithString' Name.Function +'(' Punctuation +'(' Punctuation +'DOMString' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'object' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'// Using an enum in a union. Note that we use some enum not declared in our' Comment.Single +'\n ' Text +'// binding file, because UnionTypes.h will need to include the binding header' Comment.Single +'\n ' Text +"// for this enum. Pick an enum from an interface that won't drag in too much" Comment.Single +'\n ' Text +'// stuff.' Comment.Single +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithEnum' Name.Function +'(' Punctuation +'(' Punctuation +'SupportedType' Name.Class +' ' Text +'or' Keyword +' ' Text +'object' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n\n ' Text +"// Trying to use a callback in a union won't include the test" Comment.Single +'\n ' Text +"// headers, unfortunately, so won't compile." Comment.Single +'\n ' Text +'//void passUnionWithCallback((TestCallback or long) arg);' Comment.Single +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithObject' Name.Function +'(' Punctuation +'(' Punctuation +'object' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'//void passUnionWithDict((Dict or long) arg);' Comment.Single +'\n\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithDefaultValue1' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'double' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'""' Literal.String +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithDefaultValue2' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'double' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'1' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithDefaultValue3' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'double' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'1.5' Literal.Number.Float +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithDefaultValue4' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'float' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'""' Literal.String +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithDefaultValue5' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'float' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'1' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithDefaultValue6' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'float' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'1.5' Literal.Number.Float +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithDefaultValue7' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'unrestricted double' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'""' Literal.String +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithDefaultValue8' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'unrestricted double' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'1' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithDefaultValue9' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'unrestricted double' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'1.5' Literal.Number.Float +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithDefaultValue10' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'unrestricted double' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'Infinity' Keyword.Constant +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithDefaultValue11' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'unrestricted float' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'""' Literal.String +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithDefaultValue12' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'unrestricted float' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'1' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithDefaultValue13' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'unrestricted float' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'Infinity' Keyword.Constant +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithDefaultValue14' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'double' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'ByteString' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'""' Literal.String +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithDefaultValue15' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'double' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'ByteString' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'1' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithDefaultValue16' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'double' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'ByteString' Keyword.Type +')' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'1.5' Literal.Number.Float +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithDefaultValue17' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'double' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'SupportedType' Name.Class +')' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'"text/html"' Literal.String +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithDefaultValue18' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'double' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'SupportedType' Name.Class +')' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'1' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passUnionWithDefaultValue19' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'double' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'SupportedType' Name.Class +')' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'1.5' Literal.Number.Float +')' Punctuation +';' Punctuation +'\n\n ' Text +'void' Keyword.Type +' ' Text +'passNullableUnionWithDefaultValue1' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'double' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'""' Literal.String +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableUnionWithDefaultValue2' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'double' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'1' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableUnionWithDefaultValue3' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'double' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableUnionWithDefaultValue4' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'float' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'""' Literal.String +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableUnionWithDefaultValue5' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'float' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'1' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableUnionWithDefaultValue6' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'float' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableUnionWithDefaultValue7' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'unrestricted double' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'""' Literal.String +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableUnionWithDefaultValue8' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'unrestricted double' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'1' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableUnionWithDefaultValue9' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'unrestricted double' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableUnionWithDefaultValue10' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'unrestricted float' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'""' Literal.String +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableUnionWithDefaultValue11' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'unrestricted float' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'1' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableUnionWithDefaultValue12' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'unrestricted float' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableUnionWithDefaultValue13' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'double' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'ByteString' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'""' Literal.String +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableUnionWithDefaultValue14' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'double' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'ByteString' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'1' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableUnionWithDefaultValue15' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'double' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'ByteString' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'1.5' Literal.Number.Float +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableUnionWithDefaultValue16' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'double' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'ByteString' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableUnionWithDefaultValue17' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'double' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'SupportedType' Name.Class +')' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'"text/html"' Literal.String +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableUnionWithDefaultValue18' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'double' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'SupportedType' Name.Class +')' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'1' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableUnionWithDefaultValue19' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'double' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'SupportedType' Name.Class +')' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'1.5' Literal.Number.Float +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableUnionWithDefaultValue20' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'(' Punctuation +'double' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'SupportedType' Name.Class +')' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n\n ' Text +'void' Keyword.Type +' ' Text +'passSequenceOfUnions' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'(' Punctuation +'CanvasPattern' Name.Class +' ' Text +'or' Keyword +' ' Text +'CanvasGradient' Name.Class +')' Punctuation +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passSequenceOfUnions2' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'(' Punctuation +'object' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passVariadicUnion' Name.Function +'(' Punctuation +'(' Punctuation +'CanvasPattern' Name.Class +' ' Text +'or' Keyword +' ' Text +'CanvasGradient' Name.Class +')' Punctuation +'...' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n\n ' Text +'void' Keyword.Type +' ' Text +'passSequenceOfNullableUnions' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'(' Punctuation +'CanvasPattern' Name.Class +' ' Text +'or' Keyword +' ' Text +'CanvasGradient' Name.Class +')' Punctuation +'?' Punctuation +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passVariadicNullableUnion' Name.Function +'(' Punctuation +'(' Punctuation +'CanvasPattern' Name.Class +' ' Text +'or' Keyword +' ' Text +'CanvasGradient' Name.Class +')' Punctuation +'?' Punctuation +'...' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passMozMapOfUnions' Name.Function +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'(' Punctuation +'CanvasPattern' Name.Class +' ' Text +'or' Keyword +' ' Text +'CanvasGradient' Name.Class +')' Punctuation +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'// XXXbz no move constructor on some unions' Comment.Single +'\n ' Text +'// void passMozMapOfUnions2(MozMap<(object or long)> arg);' Comment.Single +'\n\n ' Text +'(' Punctuation +'CanvasPattern' Name.Class +' ' Text +'or' Keyword +' ' Text +'CanvasGradient' Name.Class +')' Punctuation +' ' Text +'receiveUnion' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'(' Punctuation +'object' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'receiveUnion2' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'(' Punctuation +'CanvasPattern' Name.Class +'?' Punctuation +' ' Text +'or' Keyword +' ' Text +'CanvasGradient' Name.Class +')' Punctuation +' ' Text +'receiveUnionContainingNull' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'(' Punctuation +'CanvasPattern' Name.Class +' ' Text +'or' Keyword +' ' Text +'CanvasGradient' Name.Class +')' Punctuation +'?' Punctuation +' ' Text +'receiveNullableUnion' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'(' Punctuation +'object' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'receiveNullableUnion2' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n\n ' Text +'attribute' Keyword +' ' Text +'(' Punctuation +'CanvasPattern' Name.Class +' ' Text +'or' Keyword +' ' Text +'CanvasGradient' Name.Class +')' Punctuation +' ' Text +'writableUnion' Name.Variable +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'(' Punctuation +'CanvasPattern' Name.Class +'?' Punctuation +' ' Text +'or' Keyword +' ' Text +'CanvasGradient' Name.Class +')' Punctuation +' ' Text +'writableUnionContainingNull' Name.Variable +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'(' Punctuation +'CanvasPattern' Name.Class +' ' Text +'or' Keyword +' ' Text +'CanvasGradient' Name.Class +')' Punctuation +'?' Punctuation +' ' Text +'writableNullableUnion' Name.Variable +';' Punctuation +'\n\n ' Text +'// Date types' Comment.Single +'\n ' Text +'void' Keyword.Type +' ' Text +'passDate' Name.Function +'(' Punctuation +'Date' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableDate' Name.Function +'(' Punctuation +'Date' Name.Class +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalDate' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'Date' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableDate' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'Date' Name.Class +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullableDateWithDefaultValue' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'Date' Name.Class +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passDateSequence' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'Date' Name.Class +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullableDateSequence' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'Date' Name.Class +'?' Punctuation +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passDateMozMap' Name.Function +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'Date' Name.Class +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'Date' Name.Class +' ' Text +'receiveDate' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'Date' Name.Class +'?' Punctuation +' ' Text +'receiveNullableDate' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n\n ' Text +'// Promise types' Comment.Single +'\n ' Text +'void' Keyword.Type +' ' Text +'passPromise' Name.Function +'(' Punctuation +'Promise' Keyword.Type +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullablePromise' Name.Function +'(' Punctuation +'Promise' Keyword.Type +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalPromise' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'Promise' Keyword.Type +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullablePromise' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'Promise' Keyword.Type +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOptionalNullablePromiseWithDefaultValue' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'Promise' Keyword.Type +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +'?' Punctuation +' ' Text +'arg' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passPromiseSequence' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'Promise' Keyword.Type +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passNullablePromiseSequence' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'Promise' Keyword.Type +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +'?' Punctuation +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'Promise' Keyword.Type +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +' ' Text +'receivePromise' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'Promise' Keyword.Type +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +' ' Text +'receiveAddrefedPromise' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n\n ' Text +'// binaryNames tests' Comment.Single +'\n ' Text +'void' Keyword.Type +' ' Text +'methodRenamedFrom' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'BinaryName' Name.Decorator +'=' Punctuation +'"otherMethodRenamedTo"' Literal.String +']' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'otherMethodRenamedFrom' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'methodRenamedFrom' Name.Function +'(' Punctuation +'byte' Keyword.Type +' ' Text +'argument' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'byte' Keyword.Type +' ' Text +'attributeGetterRenamedFrom' Name.Variable +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'byte' Keyword.Type +' ' Text +'attributeRenamedFrom' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'BinaryName' Name.Decorator +'=' Punctuation +'"otherAttributeRenamedTo"' Literal.String +']' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'byte' Keyword.Type +' ' Text +'otherAttributeRenamedFrom' Name.Variable +';' Punctuation +'\n\n ' Text +'void' Keyword.Type +' ' Text +'passDictionary' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'Dict' Name.Class +' ' Text +'x' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passDictionary2' Name.Function +'(' Punctuation +'Dict' Name.Class +' ' Text +'x' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'Cached' Name.Decorator +',' Punctuation +' ' Text +'Pure' Name.Decorator +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'Dict' Name.Class +' ' Text +'readonlyDictionary' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Cached' Name.Decorator +',' Punctuation +' ' Text +'Pure' Name.Decorator +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'Dict' Name.Class +'?' Punctuation +' ' Text +'readonlyNullableDictionary' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Cached' Name.Decorator +',' Punctuation +' ' Text +'Pure' Name.Decorator +']' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'Dict' Name.Class +' ' Text +'writableDictionary' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Cached' Name.Decorator +',' Punctuation +' ' Text +'Pure' Name.Decorator +',' Punctuation +' ' Text +'Frozen' Name.Decorator +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'Dict' Name.Class +' ' Text +'readonlyFrozenDictionary' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Cached' Name.Decorator +',' Punctuation +' ' Text +'Pure' Name.Decorator +',' Punctuation +' ' Text +'Frozen' Name.Decorator +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'Dict' Name.Class +'?' Punctuation +' ' Text +'readonlyFrozenNullableDictionary' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Cached' Name.Decorator +',' Punctuation +' ' Text +'Pure' Name.Decorator +',' Punctuation +' ' Text +'Frozen' Name.Decorator +']' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'Dict' Name.Class +' ' Text +'writableFrozenDictionary' Name.Variable +';' Punctuation +'\n ' Text +'Dict' Name.Class +' ' Text +'receiveDictionary' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'Dict' Name.Class +'?' Punctuation +' ' Text +'receiveNullableDictionary' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passOtherDictionary' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'GrandparentDict' Name.Class +' ' Text +'x' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passSequenceOfDictionaries' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'Dict' Name.Class +'>' Punctuation +' ' Text +'x' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passMozMapOfDictionaries' Name.Function +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'GrandparentDict' Name.Class +'>' Punctuation +' ' Text +'x' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'// No support for nullable dictionaries inside a sequence (nor should there be)' Comment.Single +'\n ' Text +'// void passSequenceOfNullableDictionaries(sequence<Dict?> x);' Comment.Single +'\n ' Text +'void' Keyword.Type +' ' Text +'passDictionaryOrLong' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'Dict' Name.Class +' ' Text +'x' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passDictionaryOrLong' Name.Function +'(' Punctuation +'long' Keyword.Type +' ' Text +'x' Name.Variable +')' Punctuation +';' Punctuation +'\n\n ' Text +'void' Keyword.Type +' ' Text +'passDictContainingDict' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'DictContainingDict' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passDictContainingSequence' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'DictContainingSequence' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'DictContainingSequence' Name.Class +' ' Text +'receiveDictContainingSequence' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passVariadicDictionary' Name.Function +'(' Punctuation +'Dict' Name.Class +'...' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n\n ' Text +'// EnforceRange/Clamp tests' Comment.Single +'\n ' Text +'void' Keyword.Type +' ' Text +'dontEnforceRangeOrClamp' Name.Function +'(' Punctuation +'byte' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'doEnforceRange' Name.Function +'(' Punctuation +'[' Punctuation +'EnforceRange' Name.Decorator +']' Punctuation +' ' Text +'byte' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'doClamp' Name.Function +'(' Punctuation +'[' Punctuation +'Clamp' Name.Decorator +']' Punctuation +' ' Text +'byte' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'EnforceRange' Name.Decorator +']' Punctuation +' ' Text +'attribute' Keyword +' ' Text +'byte' Keyword.Type +' ' Text +'enforcedByte' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Clamp' Name.Decorator +']' Punctuation +' ' Text +'attribute' Keyword +' ' Text +'byte' Keyword.Type +' ' Text +'clampedByte' Name.Variable +';' Punctuation +'\n\n ' Text +'// Typedefs' Comment.Single +'\n ' Text +'const' Keyword +' ' Text +'myLong' Name.Class +' ' Text +'myLongConstant' Name.Constant +' ' Text +'=' Punctuation +' ' Text +'5' Literal.Number.Integer +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'exerciseTypedefInterfaces1' Name.Function +'(' Punctuation +'AnotherNameForTestInterface' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'AnotherNameForTestInterface' Name.Class +' ' Text +'exerciseTypedefInterfaces2' Name.Function +'(' Punctuation +'NullableTestInterface' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'exerciseTypedefInterfaces3' Name.Function +'(' Punctuation +'YetAnotherNameForTestInterface' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n\n ' Text +'// Deprecated methods and attributes' Comment.Single +'\n ' Text +'[' Punctuation +'Deprecated' Name.Decorator +'=' Punctuation +'"GetAttributeNode"' Literal.String +']' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'byte' Keyword.Type +' ' Text +'deprecatedAttribute' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Deprecated' Name.Decorator +'=' Punctuation +'"GetAttributeNode"' Literal.String +']' Punctuation +'\n ' Text +'byte' Keyword.Type +' ' Text +'deprecatedMethod' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'Deprecated' Name.Decorator +'=' Punctuation +'"GetAttributeNode"' Literal.String +']' Punctuation +'\n ' Text +'byte' Keyword.Type +' ' Text +'deprecatedMethodWithContext' Name.Function +'(' Punctuation +'any' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n\n ' Text +'// Static methods and attributes' Comment.Single +'\n ' Text +'static' Keyword +' ' Text +'attribute' Keyword +' ' Text +'boolean' Keyword.Type +' ' Text +'staticAttribute' Name.Variable +';' Punctuation +'\n ' Text +'static' Keyword +' ' Text +'void' Keyword.Type +' ' Text +'staticMethod' Name.Function +'(' Punctuation +'boolean' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'static' Keyword +' ' Text +'void' Keyword.Type +' ' Text +'staticMethodWithContext' Name.Function +'(' Punctuation +'any' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n\n ' Text +'// Testing static method with a reserved C++ keyword as the name' Comment.Single +'\n ' Text +'static' Keyword +' ' Text +'void' Keyword.Type +' ' Text +'assert' Name.Function +'(' Punctuation +'boolean' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n\n ' Text +'// Deprecated static methods and attributes' Comment.Single +'\n ' Text +'[' Punctuation +'Deprecated' Name.Decorator +'=' Punctuation +'"GetAttributeNode"' Literal.String +']' Punctuation +'\n ' Text +'static' Keyword +' ' Text +'attribute' Keyword +' ' Text +'byte' Keyword.Type +' ' Text +'staticDeprecatedAttribute' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Deprecated' Name.Decorator +'=' Punctuation +'"GetAttributeNode"' Literal.String +']' Punctuation +'\n ' Text +'static' Keyword +' ' Text +'void' Keyword.Type +' ' Text +'staticDeprecatedMethod' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'Deprecated' Name.Decorator +'=' Punctuation +'"GetAttributeNode"' Literal.String +']' Punctuation +'\n ' Text +'static' Keyword +' ' Text +'void' Keyword.Type +' ' Text +'staticDeprecatedMethodWithContext' Name.Function +'(' Punctuation +'any' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n\n ' Text +'// Overload resolution tests' Comment.Single +'\n ' Text +'//void overload1(DOMString... strs);' Comment.Single +'\n ' Text +'boolean' Keyword.Type +' ' Text +'overload1' Name.Function +'(' Punctuation +'TestInterface' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'TestInterface' Name.Class +' ' Text +'overload1' Name.Function +'(' Punctuation +'DOMString' Keyword.Type +' ' Text +'strs' Name.Variable +',' Punctuation +' ' Text +'TestInterface' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload2' Name.Function +'(' Punctuation +'TestInterface' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload2' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'Dict' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload2' Name.Function +'(' Punctuation +'boolean' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload2' Name.Function +'(' Punctuation +'DOMString' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload2' Name.Function +'(' Punctuation +'Date' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload3' Name.Function +'(' Punctuation +'TestInterface' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload3' Name.Function +'(' Punctuation +'TestCallback' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload3' Name.Function +'(' Punctuation +'boolean' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload4' Name.Function +'(' Punctuation +'TestInterface' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload4' Name.Function +'(' Punctuation +'TestCallbackInterface' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload4' Name.Function +'(' Punctuation +'DOMString' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload5' Name.Function +'(' Punctuation +'long' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload5' Name.Function +'(' Punctuation +'TestEnum' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload6' Name.Function +'(' Punctuation +'long' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload6' Name.Function +'(' Punctuation +'boolean' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload7' Name.Function +'(' Punctuation +'long' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload7' Name.Function +'(' Punctuation +'boolean' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload7' Name.Function +'(' Punctuation +'ByteString' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload8' Name.Function +'(' Punctuation +'long' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload8' Name.Function +'(' Punctuation +'TestInterface' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload9' Name.Function +'(' Punctuation +'long' Keyword.Type +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload9' Name.Function +'(' Punctuation +'DOMString' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload10' Name.Function +'(' Punctuation +'long' Keyword.Type +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload10' Name.Function +'(' Punctuation +'object' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload11' Name.Function +'(' Punctuation +'long' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload11' Name.Function +'(' Punctuation +'DOMString' Keyword.Type +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload12' Name.Function +'(' Punctuation +'long' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload12' Name.Function +'(' Punctuation +'boolean' Keyword.Type +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload13' Name.Function +'(' Punctuation +'long' Keyword.Type +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload13' Name.Function +'(' Punctuation +'boolean' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload14' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload14' Name.Function +'(' Punctuation +'TestInterface' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload15' Name.Function +'(' Punctuation +'long' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload15' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'TestInterface' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload16' Name.Function +'(' Punctuation +'long' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload16' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'TestInterface' Name.Class +'?' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload17' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload17' Name.Function +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload18' Name.Function +'(' Punctuation +'MozMap' Name.Class +'<' Punctuation +'DOMString' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload18' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'DOMString' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload19' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload19' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'Dict' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload20' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'Dict' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'overload20' Name.Function +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n\n ' Text +'// Variadic handling' Comment.Single +'\n ' Text +'void' Keyword.Type +' ' Text +'passVariadicThirdArg' Name.Function +'(' Punctuation +'DOMString' Keyword.Type +' ' Text +'arg1' Name.Variable +',' Punctuation +' ' Text +'long' Keyword.Type +' ' Text +'arg2' Name.Variable +',' Punctuation +' ' Text +'TestInterface' Name.Class +'...' Punctuation +' ' Text +'arg3' Name.Variable +')' Punctuation +';' Punctuation +'\n\n ' Text +'// Conditionally exposed methods/attributes' Comment.Single +'\n ' Text +'[' Punctuation +'Pref' Name.Decorator +'=' Punctuation +'"abc.def"' Literal.String +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'boolean' Keyword.Type +' ' Text +'prefable1' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Pref' Name.Decorator +'=' Punctuation +'"abc.def"' Literal.String +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'boolean' Keyword.Type +' ' Text +'prefable2' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Pref' Name.Decorator +'=' Punctuation +'"ghi.jkl"' Literal.String +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'boolean' Keyword.Type +' ' Text +'prefable3' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Pref' Name.Decorator +'=' Punctuation +'"ghi.jkl"' Literal.String +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'boolean' Keyword.Type +' ' Text +'prefable4' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Pref' Name.Decorator +'=' Punctuation +'"abc.def"' Literal.String +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'boolean' Keyword.Type +' ' Text +'prefable5' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Pref' Name.Decorator +'=' Punctuation +'"abc.def"' Literal.String +',' Punctuation +' ' Text +'Func' Name.Decorator +'=' Punctuation +'"nsGenericHTMLElement::TouchEventsEnabled"' Literal.String +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'boolean' Keyword.Type +' ' Text +'prefable6' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Pref' Name.Decorator +'=' Punctuation +'"abc.def"' Literal.String +',' Punctuation +' ' Text +'Func' Name.Decorator +'=' Punctuation +'"nsGenericHTMLElement::TouchEventsEnabled"' Literal.String +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'boolean' Keyword.Type +' ' Text +'prefable7' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Pref' Name.Decorator +'=' Punctuation +'"ghi.jkl"' Literal.String +',' Punctuation +' ' Text +'Func' Name.Decorator +'=' Punctuation +'"nsGenericHTMLElement::TouchEventsEnabled"' Literal.String +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'boolean' Keyword.Type +' ' Text +'prefable8' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Pref' Name.Decorator +'=' Punctuation +'"abc.def"' Literal.String +',' Punctuation +' ' Text +'Func' Name.Decorator +'=' Punctuation +'"nsGenericHTMLElement::TouchEventsEnabled"' Literal.String +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'boolean' Keyword.Type +' ' Text +'prefable9' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Pref' Name.Decorator +'=' Punctuation +'"abc.def"' Literal.String +']' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'prefable10' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'Pref' Name.Decorator +'=' Punctuation +'"abc.def"' Literal.String +',' Punctuation +' ' Text +'Func' Name.Decorator +'=' Punctuation +'"nsGenericHTMLElement::TouchEventsEnabled"' Literal.String +']' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'prefable11' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'Pref' Name.Decorator +'=' Punctuation +'"abc.def"' Literal.String +',' Punctuation +' ' Text +'Func' Name.Decorator +'=' Punctuation +'"TestFuncControlledMember"' Literal.String +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'boolean' Keyword.Type +' ' Text +'prefable12' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Pref' Name.Decorator +'=' Punctuation +'"abc.def"' Literal.String +',' Punctuation +' ' Text +'Func' Name.Decorator +'=' Punctuation +'"nsGenericHTMLElement::TouchEventsEnabled"' Literal.String +']' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'prefable13' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'Pref' Name.Decorator +'=' Punctuation +'"abc.def"' Literal.String +',' Punctuation +' ' Text +'Func' Name.Decorator +'=' Punctuation +'"TestFuncControlledMember"' Literal.String +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'boolean' Keyword.Type +' ' Text +'prefable14' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Func' Name.Decorator +'=' Punctuation +'"TestFuncControlledMember"' Literal.String +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'boolean' Keyword.Type +' ' Text +'prefable15' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Func' Name.Decorator +'=' Punctuation +'"TestFuncControlledMember"' Literal.String +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'boolean' Keyword.Type +' ' Text +'prefable16' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Pref' Name.Decorator +'=' Punctuation +'"abc.def"' Literal.String +',' Punctuation +' ' Text +'Func' Name.Decorator +'=' Punctuation +'"TestFuncControlledMember"' Literal.String +']' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'prefable17' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'Func' Name.Decorator +'=' Punctuation +'"TestFuncControlledMember"' Literal.String +']' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'prefable18' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'Func' Name.Decorator +'=' Punctuation +'"TestFuncControlledMember"' Literal.String +']' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'prefable19' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'Pref' Name.Decorator +'=' Punctuation +'"abc.def"' Literal.String +',' Punctuation +' ' Text +'Func' Name.Decorator +'=' Punctuation +'"TestFuncControlledMember"' Literal.String +',' Punctuation +' ' Text +'ChromeOnly' Name.Decorator +']' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'prefable20' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n\n ' Text +'// Conditionally exposed methods/attributes involving [SecureContext]' Comment.Single +'\n ' Text +'[' Punctuation +'SecureContext' Name.Decorator +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'boolean' Keyword.Type +' ' Text +'conditionalOnSecureContext1' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'SecureContext' Name.Decorator +',' Punctuation +' ' Text +'Pref' Name.Decorator +'=' Punctuation +'"abc.def"' Literal.String +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'boolean' Keyword.Type +' ' Text +'conditionalOnSecureContext2' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'SecureContext' Name.Decorator +',' Punctuation +' ' Text +'Pref' Name.Decorator +'=' Punctuation +'"abc.def"' Literal.String +',' Punctuation +' ' Text +'Func' Name.Decorator +'=' Punctuation +'"nsGenericHTMLElement::TouchEventsEnabled"' Literal.String +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'boolean' Keyword.Type +' ' Text +'conditionalOnSecureContext3' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'SecureContext' Name.Decorator +',' Punctuation +' ' Text +'Pref' Name.Decorator +'=' Punctuation +'"abc.def"' Literal.String +',' Punctuation +' ' Text +'Func' Name.Decorator +'=' Punctuation +'"TestFuncControlledMember"' Literal.String +']' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'boolean' Keyword.Type +' ' Text +'conditionalOnSecureContext4' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'SecureContext' Name.Decorator +']' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'conditionalOnSecureContext5' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'SecureContext' Name.Decorator +',' Punctuation +' ' Text +'Pref' Name.Decorator +'=' Punctuation +'"abc.def"' Literal.String +']' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'conditionalOnSecureContext6' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'SecureContext' Name.Decorator +',' Punctuation +' ' Text +'Pref' Name.Decorator +'=' Punctuation +'"abc.def"' Literal.String +',' Punctuation +' ' Text +'Func' Name.Decorator +'=' Punctuation +'"nsGenericHTMLElement::TouchEventsEnabled"' Literal.String +']' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'conditionalOnSecureContext7' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'SecureContext' Name.Decorator +',' Punctuation +' ' Text +'Pref' Name.Decorator +'=' Punctuation +'"abc.def"' Literal.String +',' Punctuation +' ' Text +'Func' Name.Decorator +'=' Punctuation +'"TestFuncControlledMember"' Literal.String +']' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'conditionalOnSecureContext8' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n\n ' Text +'// Miscellania' Comment.Single +'\n ' Text +'[' Punctuation +'LenientThis' Name.Decorator +']' Punctuation +' ' Text +'attribute' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'attrWithLenientThis' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Unforgeable' Name.Decorator +']' Punctuation +' ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'unforgeableAttr' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Unforgeable' Name.Decorator +',' Punctuation +' ' Text +'ChromeOnly' Name.Decorator +']' Punctuation +' ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'unforgeableAttr2' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Unforgeable' Name.Decorator +']' Punctuation +' ' Text +'long' Keyword.Type +' ' Text +'unforgeableMethod' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'Unforgeable' Name.Decorator +',' Punctuation +' ' Text +'ChromeOnly' Name.Decorator +']' Punctuation +' ' Text +'long' Keyword.Type +' ' Text +'unforgeableMethod2' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'stringifier' Keyword +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passRenamedInterface' Name.Function +'(' Punctuation +'TestRenamedInterface' Name.Class +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'PutForwards' Name.Decorator +'=' Punctuation +'writableByte' Name +']' Punctuation +' ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'TestInterface' Name.Class +' ' Text +'putForwardsAttr' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'PutForwards' Name.Decorator +'=' Punctuation +'writableByte' Name +',' Punctuation +' ' Text +'LenientThis' Name.Decorator +']' Punctuation +' ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'TestInterface' Name.Class +' ' Text +'putForwardsAttr2' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'PutForwards' Name.Decorator +'=' Punctuation +'writableByte' Name +',' Punctuation +' ' Text +'ChromeOnly' Name.Decorator +']' Punctuation +' ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'TestInterface' Name.Class +' ' Text +'putForwardsAttr3' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Throws' Name.Decorator +']' Punctuation +' ' Text +'void' Keyword.Type +' ' Text +'throwingMethod' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'[' Punctuation +'Throws' Name.Decorator +']' Punctuation +' ' Text +'attribute' Keyword +' ' Text +'boolean' Keyword.Type +' ' Text +'throwingAttr' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'GetterThrows' Name.Decorator +']' Punctuation +' ' Text +'attribute' Keyword +' ' Text +'boolean' Keyword.Type +' ' Text +'throwingGetterAttr' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'SetterThrows' Name.Decorator +']' Punctuation +' ' Text +'attribute' Keyword +' ' Text +'boolean' Keyword.Type +' ' Text +'throwingSetterAttr' Name.Variable +';' Punctuation +'\n ' Text +'legacycaller' Keyword +' ' Text +'short' Keyword.Type +'(' Punctuation +'unsigned long' Keyword.Type +' ' Text +'arg1' Name.Variable +',' Punctuation +' ' Text +'TestInterface' Name.Class +' ' Text +'arg2' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'passArgsWithDefaults' Name.Function +'(' Punctuation +'optional' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'arg1' Name.Variable +',' Punctuation +'\n ' Text +'optional' Keyword +' ' Text +'TestInterface' Name.Class +'?' Punctuation +' ' Text +'arg2' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +',' Punctuation +'\n ' Text +'optional' Keyword +' ' Text +'Dict' Name.Class +' ' Text +'arg3' Name.Variable +',' Punctuation +' ' Text +'optional' Keyword +' ' Text +'double' Keyword.Type +' ' Text +'arg4' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'5.0' Literal.Number.Float +',' Punctuation +'\n ' Text +'optional' Keyword +' ' Text +'float' Keyword.Type +' ' Text +'arg5' Name.Variable +')' Punctuation +';' Punctuation +'\n\n ' Text +'attribute' Keyword +' ' Text +'any' Keyword.Type +' ' Text +'jsonifierShouldSkipThis' Name.Variable +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'TestParentInterface' Name.Class +' ' Text +'jsonifierShouldSkipThis2' Name.Variable +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'TestCallbackInterface' Name.Class +' ' Text +'jsonifierShouldSkipThis3' Name.Variable +';' Punctuation +'\n ' Text +'jsonifier' Keyword +';' Punctuation +'\n\n ' Text +'attribute' Keyword +' ' Text +'byte' Keyword.Type +' ' Text +'dashed-attribute' Name.Variable +';' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'dashed-method' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n\n ' Text +'// If you add things here, add them to TestExampleGen and TestJSImplGen as well' Comment.Single +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'interface' Keyword +' ' Text +'TestParentInterface' Name.Class +' ' Text +'{' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'interface' Keyword +' ' Text +'TestChildInterface' Name.Class +' ' Text +':' Punctuation +' ' Text +'TestParentInterface' Name.Class +' ' Text +'{' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'interface' Keyword +' ' Text +'TestNonWrapperCacheInterface' Name.Class +' ' Text +'{' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'[' Punctuation +'NoInterfaceObject' Name.Decorator +']' Punctuation +'\n' Text + +'interface' Keyword +' ' Text +'ImplementedInterfaceParent' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'implementedParentMethod' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'boolean' Keyword.Type +' ' Text +'implementedParentProperty' Name.Variable +';' Punctuation +'\n\n ' Text +'const' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'implementedParentConstant' Name.Constant +' ' Text +'=' Punctuation +' ' Text +'8' Literal.Number.Integer +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'ImplementedInterfaceParent' Name.Class +' ' Text +'implements' Keyword +' ' Text +'IndirectlyImplementedInterface' Name.Class +';' Punctuation +'\n\n' Text + +'[' Punctuation +'NoInterfaceObject' Name.Decorator +']' Punctuation +'\n' Text + +'interface' Keyword +' ' Text +'IndirectlyImplementedInterface' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'indirectlyImplementedMethod' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'boolean' Keyword.Type +' ' Text +'indirectlyImplementedProperty' Name.Variable +';' Punctuation +'\n\n ' Text +'const' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'indirectlyImplementedConstant' Name.Constant +' ' Text +'=' Punctuation +' ' Text +'9' Literal.Number.Integer +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'[' Punctuation +'NoInterfaceObject' Name.Decorator +']' Punctuation +'\n' Text + +'interface' Keyword +' ' Text +'ImplementedInterface' Name.Class +' ' Text +':' Punctuation +' ' Text +'ImplementedInterfaceParent' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'implementedMethod' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'attribute' Keyword +' ' Text +'boolean' Keyword.Type +' ' Text +'implementedProperty' Name.Variable +';' Punctuation +'\n\n ' Text +'const' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'implementedConstant' Name.Constant +' ' Text +'=' Punctuation +' ' Text +'5' Literal.Number.Integer +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'[' Punctuation +'NoInterfaceObject' Name.Decorator +']' Punctuation +'\n' Text + +'interface' Keyword +' ' Text +'DiamondImplements' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'diamondImplementedProperty' Name.Variable +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n' Text + +'[' Punctuation +'NoInterfaceObject' Name.Decorator +']' Punctuation +'\n' Text + +'interface' Keyword +' ' Text +'DiamondBranch1A' Name.Class +' ' Text +'{' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n' Text + +'[' Punctuation +'NoInterfaceObject' Name.Decorator +']' Punctuation +'\n' Text + +'interface' Keyword +' ' Text +'DiamondBranch1B' Name.Class +' ' Text +'{' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n' Text + +'[' Punctuation +'NoInterfaceObject' Name.Decorator +']' Punctuation +'\n' Text + +'interface' Keyword +' ' Text +'DiamondBranch2A' Name.Class +' ' Text +':' Punctuation +' ' Text +'DiamondImplements' Name.Class +' ' Text +'{' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n' Text + +'[' Punctuation +'NoInterfaceObject' Name.Decorator +']' Punctuation +'\n' Text + +'interface' Keyword +' ' Text +'DiamondBranch2B' Name.Class +' ' Text +':' Punctuation +' ' Text +'DiamondImplements' Name.Class +' ' Text +'{' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n' Text + +'TestInterface' Name.Class +' ' Text +'implements' Keyword +' ' Text +'DiamondBranch1A' Name.Class +';' Punctuation +'\n' Text + +'TestInterface' Name.Class +' ' Text +'implements' Keyword +' ' Text +'DiamondBranch1B' Name.Class +';' Punctuation +'\n' Text + +'TestInterface' Name.Class +' ' Text +'implements' Keyword +' ' Text +'DiamondBranch2A' Name.Class +';' Punctuation +'\n' Text + +'TestInterface' Name.Class +' ' Text +'implements' Keyword +' ' Text +'DiamondBranch2B' Name.Class +';' Punctuation +'\n' Text + +'DiamondBranch1A' Name.Class +' ' Text +'implements' Keyword +' ' Text +'DiamondImplements' Name.Class +';' Punctuation +'\n' Text + +'DiamondBranch1B' Name.Class +' ' Text +'implements' Keyword +' ' Text +'DiamondImplements' Name.Class +';' Punctuation +'\n\n' Text + +'dictionary' Keyword +' ' Text +'Dict' Name.Class +' ' Text +':' Punctuation +' ' Text +'ParentDict' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'TestEnum' Name.Class +' ' Text +'someEnum' Name.Variable +';' Punctuation +'\n ' Text +'long' Keyword.Type +' ' Text +'x' Name.Variable +';' Punctuation +'\n ' Text +'long' Keyword.Type +' ' Text +'a' Name.Variable +';' Punctuation +'\n ' Text +'long' Keyword.Type +' ' Text +'b' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'8' Literal.Number.Integer +';' Punctuation +'\n ' Text +'long' Keyword.Type +' ' Text +'z' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'9' Literal.Number.Integer +';' Punctuation +'\n ' Text +'[' Punctuation +'EnforceRange' Name.Decorator +']' Punctuation +' ' Text +'unsigned long' Keyword.Type +' ' Text +'enforcedUnsignedLong' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Clamp' Name.Decorator +']' Punctuation +' ' Text +'unsigned long' Keyword.Type +' ' Text +'clampedUnsignedLong' Name.Variable +';' Punctuation +'\n ' Text +'DOMString' Keyword.Type +' ' Text +'str' Name.Variable +';' Punctuation +'\n ' Text +'DOMString' Keyword.Type +' ' Text +'empty' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'""' Literal.String +';' Punctuation +'\n ' Text +'TestEnum' Name.Class +' ' Text +'otherEnum' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'"b"' Literal.String +';' Punctuation +'\n ' Text +'DOMString' Keyword.Type +' ' Text +'otherStr' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'"def"' Literal.String +';' Punctuation +'\n ' Text +'DOMString' Keyword.Type +'?' Punctuation +' ' Text +'yetAnotherStr' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +';' Punctuation +'\n ' Text +'DOMString' Keyword.Type +' ' Text +'template' Name.Variable +';' Punctuation +'\n ' Text +'ByteString' Keyword.Type +' ' Text +'byteStr' Name.Variable +';' Punctuation +'\n ' Text +'ByteString' Keyword.Type +' ' Text +'emptyByteStr' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'""' Literal.String +';' Punctuation +'\n ' Text +'ByteString' Keyword.Type +' ' Text +'otherByteStr' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'"def"' Literal.String +';' Punctuation +'\n ' Text +'object' Keyword.Type +' ' Text +'someObj' Name.Variable +';' Punctuation +'\n ' Text +'boolean' Keyword.Type +' ' Text +'prototype' Name.Variable +';' Punctuation +'\n ' Text +'object' Keyword.Type +'?' Punctuation +' ' Text +'anotherObj' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +';' Punctuation +'\n ' Text +'TestCallback' Name.Class +'?' Punctuation +' ' Text +'someCallback' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +';' Punctuation +'\n ' Text +'any' Keyword.Type +' ' Text +'someAny' Name.Variable +';' Punctuation +'\n ' Text +'any' Keyword.Type +' ' Text +'anotherAny' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +';' Punctuation +'\n\n ' Text +'unrestricted float' Keyword.Type +' ' Text +'urFloat' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'0' Literal.Number.Oct +';' Punctuation +'\n ' Text +'unrestricted float' Keyword.Type +' ' Text +'urFloat2' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'1.1' Literal.Number.Float +';' Punctuation +'\n ' Text +'unrestricted float' Keyword.Type +' ' Text +'urFloat3' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'-1.1' Literal.Number.Float +';' Punctuation +'\n ' Text +'unrestricted float' Keyword.Type +'?' Punctuation +' ' Text +'urFloat4' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +';' Punctuation +'\n ' Text +'unrestricted float' Keyword.Type +' ' Text +'infUrFloat' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'Infinity' Keyword.Constant +';' Punctuation +'\n ' Text +'unrestricted float' Keyword.Type +' ' Text +'negativeInfUrFloat' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'-Infinity' Keyword.Constant +';' Punctuation +'\n ' Text +'unrestricted float' Keyword.Type +' ' Text +'nanUrFloat' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'NaN' Keyword.Constant +';' Punctuation +'\n\n ' Text +'unrestricted double' Keyword.Type +' ' Text +'urDouble' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'0' Literal.Number.Oct +';' Punctuation +'\n ' Text +'unrestricted double' Keyword.Type +' ' Text +'urDouble2' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'1.1' Literal.Number.Float +';' Punctuation +'\n ' Text +'unrestricted double' Keyword.Type +' ' Text +'urDouble3' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'-1.1' Literal.Number.Float +';' Punctuation +'\n ' Text +'unrestricted double' Keyword.Type +'?' Punctuation +' ' Text +'urDouble4' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +';' Punctuation +'\n ' Text +'unrestricted double' Keyword.Type +' ' Text +'infUrDouble' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'Infinity' Keyword.Constant +';' Punctuation +'\n ' Text +'unrestricted double' Keyword.Type +' ' Text +'negativeInfUrDouble' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'-Infinity' Keyword.Constant +';' Punctuation +'\n ' Text +'unrestricted double' Keyword.Type +' ' Text +'nanUrDouble' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'NaN' Keyword.Constant +';' Punctuation +'\n\n ' Text +'(' Punctuation +'float' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +' ' Text +'floatOrString' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'"str"' Literal.String +';' Punctuation +'\n ' Text +'(' Punctuation +'float' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'nullableFloatOrString' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'"str"' Literal.String +';' Punctuation +'\n ' Text +'(' Punctuation +'object' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'objectOrLong' Name.Variable +';' Punctuation +'\n' Text + +'#ifdef DEBUG' Comment.Preproc +'\n ' Text +'(' Punctuation +'EventInit' Name.Class +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'eventInitOrLong' Name.Variable +';' Punctuation +'\n ' Text +'(' Punctuation +'EventInit' Name.Class +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'nullableEventInitOrLong' Name.Variable +';' Punctuation +'\n ' Text +'(' Punctuation +'HTMLElement' Name.Class +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'nullableHTMLElementOrLong' Name.Variable +';' Punctuation +'\n ' Text +'// CustomEventInit is useful to test because it needs rooting.' Comment.Single +'\n ' Text +'(' Punctuation +'CustomEventInit' Name.Class +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'eventInitOrLong2' Name.Variable +';' Punctuation +'\n ' Text +'(' Punctuation +'CustomEventInit' Name.Class +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'nullableEventInitOrLong2' Name.Variable +';' Punctuation +'\n ' Text +'(' Punctuation +'EventInit' Name.Class +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'eventInitOrLongWithDefaultValue' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +';' Punctuation +'\n ' Text +'(' Punctuation +'CustomEventInit' Name.Class +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'eventInitOrLongWithDefaultValue2' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +';' Punctuation +'\n ' Text +'(' Punctuation +'EventInit' Name.Class +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'eventInitOrLongWithDefaultValue3' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'5' Literal.Number.Integer +';' Punctuation +'\n ' Text +'(' Punctuation +'CustomEventInit' Name.Class +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'eventInitOrLongWithDefaultValue4' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'5' Literal.Number.Integer +';' Punctuation +'\n ' Text +'(' Punctuation +'EventInit' Name.Class +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'nullableEventInitOrLongWithDefaultValue' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +';' Punctuation +'\n ' Text +'(' Punctuation +'CustomEventInit' Name.Class +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'nullableEventInitOrLongWithDefaultValue2' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +';' Punctuation +'\n ' Text +'(' Punctuation +'EventInit' Name.Class +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'nullableEventInitOrLongWithDefaultValue3' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'5' Literal.Number.Integer +';' Punctuation +'\n ' Text +'(' Punctuation +'CustomEventInit' Name.Class +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'nullableEventInitOrLongWithDefaultValue4' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'5' Literal.Number.Integer +';' Punctuation +'\n ' Text +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'object' Keyword.Type +'>' Punctuation +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'objectSequenceOrLong' Name.Variable +';' Punctuation +'\n ' Text +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'object' Keyword.Type +'>' Punctuation +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'objectSequenceOrLongWithDefaultValue1' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'1' Literal.Number.Integer +';' Punctuation +'\n ' Text +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'object' Keyword.Type +'>' Punctuation +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +' ' Text +'objectSequenceOrLongWithDefaultValue2' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'[]' Punctuation +';' Punctuation +'\n ' Text +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'object' Keyword.Type +'>' Punctuation +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'nullableObjectSequenceOrLong' Name.Variable +';' Punctuation +'\n ' Text +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'object' Keyword.Type +'>' Punctuation +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'nullableObjectSequenceOrLongWithDefaultValue1' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'1' Literal.Number.Integer +';' Punctuation +'\n ' Text +'(' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'object' Keyword.Type +'>' Punctuation +' ' Text +'or' Keyword +' ' Text +'long' Keyword.Type +')' Punctuation +'?' Punctuation +' ' Text +'nullableObjectSequenceOrLongWithDefaultValue2' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'[]' Punctuation +';' Punctuation +'\n' Text + +'#endif' Comment.Preproc +'\n\n ' Text +'ArrayBuffer' Keyword.Type +' ' Text +'arrayBuffer' Name.Variable +';' Punctuation +'\n ' Text +'ArrayBuffer' Keyword.Type +'?' Punctuation +' ' Text +'nullableArrayBuffer' Name.Variable +';' Punctuation +'\n ' Text +'Uint8Array' Keyword.Type +' ' Text +'uint8Array' Name.Variable +';' Punctuation +'\n ' Text +'Float64Array' Keyword.Type +'?' Punctuation +' ' Text +'float64Array' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +';' Punctuation +'\n\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +' ' Text +'seq1' Name.Variable +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +' ' Text +'seq2' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'[]' Punctuation +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +'?' Punctuation +' ' Text +'seq3' Name.Variable +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +'?' Punctuation +' ' Text +'seq4' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +'?' Punctuation +' ' Text +'seq5' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'[]' Punctuation +';' Punctuation +'\n\n ' Text +'long' Keyword.Type +' ' Text +'dashed-name' Name.Variable +';' Punctuation +'\n\n ' Text +'required' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'requiredLong' Name.Variable +';' Punctuation +'\n ' Text +'required' Keyword +' ' Text +'object' Keyword.Type +' ' Text +'requiredObject' Name.Variable +';' Punctuation +'\n\n ' Text +'CustomEventInit' Name.Class +' ' Text +'customEventInit' Name.Variable +';' Punctuation +'\n ' Text +'TestDictionaryTypedef' Name.Class +' ' Text +'dictionaryTypedef' Name.Variable +';' Punctuation +'\n\n ' Text +'Promise' Keyword.Type +'<' Punctuation +'void' Keyword.Type +'>' Punctuation +' ' Text +'promise' Name.Variable +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'Promise' Keyword.Type +'<' Punctuation +'void' Keyword.Type +'>' Punctuation +'>' Punctuation +' ' Text +'promiseSequence' Name.Variable +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'dictionary' Keyword +' ' Text +'ParentDict' Name.Class +' ' Text +':' Punctuation +' ' Text +'GrandparentDict' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'long' Keyword.Type +' ' Text +'c' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'5' Literal.Number.Integer +';' Punctuation +'\n ' Text +'TestInterface' Name.Class +' ' Text +'someInterface' Name.Variable +';' Punctuation +'\n ' Text +'TestInterface' Name.Class +'?' Punctuation +' ' Text +'someNullableInterface' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +';' Punctuation +'\n ' Text +'TestExternalInterface' Name.Class +' ' Text +'someExternalInterface' Name.Variable +';' Punctuation +'\n ' Text +'any' Keyword.Type +' ' Text +'parentAny' Name.Variable +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'dictionary' Keyword +' ' Text +'DictContainingDict' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'Dict' Name.Class +' ' Text +'memberDict' Name.Variable +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'dictionary' Keyword +' ' Text +'DictContainingSequence' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'long' Keyword.Type +'>' Punctuation +' ' Text +'ourSequence' Name.Variable +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'TestInterface' Name.Class +'>' Punctuation +' ' Text +'ourSequence2' Name.Variable +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +' ' Text +'ourSequence3' Name.Variable +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'object' Keyword.Type +'>' Punctuation +' ' Text +'ourSequence4' Name.Variable +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'object' Keyword.Type +'?' Punctuation +'>' Punctuation +' ' Text +'ourSequence5' Name.Variable +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'object' Keyword.Type +'>' Punctuation +'?' Punctuation +' ' Text +'ourSequence6' Name.Variable +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'object' Keyword.Type +'?' Punctuation +'>' Punctuation +'?' Punctuation +' ' Text +'ourSequence7' Name.Variable +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'object' Keyword.Type +'>' Punctuation +'?' Punctuation +' ' Text +'ourSequence8' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'object' Keyword.Type +'?' Punctuation +'>' Punctuation +'?' Punctuation +' ' Text +'ourSequence9' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'(' Punctuation +'float' Keyword.Type +' ' Text +'or' Keyword +' ' Text +'DOMString' Keyword.Type +')' Punctuation +'>' Punctuation +' ' Text +'ourSequence10' Name.Variable +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'dictionary' Keyword +' ' Text +'DictForConstructor' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'Dict' Name.Class +' ' Text +'dict' Name.Variable +';' Punctuation +'\n ' Text +'DictContainingDict' Name.Class +' ' Text +'dict2' Name.Variable +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'Dict' Name.Class +'>' Punctuation +' ' Text +'seq1' Name.Variable +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'Dict' Name.Class +'>' Punctuation +'>' Punctuation +'?' Punctuation +' ' Text +'seq2' Name.Variable +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'sequence' Keyword.Type +'<' Punctuation +'Dict' Name.Class +'>' Punctuation +'?' Punctuation +'>' Punctuation +' ' Text +'seq3' Name.Variable +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +' ' Text +'seq4' Name.Variable +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'any' Keyword.Type +'>' Punctuation +' ' Text +'seq5' Name.Variable +';' Punctuation +'\n ' Text +'sequence' Keyword.Type +'<' Punctuation +'DictContainingSequence' Name.Class +'>' Punctuation +' ' Text +'seq6' Name.Variable +';' Punctuation +'\n ' Text +'object' Keyword.Type +' ' Text +'obj1' Name.Variable +';' Punctuation +'\n ' Text +'object' Keyword.Type +'?' Punctuation +' ' Text +'obj2' Name.Variable +';' Punctuation +'\n ' Text +'any' Keyword.Type +' ' Text +'any1' Name.Variable +' ' Text +'=' Punctuation +' ' Text +'null' Keyword.Constant +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'dictionary' Keyword +' ' Text +'DictWithConditionalMembers' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'[' Punctuation +'ChromeOnly' Name.Decorator +']' Punctuation +'\n ' Text +'long' Keyword.Type +' ' Text +'chromeOnlyMember' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'Func' Name.Decorator +'=' Punctuation +'"TestFuncControlledMember"' Literal.String +']' Punctuation +'\n ' Text +'long' Keyword.Type +' ' Text +'funcControlledMember' Name.Variable +';' Punctuation +'\n ' Text +'[' Punctuation +'ChromeOnly' Name.Decorator +',' Punctuation +' ' Text +'Func' Name.Decorator +'=' Punctuation +'"nsGenericHTMLElement::TouchEventsEnabled"' Literal.String +']' Punctuation +'\n ' Text +'long' Keyword.Type +' ' Text +'chromeOnlyFuncControlledMember' Name.Variable +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'interface' Keyword +' ' Text +'TestIndexedGetterInterface' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'getter' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'item' Name.Function +'(' Punctuation +'unsigned long' Keyword.Type +' ' Text +'idx' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'unsigned long' Keyword.Type +' ' Text +'length' Name.Variable +';' Punctuation +'\n ' Text +'legacycaller' Keyword +' ' Text +'void' Keyword.Type +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'interface' Keyword +' ' Text +'TestNamedGetterInterface' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'getter' Keyword +' ' Text +'DOMString' Keyword.Type +' ' Text +'(' Punctuation +'DOMString' Keyword.Type +' ' Text +'name' Name.Variable +')' Punctuation +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'interface' Keyword +' ' Text +'TestIndexedGetterAndSetterAndNamedGetterInterface' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'getter' Keyword +' ' Text +'DOMString' Keyword.Type +' ' Text +'(' Punctuation +'DOMString' Keyword.Type +' ' Text +'myName' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'getter' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'(' Punctuation +'unsigned long' Keyword.Type +' ' Text +'index' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'setter' Keyword +' ' Text +'creator' Keyword +' ' Text +'void' Keyword.Type +' ' Text +'(' Punctuation +'unsigned long' Keyword.Type +' ' Text +'index' Name.Variable +',' Punctuation +' ' Text +'long' Keyword.Type +' ' Text +'arg' Name.Variable +')' Punctuation +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'interface' Keyword +' ' Text +'TestIndexedAndNamedGetterInterface' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'getter' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'(' Punctuation +'unsigned long' Keyword.Type +' ' Text +'index' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'getter' Keyword +' ' Text +'DOMString' Keyword.Type +' ' Text +'namedItem' Name.Function +'(' Punctuation +'DOMString' Keyword.Type +' ' Text +'name' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'unsigned long' Keyword.Type +' ' Text +'length' Name.Variable +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'interface' Keyword +' ' Text +'TestIndexedSetterInterface' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'setter' Keyword +' ' Text +'creator' Keyword +' ' Text +'void' Keyword.Type +' ' Text +'setItem' Name.Function +'(' Punctuation +'unsigned long' Keyword.Type +' ' Text +'idx' Name.Variable +',' Punctuation +' ' Text +'DOMString' Keyword.Type +' ' Text +'item' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'getter' Keyword +' ' Text +'DOMString' Keyword.Type +' ' Text +'(' Punctuation +'unsigned long' Keyword.Type +' ' Text +'idx' Name.Variable +')' Punctuation +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'interface' Keyword +' ' Text +'TestNamedSetterInterface' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'setter' Keyword +' ' Text +'creator' Keyword +' ' Text +'void' Keyword.Type +' ' Text +'(' Punctuation +'DOMString' Keyword.Type +' ' Text +'myName' Name.Variable +',' Punctuation +' ' Text +'TestIndexedSetterInterface' Name.Class +' ' Text +'item' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'getter' Keyword +' ' Text +'TestIndexedSetterInterface' Name.Class +' ' Text +'(' Punctuation +'DOMString' Keyword.Type +' ' Text +'name' Name.Variable +')' Punctuation +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'interface' Keyword +' ' Text +'TestIndexedAndNamedSetterInterface' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'setter' Keyword +' ' Text +'creator' Keyword +' ' Text +'void' Keyword.Type +' ' Text +'(' Punctuation +'unsigned long' Keyword.Type +' ' Text +'index' Name.Variable +',' Punctuation +' ' Text +'TestIndexedSetterInterface' Name.Class +' ' Text +'item' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'getter' Keyword +' ' Text +'TestIndexedSetterInterface' Name.Class +' ' Text +'(' Punctuation +'unsigned long' Keyword.Type +' ' Text +'index' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'setter' Keyword +' ' Text +'creator' Keyword +' ' Text +'void' Keyword.Type +' ' Text +'setNamedItem' Name.Function +'(' Punctuation +'DOMString' Keyword.Type +' ' Text +'name' Name.Variable +',' Punctuation +' ' Text +'TestIndexedSetterInterface' Name.Class +' ' Text +'item' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'getter' Keyword +' ' Text +'TestIndexedSetterInterface' Name.Class +' ' Text +'(' Punctuation +'DOMString' Keyword.Type +' ' Text +'name' Name.Variable +')' Punctuation +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'interface' Keyword +' ' Text +'TestIndexedAndNamedGetterAndSetterInterface' Name.Class +' ' Text +':' Punctuation +' ' Text +'TestIndexedSetterInterface' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'getter' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'item' Name.Function +'(' Punctuation +'unsigned long' Keyword.Type +' ' Text +'index' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'getter' Keyword +' ' Text +'DOMString' Keyword.Type +' ' Text +'namedItem' Name.Function +'(' Punctuation +'DOMString' Keyword.Type +' ' Text +'name' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'setter' Keyword +' ' Text +'creator' Keyword +' ' Text +'void' Keyword.Type +' ' Text +'(' Punctuation +'unsigned long' Keyword.Type +' ' Text +'index' Name.Variable +',' Punctuation +' ' Text +'long' Keyword.Type +' ' Text +'item' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'setter' Keyword +' ' Text +'creator' Keyword +' ' Text +'void' Keyword.Type +' ' Text +'(' Punctuation +'DOMString' Keyword.Type +' ' Text +'name' Name.Variable +',' Punctuation +' ' Text +'DOMString' Keyword.Type +' ' Text +'item' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'stringifier' Keyword +' ' Text +'DOMString' Keyword.Type +' ' Text +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'unsigned long' Keyword.Type +' ' Text +'length' Name.Variable +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'interface' Keyword +' ' Text +'TestIndexedDeleterInterface' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'deleter' Keyword +' ' Text +'void' Keyword.Type +' ' Text +'delItem' Name.Function +'(' Punctuation +'unsigned long' Keyword.Type +' ' Text +'idx' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'getter' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'(' Punctuation +'unsigned long' Keyword.Type +' ' Text +'index' Name.Variable +')' Punctuation +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'interface' Keyword +' ' Text +'TestIndexedDeleterWithRetvalInterface' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'deleter' Keyword +' ' Text +'boolean' Keyword.Type +' ' Text +'delItem' Name.Function +'(' Punctuation +'unsigned long' Keyword.Type +' ' Text +'index' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'getter' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'(' Punctuation +'unsigned long' Keyword.Type +' ' Text +'index' Name.Variable +')' Punctuation +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'interface' Keyword +' ' Text +'TestNamedDeleterInterface' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'deleter' Keyword +' ' Text +'void' Keyword.Type +' ' Text +'(' Punctuation +'DOMString' Keyword.Type +' ' Text +'name' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'getter' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'(' Punctuation +'DOMString' Keyword.Type +' ' Text +'name' Name.Variable +')' Punctuation +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'interface' Keyword +' ' Text +'TestNamedDeleterWithRetvalInterface' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'deleter' Keyword +' ' Text +'boolean' Keyword.Type +' ' Text +'delNamedItem' Name.Function +'(' Punctuation +'DOMString' Keyword.Type +' ' Text +'name' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'getter' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'(' Punctuation +'DOMString' Keyword.Type +' ' Text +'name' Name.Variable +')' Punctuation +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'interface' Keyword +' ' Text +'TestIndexedAndNamedDeleterInterface' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'deleter' Keyword +' ' Text +'void' Keyword.Type +' ' Text +'(' Punctuation +'unsigned long' Keyword.Type +' ' Text +'index' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'getter' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'(' Punctuation +'unsigned long' Keyword.Type +' ' Text +'index' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'deleter' Keyword +' ' Text +'void' Keyword.Type +' ' Text +'delNamedItem' Name.Function +'(' Punctuation +'DOMString' Keyword.Type +' ' Text +'name' Name.Variable +')' Punctuation +';' Punctuation +'\n ' Text +'getter' Keyword +' ' Text +'long' Keyword.Type +' ' Text +'(' Punctuation +'DOMString' Keyword.Type +' ' Text +'name' Name.Variable +')' Punctuation +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'interface' Keyword +' ' Text +'TestCppKeywordNamedMethodsInterface' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'boolean' Keyword.Type +' ' Text +'continue' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'boolean' Keyword.Type +' ' Text +'delete' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n ' Text +'long' Keyword.Type +' ' Text +'volatile' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'[' Punctuation +'Deprecated' Name.Decorator +'=' Punctuation +'"GetAttributeNode"' Literal.String +',' Punctuation +' ' Text +'Constructor' Name.Decorator +'(' Punctuation +')' Punctuation +']' Punctuation +'\n' Text + +'interface' Keyword +' ' Text +'TestDeprecatedInterface' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'static' Keyword +' ' Text +'void' Keyword.Type +' ' Text +'alsoDeprecated' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n\n' Text + +'[' Punctuation +'Constructor' Name.Decorator +'(' Punctuation +'Promise' Keyword.Type +'<' Punctuation +'void' Keyword.Type +'>' Punctuation +' ' Text +'promise' Name.Variable +')' Punctuation +']' Punctuation +'\n' Text + +'interface' Keyword +' ' Text +'TestInterfaceWithPromiseConstructorArg' Name.Class +' ' Text +'{' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'namespace' Keyword +' ' Text +'TestNamespace' Name.Namespace +' ' Text +'{' Punctuation +'\n ' Text +'readonly' Keyword +' ' Text +'attribute' Keyword +' ' Text +'boolean' Keyword.Type +' ' Text +'foo' Name.Variable +';' Punctuation +'\n ' Text +'long' Keyword.Type +' ' Text +'bar' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'partial' Keyword +' ' Text +'namespace' Keyword +' ' Text +'TestNamespace' Name.Namespace +' ' Text +'{' Punctuation +'\n ' Text +'void' Keyword.Type +' ' Text +'baz' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'[' Punctuation +'ClassString' Name.Decorator +'=' Punctuation +'"RenamedNamespaceClassName"' Literal.String +']' Punctuation +'\n' Text + +'namespace' Keyword +' ' Text +'TestRenamedNamespace' Name.Namespace +' ' Text +'{' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'[' Punctuation +'ProtoObjectHack' Name.Decorator +']' Punctuation +'\n' Text + +'namespace' Keyword +' ' Text +'TestProtoObjectHackedNamespace' Name.Namespace +' ' Text +'{' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n\n' Text + +'[' Punctuation +'SecureContext' Name.Decorator +']' Punctuation +'\n' Text + +'interface' Keyword +' ' Text +'TestSecureContextInterface' Name.Class +' ' Text +'{' Punctuation +'\n ' Text +'static' Keyword +' ' Text +'void' Keyword.Type +' ' Text +'alsoSecureContext' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'}' Punctuation +';' Punctuation +'\n' Text |
