Web Inspector: Adopt Object.assign and improve its display in Console
[WebKit-https.git] / Source / WebInspectorUI / UserInterface / Models / NativeFunctionParameters.js
1 /*
2  * Copyright (C) 2015 Apple Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23  * THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 // FIXME: Provide Parameter lists for the constructors themselves? (new RegExp(...)).
27 // FIXME: Provide Parameter lists for global functions (eval, decodeURI, ...).
28
29 WebInspector.NativeConstructorFunctionParameters = {
30     Object: {
31         assign: "target, ...sources",
32         create: "prototype, [propertiesObject]",
33         defineProperty: "object, propertyName, descriptor",
34         defineProperties: "object, properties",
35         freeze: "object",
36         getOwnPropertyDescriptor: "object, propertyName",
37         getOwnPropertyNames: "object",
38         getOwnPropertySymbols: "object",
39         getPrototypeOf: "object",
40         isExtensible: "object",
41         isFrozen: "object",
42         isSealed: "object",
43         keys: "object",
44         preventExtensions: "object",
45         seal: "object",
46         __proto__: null,
47     },
48
49     Array: {
50         from: "arrayLike, [mapFunction], [thisArg]",
51         isArray: "object",
52         of: "[...values]",
53         __proto__: null,
54     },
55
56     ArrayBuffer: {
57         isView: "object",
58         transfer: "oldBuffer, [newByteLength=length]",
59         __proto__: null,
60     },
61
62     Number: {
63         isFinite: "value",
64         isInteger: "value",
65         isNaN: "value",
66         isSafeInteger: "value",
67         parseFloat: "string",
68         parseInt: "string, [radix]",
69         __proto__: null,
70     },
71
72     Math: {
73         abs: "x",
74         acos: "x",
75         acosh: "x",
76         asin: "x",
77         asinh: "x",
78         atan: "x",
79         atan2: "y, x",
80         atanh: "x",
81         cbrt: "x",
82         ceil: "x",
83         cos: "x",
84         cosh: "x",
85         exp: "x",
86         expm1: "x",
87         floor: "x",
88         fround: "x",
89         hypot: "[...x]",
90         imul: "x",
91         log: "x",
92         log1p: "x",
93         log2: "x",
94         log10: "x",
95         max: "[...x]",
96         min: "[...x]",
97         pow: "x, y",
98         round: "x",
99         sin: "x",
100         sinh: "x",
101         sqrt: "x",
102         tan: "x",
103         tanh: "x",
104         trunc: "x",
105         __proto__: null,
106     },
107
108     JSON: {
109         parse: "text, [reviver]",
110         stringify: "value, [replacer], [space]",
111         __proto__: null,
112     },
113
114     Date: {
115         parse: "dateString",
116         UTC: "year, [month], [day], [hour], [minute], [second], [ms]",
117         __proto__: null,
118     },
119
120     Promise: {
121         all: "iterable",
122         race: "iterable",
123         reject: "reason",
124         resolve: "value",
125         __proto__: null,
126     },
127
128     String: {
129         fromCharCode: "code, [...codes]",
130         __proto__: null,
131     },
132
133     Symbol: {
134         for: "key",
135         keyFor: "symbol",
136         __proto__: null,
137     },
138
139     // Autogenerated DOM Interface static methods.
140
141     IDBKeyRangeConstructor: {
142         bound: "lower, upper, [lowerOpen], [upperOpen]",
143         lowerBound: "lower, [open]",
144         only: "value",
145         upperBound: "upper, [open]",
146         __proto__: null,
147     },
148
149     MediaSourceConstructor: {
150         isTypeSupported: "type",
151         __proto__: null,
152     },
153
154     MediaStreamTrackConstructor: {
155         getSources: "callback",
156         __proto__: null,
157     },
158
159     NotificationConstructor: {
160         requestPermission: "[callback]",
161         __proto__: null,
162     },
163
164     URLConstructor: {
165         createObjectURL: "blob",
166         revokeObjectURL: "url",
167         __proto__: null,
168     },
169
170     WebKitMediaKeysConstructor: {
171         isTypeSupported: "keySystem, [type]",
172         __proto__: null,
173     },
174 };
175
176 WebInspector.NativePrototypeFunctionParameters = {
177
178     // Built-in JavaScript objects.
179     // FIXME: TypedArrays (Int8Array, etc),
180
181     Object: {
182         __defineGetter__: "propertyName, getterFunction",
183         __defineSetter__: "propertyName, setterFunction",
184         __lookupGetter__: "propertyName",
185         __lookupSetter__: "propertyName",
186         hasOwnProperty: "propertyName",
187         isPrototypeOf: "property",
188         propertyIsEnumerable: "propertyName",
189         __proto__: null,
190     },
191
192     Array: {
193         concat: "value, ...",
194         every: "callback, [thisArg]",
195         fill: "value, [startIndex=0], [endIndex=length]",
196         filter: "callback, [thisArg]",
197         find: "callback, [thisArg]",
198         findIndex: "callback, [thisArg]",
199         forEach: "callback, [thisArg]",
200         includes: "searchValue, [startIndex=0]",
201         indexOf: "searchValue, [startIndex=0]",
202         join: "[separator=\",\"]",
203         lastIndexOf: "searchValue, [startIndex=length]",
204         map: "callback, [thisArg]",
205         push: "value, ...",
206         reduce: "callback, [initialValue]",
207         reduceRight: "callback, [initialValue]",
208         slice: "[startIndex=0], [endIndex=length]",
209         some: "callback, [thisArg]",
210         sort: "[compareFunction]",
211         splice: "startIndex, [deleteCount=0], ...itemsToAdd",
212         __proto__: null,
213     },
214
215     ArrayBuffer: {
216         slice: "startIndex, [endIndex=byteLength]",
217         __proto__: null,
218     },
219
220     DataView: {
221         setInt8: "byteOffset, value",
222         setInt16: "byteOffset, value, [littleEndian=false]",
223         setInt23: "byteOffset, value, [littleEndian=false]",
224         setUint8: "byteOffset, value",
225         setUint16: "byteOffset, value, [littleEndian=false]",
226         setUint32: "byteOffset, value, [littleEndian=false]",
227         setFloat32: "byteOffset, value, [littleEndian=false]",
228         setFloat64: "byteOffset, value, [littleEndian=false]",
229         getInt8: "byteOffset",
230         getInt16: "byteOffset, [littleEndian=false]",
231         getInt23: "byteOffset, [littleEndian=false]",
232         getUint8: "byteOffset",
233         getUint16: "byteOffset, [littleEndian=false]",
234         getUint32: "byteOffset, [littleEndian=false]",
235         getFloat32: "byteOffset, [littleEndian=false]",
236         getFloat64: "byteOffset, [littleEndian=false]",
237         __proto__: null,
238     },
239
240     Date: {
241         setDate: "day",
242         setFullYear: "year, [month=getMonth()], [day=getDate()]",
243         setHours: "hours, [minutes=getMinutes()], [seconds=getSeconds()], [ms=getMilliseconds()]",
244         setMilliseconds: "ms",
245         setMinutes: "minutes, [seconds=getSeconds()], [ms=getMilliseconds()]",
246         setMonth: "month, [day=getDate()]",
247         setSeconds: "seconds, [ms=getMilliseconds()]",
248         setTime: "time",
249         setUTCDate: "day",
250         setUTCFullYear: "year, [month=getUTCMonth()], [day=getUTCDate()]",
251         setUTCHours: "hours, [minutes=getUTCMinutes()], [seconds=getUTCSeconds()], [ms=getUTCMilliseconds()]",
252         setUTCMilliseconds: "ms",
253         setUTCMinutes: "minutes, [seconds=getUTCSeconds()], [ms=getUTCMilliseconds()]",
254         setUTCMonth: "month, [day=getUTCDate()]",
255         setUTCSeconds: "seconds, [ms=getUTCMilliseconds()]",
256         setUTCTime: "time",
257         setYear: "year",
258         __proto__: null,
259     },
260
261     Function: {
262         apply: "thisObject, [argumentsArray]",
263         bind: "thisObject, ...arguments",
264         call: "thisObject, ...arguments",
265         __proto__: null,
266     },
267
268     Map: {
269         delete: "key",
270         forEach: "callback, [thisArg]",
271         get: "key",
272         has: "key",
273         set: "key, value",
274         __proto__: null,
275     },
276
277     Number: {
278         toExponential: "[digits]",
279         toFixed: "[digits]",
280         toPrecision: "[significantDigits]",
281         toString: "[radix=10]",
282         __proto__: null,
283     },
284
285     RegExp: {
286         compile: "pattern, flags",
287         exec: "string",
288         test: "string",
289         __proto__: null,
290     },
291
292     Set: {
293         delete: "value",
294         forEach: "callback, [thisArg]",
295         has: "value",
296         add: "value",
297         __proto__: null,
298     },
299
300     String: {
301         charAt: "index",
302         charCodeAt: "index",
303         concat: "string, ...",
304         includes: "searchValue, [startIndex=0]",
305         indexOf: "searchValue, [startIndex=0]",
306         lastIndexOf: "searchValue, [startIndex=length]",
307         localeCompare: "string",
308         match: "regex",
309         replace: "regex|string, replaceString|replaceHandler, [flags]",
310         search: "regex",
311         slice: "startIndex, [endIndex=length]",
312         split: "[separator], [limit]",
313         substr: "startIndex, [numberOfCharacters]",
314         substring: "startIndex, [endIndex=length]",
315         __proto__: null,
316     },
317
318     Promise: {
319         catch: "rejectionHandler",
320         then: "resolvedHandler, rejectionHandler",
321         __proto__: null,
322     },
323
324     // Curated DOM Interfaces.
325
326     Element: {
327         closest: "selectors",
328         getAttribute: "attributeName",
329         getAttributeNS: "namespace, attributeName",
330         getAttributeNode: "attributeName",
331         getAttributeNodeNS: "namespace, attributeName",
332         hasAttribute: "attributeName",
333         hasAttributeNS: "namespace, attributeName",
334         matches: "selector",
335         removeAttribute: "attributeName",
336         removeAttributeNS: "namespace, attributeName",
337         removeAttributeNode: "attributeName",
338         scrollByLines: "[lines]",
339         scrollByPages: "[pages]",
340         scrollIntoView: "[alignWithTop]",
341         scrollIntoViewIfNeeded: "[centerIfNeeded]",
342         setAttribute: "name, value",
343         setAttributeNS: "namespace, name, value",
344         setAttributeNode: "attributeNode",
345         setAttributeNodeNS: "namespace, attributeNode",
346         webkitMatchesSelector: "selectors",
347         __proto__: null,
348     },
349
350     Node: {
351         appendChild: "child",
352         cloneNode: "[deep]",
353         compareDocumentPosition: "[node]",
354         contains: "[node]",
355         insertBefore: "insertElement, referenceElement",
356         isDefaultNamespace: "[namespace]",
357         isEqualNode: "[node]",
358         lookupNamespaceURI: "prefix",
359         removeChild: "node",
360         replaceChild: "newChild, oldChild",
361         __proto__: null,
362     },
363
364     Window: {
365         alert: "[message]",
366         atob: "encodedData",
367         btoa: "stringToEncode",
368         cancelAnimationFrame: "id",
369         clearInterval: "intervalId",
370         clearTimeout: "timeoutId",
371         confirm: "[message]",
372         find: "string, [caseSensitive], [backwards], [wrapAround]",
373         getComputedStyle: "[element], [pseudoElement]",
374         getMatchedCSSRules: "[element], [pseudoElement]",
375         matchMedia: "mediaQueryString",
376         moveBy: "[deltaX], [deltaY]",
377         moveTo: "[screenX], [screenY]",
378         open: "url, windowName, [featuresString]",
379         openDatabase: "name, version, displayName, estimatedSize, [creationCallback]",
380         postMessage: "message, targetOrigin, [...transferables]",
381         prompt: "[message], [value]",
382         requestAnimationFrame: "callback",
383         resizeBy: "[deltaX], [deltaY]",
384         resizeTo: "[width], [height]",
385         scrollBy: "[deltaX], [deltaY]",
386         scrollTo: "[x], [y]",
387         setInterval: "func, [delay], [...params]",
388         setTimeout: "func, [delay], [...params]",
389         showModalDialog: "url, [arguments], [options]",
390         __proto__: null,
391     },
392
393     Document: {
394         adoptNode: "[node]",
395         caretRangeFromPoint: "[x], [y]",
396         createAttribute: "attributeName",
397         createAttributeNS: "namespace, qualifiedName",
398         createCDATASection: "data",
399         createComment: "data",
400         createElement: "tagName",
401         createElementNS: "namespace, qualifiedName",
402         createEntityReference: "name",
403         createEvent: "type",
404         createExpression: "xpath, resolver",
405         createNSResolver: "node",
406         createNodeIterator: "root, whatToShow, filter",
407         createProcessingInstruction: "target, data",
408         createTextNode: "data",
409         createTreeWalker: "root, whatToShow, filter, entityReferenceExpansion",
410         elementFromPoint: "x, y",
411         evaluate: "xpath, contextNode, namespaceResolver, resultType, result",
412         execCommand: "command, userInterface, value",
413         getCSSCanvasContext: "contextId, name, width, height",
414         getElementById: "id",
415         getElementsByName: "name",
416         getOverrideStyle: "[element], [pseudoElement]",
417         importNode: "node, deep",
418         queryCommandEnabled: "command",
419         queryCommandIndeterm: "command",
420         queryCommandState: "command",
421         queryCommandSupported: "command",
422         queryCommandValue: "command",
423         __proto__: null,
424     },
425
426     // Autogenerated DOM Interfaces.
427
428     ANGLEInstancedArrays: {
429         drawArraysInstancedANGLE: "mode, first, count, primcount",
430         drawElementsInstancedANGLE: "mode, count, type, offset, primcount",
431         vertexAttribDivisorANGLE: "index, divisor",
432         __proto__: null,
433     },
434
435     AnalyserNode: {
436         getByteFrequencyData: "array",
437         getByteTimeDomainData: "array",
438         getFloatFrequencyData: "array",
439         __proto__: null,
440     },
441
442     AudioBuffer: {
443         getChannelData: "channelIndex",
444         __proto__: null,
445     },
446
447     AudioBufferCallback: {
448         handleEvent: "audioBuffer",
449         __proto__: null,
450     },
451
452     AudioBufferSourceNode: {
453         noteGrainOn: "when, grainOffset, grainDuration",
454         noteOff: "when",
455         noteOn: "when",
456         start: "[when], [grainOffset], [grainDuration]",
457         stop: "[when]",
458         __proto__: null,
459     },
460
461     AudioListener: {
462         setOrientation: "x, y, z, xUp, yUp, zUp",
463         setPosition: "x, y, z",
464         setVelocity: "x, y, z",
465         __proto__: null,
466     },
467
468     AudioNode: {
469         connect: "destination, [output], [input]",
470         disconnect: "[output]",
471         __proto__: null,
472     },
473
474     AudioParam: {
475         cancelScheduledValues: "startTime",
476         exponentialRampToValueAtTime: "value, time",
477         linearRampToValueAtTime: "value, time",
478         setTargetAtTime: "target, time, timeConstant",
479         setTargetValueAtTime: "targetValue, time, timeConstant",
480         setValueAtTime: "value, time",
481         setValueCurveAtTime: "values, time, duration",
482         __proto__: null,
483     },
484
485     AudioTrackList: {
486         getTrackById: "id",
487         item: "index",
488         __proto__: null,
489     },
490
491     BiquadFilterNode: {
492         getFrequencyResponse: "frequencyHz, magResponse, phaseResponse",
493         __proto__: null,
494     },
495
496     Blob: {
497         slice: "[start], [end], [contentType]",
498         __proto__: null,
499     },
500
501     CSS: {
502         supports: "property, value",
503         __proto__: null,
504     },
505
506     CSSKeyframesRule: {
507         appendRule: "[rule]",
508         deleteRule: "[key]",
509         findRule: "[key]",
510         insertRule: "[rule]",
511         __proto__: null,
512     },
513
514     CSSMediaRule: {
515         deleteRule: "[index]",
516         insertRule: "[rule], [index]",
517         __proto__: null,
518     },
519
520     CSSPrimitiveValue: {
521         getFloatValue: "[unitType]",
522         setFloatValue: "[unitType], [floatValue]",
523         setStringValue: "[stringType], [stringValue]",
524         __proto__: null,
525     },
526
527     CSSRuleList: {
528         item: "[index]",
529         __proto__: null,
530     },
531
532     CSSStyleDeclaration: {
533         getPropertyCSSValue: "[propertyName]",
534         getPropertyPriority: "[propertyName]",
535         getPropertyShorthand: "[propertyName]",
536         getPropertyValue: "[propertyName]",
537         isPropertyImplicit: "[propertyName]",
538         item: "[index]",
539         removeProperty: "[propertyName]",
540         setProperty: "[propertyName], [value], [priority]",
541         __proto__: null,
542     },
543
544     CSSStyleSheet: {
545         addRule: "[selector], [style], [index]",
546         deleteRule: "[index]",
547         insertRule: "[rule], [index]",
548         removeRule: "[index]",
549         __proto__: null,
550     },
551
552     CSSSupportsRule: {
553         deleteRule: "[index]",
554         insertRule: "[rule], [index]",
555         __proto__: null,
556     },
557
558     CSSValueList: {
559         item: "[index]",
560         __proto__: null,
561     },
562
563     CanvasGradient: {
564         addColorStop: "[offset], [color]",
565         __proto__: null,
566     },
567
568     CanvasRenderingContext2D: {
569         arc: "x, y, radius, startAngle, endAngle, [anticlockwise]",
570         arcTo: "x1, y1, x2, y2, radius",
571         bezierCurveTo: "cp1x, cp1y, cp2x, cp2y, x, y",
572         clearRect: "x, y, width, height",
573         clip: "path, [winding]",
574         createImageData: "imagedata",
575         createLinearGradient: "x0, y0, x1, y1",
576         createPattern: "canvas, repetitionType",
577         createRadialGradient: "x0, y0, r0, x1, y1, r1",
578         drawFocusIfNeeded: "element",
579         drawImage: "image, x, y",
580         drawImageFromRect: "image, [sx], [sy], [sw], [sh], [dx], [dy], [dw], [dh], [compositeOperation]",
581         ellipse: "x, y, radiusX, radiusY, rotation, startAngle, endAngle, [anticlockwise]",
582         fill: "path, [winding]",
583         fillRect: "x, y, width, height",
584         fillText: "text, x, y, [maxWidth]",
585         getImageData: "sx, sy, sw, sh",
586         isPointInPath: "path, x, y, [winding]",
587         isPointInStroke: "path, x, y",
588         lineTo: "x, y",
589         measureText: "text",
590         moveTo: "x, y",
591         putImageData: "imagedata, dx, dy",
592         quadraticCurveTo: "cpx, cpy, x, y",
593         rect: "x, y, width, height",
594         rotate: "angle",
595         scale: "sx, sy",
596         setAlpha: "[alpha]",
597         setCompositeOperation: "[compositeOperation]",
598         setFillColor: "color, [alpha]",
599         setLineCap: "[cap]",
600         setLineDash: "dash",
601         setLineJoin: "[join]",
602         setLineWidth: "[width]",
603         setMiterLimit: "[limit]",
604         setShadow: "width, height, blur, [color], [alpha]",
605         setStrokeColor: "color, [alpha]",
606         setTransform: "m11, m12, m21, m22, dx, dy",
607         stroke: "path",
608         strokeRect: "x, y, width, height",
609         strokeText: "text, x, y, [maxWidth]",
610         transform: "m11, m12, m21, m22, dx, dy",
611         translate: "tx, ty",
612         webkitGetImageDataHD: "sx, sy, sw, sh",
613         webkitPutImageDataHD: "imagedata, dx, dy",
614         __proto__: null,
615     },
616
617     CharacterData: {
618         appendData: "[data]",
619         deleteData: "[offset], [length]",
620         insertData: "[offset], [data]",
621         replaceData: "[offset], [length], [data]",
622         substringData: "[offset], [length]",
623         __proto__: null,
624     },
625
626     ClientRectList: {
627         item: "[index]",
628         __proto__: null,
629     },
630
631     CommandLineAPIHost: {
632         copyText: "text",
633         databaseId: "database",
634         getEventListeners: "node",
635         inspect: "objectId, hints",
636         storageId: "storage",
637         __proto__: null,
638     },
639
640     CompositionEvent: {
641         initCompositionEvent: "[typeArg], [canBubbleArg], [cancelableArg], [viewArg], [dataArg]",
642         __proto__: null,
643     },
644
645     Crypto: {
646         getRandomValues: "array",
647         __proto__: null,
648     },
649
650     CustomEvent: {
651         initCustomEvent: "[typeArg], [canBubbleArg], [cancelableArg], [detailArg]",
652         __proto__: null,
653     },
654
655     DOMApplicationCache: {
656         /* EventTarget */
657         __proto__: null,
658     },
659
660     DOMImplementation: {
661         createCSSStyleSheet: "[title], [media]",
662         createDocument: "[namespaceURI], [qualifiedName], [doctype]",
663         createDocumentType: "[qualifiedName], [publicId], [systemId]",
664         createHTMLDocument: "[title]",
665         hasFeature: "[feature], [version]",
666         __proto__: null,
667     },
668
669     DOMParser: {
670         parseFromString: "[str], [contentType]",
671         __proto__: null,
672     },
673
674     DOMStringList: {
675         contains: "[string]",
676         item: "[index]",
677         __proto__: null,
678     },
679
680     DOMTokenList: {
681         add: "tokens...",
682         contains: "token",
683         item: "index",
684         remove: "tokens...",
685         toggle: "token, [force]",
686         __proto__: null,
687     },
688
689     DataTransfer: {
690         clearData: "[type]",
691         getData: "type",
692         setData: "type, data",
693         setDragImage: "image, x, y",
694         __proto__: null,
695     },
696
697     DataTransferItem: {
698         getAsString: "[callback]",
699         __proto__: null,
700     },
701
702     DataTransferItemList: {
703         add: "file",
704         item: "[index]",
705         __proto__: null,
706     },
707
708     Database: {
709         changeVersion: "oldVersion, newVersion, [callback], [errorCallback], [successCallback]",
710         readTransaction: "callback, [errorCallback], [successCallback]",
711         transaction: "callback, [errorCallback], [successCallback]",
712         __proto__: null,
713     },
714
715     DatabaseCallback: {
716         handleEvent: "database",
717         __proto__: null,
718     },
719
720     DedicatedWorkerGlobalScope: {
721         postMessage: "message, [messagePorts]",
722         __proto__: null,
723     },
724
725     DeviceMotionEvent: {
726         initDeviceMotionEvent: "[type], [bubbles], [cancelable], [acceleration], [accelerationIncludingGravity], [rotationRate], [interval]",
727         __proto__: null,
728     },
729
730     DeviceOrientationEvent: {
731         initDeviceOrientationEvent: "[type], [bubbles], [cancelable], [alpha], [beta], [gamma], [absolute]",
732         __proto__: null,
733     },
734
735     DocumentFragment: {
736         querySelector: "selectors",
737         querySelectorAll: "selectors",
738         __proto__: null,
739     },
740
741     Event: {
742         initEvent: "[type], [canBubble], [cancelable]",
743         __proto__: null,
744     },
745
746     FileList: {
747         item: "index",
748         __proto__: null,
749     },
750
751     FileReader: {
752         readAsArrayBuffer: "blob",
753         readAsBinaryString: "blob",
754         readAsDataURL: "blob",
755         readAsText: "blob, [encoding]",
756         __proto__: null,
757     },
758
759     FileReaderSync: {
760         readAsArrayBuffer: "blob",
761         readAsBinaryString: "blob",
762         readAsDataURL: "blob",
763         readAsText: "blob, [encoding]",
764         __proto__: null,
765     },
766
767     FontLoader: {
768         checkFont: "font, [text]",
769         loadFont: "params",
770         notifyWhenFontsReady: "callback",
771         __proto__: null,
772     },
773
774     FormData: {
775         append: "[name], [value], [filename]",
776         __proto__: null,
777     },
778
779     Geolocation: {
780         clearWatch: "watchID",
781         getCurrentPosition: "successCallback, [errorCallback], [options]",
782         watchPosition: "successCallback, [errorCallback], [options]",
783         __proto__: null,
784     },
785
786     HTMLAllCollection: {
787         item: "[index]",
788         namedItem: "name",
789         tags: "name",
790         __proto__: null,
791     },
792
793     HTMLButtonElement: {
794         setCustomValidity: "error",
795         __proto__: null,
796     },
797
798     HTMLCanvasElement: {
799         getContext: "[contextId]",
800         probablySupportsContext: "[contextId]",
801         toDataURL: "[type]",
802         __proto__: null,
803     },
804
805     HTMLCollection: {
806         item: "[index]",
807         namedItem: "[name]",
808         __proto__: null,
809     },
810
811     HTMLDocument: {
812         write: "[html]",
813         writeln: "[html]",
814         __proto__: null,
815     },
816
817     HTMLElement: {
818         insertAdjacentElement: "[position], [element]",
819         insertAdjacentHTML: "[position], [html]",
820         insertAdjacentText: "[position], [text]",
821         __proto__: null,
822     },
823
824     HTMLFieldSetElement: {
825         setCustomValidity: "error",
826         __proto__: null,
827     },
828
829     HTMLFormControlsCollection: {
830         namedItem: "[name]",
831         __proto__: null,
832     },
833
834     HTMLInputElement: {
835         setCustomValidity: "error",
836         setRangeText: "replacement",
837         setSelectionRange: "[start], [end], [direction]",
838         stepDown: "[n]",
839         stepUp: "[n]",
840         __proto__: null,
841     },
842
843     HTMLKeygenElement: {
844         setCustomValidity: "error",
845         __proto__: null,
846     },
847
848     HTMLMediaElement: {
849         addTextTrack: "kind, [label], [language]",
850         canPlayType: "[type], [keySystem]",
851         fastSeek: "time",
852         webkitAddKey: "keySystem, key, [initData], [sessionId]",
853         webkitCancelKeyRequest: "keySystem, [sessionId]",
854         webkitGenerateKeyRequest: "keySystem, [initData]",
855         webkitSetMediaKeys: "mediaKeys",
856         __proto__: null,
857     },
858
859     HTMLObjectElement: {
860         setCustomValidity: "error",
861         __proto__: null,
862     },
863
864     HTMLOptionsCollection: {
865         add: "element, [before]",
866         namedItem: "[name]",
867         remove: "[index]",
868         __proto__: null,
869     },
870
871     HTMLOutputElement: {
872         setCustomValidity: "error",
873         __proto__: null,
874     },
875
876     HTMLSelectElement: {
877         add: "element, [before]",
878         item: "index",
879         namedItem: "[name]",
880         setCustomValidity: "error",
881         __proto__: null,
882     },
883
884     HTMLTableElement: {
885         deleteRow: "[index]",
886         insertRow: "[index]",
887         __proto__: null,
888     },
889
890     HTMLTableRowElement: {
891         deleteCell: "[index]",
892         insertCell: "[index]",
893         __proto__: null,
894     },
895
896     HTMLTableSectionElement: {
897         deleteRow: "[index]",
898         insertRow: "[index]",
899         __proto__: null,
900     },
901
902     HTMLTextAreaElement: {
903         setCustomValidity: "error",
904         setRangeText: "replacement",
905         setSelectionRange: "[start], [end], [direction]",
906         __proto__: null,
907     },
908
909     HTMLVideoElement: {
910         webkitSetPresentationMode: "mode",
911         webkitSupportsPresentationMode: "mode",
912         __proto__: null,
913     },
914
915     HashChangeEvent: {
916         initHashChangeEvent: "[type], [canBubble], [cancelable], [oldURL], [newURL]",
917         __proto__: null,
918     },
919
920     History: {
921         go: "[distance]",
922         pushState: "data, title, [url]",
923         replaceState: "data, title, [url]",
924         __proto__: null,
925     },
926
927     IDBCursor: {
928         advance: "count",
929         continue: "[key]",
930         update: "value",
931         __proto__: null,
932     },
933
934     IDBDatabase: {
935         createObjectStore: "name, [options]",
936         deleteObjectStore: "name",
937         transaction: "storeName, [mode]",
938         __proto__: null,
939     },
940
941     IDBFactory: {
942         cmp: "first, second",
943         deleteDatabase: "name",
944         open: "name, [version]",
945         __proto__: null,
946     },
947
948     IDBIndex: {
949         count: "[range]",
950         get: "key",
951         getKey: "key",
952         openCursor: "[range], [direction]",
953         openKeyCursor: "[range], [direction]",
954         __proto__: null,
955     },
956
957     IDBObjectStore: {
958         add: "value, [key]",
959         count: "[range]",
960         createIndex: "name, keyPath, [options]",
961         delete: "keyRange",
962         deleteIndex: "name",
963         get: "key",
964         index: "name",
965         openCursor: "[range], [direction]",
966         put: "value, [key]",
967         __proto__: null,
968     },
969
970     IDBTransaction: {
971         objectStore: "name",
972         __proto__: null,
973     },
974
975     KeyboardEvent: {
976         initKeyboardEvent: "[type], [canBubble], [cancelable], [view], [keyIdentifier], [location], [ctrlKey], [altKey], [shiftKey], [metaKey], [altGraphKey]",
977         __proto__: null,
978     },
979
980     Location: {
981         assign: "[url]",
982         reload: "[force=false]",
983         replace: "[url]",
984         __proto__: null,
985     },
986
987     MediaController: {
988         /* EventTarget */
989         __proto__: null,
990     },
991
992     MediaControlsHost: {
993         displayNameForTrack: "track",
994         mediaUIImageData: "partID",
995         setSelectedTextTrack: "track",
996         sortedTrackListForMenu: "trackList",
997         __proto__: null,
998     },
999
1000     MediaList: {
1001         appendMedium: "[newMedium]",
1002         deleteMedium: "[oldMedium]",
1003         item: "[index]",
1004         __proto__: null,
1005     },
1006
1007     MediaQueryList: {
1008         addListener: "[listener]",
1009         removeListener: "[listener]",
1010         __proto__: null,
1011     },
1012
1013     MediaQueryListListener: {
1014         queryChanged: "[list]",
1015         __proto__: null,
1016     },
1017
1018     MediaSource: {
1019         addSourceBuffer: "type",
1020         endOfStream: "[error]",
1021         removeSourceBuffer: "buffer",
1022         __proto__: null,
1023     },
1024
1025     MediaStreamTrack: {
1026         applyConstraints: "constraints",
1027         __proto__: null,
1028     },
1029
1030     MediaStreamTrackSourcesCallback: {
1031         handleEvent: "sources",
1032         __proto__: null,
1033     },
1034
1035     MessageEvent: {
1036         initMessageEvent: "[typeArg], [canBubbleArg], [cancelableArg], [dataArg], [originArg], [lastEventIdArg], [sourceArg], [messagePorts]",
1037         webkitInitMessageEvent: "[typeArg], [canBubbleArg], [cancelableArg], [dataArg], [originArg], [lastEventIdArg], [sourceArg], [transferables]",
1038         __proto__: null,
1039     },
1040
1041     MessagePort: {
1042         /* EventTarget */
1043         __proto__: null,
1044     },
1045
1046     MimeTypeArray: {
1047         item: "[index]",
1048         namedItem: "[name]",
1049         __proto__: null,
1050     },
1051
1052     MouseEvent: {
1053         initMouseEvent: "[type], [canBubble], [cancelable], [view], [detail], [screenX], [screenY], [clientX], [clientY], [ctrlKey], [altKey], [shiftKey], [metaKey], [button], [relatedTarget]",
1054         __proto__: null,
1055     },
1056
1057     MutationEvent: {
1058         initMutationEvent: "[type], [canBubble], [cancelable], [relatedNode], [prevValue], [newValue], [attrName], [attrChange]",
1059         __proto__: null,
1060     },
1061
1062     MutationObserver: {
1063         observe: "target, options",
1064         __proto__: null,
1065     },
1066
1067     NamedNodeMap: {
1068         getNamedItem: "[name]",
1069         getNamedItemNS: "[namespaceURI], [localName]",
1070         item: "[index]",
1071         removeNamedItem: "[name]",
1072         removeNamedItemNS: "[namespaceURI], [localName]",
1073         setNamedItem: "[node]",
1074         setNamedItemNS: "[node]",
1075         __proto__: null,
1076     },
1077
1078     Navigator: {
1079         webkitGetUserMedia: "options, successCallback, [errorCallback]",
1080         __proto__: null,
1081     },
1082
1083     NavigatorUserMediaErrorCallback: {
1084         handleEvent: "error",
1085         __proto__: null,
1086     },
1087
1088     NavigatorUserMediaSuccessCallback: {
1089         handleEvent: "stream",
1090         __proto__: null,
1091     },
1092
1093     NodeFilter: {
1094         acceptNode: "[n]",
1095         __proto__: null,
1096     },
1097
1098     NodeList: {
1099         item: "index",
1100         __proto__: null,
1101     },
1102
1103     Notification: {
1104         /* EventTarget */
1105         __proto__: null,
1106     },
1107
1108     NotificationCenter: {
1109         createNotification: "iconUrl, title, body",
1110         requestPermission: "[callback]",
1111         __proto__: null,
1112     },
1113
1114     NotificationPermissionCallback: {
1115         handleEvent: "permission",
1116         __proto__: null,
1117     },
1118
1119     OESVertexArrayObject: {
1120         bindVertexArrayOES: "[arrayObject]",
1121         deleteVertexArrayOES: "[arrayObject]",
1122         isVertexArrayOES: "[arrayObject]",
1123         __proto__: null,
1124     },
1125
1126     OscillatorNode: {
1127         noteOff: "when",
1128         noteOn: "when",
1129         setPeriodicWave: "wave",
1130         start: "[when]",
1131         stop: "[when]",
1132         __proto__: null,
1133     },
1134
1135     Path2D: {
1136         addPath: "path, [transform]",
1137         arc: "[x], [y], [radius], [startAngle], [endAngle], [anticlockwise]",
1138         arcTo: "[x1], [y1], [x2], [y2], [radius]",
1139         bezierCurveTo: "[cp1x], [cp1y], [cp2x], [cp2y], [x], [y]",
1140         ellipse: "x, y, radiusX, radiusY, rotation, startAngle, endAngle, [anticlockwise]",
1141         lineTo: "[x], [y]",
1142         moveTo: "[x], [y]",
1143         quadraticCurveTo: "[cpx], [cpy], [x], [y]",
1144         rect: "[x], [y], [width], [height]",
1145         __proto__: null,
1146     },
1147
1148     Plugin: {
1149         item: "[index]",
1150         namedItem: "[name]",
1151         __proto__: null,
1152     },
1153
1154     PluginArray: {
1155         item: "[index]",
1156         namedItem: "[name]",
1157         refresh: "[reload]",
1158         __proto__: null,
1159     },
1160
1161     PositionCallback: {
1162         handleEvent: "position",
1163         __proto__: null,
1164     },
1165
1166     PositionErrorCallback: {
1167         handleEvent: "error",
1168         __proto__: null,
1169     },
1170
1171     QuickTimePluginReplacement: {
1172         postEvent: "eventName",
1173         __proto__: null,
1174     },
1175
1176     RTCDTMFSender: {
1177         insertDTMF: "tones, [duration], [interToneGap]",
1178         __proto__: null,
1179     },
1180
1181     RTCDataChannel: {
1182         send: "data",
1183         __proto__: null,
1184     },
1185
1186     RTCPeerConnectionErrorCallback: {
1187         handleEvent: "error",
1188         __proto__: null,
1189     },
1190
1191     RTCSessionDescriptionCallback: {
1192         handleEvent: "sdp",
1193         __proto__: null,
1194     },
1195
1196     RTCStatsCallback: {
1197         handleEvent: "response",
1198         __proto__: null,
1199     },
1200
1201     RTCStatsReport: {
1202         stat: "name",
1203         __proto__: null,
1204     },
1205
1206     RTCStatsResponse: {
1207         namedItem: "[name]",
1208         __proto__: null,
1209     },
1210
1211     Range: {
1212         collapse: "[toStart]",
1213         compareBoundaryPoints: "[how], [sourceRange]",
1214         compareNode: "[refNode]",
1215         comparePoint: "[refNode], [offset]",
1216         createContextualFragment: "[html]",
1217         expand: "[unit]",
1218         insertNode: "[newNode]",
1219         intersectsNode: "[refNode]",
1220         isPointInRange: "[refNode], [offset]",
1221         selectNode: "[refNode]",
1222         selectNodeContents: "[refNode]",
1223         setEnd: "[refNode], [offset]",
1224         setEndAfter: "[refNode]",
1225         setEndBefore: "[refNode]",
1226         setStart: "[refNode], [offset]",
1227         setStartAfter: "[refNode]",
1228         setStartBefore: "[refNode]",
1229         surroundContents: "[newParent]",
1230         __proto__: null,
1231     },
1232
1233     ReadableStream: {
1234         cancel: "reason",
1235         pipeThrough: "dest, options",
1236         pipeTo: "streams, options",
1237         __proto__: null,
1238     },
1239
1240     RequestAnimationFrameCallback: {
1241         handleEvent: "highResTime",
1242         __proto__: null,
1243     },
1244
1245     SQLResultSetRowList: {
1246         item: "index",
1247         __proto__: null,
1248     },
1249
1250     SQLStatementCallback: {
1251         handleEvent: "transaction, resultSet",
1252         __proto__: null,
1253     },
1254
1255     SQLStatementErrorCallback: {
1256         handleEvent: "transaction, error",
1257         __proto__: null,
1258     },
1259
1260     SQLTransaction: {
1261         executeSql: "sqlStatement, arguments, [callback], [errorCallback]",
1262         __proto__: null,
1263     },
1264
1265     SQLTransactionCallback: {
1266         handleEvent: "transaction",
1267         __proto__: null,
1268     },
1269
1270     SQLTransactionErrorCallback: {
1271         handleEvent: "error",
1272         __proto__: null,
1273     },
1274
1275     SVGAngle: {
1276         convertToSpecifiedUnits: "unitType",
1277         newValueSpecifiedUnits: "unitType, valueInSpecifiedUnits",
1278         __proto__: null,
1279     },
1280
1281     SVGAnimationElement: {
1282         beginElementAt: "[offset]",
1283         endElementAt: "[offset]",
1284         hasExtension: "[extension]",
1285         __proto__: null,
1286     },
1287
1288     SVGColor: {
1289         setColor: "colorType, rgbColor, iccColor",
1290         setRGBColor: "rgbColor",
1291         setRGBColorICCColor: "rgbColor, iccColor",
1292         __proto__: null,
1293     },
1294
1295     SVGCursorElement: {
1296         hasExtension: "[extension]",
1297         __proto__: null,
1298     },
1299
1300     SVGDocument: {
1301         createEvent: "[eventType]",
1302         __proto__: null,
1303     },
1304
1305     SVGElement: {
1306         getPresentationAttribute: "[name]",
1307         __proto__: null,
1308     },
1309
1310     SVGFEDropShadowElement: {
1311         setStdDeviation: "[stdDeviationX], [stdDeviationY]",
1312         __proto__: null,
1313     },
1314
1315     SVGFEGaussianBlurElement: {
1316         setStdDeviation: "[stdDeviationX], [stdDeviationY]",
1317         __proto__: null,
1318     },
1319
1320     SVGFEMorphologyElement: {
1321         setRadius: "[radiusX], [radiusY]",
1322         __proto__: null,
1323     },
1324
1325     SVGFilterElement: {
1326         setFilterRes: "[filterResX], [filterResY]",
1327         __proto__: null,
1328     },
1329
1330     SVGGraphicsElement: {
1331         getTransformToElement: "[element]",
1332         hasExtension: "[extension]",
1333         __proto__: null,
1334     },
1335
1336     SVGLength: {
1337         convertToSpecifiedUnits: "unitType",
1338         newValueSpecifiedUnits: "unitType, valueInSpecifiedUnits",
1339         __proto__: null,
1340     },
1341
1342     SVGLengthList: {
1343         appendItem: "item",
1344         getItem: "index",
1345         initialize: "item",
1346         insertItemBefore: "item, index",
1347         removeItem: "index",
1348         replaceItem: "item, index",
1349         __proto__: null,
1350     },
1351
1352     SVGMarkerElement: {
1353         setOrientToAngle: "[angle]",
1354         __proto__: null,
1355     },
1356
1357     SVGMaskElement: {
1358         hasExtension: "[extension]",
1359         __proto__: null,
1360     },
1361
1362     SVGMatrix: {
1363         multiply: "secondMatrix",
1364         rotate: "angle",
1365         rotateFromVector: "x, y",
1366         scale: "scaleFactor",
1367         scaleNonUniform: "scaleFactorX, scaleFactorY",
1368         skewX: "angle",
1369         skewY: "angle",
1370         translate: "x, y",
1371         __proto__: null,
1372     },
1373
1374     SVGNumberList: {
1375         appendItem: "item",
1376         getItem: "index",
1377         initialize: "item",
1378         insertItemBefore: "item, index",
1379         removeItem: "index",
1380         replaceItem: "item, index",
1381         __proto__: null,
1382     },
1383
1384     SVGPaint: {
1385         setPaint: "paintType, uri, rgbColor, iccColor",
1386         setUri: "uri",
1387         __proto__: null,
1388     },
1389
1390     SVGPathElement: {
1391         createSVGPathSegArcAbs: "[x], [y], [r1], [r2], [angle], [largeArcFlag], [sweepFlag]",
1392         createSVGPathSegArcRel: "[x], [y], [r1], [r2], [angle], [largeArcFlag], [sweepFlag]",
1393         createSVGPathSegCurvetoCubicAbs: "[x], [y], [x1], [y1], [x2], [y2]",
1394         createSVGPathSegCurvetoCubicRel: "[x], [y], [x1], [y1], [x2], [y2]",
1395         createSVGPathSegCurvetoCubicSmoothAbs: "[x], [y], [x2], [y2]",
1396         createSVGPathSegCurvetoCubicSmoothRel: "[x], [y], [x2], [y2]",
1397         createSVGPathSegCurvetoQuadraticAbs: "[x], [y], [x1], [y1]",
1398         createSVGPathSegCurvetoQuadraticRel: "[x], [y], [x1], [y1]",
1399         createSVGPathSegCurvetoQuadraticSmoothAbs: "[x], [y]",
1400         createSVGPathSegCurvetoQuadraticSmoothRel: "[x], [y]",
1401         createSVGPathSegLinetoAbs: "[x], [y]",
1402         createSVGPathSegLinetoHorizontalAbs: "[x]",
1403         createSVGPathSegLinetoHorizontalRel: "[x]",
1404         createSVGPathSegLinetoRel: "[x], [y]",
1405         createSVGPathSegLinetoVerticalAbs: "[y]",
1406         createSVGPathSegLinetoVerticalRel: "[y]",
1407         createSVGPathSegMovetoAbs: "[x], [y]",
1408         createSVGPathSegMovetoRel: "[x], [y]",
1409         getPathSegAtLength: "[distance]",
1410         getPointAtLength: "[distance]",
1411         __proto__: null,
1412     },
1413
1414     SVGPathSegList: {
1415         appendItem: "newItem",
1416         getItem: "index",
1417         initialize: "newItem",
1418         insertItemBefore: "newItem, index",
1419         removeItem: "index",
1420         replaceItem: "newItem, index",
1421         __proto__: null,
1422     },
1423
1424     SVGPatternElement: {
1425         hasExtension: "[extension]",
1426         __proto__: null,
1427     },
1428
1429     SVGPoint: {
1430         matrixTransform: "matrix",
1431         __proto__: null,
1432     },
1433
1434     SVGPointList: {
1435         appendItem: "item",
1436         getItem: "index",
1437         initialize: "item",
1438         insertItemBefore: "item, index",
1439         removeItem: "index",
1440         replaceItem: "item, index",
1441         __proto__: null,
1442     },
1443
1444     SVGSVGElement: {
1445         checkEnclosure: "[element], [rect]",
1446         checkIntersection: "[element], [rect]",
1447         createSVGTransformFromMatrix: "[matrix]",
1448         getElementById: "[elementId]",
1449         getEnclosureList: "[rect], [referenceElement]",
1450         getIntersectionList: "[rect], [referenceElement]",
1451         setCurrentTime: "[seconds]",
1452         suspendRedraw: "[maxWaitMilliseconds]",
1453         unsuspendRedraw: "[suspendHandleId]",
1454         __proto__: null,
1455     },
1456
1457     SVGStringList: {
1458         appendItem: "item",
1459         getItem: "index",
1460         initialize: "item",
1461         insertItemBefore: "item, index",
1462         removeItem: "index",
1463         replaceItem: "item, index",
1464         __proto__: null,
1465     },
1466
1467     SVGTextContentElement: {
1468         getCharNumAtPosition: "[point]",
1469         getEndPositionOfChar: "[offset]",
1470         getExtentOfChar: "[offset]",
1471         getRotationOfChar: "[offset]",
1472         getStartPositionOfChar: "[offset]",
1473         getSubStringLength: "[offset], [length]",
1474         selectSubString: "[offset], [length]",
1475         __proto__: null,
1476     },
1477
1478     SVGTransform: {
1479         setMatrix: "matrix",
1480         setRotate: "angle, cx, cy",
1481         setScale: "sx, sy",
1482         setSkewX: "angle",
1483         setSkewY: "angle",
1484         setTranslate: "tx, ty",
1485         __proto__: null,
1486     },
1487
1488     SVGTransformList: {
1489         appendItem: "item",
1490         createSVGTransformFromMatrix: "matrix",
1491         getItem: "index",
1492         initialize: "item",
1493         insertItemBefore: "item, index",
1494         removeItem: "index",
1495         replaceItem: "item, index",
1496         __proto__: null,
1497     },
1498
1499     SecurityPolicy: {
1500         allowsConnectionTo: "url",
1501         allowsFontFrom: "url",
1502         allowsFormAction: "url",
1503         allowsFrameFrom: "url",
1504         allowsImageFrom: "url",
1505         allowsMediaFrom: "url",
1506         allowsObjectFrom: "url",
1507         allowsPluginType: "type",
1508         allowsScriptFrom: "url",
1509         allowsStyleFrom: "url",
1510         __proto__: null,
1511     },
1512
1513     Selection: {
1514         addRange: "[range]",
1515         collapse: "[node], [index]",
1516         containsNode: "[node], [allowPartial]",
1517         extend: "[node], [offset]",
1518         getRangeAt: "[index]",
1519         modify: "[alter], [direction], [granularity]",
1520         selectAllChildren: "[node]",
1521         setBaseAndExtent: "[baseNode], [baseOffset], [extentNode], [extentOffset]",
1522         setPosition: "[node], [offset]",
1523         __proto__: null,
1524     },
1525
1526     SourceBuffer: {
1527         appendBuffer: "data",
1528         remove: "start, end",
1529         __proto__: null,
1530     },
1531
1532     SourceBufferList: {
1533         item: "index",
1534         __proto__: null,
1535     },
1536
1537     SpeechSynthesis: {
1538         speak: "utterance",
1539         __proto__: null,
1540     },
1541
1542     SpeechSynthesisUtterance: {
1543         /* EventTarget */
1544         __proto__: null,
1545     },
1546
1547     Storage: {
1548         getItem: "key",
1549         key: "index",
1550         removeItem: "key",
1551         setItem: "key, data",
1552         __proto__: null,
1553     },
1554
1555     StorageErrorCallback: {
1556         handleEvent: "error",
1557         __proto__: null,
1558     },
1559
1560     StorageEvent: {
1561         initStorageEvent: "[typeArg], [canBubbleArg], [cancelableArg], [keyArg], [oldValueArg], [newValueArg], [urlArg], [storageAreaArg]",
1562         __proto__: null,
1563     },
1564
1565     StorageInfo: {
1566         queryUsageAndQuota: "storageType, [usageCallback], [errorCallback]",
1567         requestQuota: "storageType, newQuotaInBytes, [quotaCallback], [errorCallback]",
1568         __proto__: null,
1569     },
1570
1571     StorageQuota: {
1572         queryUsageAndQuota: "usageCallback, [errorCallback]",
1573         requestQuota: "newQuotaInBytes, [quotaCallback], [errorCallback]",
1574         __proto__: null,
1575     },
1576
1577     StorageQuotaCallback: {
1578         handleEvent: "grantedQuotaInBytes",
1579         __proto__: null,
1580     },
1581
1582     StorageUsageCallback: {
1583         handleEvent: "currentUsageInBytes, currentQuotaInBytes",
1584         __proto__: null,
1585     },
1586
1587     StringCallback: {
1588         handleEvent: "data",
1589         __proto__: null,
1590     },
1591
1592     StyleMedia: {
1593         matchMedium: "[mediaquery]",
1594         __proto__: null,
1595     },
1596
1597     StyleSheetList: {
1598         item: "[index]",
1599         __proto__: null,
1600     },
1601
1602     Text: {
1603         replaceWholeText: "[content]",
1604         splitText: "offset",
1605         __proto__: null,
1606     },
1607
1608     TextEvent: {
1609         initTextEvent: "[typeArg], [canBubbleArg], [cancelableArg], [viewArg], [dataArg]",
1610         __proto__: null,
1611     },
1612
1613     TextTrack: {
1614         addCue: "cue",
1615         addRegion: "region",
1616         removeCue: "cue",
1617         removeRegion: "region",
1618         __proto__: null,
1619     },
1620
1621     TextTrackCue: {
1622         /* EventTarget */
1623         __proto__: null,
1624     },
1625
1626     TextTrackCueList: {
1627         getCueById: "id",
1628         item: "index",
1629         __proto__: null,
1630     },
1631
1632     TextTrackList: {
1633         getTrackById: "id",
1634         item: "index",
1635         __proto__: null,
1636     },
1637
1638     TimeRanges: {
1639         end: "index",
1640         start: "index",
1641         __proto__: null,
1642     },
1643
1644     TouchEvent: {
1645         initTouchEvent: "[touches], [targetTouches], [changedTouches], [type], [view], [screenX], [screenY], [clientX], [clientY], [ctrlKey], [altKey], [shiftKey], [metaKey]",
1646         __proto__: null,
1647     },
1648
1649     TouchList: {
1650         item: "index",
1651         __proto__: null,
1652     },
1653
1654     UIEvent: {
1655         initUIEvent: "[type], [canBubble], [cancelable], [view], [detail]",
1656         __proto__: null,
1657     },
1658
1659     UserMessageHandler: {
1660         postMessage: "message",
1661         __proto__: null,
1662     },
1663
1664     VTTRegionList: {
1665         getRegionById: "id",
1666         item: "index",
1667         __proto__: null,
1668     },
1669
1670     VideoTrackList: {
1671         getTrackById: "id",
1672         item: "index",
1673         __proto__: null,
1674     },
1675
1676     WebGL2RenderingContext: {
1677         beginQuery: "target, query",
1678         beginTransformFeedback: "primitiveMode",
1679         bindBufferBase: "target, index, buffer",
1680         bindBufferRange: "target, index, buffer, offset, size",
1681         bindSampler: "unit, sampler",
1682         bindTransformFeedback: "target, id",
1683         bindVertexArray: "vertexArray",
1684         blitFramebuffer: "srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter",
1685         clearBufferfi: "buffer, drawbuffer, depth, stencil",
1686         clearBufferfv: "buffer, drawbuffer, value",
1687         clearBufferiv: "buffer, drawbuffer, value",
1688         clearBufferuiv: "buffer, drawbuffer, value",
1689         clientWaitSync: "sync, flags, timeout",
1690         compressedTexImage3D: "target, level, internalformat, width, height, depth, border, imageSize, data",
1691         compressedTexSubImage3D: "target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data",
1692         copyBufferSubData: "readTarget, writeTarget, readOffset, writeOffset, size",
1693         copyTexSubImage3D: "target, level, xoffset, yoffset, zoffset, x, y, width, height",
1694         deleteQuery: "query",
1695         deleteSampler: "sampler",
1696         deleteSync: "sync",
1697         deleteTransformFeedback: "id",
1698         deleteVertexArray: "vertexArray",
1699         drawArraysInstanced: "mode, first, count, instanceCount",
1700         drawBuffers: "buffers",
1701         drawElementsInstanced: "mode, count, type, offset, instanceCount",
1702         drawRangeElements: "mode, start, end, count, type, offset",
1703         endQuery: "target",
1704         fenceSync: "condition, flags",
1705         framebufferTextureLayer: "target, attachment, texture, level, layer",
1706         getActiveUniformBlockName: "program, uniformBlockIndex",
1707         getActiveUniformBlockParameter: "program, uniformBlockIndex, pname",
1708         getActiveUniforms: "program, uniformIndices, pname",
1709         getBufferSubData: "target, offset, returnedData",
1710         getFragDataLocation: "program, name",
1711         getIndexedParameter: "target, index",
1712         getInternalformatParameter: "target, internalformat, pname",
1713         getQuery: "target, pname",
1714         getQueryParameter: "query, pname",
1715         getSamplerParameter: "sampler, pname",
1716         getSyncParameter: "sync, pname",
1717         getTransformFeedbackVarying: "program, index",
1718         getUniformBlockIndex: "program, uniformBlockName",
1719         getUniformIndices: "program, uniformNames",
1720         invalidateFramebuffer: "target, attachments",
1721         invalidateSubFramebuffer: "target, attachments, x, y, width, height",
1722         isQuery: "query",
1723         isSampler: "sampler",
1724         isSync: "sync",
1725         isTransformFeedback: "id",
1726         isVertexArray: "vertexArray",
1727         readBuffer: "src",
1728         renderbufferStorageMultisample: "target, samples, internalformat, width, height",
1729         samplerParameterf: "sampler, pname, param",
1730         samplerParameteri: "sampler, pname, param",
1731         texImage3D: "target, level, internalformat, width, height, depth, border, format, type, pixels",
1732         texStorage2D: "target, levels, internalformat, width, height",
1733         texStorage3D: "target, levels, internalformat, width, height, depth",
1734         texSubImage3D: "target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels",
1735         transformFeedbackVaryings: "program, varyings, bufferMode",
1736         uniform1ui: "location, v0",
1737         uniform1uiv: "location, value",
1738         uniform2ui: "location, v0, v1",
1739         uniform2uiv: "location, value",
1740         uniform3ui: "location, v0, v1, v2",
1741         uniform3uiv: "location, value",
1742         uniform4ui: "location, v0, v1, v2, v3",
1743         uniform4uiv: "location, value",
1744         uniformBlockBinding: "program, uniformBlockIndex, uniformBlockBinding",
1745         uniformMatrix2x3fv: "location, transpose, value",
1746         uniformMatrix2x4fv: "location, transpose, value",
1747         uniformMatrix3x2fv: "location, transpose, value",
1748         uniformMatrix3x4fv: "location, transpose, value",
1749         uniformMatrix4x2fv: "location, transpose, value",
1750         uniformMatrix4x3fv: "location, transpose, value",
1751         vertexAttribDivisor: "index, divisor",
1752         vertexAttribI4i: "index, x, y, z, w",
1753         vertexAttribI4iv: "index, v",
1754         vertexAttribI4ui: "index, x, y, z, w",
1755         vertexAttribI4uiv: "index, v",
1756         vertexAttribIPointer: "index, size, type, stride, offset",
1757         waitSync: "sync, flags, timeout",
1758         __proto__: null,
1759     },
1760
1761     WebGLDebugShaders: {
1762         getTranslatedShaderSource: "shader",
1763         __proto__: null,
1764     },
1765
1766     WebGLDrawBuffers: {
1767         drawBuffersWEBGL: "buffers",
1768         __proto__: null,
1769     },
1770
1771     WebGLRenderingContextBase: {
1772         activeTexture: "texture",
1773         attachShader: "program, shader",
1774         bindAttribLocation: "program, index, name",
1775         bindBuffer: "target, buffer",
1776         bindFramebuffer: "target, framebuffer",
1777         bindRenderbuffer: "target, renderbuffer",
1778         bindTexture: "target, texture",
1779         blendColor: "red, green, blue, alpha",
1780         blendEquation: "mode",
1781         blendEquationSeparate: "modeRGB, modeAlpha",
1782         blendFunc: "sfactor, dfactor",
1783         blendFuncSeparate: "srcRGB, dstRGB, srcAlpha, dstAlpha",
1784         bufferData: "target, data, usage",
1785         bufferSubData: "target, offset, data",
1786         checkFramebufferStatus: "target",
1787         clear: "mask",
1788         clearColor: "red, green, blue, alpha",
1789         clearDepth: "depth",
1790         clearStencil: "s",
1791         colorMask: "red, green, blue, alpha",
1792         compileShader: "shader",
1793         compressedTexImage2D: "target, level, internalformat, width, height, border, data",
1794         compressedTexSubImage2D: "target, level, xoffset, yoffset, width, height, format, data",
1795         copyTexImage2D: "target, level, internalformat, x, y, width, height, border",
1796         copyTexSubImage2D: "target, level, xoffset, yoffset, x, y, width, height",
1797         createShader: "type",
1798         cullFace: "mode",
1799         deleteBuffer: "buffer",
1800         deleteFramebuffer: "framebuffer",
1801         deleteProgram: "program",
1802         deleteRenderbuffer: "renderbuffer",
1803         deleteShader: "shader",
1804         deleteTexture: "texture",
1805         depthFunc: "func",
1806         depthMask: "flag",
1807         depthRange: "zNear, zFar",
1808         detachShader: "program, shader",
1809         disable: "cap",
1810         disableVertexAttribArray: "index",
1811         drawArrays: "mode, first, count",
1812         drawElements: "mode, count, type, offset",
1813         enable: "cap",
1814         enableVertexAttribArray: "index",
1815         framebufferRenderbuffer: "target, attachment, renderbuffertarget, renderbuffer",
1816         framebufferTexture2D: "target, attachment, textarget, texture, level",
1817         frontFace: "mode",
1818         generateMipmap: "target",
1819         getActiveAttrib: "program, index",
1820         getActiveUniform: "program, index",
1821         getAttachedShaders: "program",
1822         getAttribLocation: "program, name",
1823         getBufferParameter: "target, pname",
1824         getExtension: "name",
1825         getFramebufferAttachmentParameter: "target, attachment, pname",
1826         getParameter: "pname",
1827         getProgramInfoLog: "program",
1828         getProgramParameter: "program, pname",
1829         getRenderbufferParameter: "target, pname",
1830         getShaderInfoLog: "shader",
1831         getShaderParameter: "shader, pname",
1832         getShaderPrecisionFormat: "shadertype, precisiontype",
1833         getShaderSource: "shader",
1834         getTexParameter: "target, pname",
1835         getUniform: "program, location",
1836         getUniformLocation: "program, name",
1837         getVertexAttrib: "index, pname",
1838         getVertexAttribOffset: "index, pname",
1839         hint: "target, mode",
1840         isBuffer: "buffer",
1841         isEnabled: "cap",
1842         isFramebuffer: "framebuffer",
1843         isProgram: "program",
1844         isRenderbuffer: "renderbuffer",
1845         isShader: "shader",
1846         isTexture: "texture",
1847         lineWidth: "width",
1848         linkProgram: "program",
1849         pixelStorei: "pname, param",
1850         polygonOffset: "factor, units",
1851         readPixels: "x, y, width, height, format, type, pixels",
1852         renderbufferStorage: "target, internalformat, width, height",
1853         sampleCoverage: "value, invert",
1854         scissor: "x, y, width, height",
1855         shaderSource: "shader, string",
1856         stencilFunc: "func, ref, mask",
1857         stencilFuncSeparate: "face, func, ref, mask",
1858         stencilMask: "mask",
1859         stencilMaskSeparate: "face, mask",
1860         stencilOp: "fail, zfail, zpass",
1861         stencilOpSeparate: "face, fail, zfail, zpass",
1862         texImage2D: "target, level, internalformat, width, height, border, format, type, pixels",
1863         texParameterf: "target, pname, param",
1864         texParameteri: "target, pname, param",
1865         texSubImage2D: "target, level, xoffset, yoffset, width, height, format, type, pixels",
1866         uniform1f: "location, x",
1867         uniform1fv: "location, v",
1868         uniform1i: "location, x",
1869         uniform1iv: "location, v",
1870         uniform2f: "location, x, y",
1871         uniform2fv: "location, v",
1872         uniform2i: "location, x, y",
1873         uniform2iv: "location, v",
1874         uniform3f: "location, x, y, z",
1875         uniform3fv: "location, v",
1876         uniform3i: "location, x, y, z",
1877         uniform3iv: "location, v",
1878         uniform4f: "location, x, y, z, w",
1879         uniform4fv: "location, v",
1880         uniform4i: "location, x, y, z, w",
1881         uniform4iv: "location, v",
1882         uniformMatrix2fv: "location, transpose, array",
1883         uniformMatrix3fv: "location, transpose, array",
1884         uniformMatrix4fv: "location, transpose, array",
1885         useProgram: "program",
1886         validateProgram: "program",
1887         vertexAttrib1f: "indx, x",
1888         vertexAttrib1fv: "indx, values",
1889         vertexAttrib2f: "indx, x, y",
1890         vertexAttrib2fv: "indx, values",
1891         vertexAttrib3f: "indx, x, y, z",
1892         vertexAttrib3fv: "indx, values",
1893         vertexAttrib4f: "indx, x, y, z, w",
1894         vertexAttrib4fv: "indx, values",
1895         vertexAttribPointer: "indx, size, type, normalized, stride, offset",
1896         viewport: "x, y, width, height",
1897         __proto__: null,
1898     },
1899
1900     WebKitCSSMatrix: {
1901         multiply: "[secondMatrix]",
1902         rotate: "[rotX], [rotY], [rotZ]",
1903         rotateAxisAngle: "[x], [y], [z], [angle]",
1904         scale: "[scaleX], [scaleY], [scaleZ]",
1905         setMatrixValue: "[string]",
1906         skewX: "[angle]",
1907         skewY: "[angle]",
1908         translate: "[x], [y], [z]",
1909         __proto__: null,
1910     },
1911
1912     WebKitMediaKeySession: {
1913         update: "key",
1914         __proto__: null,
1915     },
1916
1917     WebKitMediaKeys: {
1918         createSession: "[type], [initData]",
1919         __proto__: null,
1920     },
1921
1922     WebKitNamedFlow: {
1923         getRegionsByContent: "contentNode",
1924         __proto__: null,
1925     },
1926
1927     WebKitNamedFlowCollection: {
1928         item: "index",
1929         namedItem: "name",
1930         __proto__: null,
1931     },
1932
1933     WebKitSubtleCrypto: {
1934         decrypt: "algorithm, key, data",
1935         digest: "algorithm, data",
1936         encrypt: "algorithm, key, data",
1937         exportKey: "format, key",
1938         generateKey: "algorithm, [extractable], [keyUsages]",
1939         importKey: "format, keyData, algorithm, [extractable], [keyUsages]",
1940         sign: "algorithm, key, data",
1941         unwrapKey: "format, wrappedKey, unwrappingKey, unwrapAlgorithm, unwrappedKeyAlgorithm, [extractable], [keyUsages]",
1942         verify: "algorithm, key, signature, data",
1943         wrapKey: "format, key, wrappingKey, wrapAlgorithm",
1944         __proto__: null,
1945     },
1946
1947     WebSocket: {
1948         close: "[code], [reason]",
1949         send: "data",
1950         __proto__: null,
1951     },
1952
1953     WheelEvent: {
1954         initWebKitWheelEvent: "[wheelDeltaX], [wheelDeltaY], [view], [screenX], [screenY], [clientX], [clientY], [ctrlKey], [altKey], [shiftKey], [metaKey]",
1955         __proto__: null,
1956     },
1957
1958     Worker: {
1959         postMessage: "message, [messagePorts]",
1960         __proto__: null,
1961     },
1962
1963     WorkerGlobalScope: {
1964         clearInterval: "[handle]",
1965         clearTimeout: "[handle]",
1966         setInterval: "handler, [timeout]",
1967         setTimeout: "handler, [timeout]",
1968         __proto__: null,
1969     },
1970
1971     XMLHttpRequest: {
1972         getResponseHeader: "header",
1973         open: "method, url, [async], [user], [password]",
1974         overrideMimeType: "override",
1975         setRequestHeader: "header, value",
1976         __proto__: null,
1977     },
1978
1979     XMLHttpRequestUpload: {
1980         /* EventTarget */
1981         __proto__: null,
1982     },
1983
1984     XMLSerializer: {
1985         serializeToString: "[node]",
1986         __proto__: null,
1987     },
1988
1989     XPathEvaluator: {
1990         createExpression: "[expression], [resolver]",
1991         createNSResolver: "[nodeResolver]",
1992         evaluate: "[expression], [contextNode], [resolver], [type], [inResult]",
1993         __proto__: null,
1994     },
1995
1996     XPathExpression: {
1997         evaluate: "[contextNode], [type], [inResult]",
1998         __proto__: null,
1999     },
2000
2001     XPathNSResolver: {
2002         lookupNamespaceURI: "[prefix]",
2003         __proto__: null,
2004     },
2005
2006     XPathResult: {
2007         snapshotItem: "[index]",
2008         __proto__: null,
2009     },
2010
2011     XSLTProcessor: {
2012         getParameter: "namespaceURI, localName",
2013         importStylesheet: "[stylesheet]",
2014         removeParameter: "namespaceURI, localName",
2015         setParameter: "namespaceURI, localName, value",
2016         transformToDocument: "[source]",
2017         transformToFragment: "[source], [docVal]",
2018         __proto__: null,
2019     },
2020
2021     webkitAudioContext: {
2022         createBuffer: "numberOfChannels, numberOfFrames, sampleRate",
2023         createChannelMerger: "[numberOfInputs]",
2024         createChannelSplitter: "[numberOfOutputs]",
2025         createDelay: "[maxDelayTime]",
2026         createDelayNode: "[maxDelayTime]",
2027         createJavaScriptNode: "bufferSize, [numberOfInputChannels], [numberOfOutputChannels]",
2028         createMediaElementSource: "mediaElement",
2029         createPeriodicWave: "real, imag",
2030         createScriptProcessor: "bufferSize, [numberOfInputChannels], [numberOfOutputChannels]",
2031         decodeAudioData: "audioData, successCallback, [errorCallback]",
2032         __proto__: null,
2033     },
2034
2035     webkitAudioPannerNode: {
2036         setOrientation: "x, y, z",
2037         setPosition: "x, y, z",
2038         setVelocity: "x, y, z",
2039         __proto__: null,
2040     },
2041
2042     webkitMediaStream: {
2043         addTrack: "track",
2044         getTrackById: "trackId",
2045         removeTrack: "track",
2046         __proto__: null,
2047     },
2048
2049     webkitRTCPeerConnection: {
2050         addIceCandidate: "candidate, successCallback, failureCallback",
2051         addStream: "stream",
2052         createAnswer: "successCallback, failureCallback, [answerOptions]",
2053         createDTMFSender: "track",
2054         createDataChannel: "label, [options]",
2055         createOffer: "successCallback, failureCallback, [offerOptions]",
2056         getStats: "successCallback, failureCallback, [selector]",
2057         getStreamById: "streamId",
2058         removeStream: "stream",
2059         setLocalDescription: "description, successCallback, failureCallback",
2060         setRemoteDescription: "description, successCallback, failureCallback",
2061         updateIce: "configuration",
2062         __proto__: null,
2063     },
2064 };
2065
2066 WebInspector.NativePrototypeFunctionParameters.WeakMap = WebInspector.NativePrototypeFunctionParameters.Map;
2067 WebInspector.NativePrototypeFunctionParameters.WeakSet = WebInspector.NativePrototypeFunctionParameters.Set;
2068
2069 (function() {
2070     var EventTarget = {
2071         addEventListener: "type, listener, [useCapture=false]",
2072         removeEventListener: "type, listener, [useCapture=false]",
2073         dispatchEvent: "event",
2074     };
2075
2076     var eventTargetTypes = [
2077         "Node", "Window",
2078         "AudioNode", "AudioTrackList", "DOMApplicationCache", "FileReader", "FontLoader",
2079         "MediaController", "MediaStreamTrack", "MessagePort", "Notification", "RTCDTMFSender",
2080         "SpeechSynthesisUtterance", "TextTrack", "TextTrackCue", "TextTrackList",
2081         "VideoTrackList", "WebKitMediaKeySession", "WebKitNamedFlow", "WebSocket",
2082         "WorkerGlobalScope", "XMLHttpRequest", "webkitMediaStream", "webkitRTCPeerConnection"
2083     ];
2084
2085     for (var type of eventTargetTypes)
2086         Object.assign(WebInspector.NativePrototypeFunctionParameters[type], EventTarget);
2087
2088     var ElementQueries = {
2089         getElementsByClassName: "classNames",
2090         getElementsByTagName: "tagName",
2091         getElementsByTagNameNS: "namespace, localName",
2092         querySelector: "selectors",
2093         querySelectorAll: "selectors",
2094     };
2095
2096     Object.assign(WebInspector.NativePrototypeFunctionParameters.Element, ElementQueries);
2097     Object.assign(WebInspector.NativePrototypeFunctionParameters.Document, ElementQueries);
2098 })();