blob: 8090ed716e6df0f5e8826197cb25b99682a5f22b [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
dictionary TestDictionary {
boolean booleanMember;
long longMember = 1;
DOMString stringMember;
TestInterface testInterfaceMember;
[TreatNullAs=EmptyString] DOMString domStringTreatNullAsEmptyStringMember;
USVString? usvStringOrNullMember = null;
double? doubleOrNullMember = null;
double restrictedDoubleMember = 3.14;
unrestricted double unrestrictedDoubleMember = 3.14;
DOMString? stringOrNullMember = "default string value";
TestInterface? testInterfaceOrNullMember;
sequence<DOMString> stringSequenceMember = [];
sequence<[TreatNullAs=EmptyString] DOMString> treatNullAsStringSequenceMember = [];
sequence<TestInterface> testInterfaceSequenceMember = [];
sequence<TestObject> testObjectSequenceMember;
TestEnum enumMember = "foo";
TestEnum? enumOrNullMember;
sequence<TestEnum> enumSequenceMember;
Element? elementOrNullMember;
object objectMember;
object? objectOrNullMember;
sequence<object?> objectOrNullSequenceMember;
[ImplementedAs=createMember] boolean create;
[DeprecateAs=CreateMember, ImplementedAs=createMember] boolean deprecatedCreateMember;
// If done naively, collides with a C++ keyword.
[ImplementedAs=isPublic] boolean public;
(double or DOMString) doubleOrStringMember = 3.14;
sequence<(double or DOMString)> doubleOrStringSequenceMember;
(double or DOMString) otherDoubleOrStringMember = "default string value";
(TestInterface2 or Uint8Array) testInterface2OrUint8ArrayMember;
sequence<InternalDictionary> internalDictionarySequenceMember;
Uint8Array uint8ArrayMember;
EventTarget eventTargetMember;
any anyMember = null;
[RuntimeEnabled=RuntimeFeature] boolean runtimeMember;
[RuntimeEnabled=RuntimeFeature] boolean runtimeSecondMember;
[RuntimeEnabled=OriginTrialFeature] boolean originTrialMember;
[RuntimeEnabled=OriginTrialFeature1] boolean originTrialSecondMember;
record<ByteString, byte> recordMember;
record<USVString, TestObject> garbageCollectedRecordMember;
record<ByteString, (long or boolean)> unionInRecordMember;
record<DOMString, any> anyInRecordMember;
(Float or BooleanType) unionWithTypedefs;
([TreatNullAs=EmptyString] DOMString or long) unionWithAnnotatedTypeMember;
[Clamp] long applicableToTypeLongMember;
[TreatNullAs=EmptyString] DOMString applicableToTypeStringMember;
(double or sequence<double>) unionMemberWithSequenceDefault = [];
(TestEnum or sequence<TestEnum>) testEnumOrTestEnumSequenceMember;
(TestEnum? or sequence<TestEnum>) testEnumOrNullOrTestEnumSequenceMember;
(TestEnum or sequence<TestEnum?>) testEnumOrTestEnumOrNullSequenceMember;
sequence<double?> doubleOrNullSequenceMember;
(double? or sequence<double?>) doubleOrNullOrDoubleOrNullSequenceMember;
sequence<DOMString?> stringOrNullSequenceMember;
sequence<Element?> elementOrNullSequenceMember;
sequence<(double or DOMString)?> unionOrNullSequenceMember;
record<DOMString, double?> doubleOrNullRecordMember;
record<DOMString, DOMString?> stringOrNullRecordMember;
record<DOMString, Element?> elementOrNullRecordMember;
record<DOMString, (double or DOMString)?> unionOrNullRecordMember;
VoidCallbackFunction callbackFunctionMember;
required VoidCallbackFunction requiredCallbackFunctionMember;
boolean member-with-hyphen-in-name = false;
TreatNonObjectAsNullVoidFunction treatNonNullObjMember;
};