// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
enum InternalEnum { "foo", "bar", "baz" };
dictionary InternalDictionary {
long longMember;
[Clamp] long longMemberWithClamp;
[EnforceRange] long longMemberWithEnforceRange;
long longMemberWithDefault = 42;
long? longOrNullMember;
long? longOrNullMemberWithDefault = null;
boolean booleanMember;
double doubleMember;
unrestricted double unrestrictedDoubleMember;
DOMString stringMember;
DOMString stringMemberWithDefault = "defaultStringValue";
ByteString byteStringMember;
USVString usvStringMember;
sequence<DOMString> stringSequenceMember;
sequence<DOMString> stringSequenceMemberWithDefault = [];
sequence<DOMString>? stringSequenceOrNullMember;
InternalEnum enumMember;
InternalEnum enumMemberWithDefault = "foo";
InternalEnum? enumOrNullMember;
Element elementMember;
Element? elementOrNullMember;
object objectMember;
object? objectOrNullMemberWithDefault = null;
(double or DOMString) doubleOrStringMember;
sequence<(double or DOMString)> doubleOrStringSequenceMember;
EventTarget? eventTargetOrNullMember = null;
(InternalEnum or sequence<InternalEnum>) internalEnumOrInternalEnumSequenceMember;
any anyMember;
TestCallback callbackFunctionMember;
};