Bumping manifests a=b2g-bump
[gecko.git] / toolkit / devtools / tern / ecma5.js
blob634e414fd592673cbda5ce64c959c7f7579e118c
1 module.exports = {
2   "!name": "ecma5",
3   "!define": {"Error.prototype": "Error.prototype"},
4   "Infinity": {
5     "!type": "number",
6     "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Infinity",
7     "!doc": "A numeric value representing infinity."
8   },
9   "undefined": {
10     "!type": "?",
11     "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/undefined",
12     "!doc": "The value undefined."
13   },
14   "NaN": {
15     "!type": "number",
16     "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/NaN",
17     "!doc": "A value representing Not-A-Number."
18   },
19   "Object": {
20     "!type": "fn()",
21     "getPrototypeOf": {
22       "!type": "fn(obj: ?) -> ?",
23       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/getPrototypeOf",
24       "!doc": "Returns the prototype (i.e. the internal prototype) of the specified object."
25     },
26     "create": {
27       "!type": "fn(proto: ?) -> !custom:Object_create",
28       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/create",
29       "!doc": "Creates a new object with the specified prototype object and properties."
30     },
31     "defineProperty": {
32       "!type": "fn(obj: ?, prop: string, desc: ?)",
33       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/defineProperty",
34       "!doc": "Defines a new property directly on an object, or modifies an existing property on an object, and returns the object. If you want to see how to use the Object.defineProperty method with a binary-flags-like syntax, see this article."
35     },
36     "defineProperties": {
37       "!type": "fn(obj: ?, props: ?)",
38       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/defineProperty",
39       "!doc": "Defines a new property directly on an object, or modifies an existing property on an object, and returns the object. If you want to see how to use the Object.defineProperty method with a binary-flags-like syntax, see this article."
40     },
41     "getOwnPropertyDescriptor": {
42       "!type": "fn(obj: ?, prop: string) -> ?",
43       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor",
44       "!doc": "Returns a property descriptor for an own property (that is, one directly present on an object, not present by dint of being along an object's prototype chain) of a given object."
45     },
46     "keys": {
47       "!type": "fn(obj: ?) -> [string]",
48       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/keys",
49       "!doc": "Returns an array of a given object's own enumerable properties, in the same order as that provided by a for-in loop (the difference being that a for-in loop enumerates properties in the prototype chain as well)."
50     },
51     "getOwnPropertyNames": {
52       "!type": "fn(obj: ?) -> [string]",
53       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames",
54       "!doc": "Returns an array of all properties (enumerable or not) found directly upon a given object."
55     },
56     "seal": {
57       "!type": "fn(obj: ?)",
58       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/seal",
59       "!doc": "Seals an object, preventing new properties from being added to it and marking all existing properties as non-configurable. Values of present properties can still be changed as long as they are writable."
60     },
61     "isSealed": {
62       "!type": "fn(obj: ?) -> bool",
63       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/isSealed",
64       "!doc": "Determine if an object is sealed."
65     },
66     "freeze": {
67       "!type": "fn(obj: ?)",
68       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/freeze",
69       "!doc": "Freezes an object: that is, prevents new properties from being added to it; prevents existing properties from being removed; and prevents existing properties, or their enumerability, configurability, or writability, from being changed. In essence the object is made effectively immutable. The method returns the object being frozen."
70     },
71     "isFrozen": {
72       "!type": "fn(obj: ?) -> bool",
73       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/isFrozen",
74       "!doc": "Determine if an object is frozen."
75     },
76     "prototype": {
77       "!stdProto": "Object",
78       "toString": {
79         "!type": "fn() -> string",
80         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/toString",
81         "!doc": "Returns a string representing the object."
82       },
83       "toLocaleString": {
84         "!type": "fn() -> string",
85         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/toLocaleString",
86         "!doc": "Returns a string representing the object. This method is meant to be overriden by derived objects for locale-specific purposes."
87       },
88       "valueOf": {
89         "!type": "fn() -> number",
90         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/valueOf",
91         "!doc": "Returns the primitive value of the specified object"
92       },
93       "hasOwnProperty": {
94         "!type": "fn(prop: string) -> bool",
95         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/hasOwnProperty",
96         "!doc": "Returns a boolean indicating whether the object has the specified property."
97       },
98       "propertyIsEnumerable": {
99         "!type": "fn(prop: string) -> bool",
100         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable",
101         "!doc": "Returns a Boolean indicating whether the specified property is enumerable."
102       }
103     },
104     "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object",
105     "!doc": "Creates an object wrapper."
106   },
107   "Function": {
108     "!type": "fn(body: string) -> fn()",
109     "prototype": {
110       "!stdProto": "Function",
111       "apply": {
112         "!type": "fn(this: ?, args: [?])",
113         "!effects": [
114           "call and return !this this=!0 !1.<i> !1.<i> !1.<i>"
115         ],
116         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/apply",
117         "!doc": "Calls a function with a given this value and arguments provided as an array (or an array like object)."
118       },
119       "call": {
120         "!type": "fn(this: ?, args?: ?) -> !this.!ret",
121         "!effects": [
122           "call and return !this this=!0 !1 !2 !3 !4"
123         ],
124         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/call",
125         "!doc": "Calls a function with a given this value and arguments provided individually."
126       },
127       "bind": {
128         "!type": "fn(this: ?, args?: ?) -> !custom:Function_bind",
129         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/bind",
130         "!doc": "Creates a new function that, when called, has its this keyword set to the provided value, with a given sequence of arguments preceding any provided when the new function was called."
131       },
132       "prototype": "?"
133     },
134     "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function",
135     "!doc": "Every function in JavaScript is actually a Function object."
136   },
137   "Array": {
138     "!type": "fn(size: number) -> !custom:Array_ctor",
139     "isArray": {
140       "!type": "fn(value: ?) -> bool",
141       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/isArray",
142       "!doc": "Returns true if an object is an array, false if it is not."
143     },
144     "prototype": {
145       "!stdProto": "Array",
146       "length": {
147         "!type": "number",
148         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/length",
149         "!doc": "An unsigned, 32-bit integer that specifies the number of elements in an array."
150       },
151       "concat": {
152         "!type": "fn(other: [?]) -> !this",
153         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/concat",
154         "!doc": "Returns a new array comprised of this array joined with other array(s) and/or value(s)."
155       },
156       "join": {
157         "!type": "fn(separator?: string) -> string",
158         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/join",
159         "!doc": "Joins all elements of an array into a string."
160       },
161       "splice": {
162         "!type": "fn(pos: number, amount: number)",
163         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/splice",
164         "!doc": "Changes the content of an array, adding new elements while removing old elements."
165       },
166       "pop": {
167         "!type": "fn() -> !this.<i>",
168         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/pop",
169         "!doc": "Removes the last element from an array and returns that element."
170       },
171       "push": {
172         "!type": "fn(newelt: ?) -> number",
173         "!effects": [
174           "propagate !0 !this.<i>"
175         ],
176         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/push",
177         "!doc": "Mutates an array by appending the given elements and returning the new length of the array."
178       },
179       "shift": {
180         "!type": "fn() -> !this.<i>",
181         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/shift",
182         "!doc": "Removes the first element from an array and returns that element. This method changes the length of the array."
183       },
184       "unshift": {
185         "!type": "fn(newelt: ?) -> number",
186         "!effects": [
187           "propagate !0 !this.<i>"
188         ],
189         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/unshift",
190         "!doc": "Adds one or more elements to the beginning of an array and returns the new length of the array."
191       },
192       "slice": {
193         "!type": "fn(from: number, to?: number) -> !this",
194         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/slice",
195         "!doc": "Returns a shallow copy of a portion of an array."
196       },
197       "reverse": {
198         "!type": "fn()",
199         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/reverse",
200         "!doc": "Reverses an array in place.  The first array element becomes the last and the last becomes the first."
201       },
202       "sort": {
203         "!type": "fn(compare?: fn(a: ?, b: ?) -> number)",
204         "!effects": [
205           "call !0 !this.<i> !this.<i>"
206         ],
207         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/sort",
208         "!doc": "Sorts the elements of an array in place and returns the array."
209       },
210       "indexOf": {
211         "!type": "fn(elt: ?, from?: number) -> number",
212         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/indexOf",
213         "!doc": "Returns the first index at which a given element can be found in the array, or -1 if it is not present."
214       },
215       "lastIndexOf": {
216         "!type": "fn(elt: ?, from?: number) -> number",
217         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/lastIndexOf",
218         "!doc": "Returns the last index at which a given element can be found in the array, or -1 if it is not present. The array is searched backwards, starting at fromIndex."
219       },
220       "every": {
221         "!type": "fn(test: fn(elt: ?, i: number) -> bool, context?: ?) -> bool",
222         "!effects": [
223           "call !0 this=!1 !this.<i> number"
224         ],
225         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/every",
226         "!doc": "Tests whether all elements in the array pass the test implemented by the provided function."
227       },
228       "some": {
229         "!type": "fn(test: fn(elt: ?, i: number) -> bool, context?: ?) -> bool",
230         "!effects": [
231           "call !0 this=!1 !this.<i> number"
232         ],
233         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/some",
234         "!doc": "Tests whether some element in the array passes the test implemented by the provided function."
235       },
236       "filter": {
237         "!type": "fn(test: fn(elt: ?, i: number) -> bool, context?: ?) -> !this",
238         "!effects": [
239           "call !0 this=!1 !this.<i> number"
240         ],
241         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/filter",
242         "!doc": "Creates a new array with all elements that pass the test implemented by the provided function."
243       },
244       "forEach": {
245         "!type": "fn(f: fn(elt: ?, i: number), context?: ?)",
246         "!effects": [
247           "call !0 this=!1 !this.<i> number"
248         ],
249         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/forEach",
250         "!doc": "Executes a provided function once per array element."
251       },
252       "map": {
253         "!type": "fn(f: fn(elt: ?, i: number) -> ?, context?: ?) -> [!0.!ret]",
254         "!effects": [
255           "call !0 this=!1 !this.<i> number"
256         ],
257         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/map",
258         "!doc": "Creates a new array with the results of calling a provided function on every element in this array."
259       },
260       "reduce": {
261         "!type": "fn(combine: fn(sum: ?, elt: ?, i: number) -> ?, init?: ?) -> !0.!ret",
262         "!effects": [
263           "call !0 !1 !this.<i> number"
264         ],
265         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/Reduce",
266         "!doc": "Apply a function against an accumulator and each value of the array (from left-to-right) as to reduce it to a single value."
267       },
268       "reduceRight": {
269         "!type": "fn(combine: fn(sum: ?, elt: ?, i: number) -> ?, init?: ?) -> !0.!ret",
270         "!effects": [
271           "call !0 !1 !this.<i> number"
272         ],
273         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/ReduceRight",
274         "!doc": "Apply a function simultaneously against two values of the array (from right-to-left) as to reduce it to a single value."
275       }
276     },
277     "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array",
278     "!doc": "The JavaScript Array global object is a constructor for arrays, which are high-level, list-like objects."
279   },
280   "String": {
281     "!type": "fn(value: ?) -> string",
282     "fromCharCode": {
283       "!type": "fn(code: number) -> string",
284       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/fromCharCode",
285       "!doc": "Returns a string created by using the specified sequence of Unicode values."
286     },
287     "prototype": {
288       "!stdProto": "String",
289       "length": {
290         "!type": "number",
291         "!url": "https://developer.mozilla.org/en/docs/JavaScript/Reference/Global_Objects/String/length",
292         "!doc": "Represents the length of a string."
293       },
294       "<i>": "string",
295       "charAt": {
296         "!type": "fn(i: number) -> string",
297         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/charAt",
298         "!doc": "Returns the specified character from a string."
299       },
300       "charCodeAt": {
301         "!type": "fn(i: number) -> number",
302         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/charCodeAt",
303         "!doc": "Returns the numeric Unicode value of the character at the given index (except for unicode codepoints > 0x10000)."
304       },
305       "indexOf": {
306         "!type": "fn(char: string, from?: number) -> number",
307         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/indexOf",
308         "!doc": "Returns the index within the calling String object of the first occurrence of the specified value, starting the search at fromIndex,\nreturns -1 if the value is not found."
309       },
310       "lastIndexOf": {
311         "!type": "fn(char: string, from?: number) -> number",
312         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/lastIndexOf",
313         "!doc": "Returns the index within the calling String object of the last occurrence of the specified value, or -1 if not found. The calling string is searched backward, starting at fromIndex."
314       },
315       "substring": {
316         "!type": "fn(from: number, to?: number) -> string",
317         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/substring",
318         "!doc": "Returns a subset of a string between one index and another, or through the end of the string."
319       },
320       "substr": {
321         "!type": "fn(from: number, length?: number) -> string",
322         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/substr",
323         "!doc": "Returns the characters in a string beginning at the specified location through the specified number of characters."
324       },
325       "slice": {
326         "!type": "fn(from: number, to?: number) -> string",
327         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/slice",
328         "!doc": "Extracts a section of a string and returns a new string."
329       },
330       "trim": {
331         "!type": "fn() -> string",
332         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/Trim",
333         "!doc": "Removes whitespace from both ends of the string."
334       },
335       "trimLeft": {
336         "!type": "fn() -> string",
337         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/TrimLeft",
338         "!doc": "Removes whitespace from the left end of the string."
339       },
340       "trimRight": {
341         "!type": "fn() -> string",
342         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/TrimRight",
343         "!doc": "Removes whitespace from the right end of the string."
344       },
345       "toUpperCase": {
346         "!type": "fn() -> string",
347         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/toUpperCase",
348         "!doc": "Returns the calling string value converted to uppercase."
349       },
350       "toLowerCase": {
351         "!type": "fn() -> string",
352         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/toLowerCase",
353         "!doc": "Returns the calling string value converted to lowercase."
354       },
355       "toLocaleUpperCase": {
356         "!type": "fn() -> string",
357         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase",
358         "!doc": "Returns the calling string value converted to upper case, according to any locale-specific case mappings."
359       },
360       "toLocaleLowerCase": {
361         "!type": "fn() -> string",
362         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/toLocaleLowerCase",
363         "!doc": "Returns the calling string value converted to lower case, according to any locale-specific case mappings."
364       },
365       "split": {
366         "!type": "fn(pattern: string) -> [string]",
367         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/split",
368         "!doc": "Splits a String object into an array of strings by separating the string into substrings."
369       },
370       "concat": {
371         "!type": "fn(other: string) -> string",
372         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/concat",
373         "!doc": "Combines the text of two or more strings and returns a new string."
374       },
375       "localeCompare": {
376         "!type": "fn(other: string) -> number",
377         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/localeCompare",
378         "!doc": "Returns a number indicating whether a reference string comes before or after or is the same as the given string in sort order."
379       },
380       "match": {
381         "!type": "fn(pattern: +RegExp) -> [string]",
382         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/match",
383         "!doc": "Used to retrieve the matches when matching a string against a regular expression."
384       },
385       "replace": {
386         "!type": "fn(pattern: +RegExp, replacement: string) -> string",
387         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/replace",
388         "!doc": "Returns a new string with some or all matches of a pattern replaced by a replacement.  The pattern can be a string or a RegExp, and the replacement can be a string or a function to be called for each match."
389       },
390       "search": {
391         "!type": "fn(pattern: +RegExp) -> number",
392         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/search",
393         "!doc": "Executes the search for a match between a regular expression and this String object."
394       }
395     },
396     "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String",
397     "!doc": "The String global object is a constructor for strings, or a sequence of characters."
398   },
399   "Number": {
400     "!type": "fn(value: ?) -> number",
401     "MAX_VALUE": {
402       "!type": "number",
403       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/MAX_VALUE",
404       "!doc": "The maximum numeric value representable in JavaScript."
405     },
406     "MIN_VALUE": {
407       "!type": "number",
408       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/MIN_VALUE",
409       "!doc": "The smallest positive numeric value representable in JavaScript."
410     },
411     "POSITIVE_INFINITY": {
412       "!type": "number",
413       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY",
414       "!doc": "A value representing the positive Infinity value."
415     },
416     "NEGATIVE_INFINITY": {
417       "!type": "number",
418       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY",
419       "!doc": "A value representing the negative Infinity value."
420     },
421     "prototype": {
422       "!stdProto": "Number",
423       "toString": {
424         "!type": "fn(radix?: number) -> string",
425         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/toString",
426         "!doc": "Returns a string representing the specified Number object"
427       },
428       "toFixed": {
429         "!type": "fn(digits: number) -> string",
430         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/toFixed",
431         "!doc": "Formats a number using fixed-point notation"
432       },
433       "toExponential": {
434         "!type": "fn(digits: number) -> string",
435         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/toExponential",
436         "!doc": "Returns a string representing the Number object in exponential notation"
437       }
438     },
439     "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number",
440     "!doc": "The Number JavaScript object is a wrapper object allowing you to work with numerical values. A Number object is created using the Number() constructor."
441   },
442   "Boolean": {
443     "!type": "fn(value: ?) -> bool",
444     "prototype": {
445       "!stdProto": "Boolean"
446     },
447     "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Boolean",
448     "!doc": "The Boolean object is an object wrapper for a boolean value."
449   },
450   "RegExp": {
451     "!type": "fn(source: string, flags?: string)",
452     "prototype": {
453       "!stdProto": "RegExp",
454       "exec": {
455         "!type": "fn(input: string) -> [string]",
456         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp/exec",
457         "!doc": "Executes a search for a match in a specified string. Returns a result array, or null."
458       },
459       "compile": {
460         "!type": "fn(source: string, flags?: string)",
461         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp",
462         "!doc": "Creates a regular expression object for matching text with a pattern."
463       },
464       "test": {
465         "!type": "fn(input: string) -> bool",
466         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp/test",
467         "!doc": "Executes the search for a match between a regular expression and a specified string. Returns true or false."
468       },
469       "global": {
470         "!type": "bool",
471         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp",
472         "!doc": "Creates a regular expression object for matching text with a pattern."
473       },
474       "ignoreCase": {
475         "!type": "bool",
476         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp",
477         "!doc": "Creates a regular expression object for matching text with a pattern."
478       },
479       "multiline": {
480         "!type": "bool",
481         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp/multiline",
482         "!doc": "Reflects whether or not to search in strings across multiple lines.\n"
483       },
484       "source": {
485         "!type": "string",
486         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp/source",
487         "!doc": "A read-only property that contains the text of the pattern, excluding the forward slashes.\n"
488       },
489       "lastIndex": {
490         "!type": "number",
491         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp/lastIndex",
492         "!doc": "A read/write integer property that specifies the index at which to start the next match."
493       }
494     },
495     "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp",
496     "!doc": "Creates a regular expression object for matching text with a pattern."
497   },
498   "Date": {
499     "!type": "fn(ms: number)",
500     "parse": {
501       "!type": "fn(source: string) -> +Date",
502       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/parse",
503       "!doc": "Parses a string representation of a date, and returns the number of milliseconds since January 1, 1970, 00:00:00 UTC."
504     },
505     "UTC": {
506       "!type": "fn(year: number, month: number, date: number, hour?: number, min?: number, sec?: number, ms?: number) -> number",
507       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/UTC",
508       "!doc": "Accepts the same parameters as the longest form of the constructor, and returns the number of milliseconds in a Date object since January 1, 1970, 00:00:00, universal time."
509     },
510     "now": {
511       "!type": "fn() -> number",
512       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/now",
513       "!doc": "Returns the number of milliseconds elapsed since 1 January 1970 00:00:00 UTC."
514     },
515     "prototype": {
516       "toUTCString": {
517         "!type": "fn() -> string",
518         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/toUTCString",
519         "!doc": "Converts a date to a string, using the universal time convention."
520       },
521       "toISOString": {
522         "!type": "fn() -> string",
523         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/toISOString",
524         "!doc": "JavaScript provides a direct way to convert a date object into a string in ISO format, the ISO 8601 Extended Format."
525       },
526       "toDateString": {
527         "!type": "fn() -> string",
528         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/toDateString",
529         "!doc": "Returns the date portion of a Date object in human readable form in American English."
530       },
531       "toTimeString": {
532         "!type": "fn() -> string",
533         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/toTimeString",
534         "!doc": "Returns the time portion of a Date object in human readable form in American English."
535       },
536       "toLocaleDateString": {
537         "!type": "fn() -> string",
538         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/toLocaleDateString",
539         "!doc": "Converts a date to a string, returning the \"date\" portion using the operating system's locale's conventions.\n"
540       },
541       "toLocaleTimeString": {
542         "!type": "fn() -> string",
543         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString",
544         "!doc": "Converts a date to a string, returning the \"time\" portion using the current locale's conventions."
545       },
546       "getTime": {
547         "!type": "fn() -> number",
548         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getTime",
549         "!doc": "Returns the numeric value corresponding to the time for the specified date according to universal time."
550       },
551       "getFullYear": {
552         "!type": "fn() -> number",
553         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getFullYear",
554         "!doc": "Returns the year of the specified date according to local time."
555       },
556       "getYear": {
557         "!type": "fn() -> number",
558         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getYear",
559         "!doc": "Returns the year in the specified date according to local time."
560       },
561       "getMonth": {
562         "!type": "fn() -> number",
563         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getMonth",
564         "!doc": "Returns the month in the specified date according to local time."
565       },
566       "getUTCMonth": {
567         "!type": "fn() -> number",
568         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getUTCMonth",
569         "!doc": "Returns the month of the specified date according to universal time.\n"
570       },
571       "getDate": {
572         "!type": "fn() -> number",
573         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getDate",
574         "!doc": "Returns the day of the month for the specified date according to local time."
575       },
576       "getUTCDate": {
577         "!type": "fn() -> number",
578         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getUTCDate",
579         "!doc": "Returns the day (date) of the month in the specified date according to universal time.\n"
580       },
581       "getDay": {
582         "!type": "fn() -> number",
583         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getDay",
584         "!doc": "Returns the day of the week for the specified date according to local time."
585       },
586       "getUTCDay": {
587         "!type": "fn() -> number",
588         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getUTCDay",
589         "!doc": "Returns the day of the week in the specified date according to universal time.\n"
590       },
591       "getHours": {
592         "!type": "fn() -> number",
593         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getHours",
594         "!doc": "Returns the hour for the specified date according to local time."
595       },
596       "getUTCHours": {
597         "!type": "fn() -> number",
598         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getUTCHours",
599         "!doc": "Returns the hours in the specified date according to universal time.\n"
600       },
601       "getMinutes": {
602         "!type": "fn() -> number",
603         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getMinutes",
604         "!doc": "Returns the minutes in the specified date according to local time."
605       },
606       "getUTCMinutes": {
607         "!type": "fn() -> number",
608         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date",
609         "!doc": "Creates JavaScript Date instances which let you work with dates and times."
610       },
611       "getSeconds": {
612         "!type": "fn() -> number",
613         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getSeconds",
614         "!doc": "Returns the seconds in the specified date according to local time."
615       },
616       "getUTCSeconds": {
617         "!type": "fn() -> number",
618         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getUTCSeconds",
619         "!doc": "Returns the seconds in the specified date according to universal time.\n"
620       },
621       "getMilliseconds": {
622         "!type": "fn() -> number",
623         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getMilliseconds",
624         "!doc": "Returns the milliseconds in the specified date according to local time."
625       },
626       "getUTCMilliseconds": {
627         "!type": "fn() -> number",
628         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getUTCMilliseconds",
629         "!doc": "Returns the milliseconds in the specified date according to universal time.\n"
630       },
631       "getTimezoneOffset": {
632         "!type": "fn() -> number",
633         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset",
634         "!doc": "Returns the time-zone offset from UTC, in minutes, for the current locale."
635       },
636       "setTime": {
637         "!type": "fn(date: +Date) -> number",
638         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setTime",
639         "!doc": "Sets the Date object to the time represented by a number of milliseconds since January 1, 1970, 00:00:00 UTC.\n"
640       },
641       "setFullYear": {
642         "!type": "fn(year: number) -> number",
643         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setFullYear",
644         "!doc": "Sets the full year for a specified date according to local time.\n"
645       },
646       "setUTCFullYear": {
647         "!type": "fn(year: number) -> number",
648         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setUTCFullYear",
649         "!doc": "Sets the full year for a specified date according to universal time.\n"
650       },
651       "setMonth": {
652         "!type": "fn(month: number) -> number",
653         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setMonth",
654         "!doc": "Set the month for a specified date according to local time."
655       },
656       "setUTCMonth": {
657         "!type": "fn(month: number) -> number",
658         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setUTCMonth",
659         "!doc": "Sets the month for a specified date according to universal time.\n"
660       },
661       "setDate": {
662         "!type": "fn(day: number) -> number",
663         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setDate",
664         "!doc": "Sets the day of the month for a specified date according to local time."
665       },
666       "setUTCDate": {
667         "!type": "fn(day: number) -> number",
668         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setUTCDate",
669         "!doc": "Sets the day of the month for a specified date according to universal time.\n"
670       },
671       "setHours": {
672         "!type": "fn(hour: number) -> number",
673         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setHours",
674         "!doc": "Sets the hours for a specified date according to local time, and returns the number of milliseconds since 1 January 1970 00:00:00 UTC until the time represented by the updated Date instance."
675       },
676       "setUTCHours": {
677         "!type": "fn(hour: number) -> number",
678         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setUTCHours",
679         "!doc": "Sets the hour for a specified date according to universal time.\n"
680       },
681       "setMinutes": {
682         "!type": "fn(min: number) -> number",
683         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setMinutes",
684         "!doc": "Sets the minutes for a specified date according to local time."
685       },
686       "setUTCMinutes": {
687         "!type": "fn(min: number) -> number",
688         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setUTCMinutes",
689         "!doc": "Sets the minutes for a specified date according to universal time.\n"
690       },
691       "setSeconds": {
692         "!type": "fn(sec: number) -> number",
693         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setSeconds",
694         "!doc": "Sets the seconds for a specified date according to local time."
695       },
696       "setUTCSeconds": {
697         "!type": "fn(sec: number) -> number",
698         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setUTCSeconds",
699         "!doc": "Sets the seconds for a specified date according to universal time.\n"
700       },
701       "setMilliseconds": {
702         "!type": "fn(ms: number) -> number",
703         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setMilliseconds",
704         "!doc": "Sets the milliseconds for a specified date according to local time.\n"
705       },
706       "setUTCMilliseconds": {
707         "!type": "fn(ms: number) -> number",
708         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setUTCMilliseconds",
709         "!doc": "Sets the milliseconds for a specified date according to universal time.\n"
710       }
711     },
712     "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date",
713     "!doc": "Creates JavaScript Date instances which let you work with dates and times."
714   },
715   "Error": {
716     "!type": "fn(message: string)",
717     "prototype": {
718       "name": {
719         "!type": "string",
720         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Error/name",
721         "!doc": "A name for the type of error."
722       },
723       "message": {
724         "!type": "string",
725         "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Error/message",
726         "!doc": "A human-readable description of the error."
727       }
728     },
729     "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Error",
730     "!doc": "Creates an error object."
731   },
732   "SyntaxError": {
733     "!type": "fn(message: string)",
734     "prototype": "Error.prototype",
735     "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/SyntaxError",
736     "!doc": "Represents an error when trying to interpret syntactically invalid code."
737   },
738   "ReferenceError": {
739     "!type": "fn(message: string)",
740     "prototype": "Error.prototype",
741     "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/ReferenceError",
742     "!doc": "Represents an error when a non-existent variable is referenced."
743   },
744   "URIError": {
745     "!type": "fn(message: string)",
746     "prototype": "Error.prototype",
747     "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/URIError",
748     "!doc": "Represents an error when a malformed URI is encountered."
749   },
750   "EvalError": {
751     "!type": "fn(message: string)",
752     "prototype": "Error.prototype",
753     "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/EvalError",
754     "!doc": "Represents an error regarding the eval function."
755   },
756   "RangeError": {
757     "!type": "fn(message: string)",
758     "prototype": "Error.prototype",
759     "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RangeError",
760     "!doc": "Represents an error when a number is not within the correct range allowed."
761   },
762   "parseInt": {
763     "!type": "fn(string: string, radix?: number) -> number",
764     "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/parseInt",
765     "!doc": "Parses a string argument and returns an integer of the specified radix or base."
766   },
767   "parseFloat": {
768     "!type": "fn(string: string) -> number",
769     "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/parseFloat",
770     "!doc": "Parses a string argument and returns a floating point number."
771   },
772   "isNaN": {
773     "!type": "fn(value: number) -> bool",
774     "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/isNaN",
775     "!doc": "Determines whether a value is NaN or not. Be careful, this function is broken. You may be interested in ECMAScript 6 Number.isNaN."
776   },
777   "eval": {
778     "!type": "fn(code: string) -> ?",
779     "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/eval",
780     "!doc": "Evaluates JavaScript code represented as a string."
781   },
782   "encodeURI": {
783     "!type": "fn(uri: string) -> string",
784     "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURI",
785     "!doc": "Encodes a Uniform Resource Identifier (URI) by replacing each instance of certain characters by one, two, three, or four escape sequences representing the UTF-8 encoding of the character (will only be four escape sequences for characters composed of two \"surrogate\" characters)."
786   },
787   "encodeURIComponent": {
788     "!type": "fn(uri: string) -> string",
789     "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURIComponent",
790     "!doc": "Encodes a Uniform Resource Identifier (URI) component by replacing each instance of certain characters by one, two, three, or four escape sequences representing the UTF-8 encoding of the character (will only be four escape sequences for characters composed of two \"surrogate\" characters)."
791   },
792   "decodeURI": {
793     "!type": "fn(uri: string) -> string",
794     "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/decodeURI",
795     "!doc": "Decodes a Uniform Resource Identifier (URI) previously created by encodeURI or by a similar routine."
796   },
797   "decodeURIComponent": {
798     "!type": "fn(uri: string) -> string",
799     "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/decodeURIComponent",
800     "!doc": "Decodes a Uniform Resource Identifier (URI) component previously created by encodeURIComponent or by a similar routine."
801   },
802   "Math": {
803     "E": {
804       "!type": "number",
805       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/E",
806       "!doc": "The base of natural logarithms, e, approximately 2.718."
807     },
808     "LN2": {
809       "!type": "number",
810       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/LN2",
811       "!doc": "The natural logarithm of 2, approximately 0.693."
812     },
813     "LN10": {
814       "!type": "number",
815       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/LN10",
816       "!doc": "The natural logarithm of 10, approximately 2.302."
817     },
818     "LOG2E": {
819       "!type": "number",
820       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/LOG2E",
821       "!doc": "The base 2 logarithm of E (approximately 1.442)."
822     },
823     "LOG10E": {
824       "!type": "number",
825       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/LOG10E",
826       "!doc": "The base 10 logarithm of E (approximately 0.434)."
827     },
828     "SQRT1_2": {
829       "!type": "number",
830       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/SQRT1_2",
831       "!doc": "The square root of 1/2; equivalently, 1 over the square root of 2, approximately 0.707."
832     },
833     "SQRT2": {
834       "!type": "number",
835       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/SQRT2",
836       "!doc": "The square root of 2, approximately 1.414."
837     },
838     "PI": {
839       "!type": "number",
840       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/PI",
841       "!doc": "The ratio of the circumference of a circle to its diameter, approximately 3.14159."
842     },
843     "abs": {
844       "!type": "fn(number) -> number",
845       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/abs",
846       "!doc": "Returns the absolute value of a number."
847     },
848     "cos": {
849       "!type": "fn(number) -> number",
850       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/cos",
851       "!doc": "Returns the cosine of a number."
852     },
853     "sin": {
854       "!type": "fn(number) -> number",
855       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/sin",
856       "!doc": "Returns the sine of a number."
857     },
858     "tan": {
859       "!type": "fn(number) -> number",
860       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/tan",
861       "!doc": "Returns the tangent of a number."
862     },
863     "acos": {
864       "!type": "fn(number) -> number",
865       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/acos",
866       "!doc": "Returns the arccosine (in radians) of a number."
867     },
868     "asin": {
869       "!type": "fn(number) -> number",
870       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/asin",
871       "!doc": "Returns the arcsine (in radians) of a number."
872     },
873     "atan": {
874       "!type": "fn(number) -> number",
875       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/atan",
876       "!doc": "Returns the arctangent (in radians) of a number."
877     },
878     "atan2": {
879       "!type": "fn(number, number) -> number",
880       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/atan2",
881       "!doc": "Returns the arctangent of the quotient of its arguments."
882     },
883     "ceil": {
884       "!type": "fn(number) -> number",
885       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/ceil",
886       "!doc": "Returns the smallest integer greater than or equal to a number."
887     },
888     "floor": {
889       "!type": "fn(number) -> number",
890       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/floor",
891       "!doc": "Returns the largest integer less than or equal to a number."
892     },
893     "round": {
894       "!type": "fn(number) -> number",
895       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/round",
896       "!doc": "Returns the value of a number rounded to the nearest integer."
897     },
898     "exp": {
899       "!type": "fn(number) -> number",
900       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/exp",
901       "!doc": "Returns Ex, where x is the argument, and E is Euler's constant, the base of the natural logarithms."
902     },
903     "log": {
904       "!type": "fn(number) -> number",
905       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/log",
906       "!doc": "Returns the natural logarithm (base E) of a number."
907     },
908     "sqrt": {
909       "!type": "fn(number) -> number",
910       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/sqrt",
911       "!doc": "Returns the square root of a number."
912     },
913     "pow": {
914       "!type": "fn(number, number) -> number",
915       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/pow",
916       "!doc": "Returns base to the exponent power, that is, baseexponent."
917     },
918     "max": {
919       "!type": "fn(number, number) -> number",
920       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/max",
921       "!doc": "Returns the largest of zero or more numbers."
922     },
923     "min": {
924       "!type": "fn(number, number) -> number",
925       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/min",
926       "!doc": "Returns the smallest of zero or more numbers."
927     },
928     "random": {
929       "!type": "fn() -> number",
930       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/random",
931       "!doc": "Returns a floating-point, pseudo-random number in the range [0, 1) that is, from 0 (inclusive) up to but not including 1 (exclusive), which you can then scale to your desired range."
932     },
933     "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math",
934     "!doc": "A built-in object that has properties and methods for mathematical constants and functions."
935   },
936   "JSON": {
937     "parse": {
938       "!type": "fn(json: string) -> ?",
939       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/JSON/parse",
940       "!doc": "Parse a string as JSON, optionally transforming the value produced by parsing."
941     },
942     "stringify": {
943       "!type": "fn(value: ?) -> string",
944       "!url": "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/JSON/stringify",
945       "!doc": "Convert a value to JSON, optionally replacing values if a replacer function is specified, or optionally including only the specified properties if a replacer array is specified."
946     },
947     "!url": "https://developer.mozilla.org/en-US/docs/JSON",
948     "!doc": "JSON (JavaScript Object Notation) is a data-interchange format.  It closely resembles a subset of JavaScript syntax, although it is not a strict subset. (See JSON in the JavaScript Reference for full details.)  It is useful when writing any kind of JavaScript-based application, including websites and browser extensions.  For example, you might store user information in JSON format in a cookie, or you might store extension preferences in JSON in a string-valued browser preference."
949   }