Can't use Object.defineProperty() to add an item to a DOMStringMap or Storage
[WebKit-https.git] / Source / WebCore / bindings / scripts / IDLAttributes.json
1 {
2     "contexts": [
3         "type",
4         "interface",
5         "attribute",
6         "operation",
7         "argument",
8         "callback-function",
9         "dictionary",
10         "dictionary-member",
11         "enum",
12         "constant",
13         "union-member",
14         "iterable",
15         "map-like",
16         "set-like"
17     ],
18     "attributes": {
19         "ActiveDOMObject": {
20             "contextsAllowed": ["interface"]
21         },
22         "AppleCopyright": {
23             "contextsAllowed": ["interface", "attribute", "operation"]
24         },
25         "AtomicString": {
26             "contextsAllowed": ["type"]
27         },
28         "CEReactions": {
29             "contextsAllowed": ["attribute", "operation"]
30         },
31         "CachedAttribute": {
32             "contextsAllowed": ["attribute"]
33         },
34         "CallbackNeedsOperatorEqual": {
35             "contextsAllowed": ["callback-function"]
36         },
37         "CallWith": {
38             "contextsAllowed": ["attribute", "operation"],
39             "values": ["Document", "ScriptExecutionContext", "ScriptState", "ScriptArguments", "CallStack", "GlobalObject", "ActiveWindow", "FirstWindow", "CallerDocument", "CallerWindow"]
40         },
41         "CheckSecurity": {
42             "contextsAllowed": ["interface"]
43         },
44         "CheckSecurityForNode": {
45             "contextsAllowed": ["attribute", "operation"]
46         },
47         "Clamp": {
48             "contextsAllowed": ["type"],
49             "standard": {
50                 "url": "https://heycam.github.io/webidl/#Clamp"
51             }
52         },
53         "Conditional": {
54             "contextsAllowed": ["interface", "dictionary", "dictionary-member", "enum", "attribute", "operation", "constant", "callback-function"],
55             "values": ["*"]
56         },
57         "ConstantsScope": {
58             "contextsAllowed": ["interface"],
59             "values": ["*"]
60         },
61         "Constructor": {
62             "contextsAllowed": ["interface"],
63             "standard": {
64                 "url": "https://heycam.github.io/webidl/#Constructor"
65             }
66         },
67         "ConstructorCallWith": {
68             "contextsAllowed": ["interface"],
69             "values": ["Document", "RuntimeFlags", "ScriptExecutionContext", "ScriptState"]
70         },
71         "ConstructorMayThrowException": {
72             "contextsAllowed": ["interface"]
73         },
74         "Custom": {
75             "contextsAllowed": ["attribute", "operation"]
76         },
77         "CustomCall": {
78             "contextsAllowed": ["interface"]
79         },
80         "CustomConstructor": {
81             "contextsAllowed": ["interface"]
82         },
83         "CustomDefineOwnProperty": {
84             "contextsAllowed": ["interface"]
85         },
86         "CustomDefineOwnPropertyOnPrototype": {
87             "contextsAllowed": ["interface"]
88         },
89         "CustomDeleteProperty": {
90             "contextsAllowed": ["interface"]
91         },
92         "CustomEnumerateProperty": {
93             "contextsAllowed": ["interface"]
94         },
95         "CustomGetOwnPropertySlot": {
96             "contextsAllowed": ["interface"]
97         },
98         "CustomGetOwnPropertySlotByIndex": {
99             "contextsAllowed": ["interface"]
100         },
101         "CustomGetOwnPropertySlotAndDescriptor": {
102             "contextsAllowed": ["interface"]
103         },
104         "CustomGetPrototype": {
105             "contextsAllowed": ["interface"]
106         },
107         "CustomGetter": {
108             "contextsAllowed": ["attribute"]
109         },
110         "CustomIndexedSetter": {
111             "contextsAllowed": ["interface"]
112         },
113         "CustomIsReachable": {
114             "contextsAllowed": ["interface"]
115         },
116         "CustomNamedGetter": {
117             "contextsAllowed": ["interface"]
118         },
119         "CustomNamedGetterOnPrototype": {
120             "contextsAllowed": ["interface"]
121         },
122         "CustomNamedSetter": {
123             "contextsAllowed": ["interface"]
124         },
125         "CustomPreventExtensions": {
126             "contextsAllowed": ["interface"]
127         },
128         "CustomProxyToJSObject": {
129             "contextsAllowed": ["interface"]
130         },
131         "CustomPushEventHandlerScope": {
132             "contextsAllowed": ["interface"]
133         },
134         "CustomPutFunction": {
135             "contextsAllowed": ["interface"]
136         },
137         "CustomSetter": {
138             "contextsAllowed": ["attribute"]
139         },
140         "CustomToJSObject": {
141             "contextsAllowed": ["interface"]
142         },
143         "CustomToStringName": {
144             "contextsAllowed": ["interface"]
145         },
146         "DOMJIT": {
147             "contextsAllowed": ["interface", "attribute", "operation"],
148             "values": ["", "ReadDOM", "Getter"]
149         },
150         "DoNotCheckConstants": {
151             "contextsAllowed": ["interface"]
152         },
153         "DoNotCheckSecurity": {
154             "contextsAllowed": ["attribute", "operation"]
155         },
156         "DoNotCheckSecurityOnGetter": {
157             "contextsAllowed": ["attribute"]
158         },
159         "DoNotCheckSecurityOnSetter": {
160             "contextsAllowed": ["attribute"]
161         },
162         "DocumentEventHandler": {
163             "contextsAllowed": ["attribute"]
164         },
165         "EnabledAtRuntime": {
166             "contextsAllowed": ["interface", "dictionary", "enum", "attribute", "operation", "constant", "iterable"],
167             "values": ["*"]
168         },
169         "EnabledBySetting": {
170             "contextsAllowed": ["interface", "dictionary", "enum", "attribute", "operation", "constant"],
171             "values": ["*"]
172         },
173         "EnabledForWorld": {
174             "contextsAllowed": ["attribute", "operation"],
175             "values": ["*"]
176         },
177         "EnforceRange": {
178             "contextsAllowed": ["type"],
179             "standard": {
180                 "url": "https://heycam.github.io/webidl/#EnforceRange"
181             }
182         },
183         "ExportMacro": {
184             "contextsAllowed": ["interface", "dictionary", "enum"],
185             "values": ["WEBCORE_EXPORT", "WEBCORE_TESTSUPPORT_EXPORT"]
186         },
187         "ExportToWrappedFunction": {
188             "contextsAllowed": ["interface"]
189         },
190         "Exposed": {
191             "contextsAllowed": ["interface", "attribute", "operation", "constant"],
192             "values": ["*"],
193             "standard": {
194                 "url": "https://heycam.github.io/webidl/#Exposed"
195             }
196         },
197         "ForwardDeclareInHeader": {
198             "contextsAllowed": ["attribute", "operation"]
199         },
200         "GenerateIsReachable": {
201             "contextsAllowed": ["interface"],
202             "values": ["", "Impl", "ImplWebGLRenderingContext", "ImplDocument", "ImplElementRoot", "ImplFrame", "ImplOwnerNodeRoot", "ImplScriptExecutionContext"]
203         },
204         "GetterMayThrowException": {
205             "contextsAllowed": ["attribute"]
206         },
207         "Global": {
208             "contextsAllowed": ["interface"],
209             "values": ["*"],
210             "standard": {
211                 "url": "https://heycam.github.io/webidl/#Global"
212             }
213         },
214         "ImplementedAs": {
215             "contextsAllowed": ["interface", "dictionary", "dictionary-member", "enum", "attribute", "operation"],
216             "values": ["*"]
217         },
218         "ImplementationLacksVTable": {
219             "contextsAllowed": ["interface"]
220         },
221         "ImplicitThis": {
222             "contextsAllowed": ["interface"]
223         },
224         "InterfaceName": {
225             "contextsAllowed": ["interface"],
226             "values": ["*"]
227         },
228         "IsImmutablePrototypeExoticObject": {
229             "contextsAllowed": ["interface"]
230         },
231         "IsImmutablePrototypeExoticObjectOnPrototype": {
232             "contextsAllowed": ["interface"]
233         },
234         "IsWeakCallback": {
235             "contextsAllowed": ["callback-function", "interface"]
236         },
237         "JSBuiltin": {
238             "contextsAllowed": ["interface", "attribute", "operation"]
239         },
240         "JSBuiltinConstructor": {
241             "contextsAllowed": ["interface"]
242         },
243         "JSCustomFinalize": {
244             "contextsAllowed": ["interface"]
245         },
246         "JSCustomHeader": {
247             "contextsAllowed": ["interface"]
248         },
249         "JSCustomMarkFunction": {
250             "contextsAllowed": ["interface"]
251         },
252         "JSCustomToNativeObject": {
253             "contextsAllowed": ["interface"]
254         },
255         "JSGenerateToJSObject": {
256             "contextsAllowed": ["interface", "dictionary", "callback-function"]
257         },
258         "JSGenerateToNativeObject": {
259             "contextsAllowed": ["interface"]
260         },
261         "JSLegacyParent": {
262             "contextsAllowed": ["interface"],
263             "values": ["*"]
264         },
265         "LegacyArrayClass": {
266             "contextsAllowed": ["interface"],
267             "standard": {
268                 "url": "https://heycam.github.io/webidl/#LegacyArrayClass"
269             },
270             "unsupported": true
271         },
272         "LegacyUnenumerableNamedProperties": {
273             "contextsAllowed": ["interface"],
274             "standard": {
275                 "url": "https://heycam.github.io/webidl/#LegacyUnenumerableNamedProperties"
276             }
277         },
278         "LegacyWindowAlias": {
279             "contextsAllowed": ["interface"],
280             "values": ["*"],
281             "standard": {
282                 "url": "https://heycam.github.io/webidl/#LegacyWindowAlias"
283             }
284         },
285         "LenientSetter": {
286             "contextsAllowed": ["attribute"],
287             "standard": {
288                 "url": "https://heycam.github.io/webidl/#LenientSetter"
289             },
290             "unsupported": true
291         },
292         "LenientThis": {
293             "contextsAllowed": ["attribute"],
294             "standard": {
295                 "url": "https://heycam.github.io/webidl/#LenientThis"
296             }
297         },
298         "MasqueradesAsUndefined": {
299             "contextsAllowed": ["interface"]
300         },
301         "MayThrowException": {
302             "contextsAllowed": ["attribute", "operation"]
303         },
304         "NamedConstructor": {
305             "contextsAllowed": ["interface"],
306             "values": ["*"],
307             "standard": {
308                 "url": "https://heycam.github.io/webidl/#NamedConstructor"
309             }
310         },
311         "NewImpurePropertyFiresWatchpoints": {
312             "contextsAllowed": ["interface"]
313         },
314         "NewObject": {
315             "contextsAllowed": ["attribute", "operation"],
316             "standard": {
317                 "url": "https://heycam.github.io/webidl/#NewObject"
318             }
319         },
320         "NoInterfaceObject": {
321             "contextsAllowed": ["interface"],
322             "standard": {
323                 "url": "https://heycam.github.io/webidl/#NoInterfaceObject"
324             }
325         },
326         "NotEnumerable": {
327             "contextsAllowed": ["attribute", "operation"]
328         },
329         "OverrideBuiltins": {
330             "contextsAllowed": ["interface"],
331             "standard": {
332                 "url": "https://heycam.github.io/webidl/#OverrideBuiltins"
333             }
334         },
335         "OverrideIDLType": {
336             "contextsAllowed": ["type"],
337             "values": ["*"]
338         },
339         "PassContext": {
340             "contextsAllowed": ["operation"],
341             "notes" : "Only used by WebKitTestRunner and DumpRenderTree"
342         },
343         "PrimaryGlobal": {
344             "contextsAllowed": ["interface"],
345             "values": ["*"],
346             "standard": {
347                 "url": "https://heycam.github.io/webidl/#Global"
348             }
349         },
350         "PrivateIdentifier": {
351             "contextsAllowed": ["interface", "attribute", "operation"]
352         },
353         "PublicIdentifier": {
354             "contextsAllowed": ["interface", "attribute", "operation"]
355         },
356         "PutForwards": {
357             "contextsAllowed": ["attribute"],
358             "values": ["*"],
359             "standard": {
360                 "url": "https://heycam.github.io/webidl/#PutForwards"
361             }
362         },
363         "Reflect": {
364             "contextsAllowed": ["attribute", "constant"],
365             "values": ["*"]
366         },
367         "Replaceable": {
368             "contextsAllowed": ["attribute"],
369             "standard": {
370                 "url": "https://heycam.github.io/webidl/#Replaceable"
371             }
372         },
373         "ReportExtraMemoryCost": {
374             "contextsAllowed": ["interface"]
375         },
376         "ReportExternalMemoryCost": {
377             "contextsAllowed": ["interface"]
378         },
379         "RequiresExistingAtomicString": {
380             "contextsAllowed": ["type"]
381         },
382         "RethrowException": {
383             "contextsAllowed": ["operation", "callback-function"]
384         },
385         "ReturnsOwnPromise": {
386             "contextsAllowed": ["operation"]
387         },
388         "SameObject": {
389             "contextsAllowed": ["attribute"],
390             "standard": {
391                 "url": "https://heycam.github.io/webidl/#Replaceable"
392             },
393             "unsupported": true
394         },
395         "SecureContext": {
396             "contextsAllowed": ["interface", "dictionary", "enum", "attribute", "operation", "constant"],
397             "standard": {
398                 "url": "https://heycam.github.io/webidl/#SecureContext"
399             },
400             "unsupported": true
401         },
402         "SetterCallWith": {
403             "contextsAllowed": ["attribute"],
404             "values": ["ScriptExecutionContext", "ScriptState", "ScriptArguments", "CallStack", "GlobalObject", "ActiveWindow", "FirstWindow"]
405         },
406         "SetterMayThrowException": {
407             "contextsAllowed": ["attribute"]
408         },
409         "SkipCallbackInvokeCheck": {
410             "contextsAllowed": ["operation", "callback-function"]
411         },
412         "SkipVTableValidation": {
413             "contextsAllowed": ["interface"]
414         },
415         "SuppressToJSObject": {
416             "contextsAllowed": ["interface"]
417         },
418         "TreatNonObjectAsNull": {
419             "contextsAllowed": ["callback-function"],
420             "standard": {
421                 "url": "https://heycam.github.io/webidl/#TreatNonObjectAsNull"
422             },
423             "unsupported": true
424         },
425         "TreatNullAs": {
426             "contextsAllowed": ["type"],
427             "values": ["EmptyString"],
428             "standard": {
429                 "url": "https://heycam.github.io/webidl/#TreatNullAs"
430             }
431         },
432         "URL": {
433             "contextsAllowed": ["attribute"]
434         },
435         "Unforgeable": {
436             "contextsAllowed": ["attribute", "operation", "interface"],
437             "standard": {
438                 "url": "https://heycam.github.io/webidl/#Unforgeable"
439             }
440         },
441         "Unscopable": {
442             "contextsAllowed": ["attribute", "operation"],
443             "standard": {
444                 "url": "https://heycam.github.io/webidl/#Unscopable"
445             }
446         },
447         "WindowEventHandler": {
448             "contextsAllowed": ["attribute"]
449         }
450     }
451 }