This repository has been archived on 2023-03-25. You can view files and clone it, but cannot push or open issues or pull requests.
mightyscape-1.1-deprecated/extensions/fablabchemnitz/papercraft/openjscad/node_modules/astring/dist/astring.js.map

1 line
64 KiB
Plaintext

{"version":3,"sources":["../src/astring.js"],"names":[],"mappings":"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","file":"astring.js","sourcesContent":["// Astring is a tiny and fast JavaScript code generator from an ESTree-compliant AST.\n//\n// Astring was written by David Bonnet and released under an MIT license.\n//\n// The Git repository for Astring is available at:\n// https://github.com/davidbonnet/astring.git\n//\n// Please use the GitHub bug tracker to report issues:\n// https://github.com/davidbonnet/astring/issues\n\nconst { stringify } = JSON\n\n/* istanbul ignore if */\nif (!String.prototype.repeat) {\n /* istanbul ignore next */\n throw new Error(\n 'String.prototype.repeat is undefined, see https://github.com/davidbonnet/astring#installation',\n )\n}\n\n/* istanbul ignore if */\nif (!String.prototype.endsWith) {\n /* istanbul ignore next */\n throw new Error(\n 'String.prototype.endsWith is undefined, see https://github.com/davidbonnet/astring#installation',\n )\n}\n\nconst OPERATOR_PRECEDENCE = {\n '||': 3,\n '&&': 4,\n '|': 5,\n '^': 6,\n '&': 7,\n '==': 8,\n '!=': 8,\n '===': 8,\n '!==': 8,\n '<': 9,\n '>': 9,\n '<=': 9,\n '>=': 9,\n in: 9,\n instanceof: 9,\n '<<': 10,\n '>>': 10,\n '>>>': 10,\n '+': 11,\n '-': 11,\n '*': 12,\n '%': 12,\n '/': 12,\n '**': 13,\n}\n\n// Enables parenthesis regardless of precedence\nconst NEEDS_PARENTHESES = 17\n\nconst EXPRESSIONS_PRECEDENCE = {\n // Definitions\n ArrayExpression: 20,\n TaggedTemplateExpression: 20,\n ThisExpression: 20,\n Identifier: 20,\n Literal: 18,\n TemplateLiteral: 20,\n Super: 20,\n SequenceExpression: 20,\n // Operations\n MemberExpression: 19,\n CallExpression: 19,\n NewExpression: 19,\n // Other definitions\n ArrowFunctionExpression: NEEDS_PARENTHESES,\n ClassExpression: NEEDS_PARENTHESES,\n FunctionExpression: NEEDS_PARENTHESES,\n ObjectExpression: NEEDS_PARENTHESES,\n // Other operations\n UpdateExpression: 16,\n UnaryExpression: 15,\n BinaryExpression: 14,\n LogicalExpression: 13,\n ConditionalExpression: 4,\n AssignmentExpression: 3,\n AwaitExpression: 2,\n YieldExpression: 2,\n RestElement: 1,\n}\n\nfunction formatSequence(state, nodes) {\n /*\n Writes into `state` a sequence of `nodes`.\n */\n const { generator } = state\n state.write('(')\n if (nodes != null && nodes.length > 0) {\n generator[nodes[0].type](nodes[0], state)\n const { length } = nodes\n for (let i = 1; i < length; i++) {\n const param = nodes[i]\n state.write(', ')\n generator[param.type](param, state)\n }\n }\n state.write(')')\n}\n\nfunction expressionNeedsParenthesis(node, parentNode, isRightHand) {\n const nodePrecedence = EXPRESSIONS_PRECEDENCE[node.type]\n if (nodePrecedence === NEEDS_PARENTHESES) {\n return true\n }\n const parentNodePrecedence = EXPRESSIONS_PRECEDENCE[parentNode.type]\n if (nodePrecedence !== parentNodePrecedence) {\n // Different node types\n return (\n (!isRightHand &&\n nodePrecedence === 15 &&\n parentNodePrecedence === 14 &&\n parentNode.operator === '**') ||\n nodePrecedence < parentNodePrecedence\n )\n }\n if (nodePrecedence !== 13 && nodePrecedence !== 14) {\n // Not a `LogicalExpression` or `BinaryExpression`\n return false\n }\n if (node.operator === '**' && parentNode.operator === '**') {\n // Exponentiation operator has right-to-left associativity\n return !isRightHand\n }\n if (isRightHand) {\n // Parenthesis are used if both operators have the same precedence\n return (\n OPERATOR_PRECEDENCE[node.operator] <=\n OPERATOR_PRECEDENCE[parentNode.operator]\n )\n }\n return (\n OPERATOR_PRECEDENCE[node.operator] <\n OPERATOR_PRECEDENCE[parentNode.operator]\n )\n}\n\nfunction formatBinaryExpressionPart(state, node, parentNode, isRightHand) {\n /*\n Writes into `state` a left-hand or right-hand expression `node`\n from a binary expression applying the provided `operator`.\n The `isRightHand` parameter should be `true` if the `node` is a right-hand argument.\n */\n const { generator } = state\n if (expressionNeedsParenthesis(node, parentNode, isRightHand)) {\n state.write('(')\n generator[node.type](node, state)\n state.write(')')\n } else {\n generator[node.type](node, state)\n }\n}\n\nfunction reindent(state, text, indent, lineEnd) {\n /*\n Writes into `state` the `text` string reindented with the provided `indent`.\n */\n const lines = text.split('\\n')\n const end = lines.length - 1\n state.write(lines[0].trim())\n if (end > 0) {\n state.write(lineEnd)\n for (let i = 1; i < end; i++) {\n state.write(indent + lines[i].trim() + lineEnd)\n }\n state.write(indent + lines[end].trim())\n }\n}\n\nfunction formatComments(state, comments, indent, lineEnd) {\n /*\n Writes into `state` the provided list of `comments`, with the given `indent` and `lineEnd` strings.\n Line comments will end with `\"\\n\"` regardless of the value of `lineEnd`.\n Expects to start on a new unindented line.\n */\n const { length } = comments\n for (let i = 0; i < length; i++) {\n const comment = comments[i]\n state.write(indent)\n if (comment.type[0] === 'L') {\n // Line comment\n state.write('// ' + comment.value.trim() + '\\n')\n } else {\n // Block comment\n state.write('/*')\n reindent(state, comment.value, indent, lineEnd)\n state.write('*/' + lineEnd)\n }\n }\n}\n\nfunction hasCallExpression(node) {\n /*\n Returns `true` if the provided `node` contains a call expression and `false` otherwise.\n */\n let currentNode = node\n while (currentNode != null) {\n const { type } = currentNode\n if (type[0] === 'C' && type[1] === 'a') {\n // Is CallExpression\n return true\n } else if (type[0] === 'M' && type[1] === 'e' && type[2] === 'm') {\n // Is MemberExpression\n currentNode = currentNode.object\n } else {\n return false\n }\n }\n}\n\nfunction formatVariableDeclaration(state, node) {\n /*\n Writes into `state` a variable declaration.\n */\n const { generator } = state\n const { declarations } = node\n state.write(node.kind + ' ')\n const { length } = declarations\n if (length > 0) {\n generator.VariableDeclarator(declarations[0], state)\n for (let i = 1; i < length; i++) {\n state.write(', ')\n generator.VariableDeclarator(declarations[i], state)\n }\n }\n}\n\nlet ForInStatement,\n FunctionDeclaration,\n RestElement,\n BinaryExpression,\n ArrayExpression,\n BlockStatement\n\nexport const baseGenerator = {\n Program(node, state) {\n const indent = state.indent.repeat(state.indentLevel)\n const { lineEnd, writeComments } = state\n if (writeComments && node.comments != null) {\n formatComments(state, node.comments, indent, lineEnd)\n }\n const statements = node.body\n const { length } = statements\n for (let i = 0; i < length; i++) {\n const statement = statements[i]\n if (writeComments && statement.comments != null) {\n formatComments(state, statement.comments, indent, lineEnd)\n }\n state.write(indent)\n this[statement.type](statement, state)\n state.write(lineEnd)\n }\n if (writeComments && node.trailingComments != null) {\n formatComments(state, node.trailingComments, indent, lineEnd)\n }\n },\n BlockStatement: (BlockStatement = function(node, state) {\n const indent = state.indent.repeat(state.indentLevel++)\n const { lineEnd, writeComments } = state\n const statementIndent = indent + state.indent\n state.write('{')\n const statements = node.body\n if (statements != null && statements.length > 0) {\n state.write(lineEnd)\n if (writeComments && node.comments != null) {\n formatComments(state, node.comments, statementIndent, lineEnd)\n }\n const { length } = statements\n for (let i = 0; i < length; i++) {\n const statement = statements[i]\n if (writeComments && statement.comments != null) {\n formatComments(state, statement.comments, statementIndent, lineEnd)\n }\n state.write(statementIndent)\n this[statement.type](statement, state)\n state.write(lineEnd)\n }\n state.write(indent)\n } else {\n if (writeComments && node.comments != null) {\n state.write(lineEnd)\n formatComments(state, node.comments, statementIndent, lineEnd)\n state.write(indent)\n }\n }\n if (writeComments && node.trailingComments != null) {\n formatComments(state, node.trailingComments, statementIndent, lineEnd)\n }\n state.write('}')\n state.indentLevel--\n }),\n ClassBody: BlockStatement,\n EmptyStatement(node, state) {\n state.write(';')\n },\n ExpressionStatement(node, state) {\n const precedence = EXPRESSIONS_PRECEDENCE[node.expression.type]\n if (\n precedence === NEEDS_PARENTHESES ||\n (precedence === 3 && node.expression.left.type[0] === 'O')\n ) {\n // Should always have parentheses or is an AssignmentExpression to an ObjectPattern\n state.write('(')\n this[node.expression.type](node.expression, state)\n state.write(')')\n } else {\n this[node.expression.type](node.expression, state)\n }\n state.write(';')\n },\n IfStatement(node, state) {\n state.write('if (')\n this[node.test.type](node.test, state)\n state.write(') ')\n this[node.consequent.type](node.consequent, state)\n if (node.alternate != null) {\n state.write(' else ')\n this[node.alternate.type](node.alternate, state)\n }\n },\n LabeledStatement(node, state) {\n this[node.label.type](node.label, state)\n state.write(': ')\n this[node.body.type](node.body, state)\n },\n BreakStatement(node, state) {\n state.write('break')\n if (node.label != null) {\n state.write(' ')\n this[node.label.type](node.label, state)\n }\n state.write(';')\n },\n ContinueStatement(node, state) {\n state.write('continue')\n if (node.label != null) {\n state.write(' ')\n this[node.label.type](node.label, state)\n }\n state.write(';')\n },\n WithStatement(node, state) {\n state.write('with (')\n this[node.object.type](node.object, state)\n state.write(') ')\n this[node.body.type](node.body, state)\n },\n SwitchStatement(node, state) {\n const indent = state.indent.repeat(state.indentLevel++)\n const { lineEnd, writeComments } = state\n state.indentLevel++\n const caseIndent = indent + state.indent\n const statementIndent = caseIndent + state.indent\n state.write('switch (')\n this[node.discriminant.type](node.discriminant, state)\n state.write(') {' + lineEnd)\n const { cases: occurences } = node\n const { length: occurencesCount } = occurences\n for (let i = 0; i < occurencesCount; i++) {\n const occurence = occurences[i]\n if (writeComments && occurence.comments != null) {\n formatComments(state, occurence.comments, caseIndent, lineEnd)\n }\n if (occurence.test) {\n state.write(caseIndent + 'case ')\n this[occurence.test.type](occurence.test, state)\n state.write(':' + lineEnd)\n } else {\n state.write(caseIndent + 'default:' + lineEnd)\n }\n const { consequent } = occurence\n const { length: consequentCount } = consequent\n for (let i = 0; i < consequentCount; i++) {\n const statement = consequent[i]\n if (writeComments && statement.comments != null) {\n formatComments(state, statement.comments, statementIndent, lineEnd)\n }\n state.write(statementIndent)\n this[statement.type](statement, state)\n state.write(lineEnd)\n }\n }\n state.indentLevel -= 2\n state.write(indent + '}')\n },\n ReturnStatement(node, state) {\n state.write('return')\n if (node.argument) {\n state.write(' ')\n this[node.argument.type](node.argument, state)\n }\n state.write(';')\n },\n ThrowStatement(node, state) {\n state.write('throw ')\n this[node.argument.type](node.argument, state)\n state.write(';')\n },\n TryStatement(node, state) {\n state.write('try ')\n this[node.block.type](node.block, state)\n if (node.handler) {\n const { handler } = node\n if (handler.param == null) {\n state.write(' catch ')\n } else {\n state.write(' catch (')\n this[handler.param.type](handler.param, state)\n state.write(') ')\n }\n this[handler.body.type](handler.body, state)\n }\n if (node.finalizer) {\n state.write(' finally ')\n this[node.finalizer.type](node.finalizer, state)\n }\n },\n WhileStatement(node, state) {\n state.write('while (')\n this[node.test.type](node.test, state)\n state.write(') ')\n this[node.body.type](node.body, state)\n },\n DoWhileStatement(node, state) {\n state.write('do ')\n this[node.body.type](node.body, state)\n state.write(' while (')\n this[node.test.type](node.test, state)\n state.write(');')\n },\n ForStatement(node, state) {\n state.write('for (')\n if (node.init != null) {\n const { init } = node\n if (init.type[0] === 'V') {\n formatVariableDeclaration(state, init)\n } else {\n this[init.type](init, state)\n }\n }\n state.write('; ')\n if (node.test) {\n this[node.test.type](node.test, state)\n }\n state.write('; ')\n if (node.update) {\n this[node.update.type](node.update, state)\n }\n state.write(') ')\n this[node.body.type](node.body, state)\n },\n ForInStatement: (ForInStatement = function(node, state) {\n state.write(`for ${node.await ? 'await ' : ''}(`)\n const { left } = node\n if (left.type[0] === 'V') {\n formatVariableDeclaration(state, left)\n } else {\n this[left.type](left, state)\n }\n // Identifying whether node.type is `ForInStatement` or `ForOfStatement`\n state.write(node.type[3] === 'I' ? ' in ' : ' of ')\n this[node.right.type](node.right, state)\n state.write(') ')\n this[node.body.type](node.body, state)\n }),\n ForOfStatement: ForInStatement,\n DebuggerStatement(node, state) {\n state.write('debugger;' + state.lineEnd)\n },\n FunctionDeclaration: (FunctionDeclaration = function(node, state) {\n state.write(\n (node.async ? 'async ' : '') +\n (node.generator ? 'function* ' : 'function ') +\n (node.id ? node.id.name : ''),\n node,\n )\n formatSequence(state, node.params)\n state.write(' ')\n this[node.body.type](node.body, state)\n }),\n FunctionExpression: FunctionDeclaration,\n VariableDeclaration(node, state) {\n formatVariableDeclaration(state, node)\n state.write(';')\n },\n VariableDeclarator(node, state) {\n this[node.id.type](node.id, state)\n if (node.init != null) {\n state.write(' = ')\n this[node.init.type](node.init, state)\n }\n },\n ClassDeclaration(node, state) {\n state.write('class ' + (node.id ? `${node.id.name} ` : ''), node)\n if (node.superClass) {\n state.write('extends ')\n this[node.superClass.type](node.superClass, state)\n state.write(' ')\n }\n this.ClassBody(node.body, state)\n },\n ImportDeclaration(node, state) {\n state.write('import ')\n const { specifiers } = node\n const { length } = specifiers\n // NOTE: Once babili is fixed, put this after condition\n // https://github.com/babel/babili/issues/430\n let i = 0\n if (length > 0) {\n for (; i < length; ) {\n if (i > 0) {\n state.write(', ')\n }\n const specifier = specifiers[i]\n const type = specifier.type[6]\n if (type === 'D') {\n // ImportDefaultSpecifier\n state.write(specifier.local.name, specifier)\n i++\n } else if (type === 'N') {\n // ImportNamespaceSpecifier\n state.write('* as ' + specifier.local.name, specifier)\n i++\n } else {\n // ImportSpecifier\n break\n }\n }\n if (i < length) {\n state.write('{')\n for (;;) {\n const specifier = specifiers[i]\n const { name } = specifier.imported\n state.write(name, specifier)\n if (name !== specifier.local.name) {\n state.write(' as ' + specifier.local.name)\n }\n if (++i < length) {\n state.write(', ')\n } else {\n break\n }\n }\n state.write('}')\n }\n state.write(' from ')\n }\n this.Literal(node.source, state)\n state.write(';')\n },\n ExportDefaultDeclaration(node, state) {\n state.write('export default ')\n this[node.declaration.type](node.declaration, state)\n if (\n EXPRESSIONS_PRECEDENCE[node.declaration.type] &&\n node.declaration.type[0] !== 'F'\n ) {\n // All expression nodes except `FunctionExpression`\n state.write(';')\n }\n },\n ExportNamedDeclaration(node, state) {\n state.write('export ')\n if (node.declaration) {\n this[node.declaration.type](node.declaration, state)\n } else {\n state.write('{')\n const { specifiers } = node,\n { length } = specifiers\n if (length > 0) {\n for (let i = 0; ; ) {\n const specifier = specifiers[i]\n const { name } = specifier.local\n state.write(name, specifier)\n if (name !== specifier.exported.name) {\n state.write(' as ' + specifier.exported.name)\n }\n if (++i < length) {\n state.write(', ')\n } else {\n break\n }\n }\n }\n state.write('}')\n if (node.source) {\n state.write(' from ')\n this.Literal(node.source, state)\n }\n state.write(';')\n }\n },\n ExportAllDeclaration(node, state) {\n state.write('export * from ')\n this.Literal(node.source, state)\n state.write(';')\n },\n MethodDefinition(node, state) {\n if (node.static) {\n state.write('static ')\n }\n const kind = node.kind[0]\n if (kind === 'g' || kind === 's') {\n // Getter or setter\n state.write(node.kind + ' ')\n }\n if (node.value.async) {\n state.write('async ')\n }\n if (node.value.generator) {\n state.write('*')\n }\n if (node.computed) {\n state.write('[')\n this[node.key.type](node.key, state)\n state.write(']')\n } else {\n this[node.key.type](node.key, state)\n }\n formatSequence(state, node.value.params)\n state.write(' ')\n this[node.value.body.type](node.value.body, state)\n },\n ClassExpression(node, state) {\n this.ClassDeclaration(node, state)\n },\n ArrowFunctionExpression(node, state) {\n state.write(node.async ? 'async ' : '', node)\n const { params } = node\n if (params != null) {\n // Omit parenthesis if only one named parameter\n if (params.length === 1 && params[0].type[0] === 'I') {\n // If params[0].type[0] starts with 'I', it can't be `ImportDeclaration` nor `IfStatement` and thus is `Identifier`\n state.write(params[0].name, params[0])\n } else {\n formatSequence(state, node.params)\n }\n }\n state.write(' => ')\n if (node.body.type[0] === 'O') {\n // Body is an object expression\n state.write('(')\n this.ObjectExpression(node.body, state)\n state.write(')')\n } else {\n this[node.body.type](node.body, state)\n }\n },\n ThisExpression(node, state) {\n state.write('this', node)\n },\n Super(node, state) {\n state.write('super', node)\n },\n RestElement: (RestElement = function(node, state) {\n state.write('...')\n this[node.argument.type](node.argument, state)\n }),\n SpreadElement: RestElement,\n YieldExpression(node, state) {\n state.write(node.delegate ? 'yield*' : 'yield')\n if (node.argument) {\n state.write(' ')\n this[node.argument.type](node.argument, state)\n }\n },\n AwaitExpression(node, state) {\n state.write('await ')\n if (node.argument) {\n this[node.argument.type](node.argument, state)\n }\n },\n TemplateLiteral(node, state) {\n const { quasis, expressions } = node\n state.write('`')\n const { length } = expressions\n for (let i = 0; i < length; i++) {\n const expression = expressions[i]\n this.TemplateElement(quasis[i], state)\n state.write('${')\n this[expression.type](expression, state)\n state.write('}')\n }\n state.write(quasis[quasis.length - 1].value.raw)\n state.write('`')\n },\n TemplateElement(node, state) {\n state.write(node.value.raw)\n },\n TaggedTemplateExpression(node, state) {\n this[node.tag.type](node.tag, state)\n this[node.quasi.type](node.quasi, state)\n },\n ArrayExpression: (ArrayExpression = function(node, state) {\n state.write('[')\n if (node.elements.length > 0) {\n const { elements } = node,\n { length } = elements\n for (let i = 0; ; ) {\n const element = elements[i]\n if (element != null) {\n this[element.type](element, state)\n }\n if (++i < length) {\n state.write(', ')\n } else {\n if (element == null) {\n state.write(', ')\n }\n break\n }\n }\n }\n state.write(']')\n }),\n ArrayPattern: ArrayExpression,\n ObjectExpression(node, state) {\n const indent = state.indent.repeat(state.indentLevel++)\n const { lineEnd, writeComments } = state\n const propertyIndent = indent + state.indent\n state.write('{')\n if (node.properties.length > 0) {\n state.write(lineEnd)\n if (writeComments && node.comments != null) {\n formatComments(state, node.comments, propertyIndent, lineEnd)\n }\n const comma = ',' + lineEnd\n const { properties } = node,\n { length } = properties\n for (let i = 0; ; ) {\n const property = properties[i]\n if (writeComments && property.comments != null) {\n formatComments(state, property.comments, propertyIndent, lineEnd)\n }\n state.write(propertyIndent)\n this[property.type](property, state)\n if (++i < length) {\n state.write(comma)\n } else {\n break\n }\n }\n state.write(lineEnd)\n if (writeComments && node.trailingComments != null) {\n formatComments(state, node.trailingComments, propertyIndent, lineEnd)\n }\n state.write(indent + '}')\n } else if (writeComments) {\n if (node.comments != null) {\n state.write(lineEnd)\n formatComments(state, node.comments, propertyIndent, lineEnd)\n if (node.trailingComments != null) {\n formatComments(state, node.trailingComments, propertyIndent, lineEnd)\n }\n state.write(indent + '}')\n } else if (node.trailingComments != null) {\n state.write(lineEnd)\n formatComments(state, node.trailingComments, propertyIndent, lineEnd)\n state.write(indent + '}')\n } else {\n state.write('}')\n }\n } else {\n state.write('}')\n }\n state.indentLevel--\n },\n Property(node, state) {\n if (node.method || node.kind[0] !== 'i') {\n // Either a method or of kind `set` or `get` (not `init`)\n this.MethodDefinition(node, state)\n } else {\n if (!node.shorthand) {\n if (node.computed) {\n state.write('[')\n this[node.key.type](node.key, state)\n state.write(']')\n } else {\n this[node.key.type](node.key, state)\n }\n state.write(': ')\n }\n this[node.value.type](node.value, state)\n }\n },\n ObjectPattern(node, state) {\n state.write('{')\n if (node.properties.length > 0) {\n const { properties } = node,\n { length } = properties\n for (let i = 0; ; ) {\n this[properties[i].type](properties[i], state)\n if (++i < length) {\n state.write(', ')\n } else {\n break\n }\n }\n }\n state.write('}')\n },\n SequenceExpression(node, state) {\n formatSequence(state, node.expressions)\n },\n UnaryExpression(node, state) {\n if (node.prefix) {\n state.write(node.operator)\n if (node.operator.length > 1) {\n state.write(' ')\n }\n if (\n EXPRESSIONS_PRECEDENCE[node.argument.type] <\n EXPRESSIONS_PRECEDENCE.UnaryExpression\n ) {\n state.write('(')\n this[node.argument.type](node.argument, state)\n state.write(')')\n } else {\n this[node.argument.type](node.argument, state)\n }\n } else {\n // FIXME: This case never occurs\n this[node.argument.type](node.argument, state)\n state.write(node.operator)\n }\n },\n UpdateExpression(node, state) {\n // Always applied to identifiers or members, no parenthesis check needed\n if (node.prefix) {\n state.write(node.operator)\n this[node.argument.type](node.argument, state)\n } else {\n this[node.argument.type](node.argument, state)\n state.write(node.operator)\n }\n },\n AssignmentExpression(node, state) {\n this[node.left.type](node.left, state)\n state.write(' ' + node.operator + ' ')\n this[node.right.type](node.right, state)\n },\n AssignmentPattern(node, state) {\n this[node.left.type](node.left, state)\n state.write(' = ')\n this[node.right.type](node.right, state)\n },\n BinaryExpression: (BinaryExpression = function(node, state) {\n const isIn = node.operator === 'in'\n if (isIn) {\n // Avoids confusion in `for` loops initializers\n state.write('(')\n }\n formatBinaryExpressionPart(state, node.left, node, false)\n state.write(' ' + node.operator + ' ')\n formatBinaryExpressionPart(state, node.right, node, true)\n if (isIn) {\n state.write(')')\n }\n }),\n LogicalExpression: BinaryExpression,\n ConditionalExpression(node, state) {\n if (\n EXPRESSIONS_PRECEDENCE[node.test.type] >\n EXPRESSIONS_PRECEDENCE.ConditionalExpression\n ) {\n this[node.test.type](node.test, state)\n } else {\n state.write('(')\n this[node.test.type](node.test, state)\n state.write(')')\n }\n state.write(' ? ')\n this[node.consequent.type](node.consequent, state)\n state.write(' : ')\n this[node.alternate.type](node.alternate, state)\n },\n NewExpression(node, state) {\n state.write('new ')\n if (\n EXPRESSIONS_PRECEDENCE[node.callee.type] <\n EXPRESSIONS_PRECEDENCE.CallExpression ||\n hasCallExpression(node.callee)\n ) {\n state.write('(')\n this[node.callee.type](node.callee, state)\n state.write(')')\n } else {\n this[node.callee.type](node.callee, state)\n }\n formatSequence(state, node['arguments'])\n },\n CallExpression(node, state) {\n if (\n EXPRESSIONS_PRECEDENCE[node.callee.type] <\n EXPRESSIONS_PRECEDENCE.CallExpression\n ) {\n state.write('(')\n this[node.callee.type](node.callee, state)\n state.write(')')\n } else {\n this[node.callee.type](node.callee, state)\n }\n formatSequence(state, node['arguments'])\n },\n MemberExpression(node, state) {\n if (\n EXPRESSIONS_PRECEDENCE[node.object.type] <\n EXPRESSIONS_PRECEDENCE.MemberExpression\n ) {\n state.write('(')\n this[node.object.type](node.object, state)\n state.write(')')\n } else {\n this[node.object.type](node.object, state)\n }\n if (node.computed) {\n state.write('[')\n this[node.property.type](node.property, state)\n state.write(']')\n } else {\n state.write('.')\n this[node.property.type](node.property, state)\n }\n },\n MetaProperty(node, state) {\n state.write(node.meta.name + '.' + node.property.name, node)\n },\n Identifier(node, state) {\n state.write(node.name, node)\n },\n Literal(node, state) {\n if (node.raw != null) {\n state.write(node.raw, node)\n } else if (node.regex != null) {\n this.RegExpLiteral(node, state)\n } else {\n state.write(stringify(node.value), node)\n }\n },\n RegExpLiteral(node, state) {\n const { regex } = node\n state.write(`/${regex.pattern}/${regex.flags}`, node)\n },\n}\n\nconst EMPTY_OBJECT = {}\n\nclass State {\n constructor(options) {\n const setup = options == null ? EMPTY_OBJECT : options\n this.output = ''\n // Functional options\n if (setup.output != null) {\n this.output = setup.output\n this.write = this.writeToStream\n } else {\n this.output = ''\n }\n this.generator = setup.generator != null ? setup.generator : baseGenerator\n // Formating setup\n this.indent = setup.indent != null ? setup.indent : ' '\n this.lineEnd = setup.lineEnd != null ? setup.lineEnd : '\\n'\n this.indentLevel =\n setup.startingIndentLevel != null ? setup.startingIndentLevel : 0\n this.writeComments = setup.comments ? setup.comments : false\n // Source map\n if (setup.sourceMap != null) {\n this.write =\n setup.output == null ? this.writeAndMap : this.writeToStreamAndMap\n this.sourceMap = setup.sourceMap\n this.line = 1\n this.column = 0\n this.lineEndSize = this.lineEnd.split('\\n').length - 1\n this.mapping = {\n original: null,\n generated: this,\n name: undefined,\n source: setup.sourceMap.file || setup.sourceMap._file,\n }\n }\n }\n\n write(code) {\n this.output += code\n }\n\n writeToStream(code) {\n this.output.write(code)\n }\n\n writeAndMap(code, node) {\n this.output += code\n this.map(code, node)\n }\n\n writeToStreamAndMap(code, node) {\n this.output.write(code)\n this.map(code, node)\n }\n\n map(code, node) {\n if (node != null && node.loc != null) {\n const { mapping } = this\n mapping.original = node.loc.start\n mapping.name = node.name\n this.sourceMap.addMapping(mapping)\n }\n if (code.length > 0) {\n if (this.lineEndSize > 0) {\n if (code.endsWith(this.lineEnd)) {\n this.line += this.lineEndSize\n this.column = 0\n } else if (code[code.length - 1] === '\\n') {\n // Case of inline comment\n this.line++\n this.column = 0\n } else {\n this.column += code.length\n }\n } else {\n if (code[code.length - 1] === '\\n') {\n // Case of inline comment\n this.line++\n this.column = 0\n } else {\n this.column += code.length\n }\n }\n }\n }\n\n toString() {\n return this.output\n }\n}\n\nexport function generate(node, options) {\n /*\n Returns a string representing the rendered code of the provided AST `node`.\n The `options` are:\n\n - `indent`: string to use for indentation (defaults to `␣␣`)\n - `lineEnd`: string to use for line endings (defaults to `\\n`)\n - `startingIndentLevel`: indent level to start from (defaults to `0`)\n - `comments`: generate comments if `true` (defaults to `false`)\n - `output`: output stream to write the rendered code to (defaults to `null`)\n - `generator`: custom code generator (defaults to `baseGenerator`)\n */\n const state = new State(options)\n // Travel through the AST node and generate the code\n state.generator[node.type](node, state)\n return state.output\n}\n"]}