astexplorer.app
Version:
https://astexplorer.net with ES Modules support and Hot Reloading
1 lines • 817 kB
JavaScript
(window.webpackJsonp=window.webpackJsonp||[]).push([[59],{"./node_modules/acorn-walk/dist/walk.mjs":function(__webpack_module__,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ancestor", function() { return ancestor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "base", function() { return base; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findNodeAfter", function() { return findNodeAfter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findNodeAround", function() { return findNodeAround; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findNodeAt", function() { return findNodeAt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findNodeBefore", function() { return findNodeBefore; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "full", function() { return full; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fullAncestor", function() { return fullAncestor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "make", function() { return make; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recursive", function() { return recursive; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "simple", function() { return simple; });\n// AST walker module for Mozilla Parser API compatible trees\n\n// A simple walk is one where you simply specify callbacks to be\n// called on specific nodes. The last two arguments are optional. A\n// simple use would be\n//\n// walk.simple(myTree, {\n// Expression: function(node) { ... }\n// });\n//\n// to do something with all expressions. All Parser API node types\n// can be used to identify node types, as well as Expression and\n// Statement, which denote categories of nodes.\n//\n// The base argument can be used to pass a custom (recursive)\n// walker, and state can be used to give this walked an initial\n// state.\n\nfunction simple(node, visitors, baseVisitor, state, override) {\n if (!baseVisitor) { baseVisitor = base\n ; }(function c(node, st, override) {\n var type = override || node.type, found = visitors[type];\n baseVisitor[type](node, st, c);\n if (found) { found(node, st); }\n })(node, state, override);\n}\n\n// An ancestor walk keeps an array of ancestor nodes (including the\n// current node) and passes them to the callback as third parameter\n// (and also as state parameter when no other state is present).\nfunction ancestor(node, visitors, baseVisitor, state) {\n var ancestors = [];\n if (!baseVisitor) { baseVisitor = base\n ; }(function c(node, st, override) {\n var type = override || node.type, found = visitors[type];\n var isNew = node !== ancestors[ancestors.length - 1];\n if (isNew) { ancestors.push(node); }\n baseVisitor[type](node, st, c);\n if (found) { found(node, st || ancestors, ancestors); }\n if (isNew) { ancestors.pop(); }\n })(node, state);\n}\n\n// A recursive walk is one where your functions override the default\n// walkers. They can modify and replace the state parameter that\'s\n// threaded through the walk, and can opt how and whether to walk\n// their child nodes (by calling their third argument on these\n// nodes).\nfunction recursive(node, state, funcs, baseVisitor, override) {\n var visitor = funcs ? make(funcs, baseVisitor || undefined) : baseVisitor\n ;(function c(node, st, override) {\n visitor[override || node.type](node, st, c);\n })(node, state, override);\n}\n\nfunction makeTest(test) {\n if (typeof test === "string")\n { return function (type) { return type === test; } }\n else if (!test)\n { return function () { return true; } }\n else\n { return test }\n}\n\nvar Found = function Found(node, state) { this.node = node; this.state = state; };\n\n// A full walk triggers the callback on each node\nfunction full(node, callback, baseVisitor, state, override) {\n if (!baseVisitor) { baseVisitor = base\n ; }(function c(node, st, override) {\n var type = override || node.type;\n baseVisitor[type](node, st, c);\n if (!override) { callback(node, st, type); }\n })(node, state, override);\n}\n\n// An fullAncestor walk is like an ancestor walk, but triggers\n// the callback on each node\nfunction fullAncestor(node, callback, baseVisitor, state) {\n if (!baseVisitor) { baseVisitor = base; }\n var ancestors = []\n ;(function c(node, st, override) {\n var type = override || node.type;\n var isNew = node !== ancestors[ancestors.length - 1];\n if (isNew) { ancestors.push(node); }\n baseVisitor[type](node, st, c);\n if (!override) { callback(node, st || ancestors, ancestors, type); }\n if (isNew) { ancestors.pop(); }\n })(node, state);\n}\n\n// Find a node with a given start, end, and type (all are optional,\n// null can be used as wildcard). Returns a {node, state} object, or\n// undefined when it doesn\'t find a matching node.\nfunction findNodeAt(node, start, end, test, baseVisitor, state) {\n if (!baseVisitor) { baseVisitor = base; }\n test = makeTest(test);\n try {\n (function c(node, st, override) {\n var type = override || node.type;\n if ((start == null || node.start <= start) &&\n (end == null || node.end >= end))\n { baseVisitor[type](node, st, c); }\n if ((start == null || node.start === start) &&\n (end == null || node.end === end) &&\n test(type, node))\n { throw new Found(node, st) }\n })(node, state);\n } catch (e) {\n if (e instanceof Found) { return e }\n throw e\n }\n}\n\n// Find the innermost node of a given type that contains the given\n// position. Interface similar to findNodeAt.\nfunction findNodeAround(node, pos, test, baseVisitor, state) {\n test = makeTest(test);\n if (!baseVisitor) { baseVisitor = base; }\n try {\n (function c(node, st, override) {\n var type = override || node.type;\n if (node.start > pos || node.end < pos) { return }\n baseVisitor[type](node, st, c);\n if (test(type, node)) { throw new Found(node, st) }\n })(node, state);\n } catch (e) {\n if (e instanceof Found) { return e }\n throw e\n }\n}\n\n// Find the outermost matching node after a given position.\nfunction findNodeAfter(node, pos, test, baseVisitor, state) {\n test = makeTest(test);\n if (!baseVisitor) { baseVisitor = base; }\n try {\n (function c(node, st, override) {\n if (node.end < pos) { return }\n var type = override || node.type;\n if (node.start >= pos && test(type, node)) { throw new Found(node, st) }\n baseVisitor[type](node, st, c);\n })(node, state);\n } catch (e) {\n if (e instanceof Found) { return e }\n throw e\n }\n}\n\n// Find the outermost matching node before a given position.\nfunction findNodeBefore(node, pos, test, baseVisitor, state) {\n test = makeTest(test);\n if (!baseVisitor) { baseVisitor = base; }\n var max\n ;(function c(node, st, override) {\n if (node.start > pos) { return }\n var type = override || node.type;\n if (node.end <= pos && (!max || max.node.end < node.end) && test(type, node))\n { max = new Found(node, st); }\n baseVisitor[type](node, st, c);\n })(node, state);\n return max\n}\n\n// Fallback to an Object.create polyfill for older environments.\nvar create = Object.create || function(proto) {\n function Ctor() {}\n Ctor.prototype = proto;\n return new Ctor\n};\n\n// Used to create a custom walker. Will fill in all missing node\n// type properties with the defaults.\nfunction make(funcs, baseVisitor) {\n var visitor = create(baseVisitor || base);\n for (var type in funcs) { visitor[type] = funcs[type]; }\n return visitor\n}\n\nfunction skipThrough(node, st, c) { c(node, st); }\nfunction ignore(_node, _st, _c) {}\n\n// Node walkers.\n\nvar base = {};\n\nbase.Program = base.BlockStatement = function (node, st, c) {\n for (var i = 0, list = node.body; i < list.length; i += 1)\n {\n var stmt = list[i];\n\n c(stmt, st, "Statement");\n }\n};\nbase.Statement = skipThrough;\nbase.EmptyStatement = ignore;\nbase.ExpressionStatement = base.ParenthesizedExpression =\n function (node, st, c) { return c(node.expression, st, "Expression"); };\nbase.IfStatement = function (node, st, c) {\n c(node.test, st, "Expression");\n c(node.consequent, st, "Statement");\n if (node.alternate) { c(node.alternate, st, "Statement"); }\n};\nbase.LabeledStatement = function (node, st, c) { return c(node.body, st, "Statement"); };\nbase.BreakStatement = base.ContinueStatement = ignore;\nbase.WithStatement = function (node, st, c) {\n c(node.object, st, "Expression");\n c(node.body, st, "Statement");\n};\nbase.SwitchStatement = function (node, st, c) {\n c(node.discriminant, st, "Expression");\n for (var i$1 = 0, list$1 = node.cases; i$1 < list$1.length; i$1 += 1) {\n var cs = list$1[i$1];\n\n if (cs.test) { c(cs.test, st, "Expression"); }\n for (var i = 0, list = cs.consequent; i < list.length; i += 1)\n {\n var cons = list[i];\n\n c(cons, st, "Statement");\n }\n }\n};\nbase.SwitchCase = function (node, st, c) {\n if (node.test) { c(node.test, st, "Expression"); }\n for (var i = 0, list = node.consequent; i < list.length; i += 1)\n {\n var cons = list[i];\n\n c(cons, st, "Statement");\n }\n};\nbase.ReturnStatement = base.YieldExpression = base.AwaitExpression = function (node, st, c) {\n if (node.argument) { c(node.argument, st, "Expression"); }\n};\nbase.ThrowStatement = base.SpreadElement =\n function (node, st, c) { return c(node.argument, st, "Expression"); };\nbase.TryStatement = function (node, st, c) {\n c(node.block, st, "Statement");\n if (node.handler) { c(node.handler, st); }\n if (node.finalizer) { c(node.finalizer, st, "Statement"); }\n};\nbase.CatchClause = function (node, st, c) {\n if (node.param) { c(node.param, st, "Pattern"); }\n c(node.body, st, "Statement");\n};\nbase.WhileStatement = base.DoWhileStatement = function (node, st, c) {\n c(node.test, st, "Expression");\n c(node.body, st, "Statement");\n};\nbase.ForStatement = function (node, st, c) {\n if (node.init) { c(node.init, st, "ForInit"); }\n if (node.test) { c(node.test, st, "Expression"); }\n if (node.update) { c(node.update, st, "Expression"); }\n c(node.body, st, "Statement");\n};\nbase.ForInStatement = base.ForOfStatement = function (node, st, c) {\n c(node.left, st, "ForInit");\n c(node.right, st, "Expression");\n c(node.body, st, "Statement");\n};\nbase.ForInit = function (node, st, c) {\n if (node.type === "VariableDeclaration") { c(node, st); }\n else { c(node, st, "Expression"); }\n};\nbase.DebuggerStatement = ignore;\n\nbase.FunctionDeclaration = function (node, st, c) { return c(node, st, "Function"); };\nbase.VariableDeclaration = function (node, st, c) {\n for (var i = 0, list = node.declarations; i < list.length; i += 1)\n {\n var decl = list[i];\n\n c(decl, st);\n }\n};\nbase.VariableDeclarator = function (node, st, c) {\n c(node.id, st, "Pattern");\n if (node.init) { c(node.init, st, "Expression"); }\n};\n\nbase.Function = function (node, st, c) {\n if (node.id) { c(node.id, st, "Pattern"); }\n for (var i = 0, list = node.params; i < list.length; i += 1)\n {\n var param = list[i];\n\n c(param, st, "Pattern");\n }\n c(node.body, st, node.expression ? "Expression" : "Statement");\n};\n\nbase.Pattern = function (node, st, c) {\n if (node.type === "Identifier")\n { c(node, st, "VariablePattern"); }\n else if (node.type === "MemberExpression")\n { c(node, st, "MemberPattern"); }\n else\n { c(node, st); }\n};\nbase.VariablePattern = ignore;\nbase.MemberPattern = skipThrough;\nbase.RestElement = function (node, st, c) { return c(node.argument, st, "Pattern"); };\nbase.ArrayPattern = function (node, st, c) {\n for (var i = 0, list = node.elements; i < list.length; i += 1) {\n var elt = list[i];\n\n if (elt) { c(elt, st, "Pattern"); }\n }\n};\nbase.ObjectPattern = function (node, st, c) {\n for (var i = 0, list = node.properties; i < list.length; i += 1) {\n var prop = list[i];\n\n if (prop.type === "Property") {\n if (prop.computed) { c(prop.key, st, "Expression"); }\n c(prop.value, st, "Pattern");\n } else if (prop.type === "RestElement") {\n c(prop.argument, st, "Pattern");\n }\n }\n};\n\nbase.Expression = skipThrough;\nbase.ThisExpression = base.Super = base.MetaProperty = ignore;\nbase.ArrayExpression = function (node, st, c) {\n for (var i = 0, list = node.elements; i < list.length; i += 1) {\n var elt = list[i];\n\n if (elt) { c(elt, st, "Expression"); }\n }\n};\nbase.ObjectExpression = function (node, st, c) {\n for (var i = 0, list = node.properties; i < list.length; i += 1)\n {\n var prop = list[i];\n\n c(prop, st);\n }\n};\nbase.FunctionExpression = base.ArrowFunctionExpression = base.FunctionDeclaration;\nbase.SequenceExpression = function (node, st, c) {\n for (var i = 0, list = node.expressions; i < list.length; i += 1)\n {\n var expr = list[i];\n\n c(expr, st, "Expression");\n }\n};\nbase.TemplateLiteral = function (node, st, c) {\n for (var i = 0, list = node.quasis; i < list.length; i += 1)\n {\n var quasi = list[i];\n\n c(quasi, st);\n }\n\n for (var i$1 = 0, list$1 = node.expressions; i$1 < list$1.length; i$1 += 1)\n {\n var expr = list$1[i$1];\n\n c(expr, st, "Expression");\n }\n};\nbase.TemplateElement = ignore;\nbase.UnaryExpression = base.UpdateExpression = function (node, st, c) {\n c(node.argument, st, "Expression");\n};\nbase.BinaryExpression = base.LogicalExpression = function (node, st, c) {\n c(node.left, st, "Expression");\n c(node.right, st, "Expression");\n};\nbase.AssignmentExpression = base.AssignmentPattern = function (node, st, c) {\n c(node.left, st, "Pattern");\n c(node.right, st, "Expression");\n};\nbase.ConditionalExpression = function (node, st, c) {\n c(node.test, st, "Expression");\n c(node.consequent, st, "Expression");\n c(node.alternate, st, "Expression");\n};\nbase.NewExpression = base.CallExpression = function (node, st, c) {\n c(node.callee, st, "Expression");\n if (node.arguments)\n { for (var i = 0, list = node.arguments; i < list.length; i += 1)\n {\n var arg = list[i];\n\n c(arg, st, "Expression");\n } }\n};\nbase.MemberExpression = function (node, st, c) {\n c(node.object, st, "Expression");\n if (node.computed) { c(node.property, st, "Expression"); }\n};\nbase.ExportNamedDeclaration = base.ExportDefaultDeclaration = function (node, st, c) {\n if (node.declaration)\n { c(node.declaration, st, node.type === "ExportNamedDeclaration" || node.declaration.id ? "Statement" : "Expression"); }\n if (node.source) { c(node.source, st, "Expression"); }\n};\nbase.ExportAllDeclaration = function (node, st, c) {\n c(node.source, st, "Expression");\n};\nbase.ImportDeclaration = function (node, st, c) {\n for (var i = 0, list = node.specifiers; i < list.length; i += 1)\n {\n var spec = list[i];\n\n c(spec, st);\n }\n c(node.source, st, "Expression");\n};\nbase.ImportSpecifier = base.ImportDefaultSpecifier = base.ImportNamespaceSpecifier = base.Identifier = base.Literal = base.Import = ignore;\n\nbase.TaggedTemplateExpression = function (node, st, c) {\n c(node.tag, st, "Expression");\n c(node.quasi, st, "Expression");\n};\nbase.ClassDeclaration = base.ClassExpression = function (node, st, c) { return c(node, st, "Class"); };\nbase.Class = function (node, st, c) {\n if (node.id) { c(node.id, st, "Pattern"); }\n if (node.superClass) { c(node.superClass, st, "Expression"); }\n c(node.body, st);\n};\nbase.ClassBody = function (node, st, c) {\n for (var i = 0, list = node.body; i < list.length; i += 1)\n {\n var elt = list[i];\n\n c(elt, st);\n }\n};\nbase.MethodDefinition = base.Property = function (node, st, c) {\n if (node.computed) { c(node.key, st, "Expression"); }\n c(node.value, st, "Expression");\n};\n\n\n\n\n//# sourceURL=webpack:///./node_modules/acorn-walk/dist/walk.mjs?')},"./node_modules/tern/defs/ecmascript.json":function(module){eval('module.exports = JSON.parse("{\\"!name\\":\\"ecmascript\\",\\"!define\\":{\\"Error.prototype\\":\\"Error.prototype\\",\\"propertyDescriptor\\":{\\"enumerable\\":\\"bool\\",\\"configurable\\":\\"bool\\",\\"value\\":\\"?\\",\\"writable\\":\\"bool\\",\\"get\\":\\"fn() -> ?\\",\\"set\\":\\"fn(value: ?)\\"},\\"Promise.prototype\\":{\\"catch\\":{\\"!doc\\":\\"The catch() method returns a Promise and deals with rejected cases only. It behaves the same as calling Promise.prototype.then(undefined, onRejected).\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/catch\\",\\"!type\\":\\"fn(onRejected: fn(reason: ?)) -> !this\\"},\\"then\\":{\\"!doc\\":\\"The then() method returns a Promise. It takes two arguments, both are callback functions for the success and failure cases of the Promise.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then\\",\\"!type\\":\\"fn(onFulfilled: fn(value: ?), onRejected: fn(reason: ?)) -> !custom:Promise_then\\",\\"!effects\\":[\\"call !0 !this.:t\\"]},\\"finally\\":{\\"!doc\\":\\"The finally() method returns a Promise. When the promise is settled, whether fulfilled or rejected, the specified callback function is executed. \\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/finally\\",\\"!type\\":\\"fn(onFinally: fn()) -> !custom:Promise_then\\"}},\\"Promise_reject\\":{\\"!type\\":\\"fn(reason: ?) -> !this\\",\\"!doc\\":\\"The Promise.reject(reason) method returns a Promise object that is rejected with the given reason.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/reject\\"},\\"iter_prototype\\":{\\":Symbol.iterator\\":\\"fn() -> !this\\"},\\"iter\\":{\\"!proto\\":\\"iter_prototype\\",\\"next\\":{\\"!type\\":\\"fn() -> +iter_result[value=!this.:t]\\",\\"!doc\\":\\"Return the next item in the sequence.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators\\"},\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators\\"},\\"iter_result\\":{\\"done\\":\\"bool\\",\\"value\\":\\"?\\"},\\"generator_prototype\\":{\\"!proto\\":\\"iter_prototype\\",\\"next\\":\\"fn(value?: ?) -> iter_result\\",\\"return\\":\\"fn(value?: ?) -> iter_result\\",\\"throw\\":\\"fn(exception: +Error)\\"},\\"async_iter_prototype\\":{\\":Symbol.asyncIterator\\":\\"fn() -> !this\\"},\\"async_iter\\":{\\"!proto\\":\\"async_iter_prototype\\",\\"next\\":{\\"!type\\":\\"fn() -> +Promise[:t=+iter_result[value=!this.:t]]\\",\\"!doc\\":\\"Return the next item in the sequence.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators\\"},\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators\\"},\\"async_generator_prototype\\":{\\"!proto\\":\\"async_iter_prototype\\",\\"next\\":\\"fn(value?: ?) -> +Promise[:t=iter_result]\\",\\"return\\":\\"fn(value?: ?) -> +Promise[:t=iter_result]\\",\\"throw\\":\\"fn(exception: +Error)\\"},\\"Proxy_handler\\":{\\"!doc\\":\\"The proxy\'s handler object is a placeholder object which contains traps for proxies.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy/handler\\",\\"getPrototypeOf\\":\\"fn(target: ?)\\",\\"setPrototypeOf\\":\\"fn(target: ?, prototype: ?)\\",\\"isExtensible\\":\\"fn(target: ?)\\",\\"preventExtensions\\":\\"fn(target: ?)\\",\\"getOwnPropertyDescriptor\\":\\"fn(target: ?, property: string) -> propertyDescriptor\\",\\"defineProperty\\":\\"fn(target: ?, property: string, descriptor: propertyDescriptor)\\",\\"has\\":\\"fn(target: ?, property: string)\\",\\"get\\":\\"fn(target: ?, property: string)\\",\\"set\\":\\"fn(target: ?, property: string, value: ?)\\",\\"deleteProperty\\":\\"fn(target: ?, property: string)\\",\\"enumerate\\":\\"fn(target: ?)\\",\\"ownKeys\\":\\"fn(target: ?)\\",\\"apply\\":\\"fn(target: ?, self: ?, arguments: [?])\\",\\"construct\\":\\"fn(target: ?, arguments: [?])\\"},\\"Proxy_revocable\\":{\\"proxy\\":\\"+Proxy\\",\\"revoke\\":\\"fn()\\"},\\"TypedArray\\":{\\"!type\\":\\"fn(size: number)\\",\\"!doc\\":\\"A TypedArray object describes an array-like view of an underlying binary data buffer. There is no global property named TypedArray, nor is there a directly visible TypedArray constructor. Instead, there are a number of different global properties, whose values are typed array constructors for specific element types, listed below. On the following pages you will find common properties and methods that can be used with any typed array containing elements of any type.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray\\",\\"from\\":{\\"!type\\":\\"fn(arrayLike: ?, mapFn?: fn(elt: ?, i: number) -> number, thisArg?: ?) -> +TypedArray\\",\\"!effects\\":[\\"call !1 this=!2 !0.<i> number\\"],\\"!doc\\":\\"Creates a new typed array from an array-like or iterable object.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/from\\"},\\"of\\":{\\"!type\\":\\"fn(elements: number) -> +TypedArray\\",\\"!doc\\":\\"Creates a new typed array from a variable number of arguments.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/of\\"},\\"BYTES_PER_ELEMENT\\":{\\"!type\\":\\"number\\",\\"!doc\\":\\"The TypedArray.BYTES_PER_ELEMENT property represents the size in bytes of each element in an typed array.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/BYTES_PER_ELEMENT\\"},\\"name\\":{\\"!type\\":\\"string\\",\\"!doc\\":\\"The TypedArray.name property represents a string value of the typed array constructor name.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/name\\"},\\"prototype\\":{\\"<i>\\":\\"number\\",\\"buffer\\":{\\"!type\\":\\"+ArrayBuffer\\",\\"!doc\\":\\"The buffer accessor property represents the ArrayBuffer referenced by a TypedArray at construction time.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/buffer\\"},\\"byteLength\\":{\\"!type\\":\\"number\\",\\"!doc\\":\\"The byteLength accessor property represents the length (in bytes) of a typed array from the start of its ArrayBuffer.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/byteLength\\"},\\"byteOffset\\":{\\"!type\\":\\"number\\",\\"!doc\\":\\"The byteOffset accessor property represents the offset (in bytes) of a typed array from the start of its ArrayBuffer.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/byteOffset\\"},\\"copyWithin\\":{\\"!type\\":\\"fn(target: number, start: number, end?: number) -> ?\\",\\"!doc\\":\\"The copyWithin() method copies the sequence of array elements within the array to the position starting at target. The copy is taken from the index positions of the second and third arguments start and end. The end argument is optional and defaults to the length of the array. This method has the same algorithm as Array.prototype.copyWithin. TypedArray is one of the typed array types here.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/copyWithin\\"},\\"entries\\":{\\"!type\\":\\"fn() -> +iter[:t=number]\\",\\"!doc\\":\\"The entries() method returns a new Array Iterator object that contains the key/value pairs for each index in the array.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/entries\\"},\\"every\\":{\\"!type\\":\\"fn(callback: fn(element: number, index: number, array: TypedArray) -> bool, thisArg?: ?) -> bool\\",\\"!effects\\":[\\"call !0 this=!1 number number !this\\"],\\"!doc\\":\\"The every() method tests whether all elements in the typed array pass the test implemented by the provided function. This method has the same algorithm as Array.prototype.every(). TypedArray is one of the typed array types here.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/every\\"},\\"fill\\":{\\"!type\\":\\"fn(value: number, start?: number, end?: number)\\",\\"!doc\\":\\"The fill() method fills all the elements of a typed array from a start index to an end index with a static value. This method has the same algorithm as Array.prototype.fill(). TypedArray is one of the typed array types here.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/fill\\"},\\"filter\\":{\\"!type\\":\\"fn(test: fn(element: number, i: number) -> bool, context?: ?) -> !this\\",\\"!effects\\":[\\"call !0 this=!1 number number\\"],\\"!doc\\":\\"Creates a new array with all of the elements of this array for which the provided filtering function returns true. See also Array.prototype.filter().\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/filter\\"},\\"find\\":{\\"!type\\":\\"fn(callback: fn(element: number, index: number, array: +TypedArray) -> bool, thisArg?: ?) -> number\\",\\"!effects\\":[\\"call !0 this=!1 number number !this\\"],\\"!doc\\":\\"The find() method returns a value in the typed array, if an element satisfies the provided testing function. Otherwise undefined is returned. TypedArray is one of the typed array types here.\\\\nSee also the findIndex() method, which returns the index of a found element in the typed array instead of its value.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/find\\"},\\"findIndex\\":{\\"!type\\":\\"fn(callback: fn(element: number, index: number, array: +TypedArray) -> bool, thisArg?: ?) -> number\\",\\"!effects\\":[\\"call !0 this=!1 number number !this\\"],\\"!doc\\":\\"The findIndex() method returns an index in the typed array, if an element in the typed array satisfies the provided testing function. Otherwise -1 is returned.\\\\nSee also the find() method, which returns the value of a found element in the typed array instead of its index.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/findIndex\\"},\\"forEach\\":{\\"!type\\":\\"fn(callback: fn(value: number, key: number, array: +TypedArray), thisArg?: ?)\\",\\"!effects\\":[\\"call !0 this=!1 number number !this\\"],\\"!doc\\":\\"Executes a provided function once per array element.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/forEach\\"},\\"indexOf\\":{\\"!type\\":\\"fn(searchElement: number, fromIndex?: number) -> number\\",\\"!doc\\":\\"The indexOf() method returns the first index at which a given element can be found in the typed array, or -1 if it is not present. This method has the same algorithm as Array.prototype.indexOf(). TypedArray is one of the typed array types here.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/indexOf\\"},\\"join\\":{\\"!type\\":\\"fn(separator?: string) -> string\\",\\"!doc\\":\\"The join() method joins all elements of an array into a string. This method has the same algorithm as Array.prototype.join(). TypedArray is one of the typed array types here.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/join\\"},\\"keys\\":{\\"!type\\":\\"fn() -> +iter[:t=number]\\",\\"!doc\\":\\"The keys() method returns a new Array Iterator object that contains the keys for each index in the array.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/keys\\"},\\"lastIndexOf\\":{\\"!type\\":\\"fn(searchElement: number, fromIndex?: number) -> number\\",\\"!doc\\":\\"The lastIndexOf() method returns the last index at which a given element can be found in the typed array, or -1 if it is not present. The typed array is searched backwards, starting at fromIndex. This method has the same algorithm as Array.prototype.lastIndexOf(). TypedArray is one of the typed array types here.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/lastIndexOf\\"},\\"length\\":{\\"!type\\":\\"number\\",\\"!doc\\":\\"Returns the number of elements hold in the typed array. Fixed at construction time and thus read only.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/length\\"},\\"map\\":{\\"!type\\":\\"fn(f: fn(element: number, i: number) -> number, context?: ?) -> +TypedArray\\",\\"!effects\\":[\\"call !0 this=!1 number number\\"],\\"!doc\\":\\"Creates a new array with the results of calling a provided function on every element in this array. See also Array.prototype.map().\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/map\\"},\\"reduce\\":{\\"!type\\":\\"fn(combine: fn(sum: ?, elt: number, i: number) -> ?, init?: ?) -> !0.!ret\\",\\"!effects\\":[\\"call !0 !1 number number\\"],\\"!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. See also Array.prototype.reduce().\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/reduce\\"},\\"reduceRight\\":{\\"!type\\":\\"fn(combine: fn(sum: ?, elt: number, i: number) -> ?, init?: ?) -> !0.!ret\\",\\"!effects\\":[\\"call !0 !1 number number\\"],\\"!doc\\":\\"Apply a function against an accumulator and each value of the array (from right-to-left) as to reduce it to a single value. See also Array.prototype.reduceRight().\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/reduceRight\\"},\\"reverse\\":{\\"!type\\":\\"fn()\\",\\"!doc\\":\\"The reverse() method reverses a typed array in place. The first typed array element becomes the last and the last becomes the first. This method has the same algorithm as Array.prototype.reverse(). TypedArray is one of the typed array types here.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/reverse\\"},\\"set\\":{\\"!type\\":\\"fn(array: [number], offset?: number)\\",\\"!doc\\":\\"The set() method stores multiple values in the typed array, reading input values from a specified array.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/set\\"},\\"slice\\":{\\"!type\\":\\"fn(from: number, to?: number) -> +TypedArray\\",\\"!doc\\":\\"Extracts a section of an array and returns a new array. See also Array.prototype.slice().\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/slice\\"},\\"some\\":{\\"!type\\":\\"fn(test: fn(elt: number, i: number) -> bool, context?: ?) -> bool\\",\\"!effects\\":[\\"call !0 this=!1 number number\\"],\\"!doc\\":\\"The some() method tests whether some element in the typed array passes the test implemented by the provided function. This method has the same algorithm as Array.prototype.some(). TypedArray is one of the typed array types here.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/some\\"},\\"sort\\":{\\"!type\\":\\"fn(compare?: fn(a: number, b: number) -> number)\\",\\"!effects\\":[\\"call !0 number number\\"],\\"!doc\\":\\"Sorts the elements of an array in place and returns the array. See also Array.prototype.sort().\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/sort\\"},\\"subarray\\":{\\"!type\\":\\"fn(begin?: number, end?: number) -> +TypedArray\\",\\"!doc\\":\\"The subarray() method returns a new TypedArray on the same ArrayBuffer store and with the same element types as for this TypedArray object. The begin offset is inclusive and the end offset is exclusive. TypedArray is one of the typed array types.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/subarray\\"},\\"values\\":{\\"!type\\":\\"fn() -> +iter[:t=number]\\",\\"!doc\\":\\"The values() method returns a new Array Iterator object that contains the values for each index in the array.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/values\\"},\\":Symbol.iterator\\":{\\"!type\\":\\"fn() -> +iter[:t=number]\\",\\"!doc\\":\\"Returns a new Array Iterator object that contains the values for each index in the array.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/@@iterator\\"}}}},\\"Infinity\\":{\\"!type\\":\\"number\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Infinity\\",\\"!doc\\":\\"A numeric value representing infinity.\\"},\\"undefined\\":{\\"!type\\":\\"?\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/undefined\\",\\"!doc\\":\\"The value undefined.\\"},\\"NaN\\":{\\"!type\\":\\"number\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/NaN\\",\\"!doc\\":\\"A value representing Not-A-Number.\\"},\\"Object\\":{\\"!type\\":\\"fn()\\",\\"getPrototypeOf\\":{\\"!type\\":\\"fn(obj: ?) -> ?\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/getPrototypeOf\\",\\"!doc\\":\\"Returns the prototype (i.e. the internal prototype) of the specified object.\\"},\\"create\\":{\\"!type\\":\\"fn(proto: ?) -> !custom:Object_create\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/create\\",\\"!doc\\":\\"Creates a new object with the specified prototype object and properties.\\"},\\"defineProperty\\":{\\"!type\\":\\"fn(obj: ?, prop: string, desc: propertyDescriptor) -> !custom:Object_defineProperty\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/defineProperty\\",\\"!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.\\"},\\"defineProperties\\":{\\"!type\\":\\"fn(obj: ?, props: ?) -> !custom:Object_defineProperties\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/defineProperty\\",\\"!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.\\"},\\"getOwnPropertyDescriptor\\":{\\"!type\\":\\"fn(obj: ?, prop: string) -> propertyDescriptor\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor\\",\\"!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.\\"},\\"keys\\":{\\"!type\\":\\"fn(obj: ?) -> [string]\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/keys\\",\\"!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).\\"},\\"getOwnPropertyNames\\":{\\"!type\\":\\"fn(obj: ?) -> [string]\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames\\",\\"!doc\\":\\"Returns an array of all properties (enumerable or not) found directly upon a given object.\\"},\\"seal\\":{\\"!type\\":\\"fn(obj: ?)\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/seal\\",\\"!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.\\"},\\"isSealed\\":{\\"!type\\":\\"fn(obj: ?) -> bool\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/isSealed\\",\\"!doc\\":\\"Determine if an object is sealed.\\"},\\"freeze\\":{\\"!type\\":\\"fn(obj: ?) -> !0\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/freeze\\",\\"!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.\\"},\\"isFrozen\\":{\\"!type\\":\\"fn(obj: ?) -> bool\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/isFrozen\\",\\"!doc\\":\\"Determine if an object is frozen.\\"},\\"preventExtensions\\":{\\"!type\\":\\"fn(obj: ?)\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/preventExtensions\\",\\"!doc\\":\\"Prevents new properties from ever being added to an object.\\"},\\"isExtensible\\":{\\"!type\\":\\"fn(obj: ?) -> bool\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isExtensible\\",\\"!doc\\":\\"The Object.isExtensible() method determines if an object is extensible (whether it can have new properties added to it).\\"},\\"assign\\":{\\"!type\\":\\"fn(target: ?, source: ?, source?: ?) -> !0\\",\\"!effects\\":[\\"copy !1 !0\\",\\"copy !2 !0\\",\\"copy !3 !0\\"],\\"!doc\\":\\"The Object.assign() method is used to copy the values of all enumerable own properties from one or more source objects to a target object. It will return the target object.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\\"},\\"getOwnPropertySymbols\\":{\\"!type\\":\\"fn(obj: ?) -> !custom:getOwnPropertySymbols\\",\\"!doc\\":\\"The Object.getOwnPropertySymbols() method returns an array of all symbol properties found directly upon a given object.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertySymbols\\"},\\"is\\":{\\"!type\\":\\"fn(value1: ?, value2: ?) -> bool\\",\\"!doc\\":\\"The Object.is() method determines whether two values are the same value.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\\"},\\"setPrototypeOf\\":{\\"!type\\":\\"fn(obj: ?, prototype: ?)\\",\\"!doc\\":\\"The Object.setPrototype() method sets the prototype (i.e., the internal [[Prototype]] property) of a specified object to another object or null.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf\\"},\\"prototype\\":{\\"!stdProto\\":\\"Object\\",\\"toString\\":{\\"!type\\":\\"fn() -> string\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/toString\\",\\"!doc\\":\\"Returns a string representing the object.\\"},\\"toLocaleString\\":{\\"!type\\":\\"fn() -> string\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/toLocaleString\\",\\"!doc\\":\\"Returns a string representing the object. This method is meant to be overriden by derived objects for locale-specific purposes.\\"},\\"valueOf\\":{\\"!type\\":\\"fn() -> number\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/valueOf\\",\\"!doc\\":\\"Returns the primitive value of the specified object\\"},\\"hasOwnProperty\\":{\\"!type\\":\\"fn(prop: string) -> bool\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/hasOwnProperty\\",\\"!doc\\":\\"Returns a boolean indicating whether the object has the specified property.\\"},\\"propertyIsEnumerable\\":{\\"!type\\":\\"fn(prop: string) -> bool\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable\\",\\"!doc\\":\\"Returns a Boolean indicating whether the specified property is enumerable.\\"},\\"isPrototypeOf\\":{\\"!type\\":\\"fn(obj: ?) -> bool\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isPrototypeOf\\",\\"!doc\\":\\"Tests for an object in another object\'s prototype chain.\\"}},\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object\\",\\"!doc\\":\\"Creates an object wrapper.\\"},\\"Function\\":{\\"!type\\":\\"fn(body: string) -> fn()\\",\\"prototype\\":{\\"!stdProto\\":\\"Function\\",\\"apply\\":{\\"!type\\":\\"fn(this: ?, args: [?])\\",\\"!effects\\":[\\"call and return !this this=!0 !1.<i> !1.<i> !1.<i>\\"],\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/apply\\",\\"!doc\\":\\"Calls a function with a given this value and arguments provided as an array (or an array like object).\\"},\\"call\\":{\\"!type\\":\\"fn(this: ?, args?: ?) -> !this.!ret\\",\\"!effects\\":[\\"call and return !this this=!0 !1 !2 !3 !4\\"],\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/call\\",\\"!doc\\":\\"Calls a function with a given this value and arguments provided individually.\\"},\\"bind\\":{\\"!type\\":\\"fn(this: ?, args?: ?) -> !custom:Function_bind\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/bind\\",\\"!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.\\"},\\"prototype\\":\\"?\\"},\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function\\",\\"!doc\\":\\"Every function in JavaScript is actually a Function object.\\"},\\"Array\\":{\\"!type\\":\\"fn(size: number) -> !custom:Array_ctor\\",\\"isArray\\":{\\"!type\\":\\"fn(value: ?) -> bool\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/isArray\\",\\"!doc\\":\\"Returns true if an object is an array, false if it is not.\\"},\\"from\\":{\\"!type\\":\\"fn(arrayLike: ?, mapFn?: fn(elt: ?, i: number) -> ?, thisArg?: ?) -> [!0.<i>]\\",\\"!effects\\":[\\"call !1 this=!2 !0.<i> number\\"],\\"!doc\\":\\"The Array.from() method creates a new Array instance from an array-like or iterable object.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from\\"},\\"of\\":{\\"!type\\":\\"fn(elementN: ?) -> [!0]\\",\\"!doc\\":\\"The Array.of() method creates a new Array instance with a variable number of arguments, regardless of number or type of the arguments.\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of\\"},\\"prototype\\":{\\"!stdProto\\":\\"Array\\",\\"length\\":{\\"!type\\":\\"number\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/length\\",\\"!doc\\":\\"An unsigned, 32-bit integer that specifies the number of elements in an array.\\"},\\"concat\\":{\\"!type\\":\\"fn(other: [?]) -> !this\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/concat\\",\\"!doc\\":\\"Returns a new array comprised of this array joined with other array(s) and/or value(s).\\"},\\"join\\":{\\"!type\\":\\"fn(separator?: string) -> string\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/join\\",\\"!doc\\":\\"Joins all elements of an array into a string.\\"},\\"splice\\":{\\"!type\\":\\"fn(pos: number, amount: number, newelt?: ?) -> [?]\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/splice\\",\\"!doc\\":\\"Changes the content of an array, adding new elements while removing old elements.\\"},\\"pop\\":{\\"!type\\":\\"fn() -> !this.<i>\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/pop\\",\\"!doc\\":\\"Removes the last element from an array and returns that element.\\"},\\"push\\":{\\"!type\\":\\"fn(newelt: ?) -> number\\",\\"!effects\\":[\\"propagate !0 !this.<i>\\"],\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/push\\",\\"!doc\\":\\"Mutates an array by appending the given elements and returning the new length of the array.\\"},\\"shift\\":{\\"!type\\":\\"fn() -> !this.<i>\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/shift\\",\\"!doc\\":\\"Removes the first element from an array and returns that element. This method changes the length of the array.\\"},\\"unshift\\":{\\"!type\\":\\"fn(newelt: ?) -> number\\",\\"!effects\\":[\\"propagate !0 !this.<i>\\"],\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/unshift\\",\\"!doc\\":\\"Adds one or more elements to the beginning of an array and returns the new length of the array.\\"},\\"slice\\":{\\"!type\\":\\"fn(from?: number, to?: number) -> !this\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/slice\\",\\"!doc\\":\\"Returns a shallow copy of a portion of an array.\\"},\\"reverse\\":{\\"!type\\":\\"fn()\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/reverse\\",\\"!doc\\":\\"Reverses an array in place. The first array element becomes the last and the last becomes the first.\\"},\\"sort\\":{\\"!type\\":\\"fn(compare?: fn(a: ?, b: ?) -> number)\\",\\"!effects\\":[\\"call !0 !this.<i> !this.<i>\\"],\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/sort\\",\\"!doc\\":\\"Sorts the elements of an array in place and returns the array.\\"},\\"indexOf\\":{\\"!type\\":\\"fn(elt: ?, from?: number) -> number\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/indexOf\\",\\"!doc\\":\\"Returns the first index at which a given element can be found in the array, or -1 if it is not present.\\"},\\"lastIndexOf\\":{\\"!type\\":\\"fn(elt: ?, from?: number) -> number\\",\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/lastIndexOf\\",\\"!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.\\"},\\"every\\":{\\"!type\\":\\"fn(test: fn(elt: ?, i: number, array: +Array) -> bool, context?: ?) -> bool\\",\\"!effects\\":[\\"call !0 this=!1 !this.<i> number !this\\"],\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/every\\",\\"!doc\\":\\"Tests whether all elements in the array pass the test implemented by the provided function.\\"},\\"some\\":{\\"!type\\":\\"fn(test: fn(elt: ?, i: number, array: +Array) -> bool, context?: ?) -> bool\\",\\"!effects\\":[\\"call !0 this=!1 !this.<i> number !this\\"],\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/some\\",\\"!doc\\":\\"Tests whether some element in the array passes the test implemented by the provided function.\\"},\\"filter\\":{\\"!type\\":\\"fn(test: fn(elt: ?, i: number, array: +Array) -> bool, context?: ?) -> !this\\",\\"!effects\\":[\\"call !0 this=!1 !this.<i> number !this\\"],\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/filter\\",\\"!doc\\":\\"Creates a new array with all elements that pass the test implemented by the provided function.\\"},\\"forEach\\":{\\"!type\\":\\"fn(f: fn(elt: ?, i: number, array: +Array), context?: ?)\\",\\"!effects\\":[\\"call !0 this=!1 !this.<i> number !this\\"],\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/forEach\\",\\"!doc\\":\\"Executes a provided function once per array element.\\"},\\"map\\":{\\"!type\\":\\"fn(f: fn(elt: ?, i: number, array: +Array) -> ?, context?: ?) -> [!0.!ret]\\",\\"!effects\\":[\\"call !0 this=!1 !this.<i> number !this\\"],\\"!url\\":\\"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/map\\",\\"!doc\\":\\"Creates a new array with the results of calling a provided function on every element in this array.\\"},\\"reduce\\":{\\"!type\\":\\"fn(combine: fn(sum: ?, elt: ?, i: number, array: +Array) -> ?, init?: ?) -> !0.!ret\\",\\"!effects\\":[\\"call !0 !1 !this.<i> number !