#
# This file describes all IDL attributes.
# If any IDL file uses an IDL attribute not listed below, the WebKit build will fail.
# If you want to add a new IDL attribute, you need to
#     (1) add the IDL attribute to this file
#     (2) add the explanation to the WebKit IDL document (https://trac.webkit.org/wiki/WebKitIDL)
#     (3) add test cases to run-bindings-tests
#
# The syntax of this file is as follows:
#     - You can write one IDL attribute per one line.
#     - "ATTR" means that the IDL attribute ATTR does not take any argument; i.e. [ATTR].
#     - "ATTR=X" means that the IDL attribute ATTR always takes one argument X; i.e. [ATTR=X].
#     - "ATTR=X|Y|Z" means that the IDL attribute ATTR takes one or more arguments
#       and the arguments are X, Y or Z; e.g. [ATTR=X], [ATTR=Y], [ATTR=X|Z], [ATTR=X|Y|Z].
#     - "ATTR=|X|Y|Z" means that the IDL attribute ATTR can take arguments
#       and the arguments are X, Y or Z; e.g. [ATTR], [ATTR=X], [ATTR=Y], [ATTR=X|Z], [ATTR=X|Y|Z].
#     - "ATTR=*" means that the IDL attribute ATTR can take arbitrary arguments;
#       e.g. [ATTR=INDEXED_DATABASE], [ATTR=deleteFunction].
#

ActiveDOMObject
AtomicString
CPPPureInterface
CachedAttribute
CallbackNeedsOperatorEqual
Callback=FunctionOnly
CallWith=Document|ScriptExecutionContext|ScriptState|ScriptArguments|CallStack|ActiveWindow|FirstWindow|CallerDocument|CallerWindow
CheckSecurity
CheckSecurityForNode
Clamp
Conditional=*
Constructor
ConstructorCallWith=Document|ScriptExecutionContext|ScriptState
ConstructorRaisesException
ConstructorTemplate=Event|TypedArray
Custom
CustomBinding
CustomGetCallData
CustomConstructor
CustomDeleteProperty
CustomGetOwnPropertyNames
CustomGetOwnPropertySlot
CustomGetPrototype
CustomGetter
CustomIndexedSetter
CustomIsReachable
CustomNamedGetter
CustomNamedSetter
CustomProxyToJSObject
CustomPut
CustomReturn
CustomSetPrototype
CustomSetter
CustomToJSObject
Deletable
DoNotCheckConstants
DoNotCheckSecurity
DoNotCheckSecurityOnGetter
DoNotCheckSecurityOnSetter
EnabledAtRuntime=*
EnabledBySetting=*
Exposed=*
ExtendsDOMGlobalObject
ForwardDeclareInHeader
GenerateIsReachable=ImplElementRoot|ImplOwnerNodeRoot|ImplScriptExecutionContext
Immutable
ImplementationLacksVTable
ImplementedAs=*
InitializedByEventConstructor
InterfaceName=*
IsImmutablePrototypeExoticObject
IsImmutablePrototypeExoticObjectOnPrototype
IsWorkerGlobalScope
JSBuiltin
JSBuiltinConstructor
JSCustom
JSCustomDefineOwnProperty
JSCustomDefineOwnPropertyOnPrototype
JSCustomFinalize
JSCustomGetOwnPropertySlotAndDescriptor
JSCustomGetter
JSCustomHeader
JSCustomIsReachable
JSCustomMarkFunction
JSCustomNamedGetterOnPrototype
JSCustomPushEventHandlerScope
JSCustomSetter
JSCustomToNativeObject
JSGenerateIsReachable=|Impl|ImplContext|ImplDocument|ImplElementRoot|ImplFrame|ImplOwnerNodeRoot
JSGenerateToJSObject
JSGenerateToNativeObject
JSLegacyParent=*
LenientThis
JSWindowEventListener
MasqueradesAsUndefined
NamedConstructor=*
NewImpurePropertyFiresWatchpoints
NoInterfaceObject
NotEnumerable
ObjCCustomImplementation
ObjCLegacyUnnamedParameters
ObjCPolymorphic
ObjCProtocol
OverrideBuiltins
PassContext
Plugin
PrivateIdentifier
PublicIdentifier
PutForwards=*
RaisesException
Reflect=*
Replaceable
ReportExtraMemoryCost
RequiresExistingAtomicString
ReturnNewObject
ReturnsCacheableValue
SetterCallWith=ScriptExecutionContext|ScriptState|ScriptArguments|CallStack|ActiveWindow|FirstWindow
SkipVTableValidation
StrictTypeChecking
SuppressToJSObject
TransferList=*
TreatNullAs=EmptyString|LegacyNullString
TypedArray=*
URL
Unforgeable
Unscopeable
V8CacheAttributeForGC
V8Custom
V8CustomConstructor
V8CustomGetter
V8CustomIsReachable
V8CustomSetter
V8CustomToJSObject
V8DependentLifetime
V8DoNotCheckSignature
V8EnabledAtRuntime=*
V8EnabledPerContext=*
V8GenerateIsReachable=ImplElementRoot|ImplOwnerRoot|ImplOwnerNodeRoot|ImplOwnerNodeRoot
V8ReadOnly
V8Unforgeable
