@next-font/plugin-vite 1.3.0 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/{escodegen-DyMV8y05.js → escodegen-Bg18t0PG.js} +1 -1
  2. package/dist/index-67dkpRNt.js +79 -0
  3. package/dist/{index-zBNqiqVh.js → index-zyY5iDP6.js} +1 -1
  4. package/dist/index.js +1 -3
  5. package/package.json +1 -1
  6. package/dist/escodegen-BgZHbZlI.js +0 -5298
  7. package/dist/escodegen-BgZHbZlI.js.map +0 -1
  8. package/dist/escodegen-CE_3K55m.js +0 -5298
  9. package/dist/escodegen-CE_3K55m.js.map +0 -1
  10. package/dist/escodegen-CcjHPeru.js +0 -5298
  11. package/dist/escodegen-CcjHPeru.js.map +0 -1
  12. package/dist/escodegen-CvnByJYb.js +0 -5298
  13. package/dist/escodegen-CvnByJYb.js.map +0 -1
  14. package/dist/escodegen-CyyYl3Ru.js +0 -5298
  15. package/dist/escodegen-CyyYl3Ru.js.map +0 -1
  16. package/dist/escodegen-D-UqarBv.js +0 -5298
  17. package/dist/escodegen-D-UqarBv.js.map +0 -1
  18. package/dist/escodegen-D1ExFsOu.js +0 -5298
  19. package/dist/escodegen-D1ExFsOu.js.map +0 -1
  20. package/dist/escodegen-DhS8gxED.js +0 -5298
  21. package/dist/escodegen-DhS8gxED.js.map +0 -1
  22. package/dist/escodegen-o7sNOZ-d.js +0 -5298
  23. package/dist/escodegen-o7sNOZ-d.js.map +0 -1
  24. package/dist/index-B6M1BKem.js +0 -3852
  25. package/dist/index-B6M1BKem.js.map +0 -1
  26. package/dist/index-BBnr2Ij5.js +0 -6970
  27. package/dist/index-BBnr2Ij5.js.map +0 -1
  28. package/dist/index-BUL3xgiH.js +0 -3851
  29. package/dist/index-BUL3xgiH.js.map +0 -1
  30. package/dist/index-Bgbg2WYx.js +0 -6970
  31. package/dist/index-Bgbg2WYx.js.map +0 -1
  32. package/dist/index-BiSz54YK.js +0 -6970
  33. package/dist/index-BiSz54YK.js.map +0 -1
  34. package/dist/index-BjC6MXVP.js +0 -3851
  35. package/dist/index-BjC6MXVP.js.map +0 -1
  36. package/dist/index-BknOo0Zr.js +0 -6970
  37. package/dist/index-BknOo0Zr.js.map +0 -1
  38. package/dist/index-C-zBTUD_.js +0 -3852
  39. package/dist/index-C-zBTUD_.js.map +0 -1
  40. package/dist/index-C0NlOFro.js +0 -3851
  41. package/dist/index-C0NlOFro.js.map +0 -1
  42. package/dist/index-C7SN2-vF.js +0 -6970
  43. package/dist/index-C7SN2-vF.js.map +0 -1
  44. package/dist/index-CLLYtm7D.js +0 -3853
  45. package/dist/index-CLLYtm7D.js.map +0 -1
  46. package/dist/index-CZZp2BW0.js +0 -79
  47. package/dist/index-CyE6nKxy.js +0 -3856
  48. package/dist/index-CyE6nKxy.js.map +0 -1
  49. package/dist/index-D-QcVmRl.js +0 -3850
  50. package/dist/index-D-QcVmRl.js.map +0 -1
  51. package/dist/index-D15_W2rR.js +0 -6970
  52. package/dist/index-D15_W2rR.js.map +0 -1
  53. package/dist/index-Dgy5wars.js +0 -6970
  54. package/dist/index-Dgy5wars.js.map +0 -1
  55. package/dist/index-Dob7-G92.js +0 -6970
  56. package/dist/index-Dob7-G92.js.map +0 -1
  57. package/dist/index-PLAGUBZD.js +0 -6970
  58. package/dist/index-PLAGUBZD.js.map +0 -1
  59. package/dist/index-y2m5QvKY.js +0 -3851
  60. package/dist/index-y2m5QvKY.js.map +0 -1
  61. package/dist/index.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"escodegen-CvnByJYb.js","sources":["../../../node_modules/.bun/estraverse@1.9.3/node_modules/estraverse/estraverse.js","../../../node_modules/.bun/esutils@2.0.3/node_modules/esutils/lib/ast.js","../../../node_modules/.bun/esutils@2.0.3/node_modules/esutils/lib/code.js","../../../node_modules/.bun/esutils@2.0.3/node_modules/esutils/lib/keyword.js","../../../node_modules/.bun/esutils@2.0.3/node_modules/esutils/lib/utils.js","../../../node_modules/.bun/amdefine@1.0.1/node_modules/amdefine/amdefine.js","../../../node_modules/.bun/source-map@0.2.0/node_modules/source-map/lib/source-map/source-map-generator.js","../../../node_modules/.bun/source-map@0.2.0/node_modules/source-map/lib/source-map/source-map-consumer.js","../../../node_modules/.bun/source-map@0.2.0/node_modules/source-map/lib/source-map/source-node.js","../../../node_modules/.bun/source-map@0.2.0/node_modules/source-map/lib/source-map.js","../../../node_modules/.bun/escodegen-wallaby@1.6.45/node_modules/escodegen-wallaby/escodegen.js"],"sourcesContent":["/*\n Copyright (C) 2012-2013 Yusuke Suzuki <utatane.tea@gmail.com>\n Copyright (C) 2012 Ariya Hidayat <ariya.hidayat@gmail.com>\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*jslint vars:false, bitwise:true*/\n/*jshint indent:4*/\n/*global exports:true, define:true*/\n(function (root, factory) {\n 'use strict';\n\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js,\n // and plain browser loading,\n if (typeof define === 'function' && define.amd) {\n define(['exports'], factory);\n } else if (typeof exports !== 'undefined') {\n factory(exports);\n } else {\n factory((root.estraverse = {}));\n }\n}(this, function clone(exports) {\n 'use strict';\n\n var Syntax,\n isArray,\n VisitorOption,\n VisitorKeys,\n objectCreate,\n objectKeys,\n BREAK,\n SKIP,\n REMOVE;\n\n function ignoreJSHintError() { }\n\n isArray = Array.isArray;\n if (!isArray) {\n isArray = function isArray(array) {\n return Object.prototype.toString.call(array) === '[object Array]';\n };\n }\n\n function deepCopy(obj) {\n var ret = {}, key, val;\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n val = obj[key];\n if (typeof val === 'object' && val !== null) {\n ret[key] = deepCopy(val);\n } else {\n ret[key] = val;\n }\n }\n }\n return ret;\n }\n\n function shallowCopy(obj) {\n var ret = {}, key;\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n ret[key] = obj[key];\n }\n }\n return ret;\n }\n ignoreJSHintError(shallowCopy);\n\n // based on LLVM libc++ upper_bound / lower_bound\n // MIT License\n\n function upperBound(array, func) {\n var diff, len, i, current;\n\n len = array.length;\n i = 0;\n\n while (len) {\n diff = len >>> 1;\n current = i + diff;\n if (func(array[current])) {\n len = diff;\n } else {\n i = current + 1;\n len -= diff + 1;\n }\n }\n return i;\n }\n\n function lowerBound(array, func) {\n var diff, len, i, current;\n\n len = array.length;\n i = 0;\n\n while (len) {\n diff = len >>> 1;\n current = i + diff;\n if (func(array[current])) {\n i = current + 1;\n len -= diff + 1;\n } else {\n len = diff;\n }\n }\n return i;\n }\n ignoreJSHintError(lowerBound);\n\n objectCreate = Object.create || (function () {\n function F() { }\n\n return function (o) {\n F.prototype = o;\n return new F();\n };\n })();\n\n objectKeys = Object.keys || function (o) {\n var keys = [], key;\n for (key in o) {\n keys.push(key);\n }\n return keys;\n };\n\n function extend(to, from) {\n var keys = objectKeys(from), key, i, len;\n for (i = 0, len = keys.length; i < len; i += 1) {\n key = keys[i];\n to[key] = from[key];\n }\n return to;\n }\n\n Syntax = {\n AssignmentExpression: 'AssignmentExpression',\n ArrayExpression: 'ArrayExpression',\n ArrayPattern: 'ArrayPattern',\n ArrowFunctionExpression: 'ArrowFunctionExpression',\n AwaitExpression: 'AwaitExpression', // CAUTION: It's deferred to ES7.\n BlockStatement: 'BlockStatement',\n BinaryExpression: 'BinaryExpression',\n BreakStatement: 'BreakStatement',\n CallExpression: 'CallExpression',\n CatchClause: 'CatchClause',\n ClassBody: 'ClassBody',\n ClassDeclaration: 'ClassDeclaration',\n ClassExpression: 'ClassExpression',\n ComprehensionBlock: 'ComprehensionBlock', // CAUTION: It's deferred to ES7.\n ComprehensionExpression: 'ComprehensionExpression', // CAUTION: It's deferred to ES7.\n ConditionalExpression: 'ConditionalExpression',\n ContinueStatement: 'ContinueStatement',\n DebuggerStatement: 'DebuggerStatement',\n DirectiveStatement: 'DirectiveStatement',\n DoWhileStatement: 'DoWhileStatement',\n EmptyStatement: 'EmptyStatement',\n ExportBatchSpecifier: 'ExportBatchSpecifier',\n ExportDeclaration: 'ExportDeclaration',\n ExportSpecifier: 'ExportSpecifier',\n ExpressionStatement: 'ExpressionStatement',\n ForStatement: 'ForStatement',\n ForInStatement: 'ForInStatement',\n ForOfStatement: 'ForOfStatement',\n FunctionDeclaration: 'FunctionDeclaration',\n FunctionExpression: 'FunctionExpression',\n GeneratorExpression: 'GeneratorExpression', // CAUTION: It's deferred to ES7.\n Identifier: 'Identifier',\n IfStatement: 'IfStatement',\n ImportDeclaration: 'ImportDeclaration',\n ImportDefaultSpecifier: 'ImportDefaultSpecifier',\n ImportNamespaceSpecifier: 'ImportNamespaceSpecifier',\n ImportSpecifier: 'ImportSpecifier',\n Literal: 'Literal',\n LabeledStatement: 'LabeledStatement',\n LogicalExpression: 'LogicalExpression',\n MemberExpression: 'MemberExpression',\n MethodDefinition: 'MethodDefinition',\n ModuleSpecifier: 'ModuleSpecifier',\n NewExpression: 'NewExpression',\n ObjectExpression: 'ObjectExpression',\n ObjectPattern: 'ObjectPattern',\n Program: 'Program',\n Property: 'Property',\n ReturnStatement: 'ReturnStatement',\n SequenceExpression: 'SequenceExpression',\n SpreadElement: 'SpreadElement',\n SwitchStatement: 'SwitchStatement',\n SwitchCase: 'SwitchCase',\n TaggedTemplateExpression: 'TaggedTemplateExpression',\n TemplateElement: 'TemplateElement',\n TemplateLiteral: 'TemplateLiteral',\n ThisExpression: 'ThisExpression',\n ThrowStatement: 'ThrowStatement',\n TryStatement: 'TryStatement',\n UnaryExpression: 'UnaryExpression',\n UpdateExpression: 'UpdateExpression',\n VariableDeclaration: 'VariableDeclaration',\n VariableDeclarator: 'VariableDeclarator',\n WhileStatement: 'WhileStatement',\n WithStatement: 'WithStatement',\n YieldExpression: 'YieldExpression'\n };\n\n VisitorKeys = {\n AssignmentExpression: ['left', 'right'],\n ArrayExpression: ['elements'],\n ArrayPattern: ['elements'],\n ArrowFunctionExpression: ['params', 'defaults', 'rest', 'body'],\n AwaitExpression: ['argument'], // CAUTION: It's deferred to ES7.\n BlockStatement: ['body'],\n BinaryExpression: ['left', 'right'],\n BreakStatement: ['label'],\n CallExpression: ['callee', 'arguments'],\n CatchClause: ['param', 'body'],\n ClassBody: ['body'],\n ClassDeclaration: ['id', 'body', 'superClass'],\n ClassExpression: ['id', 'body', 'superClass'],\n ComprehensionBlock: ['left', 'right'], // CAUTION: It's deferred to ES7.\n ComprehensionExpression: ['blocks', 'filter', 'body'], // CAUTION: It's deferred to ES7.\n ConditionalExpression: ['test', 'consequent', 'alternate'],\n ContinueStatement: ['label'],\n DebuggerStatement: [],\n DirectiveStatement: [],\n DoWhileStatement: ['body', 'test'],\n EmptyStatement: [],\n ExportBatchSpecifier: [],\n ExportDeclaration: ['declaration', 'specifiers', 'source'],\n ExportSpecifier: ['id', 'name'],\n ExpressionStatement: ['expression'],\n ForStatement: ['init', 'test', 'update', 'body'],\n ForInStatement: ['left', 'right', 'body'],\n ForOfStatement: ['left', 'right', 'body'],\n FunctionDeclaration: ['id', 'params', 'defaults', 'rest', 'body'],\n FunctionExpression: ['id', 'params', 'defaults', 'rest', 'body'],\n GeneratorExpression: ['blocks', 'filter', 'body'], // CAUTION: It's deferred to ES7.\n Identifier: [],\n IfStatement: ['test', 'consequent', 'alternate'],\n ImportDeclaration: ['specifiers', 'source'],\n ImportDefaultSpecifier: ['id'],\n ImportNamespaceSpecifier: ['id'],\n ImportSpecifier: ['id', 'name'],\n Literal: [],\n LabeledStatement: ['label', 'body'],\n LogicalExpression: ['left', 'right'],\n MemberExpression: ['object', 'property'],\n MethodDefinition: ['key', 'value'],\n ModuleSpecifier: [],\n NewExpression: ['callee', 'arguments'],\n ObjectExpression: ['properties'],\n ObjectPattern: ['properties'],\n Program: ['body'],\n Property: ['key', 'value'],\n ReturnStatement: ['argument'],\n SequenceExpression: ['expressions'],\n SpreadElement: ['argument'],\n SwitchStatement: ['discriminant', 'cases'],\n SwitchCase: ['test', 'consequent'],\n TaggedTemplateExpression: ['tag', 'quasi'],\n TemplateElement: [],\n TemplateLiteral: ['quasis', 'expressions'],\n ThisExpression: [],\n ThrowStatement: ['argument'],\n TryStatement: ['block', 'handlers', 'handler', 'guardedHandlers', 'finalizer'],\n UnaryExpression: ['argument'],\n UpdateExpression: ['argument'],\n VariableDeclaration: ['declarations'],\n VariableDeclarator: ['id', 'init'],\n WhileStatement: ['test', 'body'],\n WithStatement: ['object', 'body'],\n YieldExpression: ['argument']\n };\n\n // unique id\n BREAK = {};\n SKIP = {};\n REMOVE = {};\n\n VisitorOption = {\n Break: BREAK,\n Skip: SKIP,\n Remove: REMOVE\n };\n\n function Reference(parent, key) {\n this.parent = parent;\n this.key = key;\n }\n\n Reference.prototype.replace = function replace(node) {\n this.parent[this.key] = node;\n };\n\n Reference.prototype.remove = function remove() {\n if (isArray(this.parent)) {\n this.parent.splice(this.key, 1);\n return true;\n } else {\n this.replace(null);\n return false;\n }\n };\n\n function Element(node, path, wrap, ref) {\n this.node = node;\n this.path = path;\n this.wrap = wrap;\n this.ref = ref;\n }\n\n function Controller() { }\n\n // API:\n // return property path array from root to current node\n Controller.prototype.path = function path() {\n var i, iz, j, jz, result, element;\n\n function addToPath(result, path) {\n if (isArray(path)) {\n for (j = 0, jz = path.length; j < jz; ++j) {\n result.push(path[j]);\n }\n } else {\n result.push(path);\n }\n }\n\n // root node\n if (!this.__current.path) {\n return null;\n }\n\n // first node is sentinel, second node is root element\n result = [];\n for (i = 2, iz = this.__leavelist.length; i < iz; ++i) {\n element = this.__leavelist[i];\n addToPath(result, element.path);\n }\n addToPath(result, this.__current.path);\n return result;\n };\n\n // API:\n // return type of current node\n Controller.prototype.type = function () {\n var node = this.current();\n return node.type || this.__current.wrap;\n };\n\n // API:\n // return array of parent elements\n Controller.prototype.parents = function parents() {\n var i, iz, result;\n\n // first node is sentinel\n result = [];\n for (i = 1, iz = this.__leavelist.length; i < iz; ++i) {\n result.push(this.__leavelist[i].node);\n }\n\n return result;\n };\n\n // API:\n // return current node\n Controller.prototype.current = function current() {\n return this.__current.node;\n };\n\n Controller.prototype.__execute = function __execute(callback, element) {\n var previous, result;\n\n result = undefined;\n\n previous = this.__current;\n this.__current = element;\n this.__state = null;\n if (callback) {\n result = callback.call(this, element.node, this.__leavelist[this.__leavelist.length - 1].node);\n }\n this.__current = previous;\n\n return result;\n };\n\n // API:\n // notify control skip / break\n Controller.prototype.notify = function notify(flag) {\n this.__state = flag;\n };\n\n // API:\n // skip child nodes of current node\n Controller.prototype.skip = function () {\n this.notify(SKIP);\n };\n\n // API:\n // break traversals\n Controller.prototype['break'] = function () {\n this.notify(BREAK);\n };\n\n // API:\n // remove node\n Controller.prototype.remove = function () {\n this.notify(REMOVE);\n };\n\n Controller.prototype.__initialize = function(root, visitor) {\n this.visitor = visitor;\n this.root = root;\n this.__worklist = [];\n this.__leavelist = [];\n this.__current = null;\n this.__state = null;\n this.__fallback = visitor.fallback === 'iteration';\n this.__keys = VisitorKeys;\n if (visitor.keys) {\n this.__keys = extend(objectCreate(this.__keys), visitor.keys);\n }\n };\n\n function isNode(node) {\n if (node == null) {\n return false;\n }\n return typeof node === 'object' && typeof node.type === 'string';\n }\n\n function isProperty(nodeType, key) {\n return (nodeType === Syntax.ObjectExpression || nodeType === Syntax.ObjectPattern) && 'properties' === key;\n }\n\n Controller.prototype.traverse = function traverse(root, visitor) {\n var worklist,\n leavelist,\n element,\n node,\n nodeType,\n ret,\n key,\n current,\n current2,\n candidates,\n candidate,\n sentinel;\n\n this.__initialize(root, visitor);\n\n sentinel = {};\n\n // reference\n worklist = this.__worklist;\n leavelist = this.__leavelist;\n\n // initialize\n worklist.push(new Element(root, null, null, null));\n leavelist.push(new Element(null, null, null, null));\n\n while (worklist.length) {\n element = worklist.pop();\n\n if (element === sentinel) {\n element = leavelist.pop();\n\n ret = this.__execute(visitor.leave, element);\n\n if (this.__state === BREAK || ret === BREAK) {\n return;\n }\n continue;\n }\n\n if (element.node) {\n\n ret = this.__execute(visitor.enter, element);\n\n if (this.__state === BREAK || ret === BREAK) {\n return;\n }\n\n worklist.push(sentinel);\n leavelist.push(element);\n\n if (this.__state === SKIP || ret === SKIP) {\n continue;\n }\n\n node = element.node;\n nodeType = element.wrap || node.type;\n candidates = this.__keys[nodeType];\n if (!candidates) {\n if (this.__fallback) {\n candidates = objectKeys(node);\n } else {\n throw new Error('Unknown node type ' + nodeType + '.');\n }\n }\n\n current = candidates.length;\n while ((current -= 1) >= 0) {\n key = candidates[current];\n candidate = node[key];\n if (!candidate) {\n continue;\n }\n\n if (isArray(candidate)) {\n current2 = candidate.length;\n while ((current2 -= 1) >= 0) {\n if (!candidate[current2]) {\n continue;\n }\n if (isProperty(nodeType, candidates[current])) {\n element = new Element(candidate[current2], [key, current2], 'Property', null);\n } else if (isNode(candidate[current2])) {\n element = new Element(candidate[current2], [key, current2], null, null);\n } else {\n continue;\n }\n worklist.push(element);\n }\n } else if (isNode(candidate)) {\n worklist.push(new Element(candidate, key, null, null));\n }\n }\n }\n }\n };\n\n Controller.prototype.replace = function replace(root, visitor) {\n function removeElem(element) {\n var i,\n key,\n nextElem,\n parent;\n\n if (element.ref.remove()) {\n // When the reference is an element of an array.\n key = element.ref.key;\n parent = element.ref.parent;\n\n // If removed from array, then decrease following items' keys.\n i = worklist.length;\n while (i--) {\n nextElem = worklist[i];\n if (nextElem.ref && nextElem.ref.parent === parent) {\n if (nextElem.ref.key < key) {\n break;\n }\n --nextElem.ref.key;\n }\n }\n }\n }\n\n var worklist,\n leavelist,\n node,\n nodeType,\n target,\n element,\n current,\n current2,\n candidates,\n candidate,\n sentinel,\n outer,\n key;\n\n this.__initialize(root, visitor);\n\n sentinel = {};\n\n // reference\n worklist = this.__worklist;\n leavelist = this.__leavelist;\n\n // initialize\n outer = {\n root: root\n };\n element = new Element(root, null, null, new Reference(outer, 'root'));\n worklist.push(element);\n leavelist.push(element);\n\n while (worklist.length) {\n element = worklist.pop();\n\n if (element === sentinel) {\n element = leavelist.pop();\n\n target = this.__execute(visitor.leave, element);\n\n // node may be replaced with null,\n // so distinguish between undefined and null in this place\n if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) {\n // replace\n element.ref.replace(target);\n }\n\n if (this.__state === REMOVE || target === REMOVE) {\n removeElem(element);\n }\n\n if (this.__state === BREAK || target === BREAK) {\n return outer.root;\n }\n continue;\n }\n\n target = this.__execute(visitor.enter, element);\n\n // node may be replaced with null,\n // so distinguish between undefined and null in this place\n if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) {\n // replace\n element.ref.replace(target);\n element.node = target;\n }\n\n if (this.__state === REMOVE || target === REMOVE) {\n removeElem(element);\n element.node = null;\n }\n\n if (this.__state === BREAK || target === BREAK) {\n return outer.root;\n }\n\n // node may be null\n node = element.node;\n if (!node) {\n continue;\n }\n\n worklist.push(sentinel);\n leavelist.push(element);\n\n if (this.__state === SKIP || target === SKIP) {\n continue;\n }\n\n nodeType = element.wrap || node.type;\n candidates = this.__keys[nodeType];\n if (!candidates) {\n if (this.__fallback) {\n candidates = objectKeys(node);\n } else {\n throw new Error('Unknown node type ' + nodeType + '.');\n }\n }\n\n current = candidates.length;\n while ((current -= 1) >= 0) {\n key = candidates[current];\n candidate = node[key];\n if (!candidate) {\n continue;\n }\n\n if (isArray(candidate)) {\n current2 = candidate.length;\n while ((current2 -= 1) >= 0) {\n if (!candidate[current2]) {\n continue;\n }\n if (isProperty(nodeType, candidates[current])) {\n element = new Element(candidate[current2], [key, current2], 'Property', new Reference(candidate, current2));\n } else if (isNode(candidate[current2])) {\n element = new Element(candidate[current2], [key, current2], null, new Reference(candidate, current2));\n } else {\n continue;\n }\n worklist.push(element);\n }\n } else if (isNode(candidate)) {\n worklist.push(new Element(candidate, key, null, new Reference(node, key)));\n }\n }\n }\n\n return outer.root;\n };\n\n function traverse(root, visitor) {\n var controller = new Controller();\n return controller.traverse(root, visitor);\n }\n\n function replace(root, visitor) {\n var controller = new Controller();\n return controller.replace(root, visitor);\n }\n\n function extendCommentRange(comment, tokens) {\n var target;\n\n target = upperBound(tokens, function search(token) {\n return token.range[0] > comment.range[0];\n });\n\n comment.extendedRange = [comment.range[0], comment.range[1]];\n\n if (target !== tokens.length) {\n comment.extendedRange[1] = tokens[target].range[0];\n }\n\n target -= 1;\n if (target >= 0) {\n comment.extendedRange[0] = tokens[target].range[1];\n }\n\n return comment;\n }\n\n function attachComments(tree, providedComments, tokens) {\n // At first, we should calculate extended comment ranges.\n var comments = [], comment, len, i, cursor;\n\n if (!tree.range) {\n throw new Error('attachComments needs range information');\n }\n\n // tokens array is empty, we attach comments to tree as 'leadingComments'\n if (!tokens.length) {\n if (providedComments.length) {\n for (i = 0, len = providedComments.length; i < len; i += 1) {\n comment = deepCopy(providedComments[i]);\n comment.extendedRange = [0, tree.range[0]];\n comments.push(comment);\n }\n tree.leadingComments = comments;\n }\n return tree;\n }\n\n for (i = 0, len = providedComments.length; i < len; i += 1) {\n comments.push(extendCommentRange(deepCopy(providedComments[i]), tokens));\n }\n\n // This is based on John Freeman's implementation.\n cursor = 0;\n traverse(tree, {\n enter: function (node) {\n var comment;\n\n while (cursor < comments.length) {\n comment = comments[cursor];\n if (comment.extendedRange[1] > node.range[0]) {\n break;\n }\n\n if (comment.extendedRange[1] === node.range[0]) {\n if (!node.leadingComments) {\n node.leadingComments = [];\n }\n node.leadingComments.push(comment);\n comments.splice(cursor, 1);\n } else {\n cursor += 1;\n }\n }\n\n // already out of owned node\n if (cursor === comments.length) {\n return VisitorOption.Break;\n }\n\n if (comments[cursor].extendedRange[0] > node.range[1]) {\n return VisitorOption.Skip;\n }\n }\n });\n\n cursor = 0;\n traverse(tree, {\n leave: function (node) {\n var comment;\n\n while (cursor < comments.length) {\n comment = comments[cursor];\n if (node.range[1] < comment.extendedRange[0]) {\n break;\n }\n\n if (node.range[1] === comment.extendedRange[0]) {\n if (!node.trailingComments) {\n node.trailingComments = [];\n }\n node.trailingComments.push(comment);\n comments.splice(cursor, 1);\n } else {\n cursor += 1;\n }\n }\n\n // already out of owned node\n if (cursor === comments.length) {\n return VisitorOption.Break;\n }\n\n if (comments[cursor].extendedRange[0] > node.range[1]) {\n return VisitorOption.Skip;\n }\n }\n });\n\n return tree;\n }\n\n exports.version = '1.8.1-dev';\n exports.Syntax = Syntax;\n exports.traverse = traverse;\n exports.replace = replace;\n exports.attachComments = attachComments;\n exports.VisitorKeys = VisitorKeys;\n exports.VisitorOption = VisitorOption;\n exports.Controller = Controller;\n exports.cloneEnvironment = function () { return clone({}); };\n\n return exports;\n}));\n/* vim: set sw=4 ts=4 et tw=80 : */\n","/*\n Copyright (C) 2013 Yusuke Suzuki <utatane.tea@gmail.com>\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\n(function () {\n 'use strict';\n\n function isExpression(node) {\n if (node == null) { return false; }\n switch (node.type) {\n case 'ArrayExpression':\n case 'AssignmentExpression':\n case 'BinaryExpression':\n case 'CallExpression':\n case 'ConditionalExpression':\n case 'FunctionExpression':\n case 'Identifier':\n case 'Literal':\n case 'LogicalExpression':\n case 'MemberExpression':\n case 'NewExpression':\n case 'ObjectExpression':\n case 'SequenceExpression':\n case 'ThisExpression':\n case 'UnaryExpression':\n case 'UpdateExpression':\n return true;\n }\n return false;\n }\n\n function isIterationStatement(node) {\n if (node == null) { return false; }\n switch (node.type) {\n case 'DoWhileStatement':\n case 'ForInStatement':\n case 'ForStatement':\n case 'WhileStatement':\n return true;\n }\n return false;\n }\n\n function isStatement(node) {\n if (node == null) { return false; }\n switch (node.type) {\n case 'BlockStatement':\n case 'BreakStatement':\n case 'ContinueStatement':\n case 'DebuggerStatement':\n case 'DoWhileStatement':\n case 'EmptyStatement':\n case 'ExpressionStatement':\n case 'ForInStatement':\n case 'ForStatement':\n case 'IfStatement':\n case 'LabeledStatement':\n case 'ReturnStatement':\n case 'SwitchStatement':\n case 'ThrowStatement':\n case 'TryStatement':\n case 'VariableDeclaration':\n case 'WhileStatement':\n case 'WithStatement':\n return true;\n }\n return false;\n }\n\n function isSourceElement(node) {\n return isStatement(node) || node != null && node.type === 'FunctionDeclaration';\n }\n\n function trailingStatement(node) {\n switch (node.type) {\n case 'IfStatement':\n if (node.alternate != null) {\n return node.alternate;\n }\n return node.consequent;\n\n case 'LabeledStatement':\n case 'ForStatement':\n case 'ForInStatement':\n case 'WhileStatement':\n case 'WithStatement':\n return node.body;\n }\n return null;\n }\n\n function isProblematicIfStatement(node) {\n var current;\n\n if (node.type !== 'IfStatement') {\n return false;\n }\n if (node.alternate == null) {\n return false;\n }\n current = node.consequent;\n do {\n if (current.type === 'IfStatement') {\n if (current.alternate == null) {\n return true;\n }\n }\n current = trailingStatement(current);\n } while (current);\n\n return false;\n }\n\n module.exports = {\n isExpression: isExpression,\n isStatement: isStatement,\n isIterationStatement: isIterationStatement,\n isSourceElement: isSourceElement,\n isProblematicIfStatement: isProblematicIfStatement,\n\n trailingStatement: trailingStatement\n };\n}());\n/* vim: set sw=4 ts=4 et tw=80 : */\n","/*\n Copyright (C) 2013-2014 Yusuke Suzuki <utatane.tea@gmail.com>\n Copyright (C) 2014 Ivan Nikulin <ifaaan@gmail.com>\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\n(function () {\n 'use strict';\n\n var ES6Regex, ES5Regex, NON_ASCII_WHITESPACES, IDENTIFIER_START, IDENTIFIER_PART, ch;\n\n // See `tools/generate-identifier-regex.js`.\n ES5Regex = {\n // ECMAScript 5.1/Unicode v9.0.0 NonAsciiIdentifierStart:\n NonAsciiIdentifierStart: /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/,\n // ECMAScript 5.1/Unicode v9.0.0 NonAsciiIdentifierPart:\n NonAsciiIdentifierPart: /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B4\\u08B6-\\u08BD\\u08D4-\\u08E1\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C80-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D54-\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFB-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/\n };\n\n ES6Regex = {\n // ECMAScript 6/Unicode v9.0.0 NonAsciiIdentifierStart:\n NonAsciiIdentifierStart: /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F\\uDFE0]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]/,\n // ECMAScript 6/Unicode v9.0.0 NonAsciiIdentifierPart:\n NonAsciiIdentifierPart: /[\\xAA\\xB5\\xB7\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B4\\u08B6-\\u08BD\\u08D4-\\u08E1\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C80-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D54-\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1369-\\u1371\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFB-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE3E\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC00-\\uDC4A\\uDC50-\\uDC59\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC36\\uDC38-\\uDC40\\uDC50-\\uDC59\\uDC72-\\uDC8F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F\\uDFE0]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6\\uDD00-\\uDD4A\\uDD50-\\uDD59]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/\n };\n\n function isDecimalDigit(ch) {\n return 0x30 <= ch && ch <= 0x39; // 0..9\n }\n\n function isHexDigit(ch) {\n return 0x30 <= ch && ch <= 0x39 || // 0..9\n 0x61 <= ch && ch <= 0x66 || // a..f\n 0x41 <= ch && ch <= 0x46; // A..F\n }\n\n function isOctalDigit(ch) {\n return ch >= 0x30 && ch <= 0x37; // 0..7\n }\n\n // 7.2 White Space\n\n NON_ASCII_WHITESPACES = [\n 0x1680,\n 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A,\n 0x202F, 0x205F,\n 0x3000,\n 0xFEFF\n ];\n\n function isWhiteSpace(ch) {\n return ch === 0x20 || ch === 0x09 || ch === 0x0B || ch === 0x0C || ch === 0xA0 ||\n ch >= 0x1680 && NON_ASCII_WHITESPACES.indexOf(ch) >= 0;\n }\n\n // 7.3 Line Terminators\n\n function isLineTerminator(ch) {\n return ch === 0x0A || ch === 0x0D || ch === 0x2028 || ch === 0x2029;\n }\n\n // 7.6 Identifier Names and Identifiers\n\n function fromCodePoint(cp) {\n if (cp <= 0xFFFF) { return String.fromCharCode(cp); }\n var cu1 = String.fromCharCode(Math.floor((cp - 0x10000) / 0x400) + 0xD800);\n var cu2 = String.fromCharCode(((cp - 0x10000) % 0x400) + 0xDC00);\n return cu1 + cu2;\n }\n\n IDENTIFIER_START = new Array(0x80);\n for(ch = 0; ch < 0x80; ++ch) {\n IDENTIFIER_START[ch] =\n ch >= 0x61 && ch <= 0x7A || // a..z\n ch >= 0x41 && ch <= 0x5A || // A..Z\n ch === 0x24 || ch === 0x5F; // $ (dollar) and _ (underscore)\n }\n\n IDENTIFIER_PART = new Array(0x80);\n for(ch = 0; ch < 0x80; ++ch) {\n IDENTIFIER_PART[ch] =\n ch >= 0x61 && ch <= 0x7A || // a..z\n ch >= 0x41 && ch <= 0x5A || // A..Z\n ch >= 0x30 && ch <= 0x39 || // 0..9\n ch === 0x24 || ch === 0x5F; // $ (dollar) and _ (underscore)\n }\n\n function isIdentifierStartES5(ch) {\n return ch < 0x80 ? IDENTIFIER_START[ch] : ES5Regex.NonAsciiIdentifierStart.test(fromCodePoint(ch));\n }\n\n function isIdentifierPartES5(ch) {\n return ch < 0x80 ? IDENTIFIER_PART[ch] : ES5Regex.NonAsciiIdentifierPart.test(fromCodePoint(ch));\n }\n\n function isIdentifierStartES6(ch) {\n return ch < 0x80 ? IDENTIFIER_START[ch] : ES6Regex.NonAsciiIdentifierStart.test(fromCodePoint(ch));\n }\n\n function isIdentifierPartES6(ch) {\n return ch < 0x80 ? IDENTIFIER_PART[ch] : ES6Regex.NonAsciiIdentifierPart.test(fromCodePoint(ch));\n }\n\n module.exports = {\n isDecimalDigit: isDecimalDigit,\n isHexDigit: isHexDigit,\n isOctalDigit: isOctalDigit,\n isWhiteSpace: isWhiteSpace,\n isLineTerminator: isLineTerminator,\n isIdentifierStartES5: isIdentifierStartES5,\n isIdentifierPartES5: isIdentifierPartES5,\n isIdentifierStartES6: isIdentifierStartES6,\n isIdentifierPartES6: isIdentifierPartES6\n };\n}());\n/* vim: set sw=4 ts=4 et tw=80 : */\n","/*\n Copyright (C) 2013 Yusuke Suzuki <utatane.tea@gmail.com>\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\n(function () {\n 'use strict';\n\n var code = require('./code');\n\n function isStrictModeReservedWordES6(id) {\n switch (id) {\n case 'implements':\n case 'interface':\n case 'package':\n case 'private':\n case 'protected':\n case 'public':\n case 'static':\n case 'let':\n return true;\n default:\n return false;\n }\n }\n\n function isKeywordES5(id, strict) {\n // yield should not be treated as keyword under non-strict mode.\n if (!strict && id === 'yield') {\n return false;\n }\n return isKeywordES6(id, strict);\n }\n\n function isKeywordES6(id, strict) {\n if (strict && isStrictModeReservedWordES6(id)) {\n return true;\n }\n\n switch (id.length) {\n case 2:\n return (id === 'if') || (id === 'in') || (id === 'do');\n case 3:\n return (id === 'var') || (id === 'for') || (id === 'new') || (id === 'try');\n case 4:\n return (id === 'this') || (id === 'else') || (id === 'case') ||\n (id === 'void') || (id === 'with') || (id === 'enum');\n case 5:\n return (id === 'while') || (id === 'break') || (id === 'catch') ||\n (id === 'throw') || (id === 'const') || (id === 'yield') ||\n (id === 'class') || (id === 'super');\n case 6:\n return (id === 'return') || (id === 'typeof') || (id === 'delete') ||\n (id === 'switch') || (id === 'export') || (id === 'import');\n case 7:\n return (id === 'default') || (id === 'finally') || (id === 'extends');\n case 8:\n return (id === 'function') || (id === 'continue') || (id === 'debugger');\n case 10:\n return (id === 'instanceof');\n default:\n return false;\n }\n }\n\n function isReservedWordES5(id, strict) {\n return id === 'null' || id === 'true' || id === 'false' || isKeywordES5(id, strict);\n }\n\n function isReservedWordES6(id, strict) {\n return id === 'null' || id === 'true' || id === 'false' || isKeywordES6(id, strict);\n }\n\n function isRestrictedWord(id) {\n return id === 'eval' || id === 'arguments';\n }\n\n function isIdentifierNameES5(id) {\n var i, iz, ch;\n\n if (id.length === 0) { return false; }\n\n ch = id.charCodeAt(0);\n if (!code.isIdentifierStartES5(ch)) {\n return false;\n }\n\n for (i = 1, iz = id.length; i < iz; ++i) {\n ch = id.charCodeAt(i);\n if (!code.isIdentifierPartES5(ch)) {\n return false;\n }\n }\n return true;\n }\n\n function decodeUtf16(lead, trail) {\n return (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000;\n }\n\n function isIdentifierNameES6(id) {\n var i, iz, ch, lowCh, check;\n\n if (id.length === 0) { return false; }\n\n check = code.isIdentifierStartES6;\n for (i = 0, iz = id.length; i < iz; ++i) {\n ch = id.charCodeAt(i);\n if (0xD800 <= ch && ch <= 0xDBFF) {\n ++i;\n if (i >= iz) { return false; }\n lowCh = id.charCodeAt(i);\n if (!(0xDC00 <= lowCh && lowCh <= 0xDFFF)) {\n return false;\n }\n ch = decodeUtf16(ch, lowCh);\n }\n if (!check(ch)) {\n return false;\n }\n check = code.isIdentifierPartES6;\n }\n return true;\n }\n\n function isIdentifierES5(id, strict) {\n return isIdentifierNameES5(id) && !isReservedWordES5(id, strict);\n }\n\n function isIdentifierES6(id, strict) {\n return isIdentifierNameES6(id) && !isReservedWordES6(id, strict);\n }\n\n module.exports = {\n isKeywordES5: isKeywordES5,\n isKeywordES6: isKeywordES6,\n isReservedWordES5: isReservedWordES5,\n isReservedWordES6: isReservedWordES6,\n isRestrictedWord: isRestrictedWord,\n isIdentifierNameES5: isIdentifierNameES5,\n isIdentifierNameES6: isIdentifierNameES6,\n isIdentifierES5: isIdentifierES5,\n isIdentifierES6: isIdentifierES6\n };\n}());\n/* vim: set sw=4 ts=4 et tw=80 : */\n","/*\n Copyright (C) 2013 Yusuke Suzuki <utatane.tea@gmail.com>\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\n\n(function () {\n 'use strict';\n\n exports.ast = require('./ast');\n exports.code = require('./code');\n exports.keyword = require('./keyword');\n}());\n/* vim: set sw=4 ts=4 et tw=80 : */\n","/** vim: et:ts=4:sw=4:sts=4\n * @license amdefine 1.0.1 Copyright (c) 2011-2016, The Dojo Foundation All Rights Reserved.\n * Available via the MIT or new BSD license.\n * see: http://github.com/jrburke/amdefine for details\n */\n\n/*jslint node: true */\n/*global module, process */\n'use strict';\n\n/**\n * Creates a define for node.\n * @param {Object} module the \"module\" object that is defined by Node for the\n * current module.\n * @param {Function} [requireFn]. Node's require function for the current module.\n * It only needs to be passed in Node versions before 0.5, when module.require\n * did not exist.\n * @returns {Function} a define function that is usable for the current node\n * module.\n */\nfunction amdefine(module, requireFn) {\n 'use strict';\n var defineCache = {},\n loaderCache = {},\n alreadyCalled = false,\n path = require('path'),\n makeRequire, stringRequire;\n\n /**\n * Trims the . and .. from an array of path segments.\n * It will keep a leading path segment if a .. will become\n * the first path segment, to help with module name lookups,\n * which act like paths, but can be remapped. But the end result,\n * all paths that use this function should look normalized.\n * NOTE: this method MODIFIES the input array.\n * @param {Array} ary the array of path segments.\n */\n function trimDots(ary) {\n var i, part;\n for (i = 0; ary[i]; i+= 1) {\n part = ary[i];\n if (part === '.') {\n ary.splice(i, 1);\n i -= 1;\n } else if (part === '..') {\n if (i === 1 && (ary[2] === '..' || ary[0] === '..')) {\n //End of the line. Keep at least one non-dot\n //path segment at the front so it can be mapped\n //correctly to disk. Otherwise, there is likely\n //no path mapping for a path starting with '..'.\n //This can still fail, but catches the most reasonable\n //uses of ..\n break;\n } else if (i > 0) {\n ary.splice(i - 1, 2);\n i -= 2;\n }\n }\n }\n }\n\n function normalize(name, baseName) {\n var baseParts;\n\n //Adjust any relative paths.\n if (name && name.charAt(0) === '.') {\n //If have a base name, try to normalize against it,\n //otherwise, assume it is a top-level require that will\n //be relative to baseUrl in the end.\n if (baseName) {\n baseParts = baseName.split('/');\n baseParts = baseParts.slice(0, baseParts.length - 1);\n baseParts = baseParts.concat(name.split('/'));\n trimDots(baseParts);\n name = baseParts.join('/');\n }\n }\n\n return name;\n }\n\n /**\n * Create the normalize() function passed to a loader plugin's\n * normalize method.\n */\n function makeNormalize(relName) {\n return function (name) {\n return normalize(name, relName);\n };\n }\n\n function makeLoad(id) {\n function load(value) {\n loaderCache[id] = value;\n }\n\n load.fromText = function (id, text) {\n //This one is difficult because the text can/probably uses\n //define, and any relative paths and requires should be relative\n //to that id was it would be found on disk. But this would require\n //bootstrapping a module/require fairly deeply from node core.\n //Not sure how best to go about that yet.\n throw new Error('amdefine does not implement load.fromText');\n };\n\n return load;\n }\n\n makeRequire = function (systemRequire, exports, module, relId) {\n function amdRequire(deps, callback) {\n if (typeof deps === 'string') {\n //Synchronous, single module require('')\n return stringRequire(systemRequire, exports, module, deps, relId);\n } else {\n //Array of dependencies with a callback.\n\n //Convert the dependencies to modules.\n deps = deps.map(function (depName) {\n return stringRequire(systemRequire, exports, module, depName, relId);\n });\n\n //Wait for next tick to call back the require call.\n if (callback) {\n process.nextTick(function () {\n callback.apply(null, deps);\n });\n }\n }\n }\n\n amdRequire.toUrl = function (filePath) {\n if (filePath.indexOf('.') === 0) {\n return normalize(filePath, path.dirname(module.filename));\n } else {\n return filePath;\n }\n };\n\n return amdRequire;\n };\n\n //Favor explicit value, passed in if the module wants to support Node 0.4.\n requireFn = requireFn || function req() {\n return module.require.apply(module, arguments);\n };\n\n function runFactory(id, deps, factory) {\n var r, e, m, result;\n\n if (id) {\n e = loaderCache[id] = {};\n m = {\n id: id,\n uri: __filename,\n exports: e\n };\n r = makeRequire(requireFn, e, m, id);\n } else {\n //Only support one define call per file\n if (alreadyCalled) {\n throw new Error('amdefine with no module ID cannot be called more than once per file.');\n }\n alreadyCalled = true;\n\n //Use the real variables from node\n //Use module.exports for exports, since\n //the exports in here is amdefine exports.\n e = module.exports;\n m = module;\n r = makeRequire(requireFn, e, m, module.id);\n }\n\n //If there are dependencies, they are strings, so need\n //to convert them to dependency values.\n if (deps) {\n deps = deps.map(function (depName) {\n return r(depName);\n });\n }\n\n //Call the factory with the right dependencies.\n if (typeof factory === 'function') {\n result = factory.apply(m.exports, deps);\n } else {\n result = factory;\n }\n\n if (result !== undefined) {\n m.exports = result;\n if (id) {\n loaderCache[id] = m.exports;\n }\n }\n }\n\n stringRequire = function (systemRequire, exports, module, id, relId) {\n //Split the ID by a ! so that\n var index = id.indexOf('!'),\n originalId = id,\n prefix, plugin;\n\n if (index === -1) {\n id = normalize(id, relId);\n\n //Straight module lookup. If it is one of the special dependencies,\n //deal with it, otherwise, delegate to node.\n if (id === 'require') {\n return makeRequire(systemRequire, exports, module, relId);\n } else if (id === 'exports') {\n return exports;\n } else if (id === 'module') {\n return module;\n } else if (loaderCache.hasOwnProperty(id)) {\n return loaderCache[id];\n } else if (defineCache[id]) {\n runFactory.apply(null, defineCache[id]);\n return loaderCache[id];\n } else {\n if(systemRequire) {\n return systemRequire(originalId);\n } else {\n throw new Error('No module with ID: ' + id);\n }\n }\n } else {\n //There is a plugin in play.\n prefix = id.substring(0, index);\n id = id.substring(index + 1, id.length);\n\n plugin = stringRequire(systemRequire, exports, module, prefix, relId);\n\n if (plugin.normalize) {\n id = plugin.normalize(id, makeNormalize(relId));\n } else {\n //Normalize the ID normally.\n id = normalize(id, relId);\n }\n\n if (loaderCache[id]) {\n return loaderCache[id];\n } else {\n plugin.load(id, makeRequire(systemRequire, exports, module, relId), makeLoad(id), {});\n\n return loaderCache[id];\n }\n }\n };\n\n //Create a define function specific to the module asking for amdefine.\n function define(id, deps, factory) {\n if (Array.isArray(id)) {\n factory = deps;\n deps = id;\n id = undefined;\n } else if (typeof id !== 'string') {\n factory = id;\n id = deps = undefined;\n }\n\n if (deps && !Array.isArray(deps)) {\n factory = deps;\n deps = undefined;\n }\n\n if (!deps) {\n deps = ['require', 'exports', 'module'];\n }\n\n //Set up properties for this module. If an ID, then use\n //internal cache. If no ID, then use the external variables\n //for this node module.\n if (id) {\n //Put the module in deep freeze until there is a\n //require call for it.\n defineCache[id] = [id, deps, factory];\n } else {\n runFactory(id, deps, factory);\n }\n }\n\n //define.require, which has access to all the values in the\n //cache. Useful for AMD modules that all have IDs in the file,\n //but need to finally export a value to node based on one of those\n //IDs.\n define.require = function (id) {\n if (loaderCache[id]) {\n return loaderCache[id];\n }\n\n if (defineCache[id]) {\n runFactory.apply(null, defineCache[id]);\n return loaderCache[id];\n }\n };\n\n define.amd = {};\n\n return define;\n}\n\nmodule.exports = amdefine;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nif (typeof define !== 'function') {\n var define = require('amdefine')(module, require);\n}\ndefine(function (require, exports, module) {\n\n var base64VLQ = require('./base64-vlq');\n var util = require('./util');\n var ArraySet = require('./array-set').ArraySet;\n var MappingList = require('./mapping-list').MappingList;\n\n /**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n * - file: The filename of the generated source.\n * - sourceRoot: A root for all relative URLs in this source map.\n */\n function SourceMapGenerator(aArgs) {\n if (!aArgs) {\n aArgs = {};\n }\n this._file = util.getArg(aArgs, 'file', null);\n this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n this._sources = new ArraySet();\n this._names = new ArraySet();\n this._mappings = new MappingList();\n this._sourcesContents = null;\n }\n\n SourceMapGenerator.prototype._version = 3;\n\n /**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\n SourceMapGenerator.fromSourceMap =\n function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n var sourceRoot = aSourceMapConsumer.sourceRoot;\n var generator = new SourceMapGenerator({\n file: aSourceMapConsumer.file,\n sourceRoot: sourceRoot\n });\n aSourceMapConsumer.eachMapping(function (mapping) {\n var newMapping = {\n generated: {\n line: mapping.generatedLine,\n column: mapping.generatedColumn\n }\n };\n\n if (mapping.source != null) {\n newMapping.source = mapping.source;\n if (sourceRoot != null) {\n newMapping.source = util.relative(sourceRoot, newMapping.source);\n }\n\n newMapping.original = {\n line: mapping.originalLine,\n column: mapping.originalColumn\n };\n\n if (mapping.name != null) {\n newMapping.name = mapping.name;\n }\n }\n\n generator.addMapping(newMapping);\n });\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n generator.setSourceContent(sourceFile, content);\n }\n });\n return generator;\n };\n\n /**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n * - generated: An object with the generated line and column positions.\n * - original: An object with the original line and column positions.\n * - source: The original source file (relative to the sourceRoot).\n * - name: An optional original token name for this mapping.\n */\n SourceMapGenerator.prototype.addMapping =\n function SourceMapGenerator_addMapping(aArgs) {\n var generated = util.getArg(aArgs, 'generated');\n var original = util.getArg(aArgs, 'original', null);\n var source = util.getArg(aArgs, 'source', null);\n var name = util.getArg(aArgs, 'name', null);\n\n if (!this._skipValidation) {\n this._validateMapping(generated, original, source, name);\n }\n\n if (source != null && !this._sources.has(source)) {\n this._sources.add(source);\n }\n\n if (name != null && !this._names.has(name)) {\n this._names.add(name);\n }\n\n this._mappings.add({\n generatedLine: generated.line,\n generatedColumn: generated.column,\n originalLine: original != null && original.line,\n originalColumn: original != null && original.column,\n source: source,\n name: name\n });\n };\n\n /**\n * Set the source content for a source file.\n */\n SourceMapGenerator.prototype.setSourceContent =\n function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n var source = aSourceFile;\n if (this._sourceRoot != null) {\n source = util.relative(this._sourceRoot, source);\n }\n\n if (aSourceContent != null) {\n // Add the source content to the _sourcesContents map.\n // Create a new _sourcesContents map if the property is null.\n if (!this._sourcesContents) {\n this._sourcesContents = {};\n }\n this._sourcesContents[util.toSetString(source)] = aSourceContent;\n } else if (this._sourcesContents) {\n // Remove the source file from the _sourcesContents map.\n // If the _sourcesContents map is empty, set the property to null.\n delete this._sourcesContents[util.toSetString(source)];\n if (Object.keys(this._sourcesContents).length === 0) {\n this._sourcesContents = null;\n }\n }\n };\n\n /**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n * If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n * to be applied. If relative, it is relative to the SourceMapConsumer.\n * This parameter is needed when the two source maps aren't in the same\n * directory, and the source map to be applied contains relative source\n * paths. If so, those relative source paths need to be rewritten\n * relative to the SourceMapGenerator.\n */\n SourceMapGenerator.prototype.applySourceMap =\n function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n var sourceFile = aSourceFile;\n // If aSourceFile is omitted, we will use the file property of the SourceMap\n if (aSourceFile == null) {\n if (aSourceMapConsumer.file == null) {\n throw new Error(\n 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n 'or the source map\\'s \"file\" property. Both were omitted.'\n );\n }\n sourceFile = aSourceMapConsumer.file;\n }\n var sourceRoot = this._sourceRoot;\n // Make \"sourceFile\" relative if an absolute Url is passed.\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n // Applying the SourceMap can add and remove items from the sources and\n // the names array.\n var newSources = new ArraySet();\n var newNames = new ArraySet();\n\n // Find mappings for the \"sourceFile\"\n this._mappings.unsortedForEach(function (mapping) {\n if (mapping.source === sourceFile && mapping.originalLine != null) {\n // Check if it can be mapped by the source map, then update the mapping.\n var original = aSourceMapConsumer.originalPositionFor({\n line: mapping.originalLine,\n column: mapping.originalColumn\n });\n if (original.source != null) {\n // Copy mapping\n mapping.source = original.source;\n if (aSourceMapPath != null) {\n mapping.source = util.join(aSourceMapPath, mapping.source)\n }\n if (sourceRoot != null) {\n mapping.source = util.relative(sourceRoot, mapping.source);\n }\n mapping.originalLine = original.line;\n mapping.originalColumn = original.column;\n if (original.name != null) {\n mapping.name = original.name;\n }\n }\n }\n\n var source = mapping.source;\n if (source != null && !newSources.has(source)) {\n newSources.add(source);\n }\n\n var name = mapping.name;\n if (name != null && !newNames.has(name)) {\n newNames.add(name);\n }\n\n }, this);\n this._sources = newSources;\n this._names = newNames;\n\n // Copy sourcesContents of applied map.\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aSourceMapPath != null) {\n sourceFile = util.join(aSourceMapPath, sourceFile);\n }\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n this.setSourceContent(sourceFile, content);\n }\n }, this);\n };\n\n /**\n * A mapping can have one of the three levels of data:\n *\n * 1. Just the generated position.\n * 2. The Generated position, original position, and original source.\n * 3. Generated and original position, original source, as well as a name\n * token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\n SourceMapGenerator.prototype._validateMapping =\n function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n aName) {\n if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aGenerated.line > 0 && aGenerated.column >= 0\n && !aOriginal && !aSource && !aName) {\n // Case 1.\n return;\n }\n else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n && aGenerated.line > 0 && aGenerated.column >= 0\n && aOriginal.line > 0 && aOriginal.column >= 0\n && aSource) {\n // Cases 2 and 3.\n return;\n }\n else {\n throw new Error('Invalid mapping: ' + JSON.stringify({\n generated: aGenerated,\n source: aSource,\n original: aOriginal,\n name: aName\n }));\n }\n };\n\n /**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\n SourceMapGenerator.prototype._serializeMappings =\n function SourceMapGenerator_serializeMappings() {\n var previousGeneratedColumn = 0;\n var previousGeneratedLine = 1;\n var previousOriginalColumn = 0;\n var previousOriginalLine = 0;\n var previousName = 0;\n var previousSource = 0;\n var result = '';\n var mapping;\n\n var mappings = this._mappings.toArray();\n\n for (var i = 0, len = mappings.length; i < len; i++) {\n mapping = mappings[i];\n\n if (mapping.generatedLine !== previousGeneratedLine) {\n previousGeneratedColumn = 0;\n while (mapping.generatedLine !== previousGeneratedLine) {\n result += ';';\n previousGeneratedLine++;\n }\n }\n else {\n if (i > 0) {\n if (!util.compareByGeneratedPositions(mapping, mappings[i - 1])) {\n continue;\n }\n result += ',';\n }\n }\n\n result += base64VLQ.encode(mapping.generatedColumn\n - previousGeneratedColumn);\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (mapping.source != null) {\n result += base64VLQ.encode(this._sources.indexOf(mapping.source)\n - previousSource);\n previousSource = this._sources.indexOf(mapping.source);\n\n // lines are stored 0-based in SourceMap spec version 3\n result += base64VLQ.encode(mapping.originalLine - 1\n - previousOriginalLine);\n previousOriginalLine = mapping.originalLine - 1;\n\n result += base64VLQ.encode(mapping.originalColumn\n - previousOriginalColumn);\n previousOriginalColumn = mapping.originalColumn;\n\n if (mapping.name != null) {\n result += base64VLQ.encode(this._names.indexOf(mapping.name)\n - previousName);\n previousName = this._names.indexOf(mapping.name);\n }\n }\n }\n\n return result;\n };\n\n SourceMapGenerator.prototype._generateSourcesContent =\n function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n return aSources.map(function (source) {\n if (!this._sourcesContents) {\n return null;\n }\n if (aSourceRoot != null) {\n source = util.relative(aSourceRoot, source);\n }\n var key = util.toSetString(source);\n return Object.prototype.hasOwnProperty.call(this._sourcesContents,\n key)\n ? this._sourcesContents[key]\n : null;\n }, this);\n };\n\n /**\n * Externalize the source map.\n */\n SourceMapGenerator.prototype.toJSON =\n function SourceMapGenerator_toJSON() {\n var map = {\n version: this._version,\n sources: this._sources.toArray(),\n names: this._names.toArray(),\n mappings: this._serializeMappings()\n };\n if (this._file != null) {\n map.file = this._file;\n }\n if (this._sourceRoot != null) {\n map.sourceRoot = this._sourceRoot;\n }\n if (this._sourcesContents) {\n map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n }\n\n return map;\n };\n\n /**\n * Render the source map being generated to a string.\n */\n SourceMapGenerator.prototype.toString =\n function SourceMapGenerator_toString() {\n return JSON.stringify(this);\n };\n\n exports.SourceMapGenerator = SourceMapGenerator;\n\n});\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nif (typeof define !== 'function') {\n var define = require('amdefine')(module, require);\n}\ndefine(function (require, exports, module) {\n\n var util = require('./util');\n\n function SourceMapConsumer(aSourceMap) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n }\n\n // We do late requires because the subclasses require() this file.\n if (sourceMap.sections != null) {\n var indexedSourceMapConsumer = require('./indexed-source-map-consumer');\n return new indexedSourceMapConsumer.IndexedSourceMapConsumer(sourceMap);\n } else {\n var basicSourceMapConsumer = require('./basic-source-map-consumer');\n return new basicSourceMapConsumer.BasicSourceMapConsumer(sourceMap);\n }\n }\n\n SourceMapConsumer.fromSourceMap = function(aSourceMap) {\n var basicSourceMapConsumer = require('./basic-source-map-consumer');\n return basicSourceMapConsumer.BasicSourceMapConsumer\n .fromSourceMap(aSourceMap);\n }\n\n /**\n * The version of the source mapping spec that we are consuming.\n */\n SourceMapConsumer.prototype._version = 3;\n\n\n // `__generatedMappings` and `__originalMappings` are arrays that hold the\n // parsed mapping coordinates from the source map's \"mappings\" attribute. They\n // are lazily instantiated, accessed via the `_generatedMappings` and\n // `_originalMappings` getters respectively, and we only parse the mappings\n // and create these arrays once queried for a source location. We jump through\n // these hoops because there can be many thousands of mappings, and parsing\n // them is expensive, so we only want to do it if we must.\n //\n // Each object in the arrays is of the form:\n //\n // {\n // generatedLine: The line number in the generated code,\n // generatedColumn: The column number in the generated code,\n // source: The path to the original source file that generated this\n // chunk of code,\n // originalLine: The line number in the original source that\n // corresponds to this chunk of generated code,\n // originalColumn: The column number in the original source that\n // corresponds to this chunk of generated code,\n // name: The name of the original symbol which generated this chunk of\n // code.\n // }\n //\n // All properties except for `generatedLine` and `generatedColumn` can be\n // `null`.\n //\n // `_generatedMappings` is ordered by the generated positions.\n //\n // `_originalMappings` is ordered by the original positions.\n\n SourceMapConsumer.prototype.__generatedMappings = null;\n Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n get: function () {\n if (!this.__generatedMappings) {\n this.__generatedMappings = [];\n this.__originalMappings = [];\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__generatedMappings;\n }\n });\n\n SourceMapConsumer.prototype.__originalMappings = null;\n Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n get: function () {\n if (!this.__originalMappings) {\n this.__generatedMappings = [];\n this.__originalMappings = [];\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__originalMappings;\n }\n });\n\n SourceMapConsumer.prototype._nextCharIsMappingSeparator =\n function SourceMapConsumer_nextCharIsMappingSeparator(aStr) {\n var c = aStr.charAt(0);\n return c === \";\" || c === \",\";\n };\n\n /**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\n SourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n throw new Error(\"Subclasses must implement _parseMappings\");\n };\n\n SourceMapConsumer.GENERATED_ORDER = 1;\n SourceMapConsumer.ORIGINAL_ORDER = 2;\n\n /**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n * The function that is called with each mapping.\n * @param Object aContext\n * Optional. If specified, this object will be the value of `this` every\n * time that `aCallback` is called.\n * @param aOrder\n * Either `SourceMapConsumer.GENERATED_ORDER` or\n * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n * iterate over the mappings sorted by the generated file's line/column\n * order or the original's source/line/column order, respectively. Defaults to\n * `SourceMapConsumer.GENERATED_ORDER`.\n */\n SourceMapConsumer.prototype.eachMapping =\n function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n var context = aContext || null;\n var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n var mappings;\n switch (order) {\n case SourceMapConsumer.GENERATED_ORDER:\n mappings = this._generatedMappings;\n break;\n case SourceMapConsumer.ORIGINAL_ORDER:\n mappings = this._originalMappings;\n break;\n default:\n throw new Error(\"Unknown order of iteration.\");\n }\n\n var sourceRoot = this.sourceRoot;\n mappings.map(function (mapping) {\n var source = mapping.source;\n if (source != null && sourceRoot != null) {\n source = util.join(sourceRoot, source);\n }\n return {\n source: source,\n generatedLine: mapping.generatedLine,\n generatedColumn: mapping.generatedColumn,\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: mapping.name\n };\n }).forEach(aCallback, context);\n };\n\n /**\n * Returns all generated line and column information for the original source\n * and line provided. The only argument is an object with the following\n * properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source.\n *\n * and an array of objects is returned, each with the following properties:\n *\n * - line: The line number in the generated source, or null.\n * - column: The column number in the generated source, or null.\n */\n SourceMapConsumer.prototype.allGeneratedPositionsFor =\n function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n // returns the index of the closest mapping less than the needle. By\n // setting needle.originalColumn to Infinity, we thus find the last\n // mapping for the given line, provided such a mapping exists.\n var needle = {\n source: util.getArg(aArgs, 'source'),\n originalLine: util.getArg(aArgs, 'line'),\n originalColumn: Infinity\n };\n\n if (this.sourceRoot != null) {\n needle.source = util.relative(this.sourceRoot, needle.source);\n }\n\n var mappings = [];\n\n var index = this._findMapping(needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions);\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n while (mapping && mapping.originalLine === needle.originalLine) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[--index];\n }\n }\n\n return mappings.reverse();\n };\n\n exports.SourceMapConsumer = SourceMapConsumer;\n\n});\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nif (typeof define !== 'function') {\n var define = require('amdefine')(module, require);\n}\ndefine(function (require, exports, module) {\n\n var SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;\n var util = require('./util');\n\n // Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n // operating systems these days (capturing the result).\n var REGEX_NEWLINE = /(\\r?\\n)/;\n\n // Newline character code for charCodeAt() comparisons\n var NEWLINE_CODE = 10;\n\n // Private symbol for identifying `SourceNode`s when multiple versions of\n // the source-map library are loaded. This MUST NOT CHANGE across\n // versions!\n var isSourceNode = \"$$$isSourceNode$$$\";\n\n /**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n * generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\n function SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n this.children = [];\n this.sourceContents = {};\n this.line = aLine == null ? null : aLine;\n this.column = aColumn == null ? null : aColumn;\n this.source = aSource == null ? null : aSource;\n this.name = aName == null ? null : aName;\n this[isSourceNode] = true;\n if (aChunks != null) this.add(aChunks);\n }\n\n /**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n * SourceMapConsumer should be relative to.\n */\n SourceNode.fromStringWithSourceMap =\n function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n // The SourceNode we want to fill with the generated code\n // and the SourceMap\n var node = new SourceNode();\n\n // All even indices of this array are one line of the generated code,\n // while all odd indices are the newlines between two adjacent lines\n // (since `REGEX_NEWLINE` captures its match).\n // Processed fragments are removed from this array, by calling `shiftNextLine`.\n var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n var shiftNextLine = function() {\n var lineContents = remainingLines.shift();\n // The last line of a file might not have a newline.\n var newLine = remainingLines.shift() || \"\";\n return lineContents + newLine;\n };\n\n // We need to remember the position of \"remainingLines\"\n var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n // The generate SourceNodes we need a code range.\n // To extract it current and last mapping is used.\n // Here we store the last mapping.\n var lastMapping = null;\n\n aSourceMapConsumer.eachMapping(function (mapping) {\n if (lastMapping !== null) {\n // We add the code from \"lastMapping\" to \"mapping\":\n // First check if there is a new line in between.\n if (lastGeneratedLine < mapping.generatedLine) {\n var code = \"\";\n // Associate first line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n lastGeneratedLine++;\n lastGeneratedColumn = 0;\n // The remaining code is added without mapping\n } else {\n // There is no new line in between.\n // Associate the code between \"lastGeneratedColumn\" and\n // \"mapping.generatedColumn\" with \"lastMapping\"\n var nextLine = remainingLines[0];\n var code = nextLine.substr(0, mapping.generatedColumn -\n lastGeneratedColumn);\n remainingLines[0] = nextLine.substr(mapping.generatedColumn -\n lastGeneratedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n addMappingWithCode(lastMapping, code);\n // No more remaining code, continue\n lastMapping = mapping;\n return;\n }\n }\n // We add the generated code until the first mapping\n // to the SourceNode without any mapping.\n // Each line is added as separate string.\n while (lastGeneratedLine < mapping.generatedLine) {\n node.add(shiftNextLine());\n lastGeneratedLine++;\n }\n if (lastGeneratedColumn < mapping.generatedColumn) {\n var nextLine = remainingLines[0];\n node.add(nextLine.substr(0, mapping.generatedColumn));\n remainingLines[0] = nextLine.substr(mapping.generatedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n }\n lastMapping = mapping;\n }, this);\n // We have processed all mappings.\n if (remainingLines.length > 0) {\n if (lastMapping) {\n // Associate the remaining code in the current line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n }\n // and add the remaining lines without any mapping\n node.add(remainingLines.join(\"\"));\n }\n\n // Copy sourcesContent into SourceNode\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aRelativePath != null) {\n sourceFile = util.join(aRelativePath, sourceFile);\n }\n node.setSourceContent(sourceFile, content);\n }\n });\n\n return node;\n\n function addMappingWithCode(mapping, code) {\n if (mapping === null || mapping.source === undefined) {\n node.add(code);\n } else {\n var source = aRelativePath\n ? util.join(aRelativePath, mapping.source)\n : mapping.source;\n node.add(new SourceNode(mapping.originalLine,\n mapping.originalColumn,\n source,\n code,\n mapping.name));\n }\n }\n };\n\n /**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\n SourceNode.prototype.add = function SourceNode_add(aChunk) {\n if (Array.isArray(aChunk)) {\n aChunk.forEach(function (chunk) {\n this.add(chunk);\n }, this);\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n if (aChunk) {\n this.children.push(aChunk);\n }\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n };\n\n /**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\n SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n if (Array.isArray(aChunk)) {\n for (var i = aChunk.length-1; i >= 0; i--) {\n this.prepend(aChunk[i]);\n }\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n this.children.unshift(aChunk);\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n };\n\n /**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\n SourceNode.prototype.walk = function SourceNode_walk(aFn) {\n var chunk;\n for (var i = 0, len = this.children.length; i < len; i++) {\n chunk = this.children[i];\n if (chunk[isSourceNode]) {\n chunk.walk(aFn);\n }\n else {\n if (chunk !== '') {\n aFn(chunk, { source: this.source,\n line: this.line,\n column: this.column,\n name: this.name });\n }\n }\n }\n };\n\n /**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\n SourceNode.prototype.join = function SourceNode_join(aSep) {\n var newChildren;\n var i;\n var len = this.children.length;\n if (len > 0) {\n newChildren = [];\n for (i = 0; i < len-1; i++) {\n newChildren.push(this.children[i]);\n newChildren.push(aSep);\n }\n newChildren.push(this.children[i]);\n this.children = newChildren;\n }\n return this;\n };\n\n /**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\n SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n var lastChild = this.children[this.children.length - 1];\n if (lastChild[isSourceNode]) {\n lastChild.replaceRight(aPattern, aReplacement);\n }\n else if (typeof lastChild === 'string') {\n this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n }\n else {\n this.children.push(''.replace(aPattern, aReplacement));\n }\n return this;\n };\n\n /**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\n SourceNode.prototype.setSourceContent =\n function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n };\n\n /**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\n SourceNode.prototype.walkSourceContents =\n function SourceNode_walkSourceContents(aFn) {\n for (var i = 0, len = this.children.length; i < len; i++) {\n if (this.children[i][isSourceNode]) {\n this.children[i].walkSourceContents(aFn);\n }\n }\n\n var sources = Object.keys(this.sourceContents);\n for (var i = 0, len = sources.length; i < len; i++) {\n aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n }\n };\n\n /**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\n SourceNode.prototype.toString = function SourceNode_toString() {\n var str = \"\";\n this.walk(function (chunk) {\n str += chunk;\n });\n return str;\n };\n\n /**\n * Returns the string representation of this source node along with a source\n * map.\n */\n SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n var generated = {\n code: \"\",\n line: 1,\n column: 0\n };\n var map = new SourceMapGenerator(aArgs);\n var sourceMappingActive = false;\n var lastOriginalSource = null;\n var lastOriginalLine = null;\n var lastOriginalColumn = null;\n var lastOriginalName = null;\n this.walk(function (chunk, original) {\n generated.code += chunk;\n if (original.source !== null\n && original.line !== null\n && original.column !== null) {\n if(lastOriginalSource !== original.source\n || lastOriginalLine !== original.line\n || lastOriginalColumn !== original.column\n || lastOriginalName !== original.name) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n lastOriginalSource = original.source;\n lastOriginalLine = original.line;\n lastOriginalColumn = original.column;\n lastOriginalName = original.name;\n sourceMappingActive = true;\n } else if (sourceMappingActive) {\n map.addMapping({\n generated: {\n line: generated.line,\n column: generated.column\n }\n });\n lastOriginalSource = null;\n sourceMappingActive = false;\n }\n for (var idx = 0, length = chunk.length; idx < length; idx++) {\n if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n generated.line++;\n generated.column = 0;\n // Mappings end at eol\n if (idx + 1 === length) {\n lastOriginalSource = null;\n sourceMappingActive = false;\n } else if (sourceMappingActive) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n } else {\n generated.column++;\n }\n }\n });\n this.walkSourceContents(function (sourceFile, sourceContent) {\n map.setSourceContent(sourceFile, sourceContent);\n });\n\n return { code: generated.code, map: map };\n };\n\n exports.SourceNode = SourceNode;\n\n});\n","/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require('./source-map/source-map-generator').SourceMapGenerator;\nexports.SourceMapConsumer = require('./source-map/source-map-consumer').SourceMapConsumer;\nexports.SourceNode = require('./source-map/source-node').SourceNode;\n","/*\n Copyright (C) 2012-2014 Yusuke Suzuki <utatane.tea@gmail.com>\n Copyright (C) 2015 Ingvar Stepanyan <me@rreverser.com>\n Copyright (C) 2014 Ivan Nikulin <ifaaan@gmail.com>\n Copyright (C) 2012-2013 Michael Ficarra <escodegen.copyright@michael.ficarra.me>\n Copyright (C) 2012-2013 Mathias Bynens <mathias@qiwi.be>\n Copyright (C) 2013 Irakli Gozalishvili <rfobic@gmail.com>\n Copyright (C) 2012 Robert Gust-Bardon <donate@robert.gust-bardon.org>\n Copyright (C) 2012 John Freeman <jfreeman08@gmail.com>\n Copyright (C) 2011-2012 Ariya Hidayat <ariya.hidayat@gmail.com>\n Copyright (C) 2012 Joost-Wim Boekesteijn <joost-wim@boekesteijn.nl>\n Copyright (C) 2012 Kris Kowal <kris.kowal@cixar.com>\n Copyright (C) 2012 Arpad Borsos <arpad.borsos@googlemail.com>\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\n/*global exports:true, require:true, global:true*/\n(function () {\n 'use strict';\n\n var Syntax,\n Precedence,\n BinaryPrecedence,\n SourceNode,\n estraverse,\n esutils,\n isArray,\n base,\n indent,\n json,\n renumber,\n hexadecimal,\n quotes,\n escapeless,\n newline,\n space,\n parentheses,\n semicolons,\n safeConcatenation,\n directive,\n extra,\n parse,\n sourceMap,\n sourceCode,\n preserveBlankLines,\n FORMAT_MINIFY,\n FORMAT_DEFAULTS;\n\n estraverse = require('estraverse');\n esutils = require('esutils');\n\n Syntax = estraverse.Syntax;\n\n // Generation is done by generateExpression.\n function isExpression(node) {\n return CodeGenerator.Expression.hasOwnProperty(node.type);\n }\n\n // Generation is done by generateStatement.\n function isStatement(node) {\n return CodeGenerator.Statement.hasOwnProperty(node.type);\n }\n\n Precedence = {\n Sequence: 0,\n Yield: 1,\n Assignment: 1,\n Conditional: 2,\n ArrowFunction: 2,\n LogicalOR: 3,\n NullishCoalescing: 3,\n LogicalAND: 4,\n BitwiseOR: 5,\n BitwiseXOR: 6,\n BitwiseAND: 7,\n Equality: 8,\n Relational: 9,\n BitwiseSHIFT: 10,\n Additive: 11,\n Multiplicative: 12,\n Exponentiation: 13,\n Await: 13,\n Unary: 14,\n Postfix: 15,\n Call: 16,\n New: 17,\n TaggedTemplate: 18,\n OptionalMember: 19,\n Member: 20,\n Primary: 21\n };\n\n BinaryPrecedence = {\n '??': Precedence.NullishCoalescing,\n '||': Precedence.LogicalOR,\n '&&': Precedence.LogicalAND,\n '|': Precedence.BitwiseOR,\n '^': Precedence.BitwiseXOR,\n '&': Precedence.BitwiseAND,\n '==': Precedence.Equality,\n '!=': Precedence.Equality,\n '===': Precedence.Equality,\n '!==': Precedence.Equality,\n 'is': Precedence.Equality,\n 'isnt': Precedence.Equality,\n '<': Precedence.Relational,\n '>': Precedence.Relational,\n '<=': Precedence.Relational,\n '>=': Precedence.Relational,\n 'in': Precedence.Relational,\n 'instanceof': Precedence.Relational,\n '<<': Precedence.BitwiseSHIFT,\n '>>': Precedence.BitwiseSHIFT,\n '>>>': Precedence.BitwiseSHIFT,\n '+': Precedence.Additive,\n '-': Precedence.Additive,\n '*': Precedence.Multiplicative,\n '%': Precedence.Multiplicative,\n '/': Precedence.Multiplicative,\n '**': Precedence.Exponentiation\n };\n\n //Flags\n var F_ALLOW_IN = 1,\n F_ALLOW_CALL = 1 << 1,\n F_ALLOW_UNPARATH_NEW = 1 << 2,\n F_FUNC_BODY = 1 << 3,\n F_DIRECTIVE_CTX = 1 << 4,\n F_SEMICOLON_OPT = 1 << 5;\n\n var F_XJS_NOINDENT = 1 << 8,\n F_XJS_NOPAREN = 1 << 9;\n\n //Expression flag sets\n //NOTE: Flag order:\n // F_ALLOW_IN\n // F_ALLOW_CALL\n // F_ALLOW_UNPARATH_NEW\n var E_FTT = F_ALLOW_CALL | F_ALLOW_UNPARATH_NEW,\n E_TTF = F_ALLOW_IN | F_ALLOW_CALL,\n E_TTT = F_ALLOW_IN | F_ALLOW_CALL | F_ALLOW_UNPARATH_NEW,\n E_TFF = F_ALLOW_IN,\n E_FFT = F_ALLOW_UNPARATH_NEW,\n E_TFT = F_ALLOW_IN | F_ALLOW_UNPARATH_NEW;\n\n //Statement flag sets\n //NOTE: Flag order:\n // F_ALLOW_IN\n // F_FUNC_BODY\n // F_DIRECTIVE_CTX\n // F_SEMICOLON_OPT\n var S_TFFF = F_ALLOW_IN,\n S_TFFT = F_ALLOW_IN | F_SEMICOLON_OPT,\n S_FFFF = 0x00,\n S_TFTF = F_ALLOW_IN | F_DIRECTIVE_CTX,\n S_TTFF = F_ALLOW_IN | F_FUNC_BODY;\n\n function getDefaultOptions() {\n // default options\n return {\n indent: null,\n base: null,\n parse: null,\n comment: false,\n format: {\n indent: {\n style: ' ',\n base: 0,\n adjustMultilineComment: false\n },\n newline: '\\n',\n space: ' ',\n json: false,\n renumber: false,\n hexadecimal: false,\n quotes: 'single',\n escapeless: false,\n compact: false,\n parentheses: true,\n semicolons: true,\n safeConcatenation: false,\n preserveBlankLines: false\n },\n moz: {\n comprehensionExpressionStartsWithAssignment: false,\n starlessGenerator: false\n },\n sourceMap: null,\n sourceMapRoot: null,\n sourceMapWithCode: false,\n directive: false,\n raw: true,\n verbatim: null,\n sourceCode: null\n };\n }\n\n function stringRepeat(str, num) {\n var result = '';\n\n for (num |= 0; num > 0; num >>>= 1, str += str) {\n if (num & 1) {\n result += str;\n }\n }\n\n return result;\n }\n\n isArray = Array.isArray;\n if (!isArray) {\n isArray = function isArray(array) {\n return Object.prototype.toString.call(array) === '[object Array]';\n };\n }\n\n function hasLineTerminator(str) {\n return (/[\\r\\n]/g).test(str);\n }\n\n function endsWithLineTerminator(str) {\n var len = str.length;\n return len && esutils.code.isLineTerminator(str.charCodeAt(len - 1));\n }\n\n function merge(target, override) {\n var key;\n for (key in override) {\n if (override.hasOwnProperty(key)) {\n target[key] = override[key];\n }\n }\n return target;\n }\n\n function updateDeeply(target, override) {\n var key, val;\n\n function isHashObject(target) {\n return typeof target === 'object' && target instanceof Object && !(target instanceof RegExp);\n }\n\n for (key in override) {\n if (override.hasOwnProperty(key)) {\n val = override[key];\n if (isHashObject(val)) {\n if (isHashObject(target[key])) {\n updateDeeply(target[key], val);\n } else {\n target[key] = updateDeeply({}, val);\n }\n } else {\n target[key] = val;\n }\n }\n }\n return target;\n }\n\n function generateNumber(value) {\n var result, point, temp, exponent, pos;\n\n if (value !== value) {\n throw new Error('Numeric literal whose value is NaN');\n }\n if (value < 0 || (value === 0 && 1 / value < 0)) {\n throw new Error('Numeric literal whose value is negative');\n }\n\n if (value === 1 / 0) {\n return json ? 'null' : renumber ? '1e400' : '1e+400';\n }\n\n result = '' + value;\n if (!renumber || result.length < 3) {\n return result;\n }\n\n point = result.indexOf('.');\n if (!json && result.charCodeAt(0) === 0x30 /* 0 */ && point === 1) {\n point = 0;\n result = result.slice(1);\n }\n temp = result;\n result = result.replace('e+', 'e');\n exponent = 0;\n if ((pos = temp.indexOf('e')) > 0) {\n exponent = +temp.slice(pos + 1);\n temp = temp.slice(0, pos);\n }\n if (point >= 0) {\n exponent -= temp.length - point - 1;\n temp = +(temp.slice(0, point) + temp.slice(point + 1)) + '';\n }\n pos = 0;\n while (temp.charCodeAt(temp.length + pos - 1) === 0x30 /* 0 */) {\n --pos;\n }\n if (pos !== 0) {\n exponent -= pos;\n temp = temp.slice(0, pos);\n }\n if (exponent !== 0) {\n temp += 'e' + exponent;\n }\n if ((temp.length < result.length ||\n (hexadecimal && value > 1e12 && Math.floor(value) === value && (temp = '0x' + value.toString(16)).length < result.length)) &&\n +temp === value) {\n result = temp;\n }\n\n return result;\n }\n\n // Generate valid RegExp expression.\n // This function is based on https://github.com/Constellation/iv Engine\n\n function escapeRegExpCharacter(ch, previousIsBackslash) {\n // not handling '\\' and handling \\u2028 or \\u2029 to unicode escape sequence\n if ((ch & ~1) === 0x2028) {\n return (previousIsBackslash ? 'u' : '\\\\u') + ((ch === 0x2028) ? '2028' : '2029');\n } else if (ch === 10 || ch === 13) { // \\n, \\r\n return (previousIsBackslash ? '' : '\\\\') + ((ch === 10) ? 'n' : 'r');\n }\n return String.fromCharCode(ch);\n }\n\n function generateRegExp(reg) {\n var match, result, flags, i, iz, ch, characterInBrack, previousIsBackslash;\n\n result = reg.toString();\n\n if (reg.source) {\n // extract flag from toString result\n match = result.match(/\\/([^/]*)$/);\n if (!match) {\n return result;\n }\n\n flags = match[1];\n result = '';\n\n characterInBrack = false;\n previousIsBackslash = false;\n for (i = 0, iz = reg.source.length; i < iz; ++i) {\n ch = reg.source.charCodeAt(i);\n\n if (!previousIsBackslash) {\n if (characterInBrack) {\n if (ch === 93) { // ]\n characterInBrack = false;\n }\n } else {\n if (ch === 47) { // /\n result += '\\\\';\n } else if (ch === 91) { // [\n characterInBrack = true;\n }\n }\n result += escapeRegExpCharacter(ch, previousIsBackslash);\n previousIsBackslash = ch === 92; // \\\n } else {\n // if new RegExp(\"\\\\\\n') is provided, create /\\n/\n result += escapeRegExpCharacter(ch, previousIsBackslash);\n // prevent like /\\\\[/]/\n previousIsBackslash = false;\n }\n }\n\n return '/' + result + '/' + flags;\n }\n\n return result;\n }\n\n function escapeAllowedCharacter(code, next) {\n var hex;\n\n if (code === 0x08 /* \\b */) {\n return '\\\\b';\n }\n\n if (code === 0x0C /* \\f */) {\n return '\\\\f';\n }\n\n if (code === 0x09 /* \\t */) {\n return '\\\\t';\n }\n\n hex = code.toString(16).toUpperCase();\n if (json || code > 0xFF) {\n return '\\\\u' + '0000'.slice(hex.length) + hex;\n } else if (code === 0x0000 && !esutils.code.isDecimalDigit(next)) {\n return '\\\\0';\n } else if (code === 0x000B /* \\v */) { // '\\v'\n return '\\\\x0B';\n } else {\n return '\\\\x' + '00'.slice(hex.length) + hex;\n }\n }\n\n function escapeDisallowedCharacter(code) {\n if (code === 0x5C /* \\ */) {\n return '\\\\\\\\';\n }\n\n if (code === 0x0A /* \\n */) {\n return '\\\\n';\n }\n\n if (code === 0x0D /* \\r */) {\n return '\\\\r';\n }\n\n if (code === 0x2028) {\n return '\\\\u2028';\n }\n\n if (code === 0x2029) {\n return '\\\\u2029';\n }\n\n throw new Error('Incorrectly classified character');\n }\n\n function escapeDirective(str) {\n var i, iz, code, quote;\n\n quote = quotes === 'double' ? '\"' : '\\'';\n for (i = 0, iz = str.length; i < iz; ++i) {\n code = str.charCodeAt(i);\n if (code === 0x27 /* ' */) {\n quote = '\"';\n break;\n } else if (code === 0x22 /* \" */) {\n quote = '\\'';\n break;\n } else if (code === 0x5C /* \\ */) {\n ++i;\n }\n }\n\n return quote + str + quote;\n }\n\n function escapeString(str) {\n var result = '', i, len, code, singleQuotes = 0, doubleQuotes = 0, single, quote;\n\n for (i = 0, len = str.length; i < len; ++i) {\n code = str.charCodeAt(i);\n if (code === 0x27 /* ' */) {\n ++singleQuotes;\n } else if (code === 0x22 /* \" */) {\n ++doubleQuotes;\n } else if (code === 0x2F /* / */ && json) {\n result += '\\\\';\n } else if (esutils.code.isLineTerminator(code) || code === 0x5C /* \\ */) {\n result += escapeDisallowedCharacter(code);\n continue;\n } else if (!esutils.code.isIdentifierPartES5(code) && (json && code < 0x20 /* SP */ || !json && !escapeless && (code < 0x20 /* SP */ || code > 0x7E /* ~ */))) {\n result += escapeAllowedCharacter(code, str.charCodeAt(i + 1));\n continue;\n }\n result += String.fromCharCode(code);\n }\n\n single = !(quotes === 'double' || (quotes === 'auto' && doubleQuotes < singleQuotes));\n quote = single ? '\\'' : '\"';\n\n if (!(single ? singleQuotes : doubleQuotes)) {\n return quote + result + quote;\n }\n\n str = result;\n result = quote;\n\n for (i = 0, len = str.length; i < len; ++i) {\n code = str.charCodeAt(i);\n if ((code === 0x27 /* ' */ && single) || (code === 0x22 /* \" */ && !single)) {\n result += '\\\\';\n }\n result += String.fromCharCode(code);\n }\n\n return result + quote;\n }\n\n /**\n * flatten an array to a string, where the array can contain\n * either strings or nested arrays\n */\n function flattenToString(arr) {\n var i, iz, elem, result = '';\n for (i = 0, iz = arr.length; i < iz; ++i) {\n elem = arr[i];\n result += isArray(elem) ? flattenToString(elem) : elem;\n }\n return result;\n }\n\n /**\n * convert generated to a SourceNode when source maps are enabled.\n */\n function toSourceNodeWhenNeeded(generated, node) {\n if (node && (node.type === 'PrivateIdentifier') && !(generated instanceof SourceNode)) {\n generated = '#' + generated;\n }\n if (!sourceMap) {\n // with no source maps, generated is either an\n // array or a string. if an array, flatten it.\n // if a string, just return it\n if (isArray(generated)) {\n return flattenToString(generated);\n } else {\n return generated;\n }\n }\n if (node == null) {\n if (generated instanceof SourceNode) {\n return generated;\n } else {\n node = {};\n }\n }\n if (node.loc == null) {\n return new SourceNode(null, null, sourceMap, generated, node.name || null);\n }\n return new SourceNode(node.loc.start.line, node.loc.start.column, (sourceMap === true ? node.loc.source || null : sourceMap), generated, node.name || null);\n }\n\n function noEmptySpace() {\n return (space) ? space : ' ';\n }\n\n function join(left, right) {\n var leftSource,\n rightSource,\n leftCharCode,\n rightCharCode;\n\n leftSource = toSourceNodeWhenNeeded(left).toString();\n if (leftSource.length === 0) {\n return [right];\n }\n\n rightSource = toSourceNodeWhenNeeded(right).toString();\n if (rightSource.length === 0) {\n return [left];\n }\n\n leftCharCode = leftSource.charCodeAt(leftSource.length - 1);\n rightCharCode = rightSource.charCodeAt(0);\n\n if ((leftCharCode === 0x2B /* + */ || leftCharCode === 0x2D /* - */) && leftCharCode === rightCharCode ||\n esutils.code.isIdentifierPartES5(leftCharCode) && esutils.code.isIdentifierPartES5(rightCharCode) ||\n leftCharCode === 0x2F /* / */ && rightCharCode === 0x69 /* i */) { // infix word operators all start with `i`\n return [left, noEmptySpace(), right];\n } else if (esutils.code.isWhiteSpace(leftCharCode) || esutils.code.isLineTerminator(leftCharCode) ||\n esutils.code.isWhiteSpace(rightCharCode) || esutils.code.isLineTerminator(rightCharCode)) {\n return [left, right];\n }\n return [left, space, right];\n }\n\n function addIndent(stmt) {\n return [base, stmt];\n }\n\n function withIndent(fn) {\n var previousBase;\n previousBase = base;\n base += indent;\n fn(base);\n base = previousBase;\n }\n\n function calculateSpaces(str) {\n var i;\n for (i = str.length - 1; i >= 0; --i) {\n if (esutils.code.isLineTerminator(str.charCodeAt(i))) {\n break;\n }\n }\n return (str.length - 1) - i;\n }\n\n function adjustMultilineComment(value, specialBase) {\n var array, i, len, line, j, spaces, previousBase, sn;\n\n array = value.split(/\\r\\n|[\\r\\n]/);\n spaces = Number.MAX_VALUE;\n\n // first line doesn't have indentation\n for (i = 1, len = array.length; i < len; ++i) {\n line = array[i];\n j = 0;\n while (j < line.length && esutils.code.isWhiteSpace(line.charCodeAt(j))) {\n ++j;\n }\n if (spaces > j) {\n spaces = j;\n }\n }\n\n if (typeof specialBase !== 'undefined') {\n // pattern like\n // {\n // var t = 20; /*\n // * this is comment\n // */\n // }\n previousBase = base;\n if (array[1][spaces] === '*') {\n specialBase += ' ';\n }\n base = specialBase;\n } else {\n if (spaces & 1) {\n // /*\n // *\n // */\n // If spaces are odd number, above pattern is considered.\n // We waste 1 space.\n --spaces;\n }\n previousBase = base;\n }\n\n for (i = 1, len = array.length; i < len; ++i) {\n sn = toSourceNodeWhenNeeded(addIndent(array[i].slice(spaces)));\n array[i] = sourceMap ? sn.join('') : sn;\n }\n\n base = previousBase;\n\n return array.join('\\n');\n }\n\n function generateComment(comment, specialBase) {\n if (comment.type === 'Line') {\n if (endsWithLineTerminator(comment.value)) {\n return '//' + comment.value;\n } else {\n // Always use LineTerminator\n var result = '//' + comment.value;\n if (!preserveBlankLines) {\n result += '\\n';\n }\n return result;\n }\n }\n if (extra.format.indent.adjustMultilineComment && /[\\n\\r]/.test(comment.value)) {\n return adjustMultilineComment('/*' + comment.value + '*/', specialBase);\n }\n return '/*' + comment.value + '*/';\n }\n\n function addComments(stmt, result) {\n var i, len, comment, save, tailingToStatement, specialBase, fragment,\n extRange, range, prevRange, prefix, infix, suffix, count;\n\n if (stmt.leadingComments && stmt.leadingComments.length > 0) {\n save = result;\n\n if (preserveBlankLines) {\n comment = stmt.leadingComments[0];\n result = [];\n\n extRange = comment.extendedRange;\n range = comment.range;\n\n prefix = sourceCode.substring(extRange[0], range[0]);\n count = (prefix.match(/\\n/g) || []).length;\n if (count > 0) {\n result.push(stringRepeat('\\n', count));\n result.push(addIndent(generateComment(comment)));\n } else {\n result.push(prefix);\n result.push(generateComment(comment));\n }\n\n prevRange = range;\n\n for (i = 1, len = stmt.leadingComments.length; i < len; i++) {\n comment = stmt.leadingComments[i];\n range = comment.range;\n\n infix = sourceCode.substring(prevRange[1], range[0]);\n count = (infix.match(/\\n/g) || []).length;\n result.push(stringRepeat('\\n', count));\n result.push(addIndent(generateComment(comment)));\n\n prevRange = range;\n }\n\n suffix = sourceCode.substring(range[1], extRange[1]);\n count = (suffix.match(/\\n/g) || []).length;\n result.push(stringRepeat('\\n', count));\n } else {\n comment = stmt.leadingComments[0];\n result = [];\n if (safeConcatenation && stmt.type === Syntax.Program && stmt.body.length === 0) {\n result.push('\\n');\n }\n result.push(generateComment(comment));\n if (!endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {\n result.push('\\n');\n }\n\n for (i = 1, len = stmt.leadingComments.length; i < len; ++i) {\n comment = stmt.leadingComments[i];\n fragment = [generateComment(comment)];\n if (!endsWithLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) {\n fragment.push('\\n');\n }\n result.push(addIndent(fragment));\n }\n }\n\n result.push(addIndent(save));\n }\n\n if (stmt.trailingComments) {\n\n if (preserveBlankLines) {\n comment = stmt.trailingComments[0];\n extRange = comment.extendedRange;\n range = comment.range;\n\n prefix = sourceCode.substring(extRange[0], range[0]);\n count = (prefix.match(/\\n/g) || []).length;\n\n if (count > 0) {\n result.push(stringRepeat('\\n', count));\n result.push(addIndent(generateComment(comment)));\n } else {\n result.push(prefix);\n result.push(generateComment(comment));\n }\n } else {\n tailingToStatement = !endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString());\n specialBase = stringRepeat(' ', calculateSpaces(toSourceNodeWhenNeeded([base, result, indent]).toString()));\n for (i = 0, len = stmt.trailingComments.length; i < len; ++i) {\n comment = stmt.trailingComments[i];\n if (tailingToStatement) {\n // We assume target like following script\n //\n // var t = 20; /**\n // * This is comment of t\n // */\n if (i === 0) {\n // first case\n result = [result, indent];\n } else {\n result = [result, specialBase];\n }\n result.push(generateComment(comment, specialBase));\n } else {\n result = [result, addIndent(generateComment(comment))];\n }\n if (i !== len - 1 && !endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {\n result = [result, '\\n'];\n }\n }\n }\n }\n\n return result;\n }\n\n function generateBlankLines(start, end, result) {\n var j, newlineCount = 0;\n\n for (j = start; j < end; j++) {\n if (sourceCode[j] === '\\n') {\n newlineCount++;\n }\n }\n\n for (j = 1; j < newlineCount; j++) {\n result.push(newline);\n }\n }\n\n function parenthesize(text, current, should) {\n if (current < should) {\n return ['(', text, ')'];\n }\n return text;\n }\n\n function generateVerbatimString(string) {\n var i, iz, result;\n result = string.split(/\\r\\n|\\n/);\n for (i = 1, iz = result.length; i < iz; i++) {\n result[i] = newline + base + result[i];\n }\n return result;\n }\n\n function generateVerbatim(expr, precedence) {\n var verbatim, result, prec;\n verbatim = expr[extra.verbatim];\n\n if (typeof verbatim === 'string') {\n result = parenthesize(generateVerbatimString(verbatim), Precedence.Sequence, precedence);\n } else {\n // verbatim is object\n result = generateVerbatimString(verbatim.content);\n prec = (verbatim.precedence != null) ? verbatim.precedence : Precedence.Sequence;\n result = parenthesize(result, prec, precedence);\n }\n\n return toSourceNodeWhenNeeded(result, expr);\n }\n\n function CodeGenerator() {\n }\n\n // Helpers.\n\n CodeGenerator.prototype.maybeBlock = function(stmt, flags) {\n var result, noLeadingComment, that = this;\n\n noLeadingComment = !extra.comment || !stmt.leadingComments;\n\n if (stmt.type === Syntax.BlockStatement && noLeadingComment) {\n return [space, this.generateStatement(stmt, flags)];\n }\n\n if (stmt.type === Syntax.EmptyStatement && noLeadingComment) {\n return ';';\n }\n\n withIndent(function () {\n result = [\n newline,\n addIndent(that.generateStatement(stmt, flags))\n ];\n });\n\n return result;\n };\n\n CodeGenerator.prototype.maybeBlockSuffix = function (stmt, result) {\n var ends = endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString());\n if (stmt.type === Syntax.BlockStatement && (!extra.comment || !stmt.leadingComments) && !ends) {\n return [result, space];\n }\n if (ends) {\n return [result, base];\n }\n return [result, newline, base];\n };\n\n function generateIdentifier(node) {\n return toSourceNodeWhenNeeded(node.name, node);\n }\n\n function generateAsyncPrefix(node, spaceRequired) {\n return node.async ? 'async' + (spaceRequired ? noEmptySpace() : space) : '';\n }\n\n function generateStarSuffix(node) {\n var isGenerator = node.generator && !extra.moz.starlessGenerator;\n return isGenerator ? '*' + space : '';\n }\n\n function generateMethodPrefix(prop) {\n var func = prop.value, prefix = '';\n if (func.async) {\n prefix += generateAsyncPrefix(func, !prop.computed);\n }\n if (func.generator) {\n // avoid space before method name\n prefix += generateStarSuffix(func) ? '*' : '';\n }\n return prefix;\n }\n\n CodeGenerator.prototype.generatePattern = function (node, precedence, flags) {\n if (node.type === Syntax.Identifier) {\n return generateIdentifier(node);\n }\n return this.generateExpression(node, precedence, flags);\n };\n\n CodeGenerator.prototype.generateFunctionParams = function (node) {\n var i, iz, result, hasDefault;\n\n hasDefault = false;\n\n if (node.type === Syntax.ArrowFunctionExpression &&\n !node.rest && (!node.defaults || node.defaults.length === 0) &&\n node.params.length === 1 && node.params[0].type === Syntax.Identifier) {\n // arg => { } case\n result = [generateAsyncPrefix(node, true), generateIdentifier(node.params[0])];\n } else {\n result = node.type === Syntax.ArrowFunctionExpression ? [generateAsyncPrefix(node, false)] : [];\n result.push('(');\n if (node.defaults) {\n hasDefault = true;\n }\n for (i = 0, iz = node.params.length; i < iz; ++i) {\n if (hasDefault && node.defaults[i]) {\n // Handle default values.\n result.push(this.generateAssignment(node.params[i], node.defaults[i], '=', Precedence.Assignment, E_TTT));\n } else {\n result.push(this.generatePattern(node.params[i], Precedence.Assignment, E_TTT));\n }\n if (i + 1 < iz) {\n result.push(',' + space);\n }\n }\n\n if (node.rest) {\n if (node.params.length) {\n result.push(',' + space);\n }\n result.push('...');\n result.push(generateIdentifier(node.rest));\n }\n\n result.push(')');\n }\n\n return result;\n };\n\n CodeGenerator.prototype.generateFunctionBody = function (node) {\n var result, expr;\n\n result = this.generateFunctionParams(node);\n\n if (node.type === Syntax.ArrowFunctionExpression) {\n result.push(space);\n result.push('=>');\n }\n\n if (node.expression) {\n result.push(space);\n expr = this.generateExpression(node.body, Precedence.Assignment, E_TTT);\n if (expr.toString().charAt(0) === '{') {\n expr = ['(', expr, ')'];\n }\n result.push(expr);\n } else {\n result.push(this.maybeBlock(node.body, S_TTFF));\n }\n\n return result;\n };\n\n CodeGenerator.prototype.generateIterationForStatement = function (operator, stmt, flags) {\n var result = ['for' + space + (stmt.await ? 'await' + space : '') + '('], that = this;\n withIndent(function () {\n if (stmt.left.type === Syntax.VariableDeclaration) {\n withIndent(function () {\n result.push(stmt.left.kind + noEmptySpace());\n result.push(that.generateStatement(stmt.left.declarations[0], S_FFFF));\n });\n } else {\n result.push(that.generateExpression(stmt.left, Precedence.Call, E_TTT));\n }\n\n result = join(result, operator);\n result = [join(\n result,\n that.generateExpression(stmt.right, Precedence.Sequence + (operator === 'of' ? 1 : 0), E_TTT)\n ), ')'];\n });\n result.push(this.maybeBlock(stmt.body, flags));\n return result;\n };\n\n CodeGenerator.prototype.generatePropertyKey = function (expr, computed) {\n var result = [];\n\n if (computed) {\n result.push('[');\n }\n\n result.push(this.generateExpression(expr, Precedence.Assignment, E_TTT));\n if (computed) {\n result.push(']');\n }\n\n return result;\n };\n\n CodeGenerator.prototype.generateAssignment = function (left, right, operator, precedence, flags) {\n if (Precedence.Assignment < precedence) {\n flags |= F_ALLOW_IN;\n }\n\n return parenthesize(\n [\n this.generateExpression(left, Precedence.Call, flags),\n space + operator + space,\n this.generateExpression(right, Precedence.Assignment, flags)\n ],\n Precedence.Assignment,\n precedence\n );\n };\n\n CodeGenerator.prototype.semicolon = function (flags) {\n if (!semicolons && flags & F_SEMICOLON_OPT) {\n return '';\n }\n return ';';\n };\n\n // Statements.\n\n CodeGenerator.Statement = {\n\n BlockStatement: function (stmt, flags) {\n var range, content, result = ['{', newline], that = this;\n\n withIndent(function () {\n // handle functions without any code\n if (stmt.body.length === 0 && preserveBlankLines) {\n range = stmt.range;\n if (range[1] - range[0] > 2) {\n content = sourceCode.substring(range[0] + 1, range[1] - 1);\n if (content[0] === '\\n') {\n result = ['{'];\n }\n result.push(content);\n }\n }\n\n var i, iz, fragment, bodyFlags;\n bodyFlags = S_TFFF;\n if (flags & F_FUNC_BODY) {\n bodyFlags |= F_DIRECTIVE_CTX;\n }\n\n for (i = 0, iz = stmt.body.length; i < iz; ++i) {\n if (preserveBlankLines) {\n // handle spaces before the first line\n if (i === 0) {\n if (stmt.body[0].leadingComments) {\n range = stmt.body[0].leadingComments[0].extendedRange;\n content = sourceCode.substring(range[0], range[1]);\n if (content[0] === '\\n') {\n result = ['{'];\n }\n }\n if (!stmt.body[0].leadingComments) {\n generateBlankLines(stmt.range[0], stmt.body[0].range[0], result);\n }\n }\n\n // handle spaces between lines\n if (i > 0) {\n if (!stmt.body[i - 1].trailingComments && !stmt.body[i].leadingComments) {\n generateBlankLines(stmt.body[i - 1].range[1], stmt.body[i].range[0], result);\n }\n }\n }\n\n if (i === iz - 1) {\n bodyFlags |= F_SEMICOLON_OPT;\n }\n\n if (stmt.body[i].leadingComments && preserveBlankLines) {\n fragment = that.generateStatement(stmt.body[i], bodyFlags);\n } else {\n fragment = addIndent(that.generateStatement(stmt.body[i], bodyFlags));\n }\n\n result.push(fragment);\n if (!endsWithLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) {\n if (preserveBlankLines && i < iz - 1) {\n // don't add a new line if there are leading coments\n // in the next statement\n if (!stmt.body[i + 1].leadingComments) {\n result.push(newline);\n }\n } else {\n result.push(newline);\n }\n }\n\n if (preserveBlankLines) {\n // handle spaces after the last line\n if (i === iz - 1) {\n if (!stmt.body[i].trailingComments) {\n generateBlankLines(stmt.body[i].range[1], stmt.range[1], result);\n }\n }\n }\n }\n });\n\n result.push(addIndent('}'));\n return result;\n },\n\n StaticBlock: function (stmt, flags) {\n var result = this.BlockStatement(stmt, flags);\n result.unshift('static ');\n return result;\n },\n\n BreakStatement: function (stmt, flags) {\n if (stmt.label) {\n return 'break ' + stmt.label.name + this.semicolon(flags);\n }\n return 'break' + this.semicolon(flags);\n },\n\n ContinueStatement: function (stmt, flags) {\n if (stmt.label) {\n return 'continue ' + stmt.label.name + this.semicolon(flags);\n }\n return 'continue' + this.semicolon(flags);\n },\n\n ClassBody: function (stmt, flags) {\n var result = [ '{', newline], that = this;\n\n withIndent(function (indent) {\n var i, iz;\n\n for (i = 0, iz = stmt.body.length; i < iz; ++i) {\n result.push(indent);\n result.push(that.generateExpression(stmt.body[i], Precedence.Sequence, E_TTT));\n if (i + 1 < iz) {\n result.push(newline);\n }\n }\n });\n\n if (!endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {\n result.push(newline);\n }\n result.push(base);\n result.push('}');\n return result;\n },\n\n ClassDeclaration: function (stmt, flags) {\n var result, fragment;\n result = ['class'];\n if (stmt.id) {\n result = join(result, this.generateExpression(stmt.id, Precedence.Sequence, E_TTT));\n }\n if (stmt.superClass) {\n fragment = join('extends', [\n '(',\n this.generateExpression(stmt.superClass, Precedence.Assignment, E_TTT),\n ')'\n ]);\n result = join(result, fragment);\n }\n result.push(space);\n result.push(this.generateStatement(stmt.body, S_TFFT));\n return result;\n },\n\n DirectiveStatement: function (stmt, flags) {\n if (extra.raw && stmt.raw) {\n return stmt.raw + this.semicolon(flags);\n }\n return escapeDirective(stmt.directive) + this.semicolon(flags);\n },\n\n DoWhileStatement: function (stmt, flags) {\n // Because `do 42 while (cond)` is Syntax Error. We need semicolon.\n var result = join('do', this.maybeBlock(stmt.body, S_TFFF));\n result = this.maybeBlockSuffix(stmt.body, result);\n return join(result, [\n 'while' + space + '(',\n this.generateExpression(stmt.test, Precedence.Sequence, E_TTT),\n ')' + this.semicolon(flags)\n ]);\n },\n\n CatchClause: function (stmt, flags) {\n var result, that = this;\n withIndent(function () {\n var guard;\n\n result = [\n 'catch' + (stmt.param ? (space + '(') : '')\n ];\n\n if (stmt.param) {\n result = result.concat([\n that.generateExpression(stmt.param, Precedence.Sequence, E_TTT),\n ')'\n ]);\n }\n\n if (stmt.guard) {\n guard = that.generateExpression(stmt.guard, Precedence.Sequence, E_TTT);\n result.splice(2, 0, ' if ', guard);\n }\n });\n result.push(this.maybeBlock(stmt.body, S_TFFF));\n return result;\n },\n\n DebuggerStatement: function (stmt, flags) {\n return 'debugger' + this.semicolon(flags);\n },\n\n EmptyStatement: function (stmt, flags) {\n return ';';\n },\n\n ExportDefaultDeclaration: function (stmt, flags) {\n var result = [ 'export' ], bodyFlags;\n\n bodyFlags = (flags & F_SEMICOLON_OPT) ? S_TFFT : S_TFFF;\n\n // export default HoistableDeclaration[Default]\n // export default AssignmentExpression[In] ;\n result = join(result, 'default');\n if (isStatement(stmt.declaration)) {\n result = join(result, this.generateStatement(stmt.declaration, bodyFlags));\n } else {\n result = join(result, this.generateExpression(stmt.declaration, Precedence.Assignment, E_TTT) + this.semicolon(flags));\n }\n return result;\n },\n\n ExportNamedDeclaration: function (stmt, flags) {\n var result = [ 'export' ], bodyFlags, that = this;\n\n bodyFlags = (flags & F_SEMICOLON_OPT) ? S_TFFT : S_TFFF;\n\n // export VariableStatement\n // export Declaration[Default]\n if (stmt.declaration) {\n return join(result, this.generateStatement(stmt.declaration, bodyFlags));\n }\n\n // export ExportClause[NoReference] FromClause ;\n // export ExportClause ;\n if (stmt.specifiers) {\n if (stmt.specifiers.length === 0) {\n result = join(result, '{' + space + '}');\n } else if (stmt.specifiers[0].type === Syntax.ExportBatchSpecifier) {\n result = join(result, this.generateExpression(stmt.specifiers[0], Precedence.Sequence, E_TTT));\n } else {\n result = join(result, '{');\n withIndent(function (indent) {\n var i, iz;\n result.push(newline);\n for (i = 0, iz = stmt.specifiers.length; i < iz; ++i) {\n result.push(indent);\n result.push(that.generateExpression(stmt.specifiers[i], Precedence.Sequence, E_TTT));\n if (i + 1 < iz) {\n result.push(',' + newline);\n }\n }\n });\n if (!endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {\n result.push(newline);\n }\n result.push(base + '}');\n }\n\n if (stmt.source) {\n result = join(result, [\n 'from' + space,\n // ModuleSpecifier\n this.generateExpression(stmt.source, Precedence.Sequence, E_TTT),\n ...this.ImportExportAssertions(stmt.assertions, Precedence.Sequence, E_TTT),\n ...this.ImportExportAttributes(stmt.attributes, Precedence.Sequence, E_TTT),\n this.semicolon(flags)\n ]);\n } else {\n result.push(this.semicolon(flags));\n }\n }\n return result;\n },\n\n ExportAllDeclaration: function (stmt, flags) {\n // export * FromClause ;\n return [\n 'export' + space,\n '*' + space,\n stmt.exported ? 'as ' + stmt.exported.name + ' ' : '',\n 'from' + space,\n // ModuleSpecifier\n this.generateExpression(stmt.source, Precedence.Sequence, E_TTT),\n ...this.ImportExportAssertions(stmt.assertions),\n ...this.ImportExportAttributes(stmt.attributes),\n this.semicolon(flags)\n ];\n },\n\n ExpressionStatement: function (stmt, flags) {\n var result, fragment;\n\n function isClassPrefixed(fragment) {\n var code;\n if (fragment.slice(0, 5) !== 'class') {\n return false;\n }\n code = fragment.charCodeAt(5);\n return code === 0x7B /* '{' */ || esutils.code.isWhiteSpace(code) || esutils.code.isLineTerminator(code);\n }\n\n function isFunctionPrefixed(fragment) {\n var code;\n if (fragment.slice(0, 8) !== 'function') {\n return false;\n }\n code = fragment.charCodeAt(8);\n return code === 0x28 /* '(' */ || esutils.code.isWhiteSpace(code) || code === 0x2A /* '*' */ || esutils.code.isLineTerminator(code);\n }\n\n function isAsyncPrefixed(fragment) {\n var code, i, iz;\n if (fragment.slice(0, 5) !== 'async') {\n return false;\n }\n if (!esutils.code.isWhiteSpace(fragment.charCodeAt(5))) {\n return false;\n }\n for (i = 6, iz = fragment.length; i < iz; ++i) {\n if (!esutils.code.isWhiteSpace(fragment.charCodeAt(i))) {\n break;\n }\n }\n if (i === iz) {\n return false;\n }\n if (fragment.slice(i, i + 8) !== 'function') {\n return false;\n }\n code = fragment.charCodeAt(i + 8);\n return code === 0x28 /* '(' */ || esutils.code.isWhiteSpace(code) || code === 0x2A /* '*' */ || esutils.code.isLineTerminator(code);\n }\n\n result = [this.generateExpression(stmt.expression, Precedence.Sequence, E_TTT | F_XJS_NOINDENT)];\n // 12.4 '{', 'function', 'class' is not allowed in this position.\n // wrap expression with parentheses\n fragment = toSourceNodeWhenNeeded(result).toString();\n if (fragment.charCodeAt(0) === 0x7B /* '{' */ || // ObjectExpression\n isClassPrefixed(fragment) ||\n isFunctionPrefixed(fragment) ||\n isAsyncPrefixed(fragment) ||\n (directive && (flags & F_DIRECTIVE_CTX) && stmt.expression.type === Syntax.Literal && typeof stmt.expression.value === 'string')) {\n result = ['(', result, ')' + this.semicolon(flags)];\n } else {\n result.push(this.semicolon(flags));\n }\n return result;\n },\n\n ImportExportAttributes: function(attributes) {\n if (!attributes || attributes.length === 0) {\n return [];\n }\n\n var result = [space, 'with', space, '{', space];\n for (var i = 0; i < attributes.length; i++) {\n if (i > 0) {\n result.push(',' + space);\n }\n\n var attribute = attributes[i];\n if (attribute.type !== 'ImportAttribute') {\n throw new Error('attribute type must be ImportAttribute');\n }\n\n result.push(this.generateExpression(attribute.key, Precedence.Sequence, E_TTT));\n result.push(':' + space);\n result.push(this.generateExpression(attribute.value, Precedence.Sequence, E_TTT));\n }\n\n result.push(space);\n result.push('}');\n return result;\n },\n\n ImportExportAssertions: function(assertions) {\n if (!assertions || assertions.length === 0) {\n return [];\n }\n\n var result = [space, 'assert', space, '{', space];\n for (var i = 0; i < assertions.length; i++) {\n if (i > 0) {\n result.push(',' + space);\n }\n\n var assertion = assertions[i];\n if (assertion.type !== 'ImportAttribute') {\n throw new Error('Assertion type must be ImportAttribute');\n }\n\n result.push(this.generateExpression(assertion.key, Precedence.Sequence, E_TTT));\n result.push(':' + space);\n result.push(this.generateExpression(assertion.value, Precedence.Sequence, E_TTT));\n }\n\n result.push(space);\n result.push('}');\n return result;\n },\n\n ImportDeclaration: function (stmt, flags) {\n // ES6: 15.2.1 valid import declarations:\n // - import ImportClause FromClause ;\n // - import ModuleSpecifier ;\n var result, cursor, that = this;\n\n // If no ImportClause is present,\n // this should be `import ModuleSpecifier` so skip `from`\n // ModuleSpecifier is StringLiteral.\n if (stmt.specifiers.length === 0) {\n // import ModuleSpecifier ;\n return [\n 'import',\n space,\n // ModuleSpecifier\n this.generateExpression(stmt.source, Precedence.Sequence, E_TTT),\n ...this.ImportExportAssertions(stmt.assertions),\n ...this.ImportExportAttributes(stmt.attributes),\n this.semicolon(flags)\n ];\n }\n\n // import ImportClause FromClause ;\n result = [\n 'import'\n ];\n cursor = 0;\n\n // ImportedBinding\n if (stmt.specifiers[cursor].type === Syntax.ImportDefaultSpecifier) {\n result = join(result, [\n this.generateExpression(stmt.specifiers[cursor], Precedence.Sequence, E_TTT)\n ]);\n ++cursor;\n }\n\n if (stmt.specifiers[cursor]) {\n if (cursor !== 0) {\n result.push(',');\n }\n\n if (stmt.specifiers[cursor].type === Syntax.ImportNamespaceSpecifier) {\n // NameSpaceImport\n result = join(result, [\n space,\n this.generateExpression(stmt.specifiers[cursor], Precedence.Sequence, E_TTT)\n ]);\n } else {\n // NamedImports\n result.push(space + '{');\n\n if ((stmt.specifiers.length - cursor) === 1) {\n // import { ... } from \"...\";\n result.push(space);\n result.push(this.generateExpression(stmt.specifiers[cursor], Precedence.Sequence, E_TTT));\n result.push(space + '}' + space);\n } else {\n // import {\n // ...,\n // ...,\n // } from \"...\";\n withIndent(function (indent) {\n var i, iz;\n result.push(newline);\n for (i = cursor, iz = stmt.specifiers.length; i < iz; ++i) {\n result.push(indent);\n result.push(that.generateExpression(stmt.specifiers[i], Precedence.Sequence, E_TTT));\n if (i + 1 < iz) {\n result.push(',' + newline);\n }\n }\n });\n if (!endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {\n result.push(newline);\n }\n result.push(base + '}' + space);\n }\n }\n }\n\n result = join(result, [\n 'from' + space,\n // ModuleSpecifier\n this.generateExpression(stmt.source, Precedence.Sequence, E_TTT),\n ...this.ImportExportAssertions(stmt.assertions),\n ...this.ImportExportAttributes(stmt.attributes),\n this.semicolon(flags)\n ]);\n return result;\n },\n\n VariableDeclarator: function (stmt, flags) {\n var itemFlags = (flags & F_ALLOW_IN) ? E_TTT : E_FTT;\n if (stmt.init) {\n return [\n this.generateExpression(stmt.id, Precedence.Assignment, itemFlags),\n space,\n '=',\n space,\n this.generateExpression(stmt.init, Precedence.Assignment, itemFlags)\n ];\n }\n return this.generatePattern(stmt.id, Precedence.Assignment, itemFlags);\n },\n\n VariableDeclaration: function (stmt, flags) {\n // VariableDeclarator is typed as Statement,\n // but joined with comma (not LineTerminator).\n // So if comment is attached to target node, we should specialize.\n var result, i, iz, node, bodyFlags, that = this;\n\n result = [ stmt.kind ];\n\n bodyFlags = (flags & F_ALLOW_IN) ? S_TFFF : S_FFFF;\n\n function block() {\n node = stmt.declarations[0];\n if (extra.comment && node.leadingComments) {\n result.push('\\n');\n result.push(addIndent(that.generateStatement(node, bodyFlags)));\n } else {\n result.push(noEmptySpace());\n result.push(that.generateStatement(node, bodyFlags));\n }\n\n for (i = 1, iz = stmt.declarations.length; i < iz; ++i) {\n node = stmt.declarations[i];\n if (extra.comment && node.leadingComments) {\n result.push(',' + newline);\n result.push(addIndent(that.generateStatement(node, bodyFlags)));\n } else {\n result.push(',' + space);\n result.push(that.generateStatement(node, bodyFlags));\n }\n }\n }\n\n if (stmt.declarations.length > 1) {\n withIndent(block);\n } else {\n block();\n }\n\n result.push(this.semicolon(flags));\n\n return result;\n },\n\n ThrowStatement: function (stmt, flags) {\n return [join(\n 'throw',\n this.generateExpression(stmt.argument, Precedence.Sequence, E_TTT)\n ), this.semicolon(flags)];\n },\n\n TryStatement: function (stmt, flags) {\n var result, i, iz, guardedHandlers;\n\n result = ['try', this.maybeBlock(stmt.block, S_TFFF)];\n result = this.maybeBlockSuffix(stmt.block, result);\n\n if (stmt.handlers) {\n // old interface\n for (i = 0, iz = stmt.handlers.length; i < iz; ++i) {\n result = join(result, this.generateStatement(stmt.handlers[i], S_TFFF));\n if (stmt.finalizer || i + 1 !== iz) {\n result = this.maybeBlockSuffix(stmt.handlers[i].body, result);\n }\n }\n } else {\n guardedHandlers = stmt.guardedHandlers || [];\n\n for (i = 0, iz = guardedHandlers.length; i < iz; ++i) {\n result = join(result, this.generateStatement(guardedHandlers[i], S_TFFF));\n if (stmt.finalizer || i + 1 !== iz) {\n result = this.maybeBlockSuffix(guardedHandlers[i].body, result);\n }\n }\n\n // new interface\n if (stmt.handler) {\n if (isArray(stmt.handler)) {\n for (i = 0, iz = stmt.handler.length; i < iz; ++i) {\n result = join(result, this.generateStatement(stmt.handler[i], S_TFFF));\n if (stmt.finalizer || i + 1 !== iz) {\n result = this.maybeBlockSuffix(stmt.handler[i].body, result);\n }\n }\n } else {\n result = join(result, this.generateStatement(stmt.handler, S_TFFF));\n if (stmt.finalizer) {\n result = this.maybeBlockSuffix(stmt.handler.body, result);\n }\n }\n }\n }\n if (stmt.finalizer) {\n result = join(result, ['finally', this.maybeBlock(stmt.finalizer, S_TFFF)]);\n }\n return result;\n },\n\n SwitchStatement: function (stmt, flags) {\n var result, fragment, i, iz, bodyFlags, that = this;\n withIndent(function () {\n result = [\n 'switch' + space + '(',\n that.generateExpression(stmt.discriminant, Precedence.Sequence, E_TTT),\n ')' + space + '{' + newline\n ];\n });\n if (stmt.cases) {\n bodyFlags = S_TFFF;\n for (i = 0, iz = stmt.cases.length; i < iz; ++i) {\n if (i === iz - 1) {\n bodyFlags |= F_SEMICOLON_OPT;\n }\n fragment = addIndent(this.generateStatement(stmt.cases[i], bodyFlags));\n result.push(fragment);\n if (!endsWithLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) {\n result.push(newline);\n }\n }\n }\n result.push(addIndent('}'));\n return result;\n },\n\n SwitchCase: function (stmt, flags) {\n var result, fragment, i, iz, bodyFlags, that = this;\n withIndent(function () {\n if (stmt.test) {\n result = [\n join('case', that.generateExpression(stmt.test, Precedence.Sequence, E_TTT)),\n ':'\n ];\n } else {\n result = ['default:'];\n }\n\n i = 0;\n iz = stmt.consequent.length;\n if (iz && stmt.consequent[0].type === Syntax.BlockStatement) {\n fragment = that.maybeBlock(stmt.consequent[0], S_TFFF);\n result.push(fragment);\n i = 1;\n }\n\n if (i !== iz && !endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {\n result.push(newline);\n }\n\n bodyFlags = S_TFFF;\n for (; i < iz; ++i) {\n if (i === iz - 1 && flags & F_SEMICOLON_OPT) {\n bodyFlags |= F_SEMICOLON_OPT;\n }\n fragment = addIndent(that.generateStatement(stmt.consequent[i], bodyFlags));\n result.push(fragment);\n if (i + 1 !== iz && !endsWithLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) {\n result.push(newline);\n }\n }\n });\n return result;\n },\n\n IfStatement: function (stmt, flags) {\n var result, bodyFlags, semicolonOptional, that = this;\n withIndent(function () {\n result = [\n 'if' + space + '(',\n that.generateExpression(stmt.test, Precedence.Sequence, E_TTT),\n ')'\n ];\n });\n semicolonOptional = flags & F_SEMICOLON_OPT;\n bodyFlags = S_TFFF;\n if (semicolonOptional) {\n bodyFlags |= F_SEMICOLON_OPT;\n }\n if (stmt.alternate) {\n result.push(this.maybeBlock(stmt.consequent, S_TFFF));\n result = this.maybeBlockSuffix(stmt.consequent, result);\n if (stmt.alternate.type === Syntax.IfStatement) {\n result = join(result, ['else ', this.generateStatement(stmt.alternate, bodyFlags)]);\n } else {\n result = join(result, join('else', this.maybeBlock(stmt.alternate, bodyFlags)));\n }\n } else {\n result.push(this.maybeBlock(stmt.consequent, bodyFlags));\n }\n return result;\n },\n\n ForStatement: function (stmt, flags) {\n var result, that = this;\n withIndent(function () {\n result = ['for' + space + '('];\n if (stmt.init) {\n if (stmt.init.type === Syntax.VariableDeclaration) {\n result.push(that.generateStatement(stmt.init, S_FFFF));\n } else {\n // F_ALLOW_IN becomes false.\n result.push(that.generateExpression(stmt.init, Precedence.Sequence, E_FTT));\n result.push(';');\n }\n } else {\n result.push(';');\n }\n\n if (stmt.test) {\n result.push(space);\n result.push(that.generateExpression(stmt.test, Precedence.Sequence, E_TTT));\n result.push(';');\n } else {\n result.push(';');\n }\n\n if (stmt.update) {\n result.push(space);\n result.push(that.generateExpression(stmt.update, Precedence.Sequence, E_TTT));\n result.push(')');\n } else {\n result.push(')');\n }\n });\n\n result.push(this.maybeBlock(stmt.body, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF));\n return result;\n },\n\n ForInStatement: function (stmt, flags) {\n return this.generateIterationForStatement('in', stmt, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF);\n },\n\n ForOfStatement: function (stmt, flags) {\n return this.generateIterationForStatement('of', stmt, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF);\n },\n\n LabeledStatement: function (stmt, flags) {\n return [stmt.label.name + ':', this.maybeBlock(stmt.body, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF)];\n },\n\n Program: function (stmt, flags) {\n var result, fragment, i, iz, bodyFlags;\n iz = stmt.body.length;\n result = [safeConcatenation && iz > 0 ? '\\n' : ''];\n bodyFlags = S_TFTF;\n for (i = 0; i < iz; ++i) {\n if (!safeConcatenation && i === iz - 1) {\n bodyFlags |= F_SEMICOLON_OPT;\n }\n\n if (preserveBlankLines) {\n // handle spaces before the first line\n if (i === 0) {\n if (!stmt.body[0].leadingComments) {\n generateBlankLines(stmt.range[0], stmt.body[i].range[0], result);\n }\n }\n\n // handle spaces between lines\n if (i > 0) {\n if (!stmt.body[i - 1].trailingComments && !stmt.body[i].leadingComments) {\n generateBlankLines(stmt.body[i - 1].range[1], stmt.body[i].range[0], result);\n }\n }\n }\n\n fragment = addIndent(this.generateStatement(stmt.body[i], bodyFlags));\n result.push(fragment);\n if (i + 1 < iz && !endsWithLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) {\n if (preserveBlankLines) {\n if (!stmt.body[i + 1].leadingComments) {\n result.push(newline);\n }\n } else {\n result.push(newline);\n }\n }\n\n if (preserveBlankLines) {\n // handle spaces after the last line\n if (i === iz - 1) {\n if (!stmt.body[i].trailingComments) {\n generateBlankLines(stmt.body[i].range[1], stmt.range[1], result);\n }\n }\n }\n }\n return result;\n },\n\n FunctionDeclaration: function (stmt, flags) {\n return [\n generateAsyncPrefix(stmt, true),\n 'function',\n generateStarSuffix(stmt) || noEmptySpace(),\n stmt.id ? generateIdentifier(stmt.id) : '',\n this.generateFunctionBody(stmt)\n ];\n },\n\n ReturnStatement: function (stmt, flags) {\n if (stmt.argument) {\n return [join(\n 'return',\n this.generateExpression(stmt.argument, Precedence.Sequence, E_TTT)\n ), this.semicolon(flags)];\n }\n return ['return' + this.semicolon(flags)];\n },\n\n WhileStatement: function (stmt, flags) {\n var result, that = this;\n withIndent(function () {\n result = [\n 'while' + space + '(',\n that.generateExpression(stmt.test, Precedence.Sequence, E_TTT),\n ')'\n ];\n });\n result.push(this.maybeBlock(stmt.body, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF));\n return result;\n },\n\n WithStatement: function (stmt, flags) {\n var result, that = this;\n withIndent(function () {\n result = [\n 'with' + space + '(',\n that.generateExpression(stmt.object, Precedence.Sequence, E_TTT),\n ')'\n ];\n });\n result.push(this.maybeBlock(stmt.body, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF));\n return result;\n }\n\n };\n\n merge(CodeGenerator.prototype, CodeGenerator.Statement);\n\n // Expressions.\n\n CodeGenerator.Expression = {\n\n PrivateName: function(expr) {\n return expr.name;\n },\n\n SequenceExpression: function (expr, precedence, flags) {\n var result, i, iz;\n if (Precedence.Sequence < precedence) {\n flags |= F_ALLOW_IN;\n }\n result = [];\n for (i = 0, iz = expr.expressions.length; i < iz; ++i) {\n result.push(this.generateExpression(expr.expressions[i], Precedence.Assignment, flags));\n if (i + 1 < iz) {\n result.push(',' + space);\n }\n }\n return parenthesize(result, Precedence.Sequence, precedence);\n },\n\n AssignmentExpression: function (expr, precedence, flags) {\n return this.generateAssignment(expr.left, expr.right, expr.operator, precedence, flags);\n },\n\n ArrowFunctionExpression: function (expr, precedence, flags) {\n return parenthesize(this.generateFunctionBody(expr), Precedence.ArrowFunction, precedence);\n },\n\n ConditionalExpression: function (expr, precedence, flags) {\n if (Precedence.Conditional < precedence) {\n flags |= F_ALLOW_IN;\n }\n return parenthesize(\n [\n this.generateExpression(expr.test, Precedence.LogicalOR, flags),\n space + '?' + space,\n this.generateExpression(expr.consequent, Precedence.Assignment, flags),\n space + ':' + space,\n this.generateExpression(expr.alternate, Precedence.Assignment, flags)\n ],\n Precedence.Conditional,\n precedence\n );\n },\n\n LogicalExpression: function (expr, precedence, flags) {\n return this.BinaryExpression(expr, precedence, flags);\n },\n\n BinaryExpression: function (expr, precedence, flags) {\n var result, leftPrecedence, rightPrecedence, currentPrecedence, fragment, leftSource;\n currentPrecedence = BinaryPrecedence[expr.operator];\n\n leftPrecedence = currentPrecedence;\n rightPrecedence = currentPrecedence + 1;\n\n switch (expr.operator) {\n case '**':\n leftPrecedence = Precedence.Postfix;\n rightPrecedence = currentPrecedence;\n break;\n\n case '??':\n if (expr.left.operator === '||' || expr.left.operator === '&&') {\n leftPrecedence = BinaryPrecedence[expr.left.operator] + 1;\n }\n\n if (expr.right.operator === '||' || expr.right.operator === '&&') {\n rightPrecedence = BinaryPrecedence[expr.right.operator] + 1;\n }\n\n break;\n\n case '||':\n if (expr.left.operator === '??') {\n leftPrecedence = BinaryPrecedence[expr.left.operator] + 1;\n }\n\n break;\n }\n\n if (currentPrecedence < precedence) {\n flags |= F_ALLOW_IN;\n }\n fragment = this.generateExpression(expr.left, leftPrecedence, flags);\n leftSource = fragment.toString();\n if (leftSource.charCodeAt(leftSource.length - 1) === 0x2F /* / */ && esutils.code.isIdentifierPartES5(expr.operator.charCodeAt(0))) {\n result = [fragment, noEmptySpace(), expr.operator];\n } else {\n result = join(fragment, expr.operator);\n }\n fragment = this.generateExpression(expr.right, rightPrecedence, flags);\n if (expr.operator === '/' && fragment.toString().charAt(0) === '/' ||\n expr.operator.slice(-1) === '<' && fragment.toString().slice(0, 3) === '!--') {\n // If '/' concats with '/' or `<` concats with `!--`, it is interpreted as comment start\n result.push(noEmptySpace());\n result.push(fragment);\n } else {\n result = join(result, fragment);\n }\n if (expr.operator === 'in' && !(flags & F_ALLOW_IN)) {\n return ['(', result, ')'];\n }\n return parenthesize(result, currentPrecedence, precedence);\n },\n\n CallExpression: function (expr, precedence, flags) {\n var result, i, iz;\n // F_ALLOW_UNPARATH_NEW becomes false.\n result = expr.callee.type === Syntax.FunctionExpression\n ? ['(', this.generateExpression(expr.callee, Precedence.Call, E_TTF), ')']\n : [this.generateExpression(expr.callee, Precedence.Call, E_TTF)];\n if (expr.optional) result.push('?.');\n result.push('(');\n for (i = 0, iz = expr['arguments'].length; i < iz; ++i) {\n result.push(this.generateExpression(expr['arguments'][i], Precedence.Assignment, E_TTT | F_XJS_NOPAREN));\n if (i + 1 < iz) {\n result.push(',' + space);\n }\n }\n result.push(')');\n\n if (!(flags & F_ALLOW_CALL)) {\n return ['(', result, ')'];\n }\n return parenthesize(result, Precedence.Call, precedence);\n },\n\n ChainExpression: function (expr, precedence, flags) {\n var expression = expr.expression;\n\n return this[expression.type](expression, precedence, flags);\n },\n\n NewExpression: function (expr, precedence, flags) {\n var result, length, i, iz, itemFlags;\n length = expr['arguments'].length;\n\n // F_ALLOW_CALL becomes false.\n // F_ALLOW_UNPARATH_NEW may become false.\n itemFlags = (flags & F_ALLOW_UNPARATH_NEW && !parentheses && length === 0) ? E_TFT : E_TFF;\n\n result = join(\n 'new',\n this.generateExpression(expr.callee, Precedence.New, itemFlags)\n );\n\n if (!(flags & F_ALLOW_UNPARATH_NEW) || parentheses || length > 0) {\n result.push('(');\n for (i = 0, iz = length; i < iz; ++i) {\n result.push(this.generateExpression(expr['arguments'][i], Precedence.Assignment, E_TTT));\n if (i + 1 < iz) {\n result.push(',' + space);\n }\n }\n result.push(')');\n }\n\n return parenthesize(result, Precedence.New, precedence);\n },\n\n MemberExpression: function (expr, precedence, flags) {\n var result, fragment;\n\n if (expr.object.type === 'ChainExpression' && expr.object.expression.optional) {\n // F_ALLOW_UNPARATH_NEW becomes false.\n result = [this.generateExpression(expr.object, Precedence.Member, (flags & F_ALLOW_CALL) ? E_TTF : E_TFF)];\n } else {\n // F_ALLOW_UNPARATH_NEW becomes false.\n result = [this.generateExpression(expr.object, Precedence.Call, (flags & F_ALLOW_CALL) ? E_TTF : E_TFF)];\n }\n\n if (expr.computed) {\n if (expr.optional) {\n result.push('?.');\n }\n result.push('[');\n result.push(this.generateExpression(expr.property, Precedence.Sequence, flags & F_ALLOW_CALL ? E_TTT : E_TFT));\n result.push(']');\n } else {\n if (expr.object.type === Syntax.Literal && typeof expr.object.value === 'number') {\n fragment = toSourceNodeWhenNeeded(result).toString();\n // When the following conditions are all true,\n // 1. No floating point\n // 2. Don't have exponents\n // 3. The last character is a decimal digit\n // 4. Not hexadecimal OR octal number literal\n // we should add a floating point.\n if (\n fragment.indexOf('.') < 0 &&\n !/[eExX]/.test(fragment) &&\n esutils.code.isDecimalDigit(fragment.charCodeAt(fragment.length - 1)) &&\n !(fragment.length >= 2 && fragment.charCodeAt(0) === 48) // '0'\n ) {\n result.push('.');\n }\n }\n result.push(expr.optional ? '?.' : '.');\n result.push(generateIdentifier(expr.property));\n }\n\n if (precedence === Precedence.Member) {\n return parenthesize(result, Precedence.OptionalMember, precedence);\n }\n\n return parenthesize(result, Precedence.Member, precedence);\n },\n\n MetaProperty: function (expr, precedence, flags) {\n var result, meta, property;\n meta = expr.meta && (typeof expr.meta.type === \"string\") && (expr.meta.type === Syntax.Identifier) ?\n expr.meta.name : expr.meta;\n property = expr.property && (typeof expr.property.type === \"string\") && (expr.property.type === Syntax.Identifier) ?\n expr.property.name : expr.property;\n result = [meta, \".\", property];\n return parenthesize(result, Precedence.Member, precedence);\n },\n\n UnaryExpression: function (expr, precedence, flags) {\n var result, fragment, rightCharCode, leftSource, leftCharCode;\n fragment = this.generateExpression(expr.argument, Precedence.Unary, E_TTT);\n\n if (space === '') {\n result = join(expr.operator, fragment);\n } else {\n result = [expr.operator];\n if (expr.operator.length > 2) {\n // delete, void, typeof\n // get `typeof []`, not `typeof[]`\n result = join(result, fragment);\n } else {\n // Prevent inserting spaces between operator and argument if it is unnecessary\n // like, `!cond`\n leftSource = toSourceNodeWhenNeeded(result).toString();\n leftCharCode = leftSource.charCodeAt(leftSource.length - 1);\n rightCharCode = fragment.toString().charCodeAt(0);\n\n if (((leftCharCode === 0x2B /* + */ || leftCharCode === 0x2D /* - */) && leftCharCode === rightCharCode) ||\n (esutils.code.isIdentifierPartES5(leftCharCode) && esutils.code.isIdentifierPartES5(rightCharCode))) {\n result.push(noEmptySpace());\n result.push(fragment);\n } else {\n result.push(fragment);\n }\n }\n }\n return parenthesize(result, Precedence.Unary, precedence);\n },\n\n YieldExpression: function (expr, precedence, flags) {\n var result;\n if (expr.delegate) {\n result = 'yield*';\n } else {\n result = 'yield';\n }\n if (expr.argument) {\n result = join(\n result,\n this.generateExpression(expr.argument, Precedence.Yield, E_TTT)\n );\n }\n return parenthesize(result, Precedence.Yield, precedence);\n },\n\n AwaitExpression: function (expr, precedence, flags) {\n var result = join(\n expr.all ? 'await*' : 'await',\n this.generateExpression(expr.argument, Precedence.Await, E_TTT)\n );\n return parenthesize(result, Precedence.Await, precedence);\n },\n\n UpdateExpression: function (expr, precedence, flags) {\n if (expr.prefix) {\n return parenthesize(\n [\n expr.operator,\n this.generateExpression(expr.argument, Precedence.Unary, E_TTT)\n ],\n Precedence.Unary,\n precedence\n );\n }\n return parenthesize(\n [\n this.generateExpression(expr.argument, Precedence.Postfix, E_TTT),\n expr.operator\n ],\n Precedence.Postfix,\n precedence\n );\n },\n\n FunctionExpression: function (expr, precedence, flags) {\n var result = [\n generateAsyncPrefix(expr, true),\n 'function'\n ];\n if (expr.id) {\n result.push(generateStarSuffix(expr) || noEmptySpace());\n result.push(generateIdentifier(expr.id));\n } else {\n result.push(generateStarSuffix(expr) || space);\n }\n result.push(this.generateFunctionBody(expr));\n return result;\n },\n\n ArrayPattern: function (expr, precedence, flags) {\n return this.ArrayExpression(expr, precedence, flags, true);\n },\n\n ArrayExpression: function (expr, precedence, flags, isPattern) {\n var result, multiline, that = this;\n if (!expr.elements.length) {\n return '[]';\n }\n multiline = isPattern ? false : expr.elements.length > 1;\n result = ['[', multiline ? newline : ''];\n withIndent(function (indent) {\n var i, iz;\n for (i = 0, iz = expr.elements.length; i < iz; ++i) {\n if (!expr.elements[i]) {\n if (multiline) {\n result.push(indent);\n }\n if (i + 1 === iz) {\n result.push(',');\n }\n } else {\n result.push(multiline ? indent : '');\n result.push(that.generateExpression(expr.elements[i], Precedence.Assignment, E_TTT | F_XJS_NOINDENT | F_XJS_NOPAREN));\n }\n if (i + 1 < iz) {\n result.push(',' + (multiline ? newline : space));\n }\n }\n });\n if (multiline && !endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {\n result.push(newline);\n }\n result.push(multiline ? base : '');\n result.push(']');\n return result;\n },\n\n ClassExpression: function (expr, precedence, flags) {\n var result, fragment;\n result = ['class'];\n if (expr.id) {\n result = join(result, this.generateExpression(expr.id, Precedence.Sequence, E_TTT));\n }\n if (expr.superClass) {\n fragment = join('extends', [\n '(',\n this.generateExpression(expr.superClass, Precedence.Assignment, E_TTT),\n ')'\n ]);\n result = join(result, fragment);\n }\n result.push(space);\n result.push(this.generateStatement(expr.body, S_TFFT));\n return result;\n },\n\n MethodDefinition: function (expr, precedence, flags) {\n var result, fragment;\n if (expr['static']) {\n result = ['static' + space];\n } else {\n result = [];\n }\n if (expr.kind === 'get' || expr.kind === 'set') {\n fragment = [\n join(expr.kind, this.generatePropertyKey(expr.key, expr.computed)),\n this.generateFunctionBody(expr.value)\n ];\n } else {\n fragment = [\n generateMethodPrefix(expr),\n this.generatePropertyKey(expr.key, expr.computed),\n this.generateFunctionBody(expr.value)\n ];\n }\n return join(result, fragment);\n },\n\n Property: function (expr, precedence, flags) {\n if (expr.kind === 'get' || expr.kind === 'set') {\n return [\n expr.kind, noEmptySpace(),\n this.generatePropertyKey(expr.key, expr.computed),\n this.generateFunctionBody(expr.value)\n ];\n }\n\n if (expr.kind === 'init' && !expr.method && expr.shorthand) {\n return this.generatePattern(expr.value, Precedence.Assignment, E_TTT);\n }\n\n if (expr.shorthand) {\n return this.generatePropertyKey(expr.key, expr.computed);\n }\n\n if (expr.method) {\n return [\n generateMethodPrefix(expr),\n this.generatePropertyKey(expr.key, expr.computed),\n this.generateFunctionBody(expr.value)\n ];\n }\n\n return [\n this.generatePropertyKey(expr.key, expr.computed),\n ':' + space,\n this.generateExpression(expr.value, Precedence.Assignment, E_TTT)\n ];\n },\n\n ObjectExpression: function (expr, precedence, flags) {\n var multiline, result, fragment, that = this;\n\n if (!expr.properties.length) {\n return '{}';\n }\n multiline = expr.properties.length > 1;\n\n withIndent(function () {\n fragment = that.generateExpression(expr.properties[0], Precedence.Sequence, E_TTT);\n });\n\n if (!multiline) {\n // issues 4\n // Do not transform from\n // dejavu.Class.declare({\n // method2: function () {}\n // });\n // to\n // dejavu.Class.declare({method2: function () {\n // }});\n if (!hasLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) {\n return [ '{', space, fragment, space, '}' ];\n }\n }\n\n withIndent(function (indent) {\n var i, iz;\n result = [ '{', newline, indent, fragment ];\n\n if (multiline) {\n result.push(',' + newline);\n for (i = 1, iz = expr.properties.length; i < iz; ++i) {\n result.push(indent);\n result.push(that.generateExpression(expr.properties[i], Precedence.Sequence, E_TTT));\n if (i + 1 < iz) {\n result.push(',' + newline);\n }\n }\n }\n });\n\n if (!endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {\n result.push(newline);\n }\n result.push(base);\n result.push('}');\n return result;\n },\n\n AssignmentPattern: function(expr, precedence, flags) {\n return this.generateAssignment(expr.left, expr.right, '=', precedence, flags);\n },\n\n ObjectPattern: function (expr, precedence, flags) {\n var result, i, iz, multiline, property, that = this;\n if (!expr.properties.length) {\n return '{}';\n }\n\n multiline = false;\n if (expr.properties.length === 1) {\n property = expr.properties[0];\n if (property.value && property.value.type !== Syntax.Identifier) {\n multiline = true;\n }\n } else {\n for (i = 0, iz = expr.properties.length; i < iz; ++i) {\n property = expr.properties[i];\n if (!property.shorthand) {\n multiline = true;\n break;\n }\n }\n }\n result = ['{', multiline ? newline : '' ];\n\n withIndent(function (indent) {\n var i, iz;\n for (i = 0, iz = expr.properties.length; i < iz; ++i) {\n result.push(multiline ? indent : '');\n result.push(that.generateExpression(expr.properties[i], Precedence.Sequence, E_TTT));\n if (i + 1 < iz) {\n result.push(',' + (multiline ? newline : space));\n }\n }\n });\n\n if (multiline && !endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {\n result.push(newline);\n }\n result.push(multiline ? base : '');\n result.push('}');\n return result;\n },\n\n ThisExpression: function (expr, precedence, flags) {\n return 'this';\n },\n\n Super: function (expr, precedence, flags) {\n return 'super';\n },\n\n Identifier: function (expr, precedence, flags) {\n return generateIdentifier(expr);\n },\n\n Import: function (expr, precedence, flags) {\n return 'import';\n },\n\n ImportDefaultSpecifier: function (expr, precedence, flags) {\n return generateIdentifier(expr.id || expr.local);\n },\n\n ImportNamespaceSpecifier: function (expr, precedence, flags) {\n var result = ['*'];\n var id = expr.id || expr.local;\n if (id) {\n result.push(space + 'as' + noEmptySpace() + generateIdentifier(id));\n }\n return result;\n },\n\n ImportSpecifier: function (expr, precedence, flags) {\n var imported = expr.imported;\n var result = [ imported.name ];\n var local = expr.local;\n if (local && local.name !== imported.name) {\n result.push(noEmptySpace() + 'as' + noEmptySpace() + generateIdentifier(local));\n }\n return result;\n },\n\n ExportSpecifier: function (expr, precedence, flags) {\n var local = expr.local;\n var result = [ local.name ];\n var exported = expr.exported;\n if (exported && exported.name !== local.name) {\n result.push(noEmptySpace() + 'as' + noEmptySpace() + generateIdentifier(exported));\n }\n return result;\n },\n\n Literal: function (expr, precedence, flags) {\n var raw;\n if (expr.hasOwnProperty('raw') && parse && extra.raw) {\n try {\n raw = parse(expr.raw).body[0].expression;\n if (raw.type === Syntax.Literal) {\n if (raw.value === expr.value) {\n return expr.raw;\n }\n }\n } catch (e) {\n // not use raw property\n }\n }\n\n if (expr.value === null) {\n return 'null';\n }\n\n if (typeof expr.value === 'string') {\n return escapeString(expr.value);\n }\n\n if (typeof expr.value === 'number') {\n return generateNumber(expr.value);\n }\n\n if (typeof expr.value === 'boolean') {\n return expr.value ? 'true' : 'false';\n }\n\n if (typeof expr.value === 'bigint') {\n return expr.raw;\n }\n\n return generateRegExp(expr.value);\n },\n\n GeneratorExpression: function (expr, precedence, flags) {\n return this.ComprehensionExpression(expr, precedence, flags);\n },\n\n ComprehensionExpression: function (expr, precedence, flags) {\n // GeneratorExpression should be parenthesized with (...), ComprehensionExpression with [...]\n // Due to https://bugzilla.mozilla.org/show_bug.cgi?id=883468 position of expr.body can differ in Spidermonkey and ES6\n\n var result, i, iz, fragment, that = this;\n result = (expr.type === Syntax.GeneratorExpression) ? ['('] : ['['];\n\n if (extra.moz.comprehensionExpressionStartsWithAssignment) {\n fragment = this.generateExpression(expr.body, Precedence.Assignment, E_TTT);\n result.push(fragment);\n }\n\n if (expr.blocks) {\n withIndent(function () {\n for (i = 0, iz = expr.blocks.length; i < iz; ++i) {\n fragment = that.generateExpression(expr.blocks[i], Precedence.Sequence, E_TTT);\n if (i > 0 || extra.moz.comprehensionExpressionStartsWithAssignment) {\n result = join(result, fragment);\n } else {\n result.push(fragment);\n }\n }\n });\n }\n\n if (expr.filter) {\n result = join(result, 'if' + space);\n fragment = this.generateExpression(expr.filter, Precedence.Sequence, E_TTT);\n result = join(result, [ '(', fragment, ')' ]);\n }\n\n if (!extra.moz.comprehensionExpressionStartsWithAssignment) {\n fragment = this.generateExpression(expr.body, Precedence.Assignment, E_TTT);\n\n result = join(result, fragment);\n }\n\n result.push((expr.type === Syntax.GeneratorExpression) ? ')' : ']');\n return result;\n },\n\n ComprehensionBlock: function (expr, precedence, flags) {\n var fragment;\n if (expr.left.type === Syntax.VariableDeclaration) {\n fragment = [\n expr.left.kind, noEmptySpace(),\n this.generateStatement(expr.left.declarations[0], S_FFFF)\n ];\n } else {\n fragment = this.generateExpression(expr.left, Precedence.Call, E_TTT);\n }\n\n fragment = join(fragment, expr.of ? 'of' : 'in');\n fragment = join(fragment, this.generateExpression(expr.right, Precedence.Sequence, E_TTT));\n\n return [ 'for' + space + '(', fragment, ')' ];\n },\n\n SpreadElement: function (expr, precedence, flags) {\n return [\n '...',\n this.generateExpression(expr.argument, Precedence.Assignment, E_TTT)\n ];\n },\n\n RestElement: function (expr, precedence, flags) {\n return [\n '...',\n this.generatePattern(expr.argument, Precedence.Assignment, E_TTT)\n ];\n },\n\n SpreadProperty: function (expr, precedence, flags) {\n return [\n '...',\n this.generateExpression(expr.argument, Precedence.Assignment, E_TTT)\n ];\n },\n\n RestProperty: function (expr, precedence, flags) {\n return [\n '...',\n this.generatePattern(expr.argument, Precedence.Assignment, E_TTT)\n ];\n },\n\n TaggedTemplateExpression: function (expr, precedence, flags) {\n var itemFlags = E_TTF;\n if (!(flags & F_ALLOW_CALL)) {\n itemFlags = E_TFF;\n }\n var result = [\n this.generateExpression(expr.tag, Precedence.Call, itemFlags),\n this.generateExpression(expr.quasi, Precedence.Primary, E_FFT)\n ];\n return parenthesize(result, Precedence.TaggedTemplate, precedence);\n },\n\n TemplateElement: function (expr, precedence, flags) {\n // Don't use \"cooked\". Since tagged template can use raw template\n // representation. So if we do so, it breaks the script semantics.\n return expr.value.raw;\n },\n\n TemplateLiteral: function (expr, precedence, flags) {\n var result, i, iz;\n result = [ '`' ];\n for (i = 0, iz = expr.quasis.length; i < iz; ++i) {\n result.push(this.generateExpression(expr.quasis[i], Precedence.Primary, E_TTT));\n if (i + 1 < iz) {\n result.push('${' + space);\n result.push(this.generateExpression(expr.expressions[i], Precedence.Sequence, E_TTT));\n result.push(space + '}');\n }\n }\n result.push('`');\n return result;\n },\n\n ModuleSpecifier: function (expr, precedence, flags) {\n return this.Literal(expr, precedence, flags);\n },\n\n JSXAttribute: function (expr, precedence, flags) {\n var result = [];\n\n var fragment = this.generateExpression(expr.name, Precedence.Sequence, {\n allowIn: true,\n allowCall: true\n });\n result.push(fragment);\n\n if (expr.value) {\n result.push('=');\n\n if (expr.value.type === Syntax.Literal) {\n fragment = xjsEscapeAttr(expr.value.value, expr.value.raw);\n\n } else {\n fragment = this.generateExpression(expr.value, Precedence.Sequence, {\n allowIn: true,\n allowCall: true\n });\n }\n result.push(fragment);\n }\n return result;\n },\n\n JSXClosingElement: function (expr, precedence, flags) {\n return [\n '</',\n expr.name ? this.generateExpression(expr.name, Precedence.Sequence, 0) : '',\n '>'\n ];\n },\n\n JSXFragment: function (expr, precedence, flags) {\n return this.JSXElement(expr, precedence, flags);\n },\n\n JSXOpeningFragment: function (expr, precedence, flags) {\n return this.JSXOpeningElement(expr, precedence, flags);\n },\n\n JSXClosingFragment: function (expr, precedence, flags) {\n return this.JSXClosingElement(expr, precedence, flags);\n },\n\n JSXElement: function (expr, precedence, flags) {\n var result = [], that = this;\n\n if (!(flags & F_XJS_NOINDENT)) {\n base += indent;\n }\n\n var fragment = this.generateExpression(expr.openingElement || expr.openingFragment, Precedence.JSXElement, {\n allowIn: true,\n allowCall: true\n });\n result.push(fragment);\n\n var xjsFragments = [];\n\n var i, len;\n withIndent(function(indent) {\n for (i = 0, len = expr.children.length; i < len; ++i) {\n if (expr.children[i].type === Syntax.Literal) {\n fragment = expr.children[i].raw;\n if (fragment) {\n xjsFragments.push(fragment);\n }\n continue;\n }\n\n fragment = that.generateExpression(expr.children[i], Precedence.JSXElement, E_TTF | F_XJS_NOINDENT);\n\n xjsFragments.push(fragment);\n }\n\n for (i = 0, len = xjsFragments.length; i < len; ++i) {\n result.push(xjsFragments[i]);\n }\n });\n\n if (expr.closingElement) {\n fragment = that.generateExpression(expr.closingElement, Precedence.JSXElement, 0);\n result.push(fragment);\n } else if (expr.closingFragment) {\n fragment = that.generateExpression(expr.closingFragment, Precedence.JSXElement, 0);\n result.push(fragment);\n }\n\n if (!(flags & F_XJS_NOINDENT)) {\n base = base.slice(0, base.length - indent.length);\n if (hasLineTerminator(toSourceNodeWhenNeeded(result).toString())) {\n if (flags & F_XJS_NOPAREN) {\n result = [\n newline + base + indent,\n result\n ];\n } else {\n result = [\n '(' + newline + base + indent,\n result,\n newline + base + ')'\n ];\n }\n }\n }\n return result;\n },\n\n JSXExpressionContainer: function (expr, precedence, flags) {\n return [\n '{',\n this.generateExpression(expr.expression, Precedence.Sequence, E_TTF),\n '}'\n ];\n },\n\n JSXIdentifier: function (expr, precedence, flags) {\n return expr.name;\n },\n\n JSXMemberExpression: function (expr, precedence, flags) {\n return [\n this.generateExpression(expr.object, Precedence.Sequence, E_TFF),\n '.',\n this.generateExpression(expr.property, Precedence.Sequence, 0)\n ];\n },\n\n JSXNamespacedName: function (expr, precedence, flags) {\n return [\n this.generateExpression(expr.namespace, Precedence.Sequence, 0),\n ':',\n this.generateExpression(expr.name, Precedence.Sequence, 0)\n ];\n },\n\n JSXOpeningElement: function (expr, precedence, flags) {\n var result = ['<'], that = this;\n\n if (expr.name) {\n var fragment = this.generateExpression(expr.name, Precedence.Sequence, 0);\n result.push(fragment);\n }\n\n var xjsFragments = [];\n for (var i = 0, len = expr.attributes.length; i < len; ++i) {\n fragment = that.generateExpression(expr.attributes[i], Precedence.Sequence, E_TTF);\n xjsFragments.push({\n expr: expr.attributes[i],\n name: expr.attributes[i].name && expr.attributes[i].name.name,\n fragment: fragment,\n multiline: hasLineTerminator(toSourceNodeWhenNeeded(fragment).toString())\n });\n if (expr.attributes.length > 3 && expr.attributes[i].value &&\n expr.attributes[i].value.type !== Syntax.Literal) {\n xjsFragments[xjsFragments.length - 1].multiline = true;\n }\n }\n\n withIndent(function(indent) {\n for (var i = 0, len = xjsFragments.length; i < len; ++i) {\n if ((i > 0 && i % 3 === 0) ||\n xjsFragments[i].multiline) {\n result.push(newline + indent);\n } else {\n result.push(' ');\n }\n\n // generate expression again\n result.push(that.generateExpression(xjsFragments[i].expr, Precedence.Sequence, E_TTF));\n }\n });\n\n result.push(expr.selfClosing ? '/>' : '>');\n return result;\n },\n\n JSXSpreadAttribute: function (expr, precedence, flags) {\n return [\n '{...',\n this.generateExpression(expr.argument, Precedence.Sequence, {\n allowIn: true,\n allowCall: true\n }),\n '}'\n ];\n },\n\n JSXText: function (expr, precedence, flags) {\n return expr.raw;\n },\n\n JSXEmptyExpression: function (expr, precedence, flags) {\n return [];\n },\n\n PropertyDefinition: function(expr, precedence, flags) {\n var result = [];\n\n if (expr.static) {\n result.push('static ');\n }\n\n result.push(this.generatePropertyKey(expr.key, expr.computed));\n\n if (expr.value) {\n result.push(' = ');\n result.push(this.generateExpression(expr.value, Precedence.Assignment));\n }\n result.push(';');\n return result;\n },\n\n PrivateIdentifier: function(expr, precedence, flags) {\n return generateIdentifier(expr);\n },\n\n ImportExpression: function(expr, precedence, flag) {\n var result = [\n 'import(',\n this.generateExpression(expr.source, Precedence.Assignment, E_TTT)\n ];\n\n if (expr.arguments && expr.arguments.length) {\n result.push(', ');\n result.push(this.generateExpression(expr.arguments[0], Precedence.Assignment, E_TTT));\n }\n\n result.push(')');\n\n return parenthesize(result, Precedence.Call, precedence);\n },\n\n OptionalMemberExpression: function(expr, precedence, flag) {\n return this.MemberExpression(expr, precedence, flag);\n },\n\n OptionalCallExpression: function(expr, precedence, flag) {\n return this.CallExpression(expr, precedence, flag);\n },\n\n ParenthesizedExpression: function(expr, precedence, flags) {\n return [\n '(',\n this.generateExpression(expr.expression, precedence, flags),\n ')'\n ];\n }\n };\n\n merge(CodeGenerator.prototype, CodeGenerator.Expression);\n\n CodeGenerator.prototype.generateExpression = function (expr, precedence, flags) {\n var result, type;\n\n type = expr.type || Syntax.Property;\n\n if (extra.verbatim && expr.hasOwnProperty(extra.verbatim)) {\n return generateVerbatim(expr, precedence);\n }\n\n try {\n result = this[type](expr, precedence, flags);\n } catch (e) {\n throw new Error('Can not generate expression ' + type + '. ' + e && e.message);\n }\n\n\n if (extra.comment) {\n result = addComments(expr, result);\n }\n return toSourceNodeWhenNeeded(result, expr);\n };\n\n CodeGenerator.prototype.generateStatement = function (stmt, flags) {\n var result,\n fragment;\n\n result = this[stmt.type](stmt, flags);\n\n // Attach comments\n\n if (extra.comment) {\n result = addComments(stmt, result);\n }\n\n fragment = toSourceNodeWhenNeeded(result).toString();\n if (stmt.type === Syntax.Program && !safeConcatenation && newline === '' && fragment.charAt(fragment.length - 1) === '\\n') {\n result = sourceMap ? toSourceNodeWhenNeeded(result).replaceRight(/\\s+$/, '') : fragment.replace(/\\s+$/, '');\n }\n\n return toSourceNodeWhenNeeded(result, stmt);\n };\n\n function generateInternal(node) {\n var codegen;\n\n codegen = new CodeGenerator();\n if (isStatement(node)) {\n return codegen.generateStatement(node, S_TFFF);\n }\n\n if (isExpression(node)) {\n return codegen.generateExpression(node, Precedence.Sequence, E_TTT);\n }\n\n throw new Error('Unknown node type: ' + node.type);\n }\n\n function generate(node, options) {\n var defaultOptions = getDefaultOptions(), result, pair;\n\n if (options != null) {\n // Obsolete options\n //\n // `options.indent`\n // `options.base`\n //\n // Instead of them, we can use `option.format.indent`.\n if (typeof options.indent === 'string') {\n defaultOptions.format.indent.style = options.indent;\n }\n if (typeof options.base === 'number') {\n defaultOptions.format.indent.base = options.base;\n }\n options = updateDeeply(defaultOptions, options);\n indent = options.format.indent.style;\n if (typeof options.base === 'string') {\n base = options.base;\n } else {\n base = stringRepeat(indent, options.format.indent.base);\n }\n } else {\n options = defaultOptions;\n indent = options.format.indent.style;\n base = stringRepeat(indent, options.format.indent.base);\n }\n json = options.format.json;\n renumber = options.format.renumber;\n hexadecimal = json ? false : options.format.hexadecimal;\n quotes = json ? 'double' : options.format.quotes;\n escapeless = options.format.escapeless;\n newline = options.format.newline;\n space = options.format.space;\n if (options.format.compact) {\n newline = space = indent = base = '';\n }\n parentheses = options.format.parentheses;\n semicolons = options.format.semicolons;\n safeConcatenation = options.format.safeConcatenation;\n directive = options.directive;\n parse = json ? null : options.parse;\n sourceMap = options.sourceMap;\n sourceCode = options.sourceCode;\n preserveBlankLines = options.format.preserveBlankLines && sourceCode !== null;\n extra = options;\n\n if (sourceMap) {\n if (!exports.browser) {\n // We assume environment is node.js\n // And prevent from including source-map by browserify\n SourceNode = require('source-map').SourceNode;\n } else {\n SourceNode = global.sourceMap.SourceNode;\n }\n }\n\n result = generateInternal(node);\n\n if (!sourceMap) {\n pair = {code: result.toString(), map: null};\n return options.sourceMapWithCode ? pair : pair.code;\n }\n\n\n pair = result.toStringWithSourceMap({\n file: options.file,\n sourceRoot: options.sourceMapRoot\n });\n\n if (options.sourceContent) {\n pair.map.setSourceContent(options.sourceMap,\n options.sourceContent);\n }\n\n if (options.sourceMapWithCode) {\n return pair;\n }\n\n return pair.map.toString();\n }\n\n function xjsEscapeAttr(s, raw) {\n if (s.indexOf('\"') >= 0 || s.indexOf('\\'') >= 0) {\n return raw;\n }\n return quotes === 'double' ? '\"' + s + '\"' : '\\'' + s + '\\'';\n }\n\n FORMAT_MINIFY = {\n indent: {\n style: '',\n base: 0\n },\n renumber: true,\n hexadecimal: true,\n quotes: 'auto',\n escapeless: true,\n compact: true,\n parentheses: false,\n semicolons: false\n };\n\n FORMAT_DEFAULTS = getDefaultOptions().format;\n\n exports.version = require('./package.json').version;\n exports.generate = generate;\n exports.attachComments = estraverse.attachComments;\n exports.Precedence = updateDeeply({}, Precedence);\n exports.browser = false;\n exports.FORMAT_MINIFY = FORMAT_MINIFY;\n exports.FORMAT_DEFAULTS = FORMAT_DEFAULTS;\n}());\n/* vim: set sw=4 ts=4 et tw=80 : */\n"],"names":["root","factory","exports","this","clone","Syntax","isArray","VisitorOption","VisitorKeys","objectCreate","objectKeys","BREAK","SKIP","REMOVE","Array","array","Object","prototype","toString","call","deepCopy","obj","ret","key","val","hasOwnProperty","upperBound","func","diff","len","i","current","length","create","F","o","keys","push","extend","to","from","AssignmentExpression","ArrayExpression","ArrayPattern","ArrowFunctionExpression","AwaitExpression","BlockStatement","BinaryExpression","BreakStatement","CallExpression","CatchClause","ClassBody","ClassDeclaration","ClassExpression","ComprehensionBlock","ComprehensionExpression","ConditionalExpression","ContinueStatement","DebuggerStatement","DirectiveStatement","DoWhileStatement","EmptyStatement","ExportBatchSpecifier","ExportDeclaration","ExportSpecifier","ExpressionStatement","ForStatement","ForInStatement","ForOfStatement","FunctionDeclaration","FunctionExpression","GeneratorExpression","Identifier","IfStatement","ImportDeclaration","ImportDefaultSpecifier","ImportNamespaceSpecifier","ImportSpecifier","Literal","LabeledStatement","LogicalExpression","MemberExpression","MethodDefinition","ModuleSpecifier","NewExpression","ObjectExpression","ObjectPattern","Program","Property","ReturnStatement","SequenceExpression","SpreadElement","SwitchStatement","SwitchCase","TaggedTemplateExpression","TemplateElement","TemplateLiteral","ThisExpression","ThrowStatement","TryStatement","UnaryExpression","UpdateExpression","VariableDeclaration","VariableDeclarator","WhileStatement","WithStatement","YieldExpression","Break","Skip","Remove","Reference","parent","replace","node","remove","splice","Element","path","wrap","ref","Controller","iz","j","jz","result","element","addToPath","__current","__leavelist","type","parents","__execute","callback","previous","undefined","__state","notify","flag","skip","__initialize","visitor","__worklist","__fallback","fallback","__keys","isNode","isProperty","nodeType","traverse","worklist","leavelist","current2","candidates","candidate","sentinel","pop","leave","enter","Error","removeElem","nextElem","target","outer","controller","extendCommentRange","comment","tokens","search","token","range","extendedRange","attachComments","tree","providedComments","comments","cursor","leadingComments","trailingComments","version","cloneEnvironment","isExpression","isIterationStatement","isStatement","isSourceElement","trailingStatement","alternate","consequent","body","isProblematicIfStatement","module","ES6Regex","ES5Regex","NON_ASCII_WHITESPACES","IDENTIFIER_START","IDENTIFIER_PART","ch","NonAsciiIdentifierStart","NonAsciiIdentifierPart","isDecimalDigit","isHexDigit","isOctalDigit","isWhiteSpace","indexOf","isLineTerminator","fromCodePoint","cp","String","fromCharCode","cu1","Math","floor","cu2","isIdentifierStartES5","test","isIdentifierPartES5","isIdentifierStartES6","isIdentifierPartES6","code","require","isStrictModeReservedWordES6","id","isKeywordES5","strict","isKeywordES6","isReservedWordES5","isReservedWordES6","isRestrictedWord","isIdentifierNameES5","charCodeAt","decodeUtf16","lead","trail","isIdentifierNameES6","lowCh","check","isIdentifierES5","isIdentifierES6","amdefine","requireFn","defineCache","loaderCache","alreadyCalled","makeRequire","stringRequire","trimDots","ary","part","normalize","name","baseName","baseParts","charAt","split","slice","concat","join","makeNormalize","relName","makeLoad","load","value","fromText","text","systemRequire","relId","amdRequire","deps","map","depName","process","nextTick","apply","toUrl","filePath","dirname","filename","req","arguments","runFactory","r","e","m","uri","__filename","index","originalId","prefix","plugin","substring","define","amd","base64VLQ","util","ArraySet","MappingList","SourceMapGenerator","aArgs","_file","getArg","_sourceRoot","_skipValidation","_sources","_names","_mappings","_sourcesContents","_version","fromSourceMap","SourceMapGenerator_fromSourceMap","aSourceMapConsumer","sourceRoot","generator","file","eachMapping","mapping","newMapping","generated","line","generatedLine","column","generatedColumn","source","relative","original","originalLine","originalColumn","addMapping","sources","forEach","sourceFile","content","sourceContentFor","setSourceContent","SourceMapGenerator_addMapping","_validateMapping","has","add","SourceMapGenerator_setSourceContent","aSourceFile","aSourceContent","toSetString","applySourceMap","SourceMapGenerator_applySourceMap","aSourceMapPath","newSources","newNames","unsortedForEach","originalPositionFor","SourceMapGenerator_validateMapping","aGenerated","aOriginal","aSource","aName","JSON","stringify","_serializeMappings","SourceMapGenerator_serializeMappings","previousGeneratedColumn","previousGeneratedLine","previousOriginalColumn","previousOriginalLine","previousName","previousSource","mappings","toArray","compareByGeneratedPositions","encode","_generateSourcesContent","SourceMapGenerator_generateSourcesContent","aSources","aSourceRoot","toJSON","SourceMapGenerator_toJSON","names","sourcesContent","SourceMapGenerator_toString","SourceMapConsumer","aSourceMap","sourceMap","parse","sections","indexedSourceMapConsumer","IndexedSourceMapConsumer","basicSourceMapConsumer","BasicSourceMapConsumer","__generatedMappings","defineProperty","get","__originalMappings","_parseMappings","_nextCharIsMappingSeparator","SourceMapConsumer_nextCharIsMappingSeparator","aStr","c","SourceMapConsumer_parseMappings","GENERATED_ORDER","ORIGINAL_ORDER","SourceMapConsumer_eachMapping","aCallback","aContext","aOrder","context","order","_generatedMappings","_originalMappings","allGeneratedPositionsFor","SourceMapConsumer_allGeneratedPositionsFor","needle","Infinity","_findMapping","compareByOriginalPositions","lastColumn","reverse","REGEX_NEWLINE","NEWLINE_CODE","isSourceNode","SourceNode","aLine","aColumn","aChunks","children","sourceContents","fromStringWithSourceMap","SourceNode_fromStringWithSourceMap","aGeneratedCode","aRelativePath","remainingLines","shiftNextLine","lineContents","shift","newLine","lastGeneratedLine","lastGeneratedColumn","lastMapping","addMappingWithCode","nextLine","substr","SourceNode_add","aChunk","chunk","TypeError","prepend","SourceNode_prepend","unshift","walk","SourceNode_walk","aFn","SourceNode_join","aSep","newChildren","replaceRight","SourceNode_replaceRight","aPattern","aReplacement","lastChild","SourceNode_setSourceContent","walkSourceContents","SourceNode_walkSourceContents","fromSetString","SourceNode_toString","str","toStringWithSourceMap","SourceNode_toStringWithSourceMap","sourceMappingActive","lastOriginalSource","lastOriginalLine","lastOriginalColumn","lastOriginalName","idx","sourceContent","Precedence","BinaryPrecedence","estraverse","esutils","base","indent","json","renumber","hexadecimal","quotes","escapeless","newline","space","parentheses","semicolons","safeConcatenation","directive","extra","sourceCode","preserveBlankLines","FORMAT_MINIFY","FORMAT_DEFAULTS","CodeGenerator","Expression","Statement","Sequence","Yield","Assignment","Conditional","ArrowFunction","LogicalOR","NullishCoalescing","LogicalAND","BitwiseOR","BitwiseXOR","BitwiseAND","Equality","Relational","BitwiseSHIFT","Additive","Multiplicative","Exponentiation","Await","Unary","Postfix","Call","New","TaggedTemplate","OptionalMember","Member","Primary","F_ALLOW_IN","F_ALLOW_CALL","F_ALLOW_UNPARATH_NEW","F_FUNC_BODY","F_DIRECTIVE_CTX","F_SEMICOLON_OPT","F_XJS_NOINDENT","F_XJS_NOPAREN","E_FTT","E_TTF","E_TTT","E_TFF","E_FFT","E_TFT","S_TFFF","S_TFFT","S_FFFF","S_TFTF","S_TTFF","getDefaultOptions","format","style","adjustMultilineComment","compact","moz","comprehensionExpressionStartsWithAssignment","starlessGenerator","sourceMapRoot","sourceMapWithCode","raw","verbatim","stringRepeat","num","hasLineTerminator","endsWithLineTerminator","merge","override","updateDeeply","isHashObject","RegExp","generateNumber","point","temp","exponent","pos","escapeRegExpCharacter","previousIsBackslash","generateRegExp","reg","match","flags","characterInBrack","escapeAllowedCharacter","next","hex","toUpperCase","escapeDisallowedCharacter","escapeDirective","quote","escapeString","singleQuotes","doubleQuotes","single","flattenToString","arr","elem","toSourceNodeWhenNeeded","loc","start","noEmptySpace","left","right","leftSource","rightSource","leftCharCode","rightCharCode","addIndent","stmt","withIndent","fn","previousBase","calculateSpaces","specialBase","spaces","sn","Number","MAX_VALUE","generateComment","addComments","save","tailingToStatement","fragment","extRange","prevRange","infix","suffix","count","generateBlankLines","end","newlineCount","parenthesize","should","generateVerbatimString","string","generateVerbatim","expr","precedence","prec","maybeBlock","noLeadingComment","that","generateStatement","maybeBlockSuffix","ends","generateIdentifier","generateAsyncPrefix","spaceRequired","async","generateStarSuffix","isGenerator","generateMethodPrefix","prop","computed","generatePattern","generateExpression","generateFunctionParams","hasDefault","rest","defaults","params","generateAssignment","generateFunctionBody","expression","generateIterationForStatement","operator","await","kind","declarations","generatePropertyKey","semicolon","bodyFlags","StaticBlock","label","superClass","guard","param","ExportDefaultDeclaration","declaration","ExportNamedDeclaration","specifiers","ImportExportAssertions","assertions","ImportExportAttributes","attributes","ExportAllDeclaration","exported","isClassPrefixed","isFunctionPrefixed","isAsyncPrefixed","attribute","assertion","itemFlags","init","block","argument","guardedHandlers","handlers","finalizer","handler","discriminant","cases","semicolonOptional","update","object","PrivateName","expressions","leftPrecedence","rightPrecedence","currentPrecedence","callee","optional","ChainExpression","property","MetaProperty","meta","delegate","all","isPattern","multiline","elements","method","shorthand","properties","AssignmentPattern","Super","Import","local","imported","blocks","filter","of","RestElement","SpreadProperty","RestProperty","tag","quasi","quasis","JSXAttribute","allowIn","allowCall","xjsEscapeAttr","JSXClosingElement","JSXFragment","JSXElement","JSXOpeningFragment","JSXOpeningElement","JSXClosingFragment","openingElement","openingFragment","xjsFragments","closingElement","closingFragment","JSXExpressionContainer","JSXIdentifier","JSXMemberExpression","JSXNamespacedName","namespace","selfClosing","JSXSpreadAttribute","JSXText","JSXEmptyExpression","PropertyDefinition","static","PrivateIdentifier","ImportExpression","OptionalMemberExpression","OptionalCallExpression","ParenthesizedExpression","message","generateInternal","codegen","generate","options","defaultOptions","pair","browser","global","s"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10]}