UNPKG

astexplorer.app

Version:

https://astexplorer.net with ES Modules support and Hot Reloading

1 lines 717 kB
(window.webpackJsonp=window.webpackJsonp||[]).push([[37,38],{"./node_modules/@babel/runtime/helpers/toArray.js":function(module,exports,__webpack_require__){eval('var arrayWithHoles = __webpack_require__("./node_modules/@babel/runtime/helpers/arrayWithHoles.js");\n\nvar iterableToArray = __webpack_require__("./node_modules/@babel/runtime/helpers/iterableToArray.js");\n\nvar unsupportedIterableToArray = __webpack_require__("./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");\n\nvar nonIterableRest = __webpack_require__("./node_modules/@babel/runtime/helpers/nonIterableRest.js");\n\nfunction _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}\n\nmodule.exports = _toArray, module.exports.__esModule = true, module.exports["default"] = module.exports;\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/toArray.js?')},"./node_modules/@glimmer/env/dist/modules/es2017/index.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DEBUG", function() { return DEBUG; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CI", function() { return CI; });\nconst DEBUG = false;\nconst CI = false;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQztBQUMzQixNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IERFQlVHID0gZmFsc2U7XG5leHBvcnQgY29uc3QgQ0kgPSBmYWxzZTtcbiJdfQ==\n\n//# sourceURL=webpack:///./node_modules/@glimmer/env/dist/modules/es2017/index.js?')},"./node_modules/@glimmer/syntax/dist/modules/es2017/index.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nvar _interopRequireDefault = __webpack_require__("./node_modules/@babel/runtime/helpers/interopRequireDefault.js");\n\nvar _typeof = __webpack_require__("./node_modules/@babel/runtime/helpers/typeof.js");\n\nObject.defineProperty(exports, "__esModule", {\n value: true\n});\nexports.ASTv2 = exports.ASTv1 = exports.AST = void 0;\nObject.defineProperty(exports, "BlockSymbolTable", {\n enumerable: true,\n get: function get() {\n return _symbolTable.BlockSymbolTable;\n }\n});\nObject.defineProperty(exports, "KEYWORDS_TYPES", {\n enumerable: true,\n get: function get() {\n return _keywords.KEYWORDS_TYPES;\n }\n});\nObject.defineProperty(exports, "Path", {\n enumerable: true,\n get: function get() {\n return _walker.default;\n }\n});\nObject.defineProperty(exports, "ProgramSymbolTable", {\n enumerable: true,\n get: function get() {\n return _symbolTable.ProgramSymbolTable;\n }\n});\nObject.defineProperty(exports, "Source", {\n enumerable: true,\n get: function get() {\n return _source.Source;\n }\n});\nObject.defineProperty(exports, "SourceSlice", {\n enumerable: true,\n get: function get() {\n return _slice.SourceSlice;\n }\n});\nObject.defineProperty(exports, "SourceSpan", {\n enumerable: true,\n get: function get() {\n return _span.SourceSpan;\n }\n});\nObject.defineProperty(exports, "SpanList", {\n enumerable: true,\n get: function get() {\n return _spanList.SpanList;\n }\n});\nObject.defineProperty(exports, "SymbolTable", {\n enumerable: true,\n get: function get() {\n return _symbolTable.SymbolTable;\n }\n});\nObject.defineProperty(exports, "Walker", {\n enumerable: true,\n get: function get() {\n return _walker.default;\n }\n});\nObject.defineProperty(exports, "WalkerPath", {\n enumerable: true,\n get: function get() {\n return _path.default;\n }\n});\nObject.defineProperty(exports, "builders", {\n enumerable: true,\n get: function get() {\n return _publicBuilders.default;\n }\n});\nObject.defineProperty(exports, "cannotRemoveNode", {\n enumerable: true,\n get: function get() {\n return _errors.cannotRemoveNode;\n }\n});\nObject.defineProperty(exports, "cannotReplaceNode", {\n enumerable: true,\n get: function get() {\n return _errors.cannotReplaceNode;\n }\n});\nObject.defineProperty(exports, "generateSyntaxError", {\n enumerable: true,\n get: function get() {\n return _syntaxError.generateSyntaxError;\n }\n});\nObject.defineProperty(exports, "getTemplateLocals", {\n enumerable: true,\n get: function get() {\n return _getTemplateLocals.getTemplateLocals;\n }\n});\nObject.defineProperty(exports, "hasSpan", {\n enumerable: true,\n get: function get() {\n return _spanList.hasSpan;\n }\n});\nObject.defineProperty(exports, "isKeyword", {\n enumerable: true,\n get: function get() {\n return _keywords.isKeyword;\n }\n});\nObject.defineProperty(exports, "loc", {\n enumerable: true,\n get: function get() {\n return _spanList.loc;\n }\n});\nObject.defineProperty(exports, "maybeLoc", {\n enumerable: true,\n get: function get() {\n return _spanList.maybeLoc;\n }\n});\nObject.defineProperty(exports, "node", {\n enumerable: true,\n get: function get() {\n return _node.node;\n }\n});\nObject.defineProperty(exports, "normalize", {\n enumerable: true,\n get: function get() {\n return _normalize.normalize;\n }\n});\nObject.defineProperty(exports, "preprocess", {\n enumerable: true,\n get: function get() {\n return _tokenizerEventHandlers.preprocess;\n }\n});\nObject.defineProperty(exports, "print", {\n enumerable: true,\n get: function get() {\n return _print.default;\n }\n});\nObject.defineProperty(exports, "sortByLoc", {\n enumerable: true,\n get: function get() {\n return _util.sortByLoc;\n }\n});\nObject.defineProperty(exports, "traverse", {\n enumerable: true,\n get: function get() {\n return _traverse.default;\n }\n});\n\nvar _source = __webpack_require__("./node_modules/@glimmer/syntax/dist/modules/es2017/lib/source/source.js");\n\nvar _publicBuilders = _interopRequireDefault(__webpack_require__("./node_modules/@glimmer/syntax/dist/modules/es2017/lib/v1/public-builders.js"));\n\nvar ASTv1_1 = _interopRequireWildcard(__webpack_require__("./node_modules/@glimmer/syntax/dist/modules/es2017/lib/v1/api.js"));\n\nvar AST_1 = ASTv1_1;\nexports.ASTv1 = ASTv1_1;\nexports.AST = ASTv1_1;\n\nvar ASTv2_1 = _interopRequireWildcard(__webpack_require__("./node_modules/@glimmer/syntax/dist/modules/es2017/lib/v2-a/api.js"));\n\nexports.ASTv2 = ASTv2_1;\n\nvar _normalize = __webpack_require__("./node_modules/@glimmer/syntax/dist/modules/es2017/lib/v2-a/normalize.js");\n\nvar _symbolTable = __webpack_require__("./node_modules/@glimmer/syntax/dist/modules/es2017/lib/symbol-table.js");\n\nvar _syntaxError = __webpack_require__("./node_modules/@glimmer/syntax/dist/modules/es2017/lib/syntax-error.js");\n\nvar _tokenizerEventHandlers = __webpack_require__("./node_modules/@glimmer/syntax/dist/modules/es2017/lib/parser/tokenizer-event-handlers.js");\n\nvar _print = _interopRequireDefault(__webpack_require__("./node_modules/@glimmer/syntax/dist/modules/es2017/lib/generation/print.js"));\n\nvar _util = __webpack_require__("./node_modules/@glimmer/syntax/dist/modules/es2017/lib/generation/util.js");\n\nvar _walker = _interopRequireDefault(__webpack_require__("./node_modules/@glimmer/syntax/dist/modules/es2017/lib/traversal/walker.js"));\n\nvar _traverse = _interopRequireDefault(__webpack_require__("./node_modules/@glimmer/syntax/dist/modules/es2017/lib/traversal/traverse.js"));\n\nvar _errors = __webpack_require__("./node_modules/@glimmer/syntax/dist/modules/es2017/lib/traversal/errors.js");\n\nvar _path = _interopRequireDefault(__webpack_require__("./node_modules/@glimmer/syntax/dist/modules/es2017/lib/traversal/path.js"));\n\nvar _keywords = __webpack_require__("./node_modules/@glimmer/syntax/dist/modules/es2017/lib/keywords.js");\n\nvar _getTemplateLocals = __webpack_require__("./node_modules/@glimmer/syntax/dist/modules/es2017/lib/get-template-locals.js");\n\nvar _slice = __webpack_require__("./node_modules/@glimmer/syntax/dist/modules/es2017/lib/source/slice.js");\n\nvar _span = __webpack_require__("./node_modules/@glimmer/syntax/dist/modules/es2017/lib/source/span.js");\n\nvar _spanList = __webpack_require__("./node_modules/@glimmer/syntax/dist/modules/es2017/lib/source/span-list.js");\n\nvar _node = __webpack_require__("./node_modules/@glimmer/syntax/dist/modules/es2017/lib/v2-a/objects/node.js");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n//# sourceURL=webpack:///./node_modules/@glimmer/syntax/dist/modules/es2017/index.js?')},"./node_modules/@glimmer/syntax/dist/modules/es2017/lib/generation/print.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nvar _interopRequireDefault = __webpack_require__("./node_modules/@babel/runtime/helpers/interopRequireDefault.js");\n\nObject.defineProperty(exports, "__esModule", {\n value: true\n});\nexports.default = build;\n\nvar _printer = _interopRequireDefault(__webpack_require__("./node_modules/@glimmer/syntax/dist/modules/es2017/lib/generation/printer.js"));\n\nfunction build(ast) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n entityEncoding: \'transformed\'\n };\n\n if (!ast) {\n return \'\';\n }\n\n var printer = new _printer.default(options);\n return printer.print(ast);\n}\n\n//# sourceURL=webpack:///./node_modules/@glimmer/syntax/dist/modules/es2017/lib/generation/print.js?')},"./node_modules/@glimmer/syntax/dist/modules/es2017/lib/generation/printer.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nvar _interopRequireDefault = __webpack_require__(\"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.voidMap = exports.default = void 0;\n\nvar _toConsumableArray2 = _interopRequireDefault(__webpack_require__(\"./node_modules/@babel/runtime/helpers/toConsumableArray.js\"));\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(\"./node_modules/@babel/runtime/helpers/classCallCheck.js\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(\"./node_modules/@babel/runtime/helpers/createClass.js\"));\n\nvar _util = __webpack_require__(\"./node_modules/@glimmer/syntax/dist/modules/es2017/lib/generation/util.js\");\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar voidMap = Object.create(null);\nexports.voidMap = voidMap;\nvar voidTagNames = 'area base br col command embed hr img input keygen link meta param source track wbr';\nvoidTagNames.split(' ').forEach(function (tagName) {\n voidMap[tagName] = true;\n});\nvar NON_WHITESPACE = /\\S/;\n\nvar Printer = /*#__PURE__*/function () {\n function Printer(options) {\n (0, _classCallCheck2.default)(this, Printer);\n this.buffer = '';\n this.options = options;\n }\n /*\n This is used by _all_ methods on this Printer class that add to `this.buffer`,\n it allows consumers of the printer to use alternate string representations for\n a given node.\n The primary use case for this are things like source -> source codemod utilities.\n For example, ember-template-recast attempts to always preserve the original string\n formatting in each AST node if no modifications are made to it.\n */\n\n\n (0, _createClass2.default)(Printer, [{\n key: \"handledByOverride\",\n value: function handledByOverride(node) {\n var ensureLeadingWhitespace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (this.options.override !== undefined) {\n var result = this.options.override(node, this.options);\n\n if (typeof result === 'string') {\n if (ensureLeadingWhitespace && result !== '' && NON_WHITESPACE.test(result[0])) {\n result = \" \".concat(result);\n }\n\n this.buffer += result;\n return true;\n }\n }\n\n return false;\n }\n }, {\n key: \"Node\",\n value: function Node(node) {\n switch (node.type) {\n case 'MustacheStatement':\n case 'BlockStatement':\n case 'PartialStatement':\n case 'MustacheCommentStatement':\n case 'CommentStatement':\n case 'TextNode':\n case 'ElementNode':\n case 'AttrNode':\n case 'Block':\n case 'Template':\n return this.TopLevelStatement(node);\n\n case 'StringLiteral':\n case 'BooleanLiteral':\n case 'NumberLiteral':\n case 'UndefinedLiteral':\n case 'NullLiteral':\n case 'PathExpression':\n case 'SubExpression':\n return this.Expression(node);\n\n case 'Program':\n return this.Block(node);\n\n case 'ConcatStatement':\n // should have an AttrNode parent\n return this.ConcatStatement(node);\n\n case 'Hash':\n return this.Hash(node);\n\n case 'HashPair':\n return this.HashPair(node);\n\n case 'ElementModifierStatement':\n return this.ElementModifierStatement(node);\n }\n }\n }, {\n key: \"Expression\",\n value: function Expression(expression) {\n switch (expression.type) {\n case 'StringLiteral':\n case 'BooleanLiteral':\n case 'NumberLiteral':\n case 'UndefinedLiteral':\n case 'NullLiteral':\n return this.Literal(expression);\n\n case 'PathExpression':\n return this.PathExpression(expression);\n\n case 'SubExpression':\n return this.SubExpression(expression);\n }\n }\n }, {\n key: \"Literal\",\n value: function Literal(literal) {\n switch (literal.type) {\n case 'StringLiteral':\n return this.StringLiteral(literal);\n\n case 'BooleanLiteral':\n return this.BooleanLiteral(literal);\n\n case 'NumberLiteral':\n return this.NumberLiteral(literal);\n\n case 'UndefinedLiteral':\n return this.UndefinedLiteral(literal);\n\n case 'NullLiteral':\n return this.NullLiteral(literal);\n }\n }\n }, {\n key: \"TopLevelStatement\",\n value: function TopLevelStatement(statement) {\n switch (statement.type) {\n case 'MustacheStatement':\n return this.MustacheStatement(statement);\n\n case 'BlockStatement':\n return this.BlockStatement(statement);\n\n case 'PartialStatement':\n return this.PartialStatement(statement);\n\n case 'MustacheCommentStatement':\n return this.MustacheCommentStatement(statement);\n\n case 'CommentStatement':\n return this.CommentStatement(statement);\n\n case 'TextNode':\n return this.TextNode(statement);\n\n case 'ElementNode':\n return this.ElementNode(statement);\n\n case 'Block':\n case 'Template':\n return this.Block(statement);\n\n case 'AttrNode':\n // should have element\n return this.AttrNode(statement);\n }\n }\n }, {\n key: \"Block\",\n value: function Block(block) {\n /*\n When processing a template like:\n ```hbs\n {{#if whatever}}\n whatever\n {{else if somethingElse}}\n something else\n {{else}}\n fallback\n {{/if}}\n ```\n The AST still _effectively_ looks like:\n ```hbs\n {{#if whatever}}\n whatever\n {{else}}{{#if somethingElse}}\n something else\n {{else}}\n fallback\n {{/if}}{{/if}}\n ```\n The only way we can tell if that is the case is by checking for\n `block.chained`, but unfortunately when the actual statements are\n processed the `block.body[0]` node (which will always be a\n `BlockStatement`) has no clue that its ancestor `Block` node was\n chained.\n This \"forwards\" the `chained` setting so that we can check\n it later when processing the `BlockStatement`.\n */\n if (block.chained) {\n var firstChild = block.body[0];\n firstChild.chained = true;\n }\n\n if (this.handledByOverride(block)) {\n return;\n }\n\n this.TopLevelStatements(block.body);\n }\n }, {\n key: \"TopLevelStatements\",\n value: function TopLevelStatements(statements) {\n var _this = this;\n\n statements.forEach(function (statement) {\n return _this.TopLevelStatement(statement);\n });\n }\n }, {\n key: \"ElementNode\",\n value: function ElementNode(el) {\n if (this.handledByOverride(el)) {\n return;\n }\n\n this.OpenElementNode(el);\n this.TopLevelStatements(el.children);\n this.CloseElementNode(el);\n }\n }, {\n key: \"OpenElementNode\",\n value: function OpenElementNode(el) {\n this.buffer += \"<\".concat(el.tag);\n var parts = [].concat((0, _toConsumableArray2.default)(el.attributes), (0, _toConsumableArray2.default)(el.modifiers), (0, _toConsumableArray2.default)(el.comments)).sort(_util.sortByLoc);\n\n var _iterator = _createForOfIteratorHelper(parts),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var part = _step.value;\n this.buffer += ' ';\n\n switch (part.type) {\n case 'AttrNode':\n this.AttrNode(part);\n break;\n\n case 'ElementModifierStatement':\n this.ElementModifierStatement(part);\n break;\n\n case 'MustacheCommentStatement':\n this.MustacheCommentStatement(part);\n break;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n if (el.blockParams.length) {\n this.BlockParams(el.blockParams);\n }\n\n if (el.selfClosing) {\n this.buffer += ' /';\n }\n\n this.buffer += '>';\n }\n }, {\n key: \"CloseElementNode\",\n value: function CloseElementNode(el) {\n if (el.selfClosing || voidMap[el.tag.toLowerCase()]) {\n return;\n }\n\n this.buffer += \"</\".concat(el.tag, \">\");\n }\n }, {\n key: \"AttrNode\",\n value: function AttrNode(attr) {\n if (this.handledByOverride(attr)) {\n return;\n }\n\n var name = attr.name,\n value = attr.value;\n this.buffer += name;\n\n if (value.type !== 'TextNode' || value.chars.length > 0) {\n this.buffer += '=';\n this.AttrNodeValue(value);\n }\n }\n }, {\n key: \"AttrNodeValue\",\n value: function AttrNodeValue(value) {\n if (value.type === 'TextNode') {\n this.buffer += '\"';\n this.TextNode(value, true);\n this.buffer += '\"';\n } else {\n this.Node(value);\n }\n }\n }, {\n key: \"TextNode\",\n value: function TextNode(text, isAttr) {\n if (this.handledByOverride(text)) {\n return;\n }\n\n if (this.options.entityEncoding === 'raw') {\n this.buffer += text.chars;\n } else if (isAttr) {\n this.buffer += (0, _util.escapeAttrValue)(text.chars);\n } else {\n this.buffer += (0, _util.escapeText)(text.chars);\n }\n }\n }, {\n key: \"MustacheStatement\",\n value: function MustacheStatement(mustache) {\n if (this.handledByOverride(mustache)) {\n return;\n }\n\n this.buffer += mustache.escaped ? '{{' : '{{{';\n\n if (mustache.strip.open) {\n this.buffer += '~';\n }\n\n this.Expression(mustache.path);\n this.Params(mustache.params);\n this.Hash(mustache.hash);\n\n if (mustache.strip.close) {\n this.buffer += '~';\n }\n\n this.buffer += mustache.escaped ? '}}' : '}}}';\n }\n }, {\n key: \"BlockStatement\",\n value: function BlockStatement(block) {\n if (this.handledByOverride(block)) {\n return;\n }\n\n if (block.chained) {\n this.buffer += block.inverseStrip.open ? '{{~' : '{{';\n this.buffer += 'else ';\n } else {\n this.buffer += block.openStrip.open ? '{{~#' : '{{#';\n }\n\n this.Expression(block.path);\n this.Params(block.params);\n this.Hash(block.hash);\n\n if (block.program.blockParams.length) {\n this.BlockParams(block.program.blockParams);\n }\n\n if (block.chained) {\n this.buffer += block.inverseStrip.close ? '~}}' : '}}';\n } else {\n this.buffer += block.openStrip.close ? '~}}' : '}}';\n }\n\n this.Block(block.program);\n\n if (block.inverse) {\n if (!block.inverse.chained) {\n this.buffer += block.inverseStrip.open ? '{{~' : '{{';\n this.buffer += 'else';\n this.buffer += block.inverseStrip.close ? '~}}' : '}}';\n }\n\n this.Block(block.inverse);\n }\n\n if (!block.chained) {\n this.buffer += block.closeStrip.open ? '{{~/' : '{{/';\n this.Expression(block.path);\n this.buffer += block.closeStrip.close ? '~}}' : '}}';\n }\n }\n }, {\n key: \"BlockParams\",\n value: function BlockParams(blockParams) {\n this.buffer += \" as |\".concat(blockParams.join(' '), \"|\");\n }\n }, {\n key: \"PartialStatement\",\n value: function PartialStatement(partial) {\n if (this.handledByOverride(partial)) {\n return;\n }\n\n this.buffer += '{{>';\n this.Expression(partial.name);\n this.Params(partial.params);\n this.Hash(partial.hash);\n this.buffer += '}}';\n }\n }, {\n key: \"ConcatStatement\",\n value: function ConcatStatement(concat) {\n var _this2 = this;\n\n if (this.handledByOverride(concat)) {\n return;\n }\n\n this.buffer += '\"';\n concat.parts.forEach(function (part) {\n if (part.type === 'TextNode') {\n _this2.TextNode(part, true);\n } else {\n _this2.Node(part);\n }\n });\n this.buffer += '\"';\n }\n }, {\n key: \"MustacheCommentStatement\",\n value: function MustacheCommentStatement(comment) {\n if (this.handledByOverride(comment)) {\n return;\n }\n\n this.buffer += \"{{!--\".concat(comment.value, \"--}}\");\n }\n }, {\n key: \"ElementModifierStatement\",\n value: function ElementModifierStatement(mod) {\n if (this.handledByOverride(mod)) {\n return;\n }\n\n this.buffer += '{{';\n this.Expression(mod.path);\n this.Params(mod.params);\n this.Hash(mod.hash);\n this.buffer += '}}';\n }\n }, {\n key: \"CommentStatement\",\n value: function CommentStatement(comment) {\n if (this.handledByOverride(comment)) {\n return;\n }\n\n this.buffer += \"\x3c!--\".concat(comment.value, \"--\x3e\");\n }\n }, {\n key: \"PathExpression\",\n value: function PathExpression(path) {\n if (this.handledByOverride(path)) {\n return;\n }\n\n this.buffer += path.original;\n }\n }, {\n key: \"SubExpression\",\n value: function SubExpression(sexp) {\n if (this.handledByOverride(sexp)) {\n return;\n }\n\n this.buffer += '(';\n this.Expression(sexp.path);\n this.Params(sexp.params);\n this.Hash(sexp.hash);\n this.buffer += ')';\n }\n }, {\n key: \"Params\",\n value: function Params(params) {\n var _this3 = this;\n\n // TODO: implement a top level Params AST node (just like the Hash object)\n // so that this can also be overridden\n if (params.length) {\n params.forEach(function (param) {\n _this3.buffer += ' ';\n\n _this3.Expression(param);\n });\n }\n }\n }, {\n key: \"Hash\",\n value: function Hash(hash) {\n var _this4 = this;\n\n if (this.handledByOverride(hash, true)) {\n return;\n }\n\n hash.pairs.forEach(function (pair) {\n _this4.buffer += ' ';\n\n _this4.HashPair(pair);\n });\n }\n }, {\n key: \"HashPair\",\n value: function HashPair(pair) {\n if (this.handledByOverride(pair)) {\n return;\n }\n\n this.buffer += pair.key;\n this.buffer += '=';\n this.Node(pair.value);\n }\n }, {\n key: \"StringLiteral\",\n value: function StringLiteral(str) {\n if (this.handledByOverride(str)) {\n return;\n }\n\n this.buffer += JSON.stringify(str.value);\n }\n }, {\n key: \"BooleanLiteral\",\n value: function BooleanLiteral(bool) {\n if (this.handledByOverride(bool)) {\n return;\n }\n\n this.buffer += bool.value;\n }\n }, {\n key: \"NumberLiteral\",\n value: function NumberLiteral(number) {\n if (this.handledByOverride(number)) {\n return;\n }\n\n this.buffer += number.value;\n }\n }, {\n key: \"UndefinedLiteral\",\n value: function UndefinedLiteral(node) {\n if (this.handledByOverride(node)) {\n return;\n }\n\n this.buffer += 'undefined';\n }\n }, {\n key: \"NullLiteral\",\n value: function NullLiteral(node) {\n if (this.handledByOverride(node)) {\n return;\n }\n\n this.buffer += 'null';\n }\n }, {\n key: \"print\",\n value: function print(node) {\n var options = this.options;\n\n if (options.override) {\n var result = options.override(node, options);\n\n if (result !== undefined) {\n return result;\n }\n }\n\n this.buffer = '';\n this.Node(node);\n return this.buffer;\n }\n }]);\n return Printer;\n}();\n\nexports.default = Printer;\n\n//# sourceURL=webpack:///./node_modules/@glimmer/syntax/dist/modules/es2017/lib/generation/printer.js?")},"./node_modules/@glimmer/syntax/dist/modules/es2017/lib/generation/util.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.escapeAttrValue = escapeAttrValue;\nexports.escapeText = escapeText;\nexports.sortByLoc = sortByLoc;\nvar ATTR_VALUE_REGEX_TEST = /[\\xA0\"&]/;\nvar ATTR_VALUE_REGEX_REPLACE = new RegExp(ATTR_VALUE_REGEX_TEST.source, 'g');\nvar TEXT_REGEX_TEST = /[\\xA0&<>]/;\nvar TEXT_REGEX_REPLACE = new RegExp(TEXT_REGEX_TEST.source, 'g');\n\nfunction attrValueReplacer(char) {\n switch (char.charCodeAt(0)) {\n case 160\n /* NBSP */\n :\n return '&nbsp;';\n\n case 34\n /* QUOT */\n :\n return '&quot;';\n\n case 38\n /* AMP */\n :\n return '&amp;';\n\n default:\n return char;\n }\n}\n\nfunction textReplacer(char) {\n switch (char.charCodeAt(0)) {\n case 160\n /* NBSP */\n :\n return '&nbsp;';\n\n case 38\n /* AMP */\n :\n return '&amp;';\n\n case 60\n /* LT */\n :\n return '&lt;';\n\n case 62\n /* GT */\n :\n return '&gt;';\n\n default:\n return char;\n }\n}\n\nfunction escapeAttrValue(attrValue) {\n if (ATTR_VALUE_REGEX_TEST.test(attrValue)) {\n return attrValue.replace(ATTR_VALUE_REGEX_REPLACE, attrValueReplacer);\n }\n\n return attrValue;\n}\n\nfunction escapeText(text) {\n if (TEXT_REGEX_TEST.test(text)) {\n return text.replace(TEXT_REGEX_REPLACE, textReplacer);\n }\n\n return text;\n}\n\nfunction sortByLoc(a, b) {\n // If either is invisible, don't try to order them\n if (a.loc.isInvisible || b.loc.isInvisible) {\n return 0;\n }\n\n if (a.loc.startPosition.line < b.loc.startPosition.line) {\n return -1;\n }\n\n if (a.loc.startPosition.line === b.loc.startPosition.line && a.loc.startPosition.column < b.loc.startPosition.column) {\n return -1;\n }\n\n if (a.loc.startPosition.line === b.loc.startPosition.line && a.loc.startPosition.column === b.loc.startPosition.column) {\n return 0;\n }\n\n return 1;\n}\n\n//# sourceURL=webpack:///./node_modules/@glimmer/syntax/dist/modules/es2017/lib/generation/util.js?")},"./node_modules/@glimmer/syntax/dist/modules/es2017/lib/get-template-locals.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nvar _interopRequireDefault = __webpack_require__(\"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getTemplateLocals = getTemplateLocals;\n\nvar _keywords = __webpack_require__(\"./node_modules/@glimmer/syntax/dist/modules/es2017/lib/keywords.js\");\n\nvar _tokenizerEventHandlers = __webpack_require__(\"./node_modules/@glimmer/syntax/dist/modules/es2017/lib/parser/tokenizer-event-handlers.js\");\n\nvar _traverse = _interopRequireDefault(__webpack_require__(\"./node_modules/@glimmer/syntax/dist/modules/es2017/lib/traversal/traverse.js\"));\n\n/**\n * Gets the correct Token from the Node based on it's type\n */\nfunction tokensFromType(node, scopedTokens, options) {\n if (node.type === 'PathExpression') {\n if (node.head.type === 'AtHead' || node.head.type === 'ThisHead') {\n return;\n }\n\n var possbleToken = node.head.name;\n\n if (scopedTokens.indexOf(possbleToken) === -1) {\n return possbleToken;\n }\n } else if (node.type === 'ElementNode') {\n var tag = node.tag;\n var char = tag.charAt(0);\n\n if (char === ':' || char === '@') {\n return;\n }\n\n if (!options.includeHtmlElements && tag.indexOf('.') === -1 && tag.toLowerCase() === tag) {\n return;\n }\n\n if (tag.substr(0, 5) === 'this.') {\n return;\n }\n\n if (scopedTokens.indexOf(tag) !== -1) {\n return;\n }\n\n return tag;\n }\n}\n/**\n * Adds tokens to the tokensSet based on their node.type\n */\n\n\nfunction addTokens(tokensSet, node, scopedTokens, options) {\n var maybeTokens = tokensFromType(node, scopedTokens, options);\n (Array.isArray(maybeTokens) ? maybeTokens : [maybeTokens]).forEach(function (maybeToken) {\n if (maybeToken !== undefined && maybeToken[0] !== '@') {\n tokensSet.add(maybeToken.split('.')[0]);\n }\n });\n}\n/**\n * Parses and traverses a given handlebars html template to extract all template locals\n * referenced that could possible come from the praent scope. Can exclude known keywords\n * optionally.\n */\n\n\nfunction getTemplateLocals(html) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n includeHtmlElements: false,\n includeKeywords: false\n };\n var ast = (0, _tokenizerEventHandlers.preprocess)(html);\n var tokensSet = new Set();\n var scopedTokens = [];\n (0, _traverse.default)(ast, {\n Block: {\n enter: function enter(_ref) {\n var blockParams = _ref.blockParams;\n blockParams.forEach(function (param) {\n scopedTokens.push(param);\n });\n },\n exit: function exit(_ref2) {\n var blockParams = _ref2.blockParams;\n blockParams.forEach(function () {\n scopedTokens.pop();\n });\n }\n },\n ElementNode: {\n enter: function enter(node) {\n node.blockParams.forEach(function (param) {\n scopedTokens.push(param);\n });\n addTokens(tokensSet, node, scopedTokens, options);\n },\n exit: function exit(_ref3) {\n var blockParams = _ref3.blockParams;\n blockParams.forEach(function () {\n scopedTokens.pop();\n });\n }\n },\n PathExpression: function PathExpression(node) {\n addTokens(tokensSet, node, scopedTokens, options);\n }\n });\n var tokens = [];\n tokensSet.forEach(function (s) {\n return tokens.push(s);\n });\n\n if (!(options === null || options === void 0 ? void 0 : options.includeKeywords)) {\n tokens = tokens.filter(function (token) {\n return !(0, _keywords.isKeyword)(token);\n });\n }\n\n return tokens;\n}\n\n//# sourceURL=webpack:///./node_modules/@glimmer/syntax/dist/modules/es2017/lib/get-template-locals.js?")},"./node_modules/@glimmer/syntax/dist/modules/es2017/lib/keywords.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.KEYWORDS_TYPES = void 0;\nexports.isKeyword = isKeyword;\n\nfunction isKeyword(word) {\n return word in KEYWORDS_TYPES;\n}\n/**\n * This includes the full list of keywords currently in use in the template\n * language, and where their valid usages are.\n */\n\n\nvar KEYWORDS_TYPES = {\n component: ['Call', 'Append', 'Block'],\n debugger: ['Append'],\n 'each-in': ['Block'],\n each: ['Block'],\n 'has-block-params': ['Call', 'Append'],\n 'has-block': ['Call', 'Append'],\n helper: ['Call', 'Append'],\n if: ['Call', 'Append', 'Block'],\n 'in-element': ['Block'],\n let: ['Block'],\n 'link-to': ['Append', 'Block'],\n log: ['Call', 'Append'],\n modifier: ['Call'],\n mount: ['Append'],\n mut: ['Call', 'Append'],\n outlet: ['Append'],\n 'query-params': ['Call'],\n readonly: ['Call', 'Append'],\n unbound: ['Call', 'Append'],\n unless: ['Call', 'Append', 'Block'],\n with: ['Block'],\n yield: ['Append']\n};\nexports.KEYWORDS_TYPES = KEYWORDS_TYPES;\n\n//# sourceURL=webpack:///./node_modules/@glimmer/syntax/dist/modules/es2017/lib/keywords.js?")},"./node_modules/@glimmer/syntax/dist/modules/es2017/lib/parser.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nvar _interopRequireDefault = __webpack_require__("./node_modules/@babel/runtime/helpers/interopRequireDefault.js");\n\nObject.defineProperty(exports, "__esModule", {\n value: true\n});\nexports.Parser = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__("./node_modules/@babel/runtime/helpers/classCallCheck.js"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__("./node_modules/@babel/runtime/helpers/createClass.js"));\n\nvar _util = __webpack_require__("./node_modules/@glimmer/util/dist/modules/es2017/index.js");\n\nvar _simpleHtmlTokenizer = __webpack_require__("./node_modules/simple-html-tokenizer/dist/es6/index.js");\n\nvar Parser = /*#__PURE__*/function () {\n function Parser(source) {\n var entityParser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _simpleHtmlTokenizer.EntityParser(_simpleHtmlTokenizer.HTML5NamedCharRefs);\n var mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \'precompile\';\n (0, _classCallCheck2.default)(this, Parser);\n this.elementStack = [];\n this.currentAttribute = null;\n this.currentNode = null;\n this.source = source;\n this.lines = source.source.split(/(?:\\r\\n?|\\n)/g);\n this.tokenizer = new _simpleHtmlTokenizer.EventedTokenizer(this, entityParser, mode);\n }\n\n (0, _createClass2.default)(Parser, [{\n key: "offset",\n value: function offset() {\n var _this$tokenizer = this.tokenizer,\n line = _this$tokenizer.line,\n column = _this$tokenizer.column;\n return this.source.offsetFor(line, column);\n }\n }, {\n key: "pos",\n value: function pos(_ref) {\n var line = _ref.line,\n column = _ref.column;\n return this.source.offsetFor(line, column);\n }\n }, {\n key: "finish",\n value: function finish(node) {\n return (0, _util.assign)({}, node, {\n loc: node.loc.until(this.offset())\n }); // node.loc = node.loc.withEnd(end);\n }\n }, {\n key: "currentAttr",\n get: function get() {\n return this.currentAttribute;\n }\n }, {\n key: "currentTag",\n get: function get() {\n var node = this.currentNode;\n false && false;\n return node;\n }\n }, {\n key: "currentStartTag",\n get: function get() {\n var node = this.currentNode;\n false && false;\n return node;\n }\n }, {\n key: "currentEndTag",\n get: function get() {\n var node = this.currentNode;\n false && false;\n return node;\n }\n }, {\n key: "currentComment",\n get: function get() {\n var node = this.currentNode;\n false && false;\n return node;\n }\n }, {\n key: "currentData",\n get: function get() {\n var node = this.currentNode;\n false && false;\n return node;\n }\n }, {\n key: "acceptTemplate",\n value: function acceptTemplate(node) {\n return this[node.type](node);\n }\n }, {\n key: "acceptNode",\n value: function acceptNode(node) {\n return this[node.type](node);\n }\n }, {\n key: "currentElement",\n value: function currentElement() {\n return this.elementStack[this.elementStack.length - 1];\n }\n }, {\n key: "sourceForNode",\n value: function sourceForNode(node, endNode) {\n var firstLine = node.loc.start.line - 1;\n var currentLine = firstLine - 1;\n var firstColumn = node.loc.start.column;\n var string = [];\n var line;\n var lastLine;\n var lastColumn;\n\n if (endNode) {\n lastLine = endNode.loc.end.line - 1;\n lastColumn = endNode.loc.end.column;\n } else {\n lastLine = node.loc.end.line - 1;\n lastColumn = node.loc.end.column;\n }\n\n while (currentLine < lastLine) {\n currentLine++;\n line = this.lines[currentLine];\n\n if (currentLine === firstLine) {\n if (firstLine === lastLine) {\n string.push(line.slice(firstColumn, lastColumn));\n } else {\n string.push(line.slice(firstColumn));\n }\n } else if (currentLine === lastLine) {\n string.push(line.slice(0, lastColumn));\n } else {\n string.push(line);\n }\n }\n\n return string.join(\'\\n\');\n }\n }]);\n return Parser;\n}();\n\nexports.Parser = Parser;\n\n//# sourceURL=webpack:///./node_modules/@glimmer/syntax/dist/modules/es2017/lib/parser.js?')},"./node_modules/@glimmer/syntax/dist/modules/es2017/lib/parser/handlebars-node-visitors.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nvar _interopRequireDefault = __webpack_require__("./node_modules/@babel/runtime/helpers/interopRequireDefault.js");\n\nObject.defineProperty(exports, "__esModule", {\n value: true\n});\nexports.HandlebarsNodeVisitors = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__("./node_modules/@babel/runtime/helpers/classCallCheck.js"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__("./node_modules/@babel/runtime/helpers/createClass.js"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__("./node_modules/@babel/runtime/helpers/inherits.js"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__("./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(__webpack_require__("./node_modules/@babel/runtime/helpers/getPrototypeOf.js"));\n\nvar _parser = __webpack_require__("./node_modules/@glimmer/syntax/dist/modules/es2017/lib/parser.js");\n\nvar _location = __webpack_require__("./node_modules/@glimmer/syntax/dist/modules/es2017/lib/source/location.js");\n\nvar _syntaxError = __webpack_require__("./node_modules/@glimmer/syntax/dist/modules/es2017/lib/syntax-error.js");\n\nvar _utils = __webpack_require__("./node_modules/@glimmer/syntax/dist/modules/es2017/lib/utils.js");\n\nvar _legacyInterop = __webpack_require__("./node_modules/@glimmer/syntax/dist/modules/es2017/lib/v1/legacy-interop.js");\n\nvar _parserBuilders = _interopRequireDefault(__webpack_require__("./node_modules/@glimmer/syntax/dist/modules/es2017/lib/v1/parser-builders.js"));\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nvar HandlebarsNodeVisitors = /*#__PURE__*/function (_Parser) {\n (0, _inherits2.default)(HandlebarsNodeVisitors, _Parser);\n\n var _super = _createSuper(HandlebarsNodeVisitors);\n\n function HandlebarsNodeVisitors() {\n (0, _classCallCheck2.default)(this, HandlebarsNodeVisitors);\n return _super.apply(this, arguments);\n }\n\n (0, _createClass2.default)(HandlebarsNodeVisitors, [{\n key: "isTopLevel",\n get: function get() {\n return this.elementStack.length === 0;\n }\n }, {\n key: "Program",\n value: function Program(program) {\n var body = [];\n var node;\n\n if (this.isTopLevel) {\n node = _parserBuilders.default.template({\n body: body,\n blockParams: program.blockParams,\n loc: this.source.spanFor(program.loc)\n });\n } else {\n node = _parserBuilders.default.blockItself({\n body: body,\n blockParams: program.blockParams,\n chained: program.chained,\n loc: this.source.spanFor(program.loc)\n });\n }\n\n var i,\n l = program.body.length;\n this.elementStack.push(node);\n\n if (l === 0) {\n return this.elementStack.pop();\n }\n\n for (i = 0; i < l; i++) {\n this.acceptNode(program.body[i]);\n } // Ensure that that the element stack is balanced properly.\n\n\n var poppedNode = this.elementStack.pop();\n\n if (poppedNode !== node) {\n var elementNode = poppedNode;\n throw (0, _syntaxError.generateSyntaxError)("Unclosed element `".concat(elementNode.tag, "`"), elementNode.loc);\n }\n\n return node;\n }\n }, {\n key: "BlockStatement",\n value: function BlockStatement(block) {\n if (this.tokenizer.state === "comment"\n /* comment */\n ) {\n this.appendToCommentData(this.sourceForNode(block));\n return;\n }\n\n if (this.tokenizer.state !== "data"\n /* data */\n && this.tokenizer.state !== "beforeData"\n /* beforeData */\n ) {\n throw (0, _syntaxError.generateSyntaxError)(\'A block may only be used inside an HTML element or another block.\', this.source.spanFor(block.loc));\n }\n\n var _acceptCallNodes = acceptCallNodes(this, block),\n path = _acceptCallNodes.path,\n params = _acceptCallNodes.params,\n hash = _acceptCallNodes.hash; // These are bugs in Handlebars upstream\n\n\n if (!block.program.loc) {\n block.program.loc = _location.NON_EXISTENT_LOCATION;\n }\n\n if (block.inverse && !block.inverse.loc) {\n block.inverse.loc = _location.NON_EXISTENT_LOCATION;\n }\n\n var program = this.Program(block.program);\n var inverse = block.inverse ? this.Program(block.inverse) : null;\n\n var node = _parserBuilders.default.block({\n path: path,\n params: params,\n hash: hash,\n defaultBlock: program,\n elseBlock: inverse,\n loc: this.source.spanFor(block.loc),\n openStrip: block.openStrip,\n inverseStrip: block.inverseStrip,\n closeStrip: block.closeStrip\n });\n\n var parentProgram = this.currentElement();\n (0, _utils.appendChild)(parentProgram, node);\n }\n }, {\n key: "MustacheStatement",\n value: function MustacheStatement(rawMustache) {\n var tokenizer = this.tokenizer;\n\n if (tokenizer.state === \'comment\') {\n this.appendToCommentData(this.sourceForNode(rawMustache));\n return;\n }\n\n var mustache;\n var escaped = rawMustache.escaped,\n loc = rawMustache.loc,\n strip = rawMustache.strip;\n\n if ((0, _utils.isHBSLiteral)(rawMustache.path)) {\n mustache = _parserBuilders.default.mustache({\n path: this.acceptNode(rawMustache.path),\n params: [],\n hash: _parserBuilders.default.hash([], this.source.spanFor(rawMustache.path.loc).collapse(\'end\')),\n trusting: !escaped,\n loc: this.source.spanFor(loc),\n strip: strip\n });\n } else {\n var _acceptCallNodes2 = acceptCallNodes(this, rawMustache),\n path = _acceptCallNodes2.path,\n params = _acceptCallNodes2.params,\n hash = _acceptCallNodes2.hash;\n\n mustache = _parserBuilders.default.mustache({\n path: path,\n params: params,\n hash: hash,\n trusting: !escaped,\n loc: this.source.spanFor(loc),\n strip: strip\n });\n }\n\n switch (tokenizer.state) {\n // Tag helpers\n case "tagOpen"\n /* tagOpen */\n :\n case "tagName"\n /* tagName */\n :\n throw (0, _syntaxError.generateSyntaxError)("Cannot use mustaches in an elements tagname", mustache.loc);\n\n case "beforeAttributeName"\n /* beforeAttributeName */\n :\n addElementModifier(this.currentStartTag, mustache);\n break;\n\n case "attributeName"\n /* attributeName */\n :\n case "afterAttributeName"\n /* afterAttributeName */\n :\n this.beginAttributeValue(false);\n this.finishAttributeValue();\n addElementModifier(this.currentStartTag, mustache);\n tokenizer.transitionTo("beforeAttributeName"\n /* beforeAttributeName */\n );\n break;\n\n case "afterAttributeValueQuoted"\n /* afterAttributeValueQuoted */\n :\n addElementModifier(this.currentStartTag, mustache);\n tokenizer.transitionTo("beforeAttributeName"\n /* beforeAttributeName */\n );\n break;\n // Attribute values\n\n case "beforeAttributeValue"\n /* beforeAttributeValue */\n :\n this.beginAttributeValue(false);\n this.appendDynamicAttributeValuePart(mustache);\n tokenizer.transitionTo("attributeValueUnquoted"\n /* attributeValueUnquoted */\n );\n break;\n\n case "attributeValueDoubleQuoted"\n /* attributeValueDoubleQuoted */\n :\n case "attributeValueSingleQuoted"\n /* attributeValueSingleQuoted */\n :\n case "attributeValueUnquoted"\n /* attributeValueUnquoted */\n :\n this.appendDynamicAttributeValuePart(mustache);\n break;\n // TODO: Only append child when the tokenizer state makes\n // sense to do so, otherwise throw an error.\n\n default:\n (0, _utils.appendChild)(this.currentElement(), mus