astexplorer.app
Version:
https://astexplorer.net with ES Modules support and Hot Reloading
1 lines • 3.2 MB
JavaScript
(window.webpackJsonp=window.webpackJsonp||[]).push([[16,20,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/compiler/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\nObject.defineProperty(exports, "__esModule", {\n value: true\n});\nObject.defineProperty(exports, "NEWLINE", {\n enumerable: true,\n get: function get() {\n return _builder.NEWLINE;\n }\n});\nObject.defineProperty(exports, "ProgramSymbols", {\n enumerable: true,\n get: function get() {\n return _builder.ProgramSymbols;\n }\n});\nObject.defineProperty(exports, "WireFormatDebugger", {\n enumerable: true,\n get: function get() {\n return _wireFormatDebug.default;\n }\n});\nObject.defineProperty(exports, "buildStatement", {\n enumerable: true,\n get: function get() {\n return _builder.buildStatement;\n }\n});\nObject.defineProperty(exports, "buildStatements", {\n enumerable: true,\n get: function get() {\n return _builder.buildStatements;\n }\n});\nObject.defineProperty(exports, "c", {\n enumerable: true,\n get: function get() {\n return _builder.c;\n }\n});\nObject.defineProperty(exports, "defaultId", {\n enumerable: true,\n get: function get() {\n return _compiler.defaultId;\n }\n});\nObject.defineProperty(exports, "precompile", {\n enumerable: true,\n get: function get() {\n return _compiler.precompile;\n }\n});\nObject.defineProperty(exports, "precompileJSON", {\n enumerable: true,\n get: function get() {\n return _compiler.precompileJSON;\n }\n});\nObject.defineProperty(exports, "s", {\n enumerable: true,\n get: function get() {\n return _builder.s;\n }\n});\nObject.defineProperty(exports, "unicode", {\n enumerable: true,\n get: function get() {\n return _builder.unicode;\n }\n});\n\nvar _compiler = __webpack_require__("./node_modules/@glimmer/compiler/dist/modules/es2017/lib/compiler.js");\n\nvar _builder = __webpack_require__("./node_modules/@glimmer/compiler/dist/modules/es2017/lib/builder/builder.js");\n\nvar _wireFormatDebug = _interopRequireDefault(__webpack_require__("./node_modules/@glimmer/compiler/dist/modules/es2017/lib/wire-format-debug.js"));\n\n//# sourceURL=webpack:///./node_modules/@glimmer/compiler/dist/modules/es2017/index.js?')},"./node_modules/@glimmer/compiler/dist/modules/es2017/lib sync recursive":function(module,exports){eval('function webpackEmptyContext(req) {\n\tvar e = new Error("Cannot find module \'" + req + "\'");\n\te.code = \'MODULE_NOT_FOUND\';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = "./node_modules/@glimmer/compiler/dist/modules/es2017/lib sync recursive";\n\n//# sourceURL=webpack:///./node_modules/@glimmer/compiler/dist/modules/es2017/lib_sync?')},"./node_modules/@glimmer/compiler/dist/modules/es2017/lib/builder/builder-interface.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.VariableKind = void 0;\nexports.entries = entries;\nexports.extractAngleInvocation = extractAngleInvocation;\nexports.extractElement = extractElement;\nexports.isAngleInvocation = isAngleInvocation;\nexports.isBlock = isBlock;\nexports.isBuilderCallExpression = isBuilderCallExpression;\nexports.isBuilderExpression = isBuilderExpression;\nexports.isElement = isElement;\nexports.isLiteral = isLiteral;\nexports.normalizeAppendExpression = normalizeAppendExpression;\nexports.normalizeAppendHead = normalizeAppendHead;\nexports.normalizeBuilderBlockStatement = normalizeBuilderBlockStatement;\nexports.normalizeCallExpression = normalizeCallExpression;\nexports.normalizeExpression = normalizeExpression;\nexports.normalizeHash = normalizeHash;\nexports.normalizeParams = normalizeParams;\nexports.normalizePathHead = normalizePathHead;\nexports.normalizeStatement = normalizeStatement;\nexports.normalizeSugaryArrayStatement = normalizeSugaryArrayStatement;\nexports.statementIsExpression = statementIsExpression;\n\nvar _typeof2 = _interopRequireDefault(__webpack_require__("./node_modules/@babel/runtime/helpers/typeof.js"));\n\nvar _toArray2 = _interopRequireDefault(__webpack_require__("./node_modules/@babel/runtime/helpers/toArray.js"));\n\nvar _util = __webpack_require__("./node_modules/@glimmer/util/dist/modules/es2017/index.js");\n\nvar VariableKind;\nexports.VariableKind = VariableKind;\n\n(function (VariableKind) {\n VariableKind["Local"] = "Local";\n VariableKind["Free"] = "Free";\n VariableKind["Arg"] = "Arg";\n VariableKind["Block"] = "Block";\n VariableKind["This"] = "This";\n})(VariableKind || (exports.VariableKind = VariableKind = {}));\n\nfunction normalizeStatement(statement) {\n if (Array.isArray(statement)) {\n if (statementIsExpression(statement)) {\n return normalizeAppendExpression(statement);\n } else if (isSugaryArrayStatement(statement)) {\n return normalizeSugaryArrayStatement(statement);\n } else {\n return normalizeVerboseStatement(statement);\n }\n } else if (typeof statement === \'string\') {\n return normalizeAppendHead(normalizeDottedPath(statement), false);\n } else {\n throw (0, _util.assertNever)(statement);\n }\n}\n\nfunction normalizeAppendHead(head, trusted) {\n if (head.type === "GetPath"\n /* GetPath */\n ) {\n return {\n kind: "AppendPath"\n /* AppendPath */\n ,\n path: head,\n trusted: trusted\n };\n } else {\n return {\n kind: "AppendExpr"\n /* AppendExpr */\n ,\n expr: head,\n trusted: trusted\n };\n }\n}\n\nfunction isSugaryArrayStatement(statement) {\n if (Array.isArray(statement) && typeof statement[0] === \'string\') {\n switch (statement[0][0]) {\n case \'(\':\n case \'#\':\n case \'<\':\n case \'!\':\n return true;\n\n default:\n return false;\n }\n }\n\n return false;\n}\n\nfunction normalizeSugaryArrayStatement(statement) {\n var name = statement[0];\n\n switch (name[0]) {\n case \'(\':\n {\n var params = null;\n var hash = null;\n\n if (statement.length === 3) {\n params = normalizeParams(statement[1]);\n hash = normalizeHash(statement[2]);\n } else if (statement.length === 2) {\n if (Array.isArray(statement[1])) {\n params = normalizeParams(statement[1]);\n } else {\n hash = normalizeHash(statement[1]);\n }\n }\n\n return {\n kind: "Call"\n /* Call */\n ,\n head: normalizeCallHead(name),\n params: params,\n hash: hash,\n trusted: false\n };\n }\n\n case \'#\':\n {\n var _normalizeBuilderBloc = normalizeBuilderBlockStatement(statement),\n path = _normalizeBuilderBloc.head,\n _params = _normalizeBuilderBloc.params,\n _hash = _normalizeBuilderBloc.hash,\n blocks = _normalizeBuilderBloc.blocks,\n blockParams = _normalizeBuilderBloc.blockParams;\n\n return {\n kind: "Block"\n /* Block */\n ,\n head: path,\n params: _params,\n hash: _hash,\n blocks: blocks,\n blockParams: blockParams\n };\n }\n\n case \'!\':\n {\n var _name = statement[0].slice(1);\n\n var _normalizeBuilderBloc2 = normalizeBuilderBlockStatement(statement),\n _params2 = _normalizeBuilderBloc2.params,\n _hash2 = _normalizeBuilderBloc2.hash,\n _blocks = _normalizeBuilderBloc2.blocks,\n _blockParams = _normalizeBuilderBloc2.blockParams;\n\n return {\n kind: "Keyword"\n /* Keyword */\n ,\n name: _name,\n params: _params2,\n hash: _hash2,\n blocks: _blocks,\n blockParams: _blockParams\n };\n }\n\n case \'<\':\n {\n var attrs = (0, _util.dict)();\n var block = [];\n\n if (statement.length === 3) {\n attrs = normalizeAttrs(statement[1]);\n block = normalizeBlock(statement[2]);\n } else if (statement.length === 2) {\n if (Array.isArray(statement[1])) {\n block = normalizeBlock(statement[1]);\n } else {\n attrs = normalizeAttrs(statement[1]);\n }\n }\n\n return {\n kind: "Element"\n /* Element */\n ,\n name: extractElement(name),\n attrs: attrs,\n block: block\n };\n }\n\n default:\n throw new Error("Unreachable ".concat(JSON.stringify(statement), " in normalizeSugaryArrayStatement"));\n }\n}\n\nfunction normalizeVerboseStatement(statement) {\n switch (statement[0]) {\n case 0\n /* Literal */\n :\n {\n return {\n kind: "Literal"\n /* Literal */\n ,\n value: statement[1]\n };\n }\n\n case 2\n /* Append */\n :\n {\n return normalizeAppendExpression(statement[1], statement[2]);\n }\n\n case 3\n /* Modifier */\n :\n {\n return {\n kind: "Modifier"\n /* Modifier */\n ,\n params: normalizeParams(statement[1]),\n hash: normalizeHash(statement[2])\n };\n }\n\n case 4\n /* DynamicComponent */\n :\n {\n return {\n kind: "DynamicComponent"\n /* DynamicComponent */\n ,\n expr: normalizeExpression(statement[1]),\n hash: normalizeHash(statement[2]),\n block: normalizeBlock(statement[3])\n };\n }\n\n case 1\n /* Comment */\n :\n {\n return {\n kind: "Comment"\n /* Comment */\n ,\n value: statement[1]\n };\n }\n }\n}\n\nfunction extractBlockHead(name) {\n var result = /^(#|!)(.*)$/.exec(name);\n\n if (result === null) {\n throw new Error("Unexpected missing # in block head");\n }\n\n return normalizeDottedPath(result[2]);\n}\n\nfunction normalizeCallHead(name) {\n var result = /^\\((.*)\\)$/.exec(name);\n\n if (result === null) {\n throw new Error("Unexpected missing () in call head");\n }\n\n return normalizeDottedPath(result[1]);\n}\n\nfunction normalizePath(head) {\n var tail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var pathHead = normalizePathHead(head);\n\n if ((0, _util.isPresent)(tail)) {\n return {\n type: "GetPath"\n /* GetPath */\n ,\n path: {\n head: pathHead,\n tail: tail\n }\n };\n } else {\n return {\n type: "GetVar"\n /* GetVar */\n ,\n variable: pathHead\n };\n }\n}\n\nfunction normalizeDottedPath(whole) {\n var _normalizePathHead = normalizePathHead(whole),\n kind = _normalizePathHead.kind,\n rest = _normalizePathHead.name;\n\n var _rest$split = rest.split(\'.\'),\n _rest$split2 = (0, _toArray2.default)(_rest$split),\n name = _rest$split2[0],\n tail = _rest$split2.slice(1);\n\n var variable = {\n kind: kind,\n name: name,\n mode: \'loose\'\n };\n\n if ((0, _util.isPresent)(tail)) {\n return {\n type: "GetPath"\n /* GetPath */\n ,\n path: {\n head: variable,\n tail: tail\n }\n };\n } else {\n return {\n type: "GetVar"\n /* GetVar */\n ,\n variable: variable\n };\n }\n}\n\nfunction normalizePathHead(whole) {\n var kind;\n var name;\n\n if (/^this(\\.|$)/.exec(whole)) {\n return {\n kind: VariableKind.This,\n name: whole,\n mode: \'loose\'\n };\n }\n\n switch (whole[0]) {\n case \'^\':\n kind = VariableKind.Free;\n name = whole.slice(1);\n break;\n\n case \'@\':\n kind = VariableKind.Arg;\n name = whole.slice(1);\n break;\n\n case \'&\':\n kind = VariableKind.Block;\n name = whole.slice(1);\n break;\n\n default:\n kind = VariableKind.Local;\n name = whole;\n }\n\n return {\n kind: kind,\n name: name,\n mode: \'loose\'\n };\n}\n\nfunction normalizeBuilderBlockStatement(statement) {\n var head = statement[0];\n var blocks = (0, _util.dict)();\n var params = null;\n var hash = null;\n var blockParams = null;\n\n if (statement.length === 2) {\n blocks = normalizeBlocks(statement[1]);\n } else if (statement.length === 3) {\n if (Array.isArray(statement[1])) {\n params = normalizeParams(statement[1]);\n } else {\n var _normalizeBlockHash = normalizeBlockHash(statement[1]);\n\n hash = _normalizeBlockHash.hash;\n blockParams = _normalizeBlockHash.blockParams;\n }\n\n blocks = normalizeBlocks(statement[2]);\n } else if (statement.length === 4) {\n params = normalizeParams(statement[1]);\n\n var _normalizeBlockHash2 = normalizeBlockHash(statement[2]);\n\n hash = _normalizeBlockHash2.hash;\n blockParams = _normalizeBlockHash2.blockParams;\n blocks = normalizeBlocks(statement[3]);\n }\n\n return {\n head: extractBlockHead(head),\n params: params,\n hash: hash,\n blockParams: blockParams,\n blocks: blocks\n };\n}\n\nfunction normalizeBlockHash(hash) {\n if (hash === null) {\n return {\n hash: null,\n blockParams: null\n };\n }\n\n var out = null;\n var blockParams = null;\n entries(hash, function (key, value) {\n if (key === \'as\') {\n blockParams = Array.isArray(value) ? value : [value];\n } else {\n out = out || (0, _util.dict)();\n out[key] = normalizeExpression(value);\n }\n });\n return {\n hash: out,\n blockParams: blockParams\n };\n}\n\nfunction entries(dict, callback) {\n Object.keys(dict).forEach(function (key) {\n var value = dict[key];\n callback(key, value);\n });\n}\n\nfunction normalizeBlocks(value) {\n if (Array.isArray(value)) {\n return {\n default: normalizeBlock(value)\n };\n } else {\n return mapObject(value, normalizeBlock);\n }\n}\n\nfunction normalizeBlock(block) {\n return block.map(function (s) {\n return normalizeStatement(s);\n });\n}\n\nfunction normalizeAttrs(attrs) {\n return mapObject(attrs, function (a) {\n return normalizeAttr(a).expr;\n });\n}\n\nfunction normalizeAttr(attr) {\n if (attr === \'splat\') {\n return {\n expr: "Splat"\n /* Splat */\n ,\n trusted: false\n };\n } else {\n var expr = normalizeExpression(attr);\n return {\n expr: expr,\n trusted: false\n };\n }\n}\n\nfunction mapObject(object, callback) {\n var out = (0, _util.dict)();\n Object.keys(object).forEach(function (k) {\n out[k] = callback(object[k], k);\n });\n return out;\n}\n\nfunction isElement(input) {\n var match = /^<([a-z0-9\\-][a-zA-Z0-9\\-]*)>$/.exec(input[0]);\n return !!match && !!match[1];\n}\n\nfunction extractElement(input) {\n var match = /^<([a-z0-9\\-][a-zA-Z0-9\\-]*)>$/.exec(input);\n return match ? match[1] : null;\n}\n\nfunction extractAngleInvocation(input) {\n var match = /^<(@[a-zA-Z0-9]*|[A-Z][a-zA-Z0-9\\-]*)>$/.exec(input[0]);\n return match ? match[1] : null;\n}\n\nfunction isAngleInvocation(input) {\n // TODO Paths\n var match = /^<(@[a-zA-Z0-9]*|[A-Z][a-zA-Z0-9\\-]*)>$/.exec(input[0]);\n return !!match && !!match[1];\n}\n\nfunction isBlock(input) {\n // TODO Paths\n var match = /^#[^]?([a-zA-Z0-9]*|[A-Z][a-zA-Z0-9\\-]*)$/.exec(input[0]);\n return !!match && !!match[1];\n}\n\nfunction normalizeAppendExpression(expression) {\n var forceTrusted = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (expression === null || expression === undefined) {\n return {\n expr: {\n type: "Literal"\n /* Literal */\n ,\n value: expression\n },\n kind: "AppendExpr"\n /* AppendExpr */\n ,\n trusted: false\n };\n } else if (Array.isArray(expression)) {\n switch (expression[0]) {\n case 0\n /* Literal */\n :\n return {\n expr: {\n type: "Literal"\n /* Literal */\n ,\n value: expression[1]\n },\n kind: "AppendExpr"\n /* AppendExpr */\n ,\n trusted: false\n };\n\n case 5\n /* Get */\n :\n {\n return normalizeAppendHead(normalizePath(expression[1], expression[2]), forceTrusted);\n }\n\n case 6\n /* Concat */\n :\n {\n var expr = {\n type: "Concat"\n /* Concat */\n ,\n params: normalizeParams(expression.slice(1))\n };\n return {\n expr: expr,\n kind: "AppendExpr"\n /* AppendExpr */\n ,\n trusted: forceTrusted\n };\n }\n\n case 7\n /* HasBlock */\n :\n return {\n expr: {\n type: "HasBlock"\n /* HasBlock */\n ,\n name: expression[1]\n },\n kind: "AppendExpr"\n /* AppendExpr */\n ,\n trusted: forceTrusted\n };\n\n case 8\n /* HasBlockParams */\n :\n return {\n expr: {\n type: "HasBlockParams"\n /* HasBlockParams */\n ,\n name: expression[1]\n },\n kind: "AppendExpr"\n /* AppendExpr */\n ,\n trusted: forceTrusted\n };\n\n default:\n {\n if (isBuilderCallExpression(expression)) {\n return {\n expr: normalizeCallExpression(expression),\n kind: "AppendExpr"\n /* AppendExpr */\n ,\n trusted: forceTrusted\n };\n } else {\n throw new Error("Unexpected array in expression position (wasn\'t a tuple expression and ".concat(expression[0], " isn\'t wrapped in parens, so it isn\'t a call): ").concat(JSON.stringify(expression)));\n }\n }\n // BuilderCallExpression\n }\n } else if ((0, _typeof2.default)(expression) !== \'object\') {\n switch ((0, _typeof2.default)(expression)) {\n case \'string\':\n {\n return normalizeAppendHead(normalizeDottedPath(expression), forceTrusted);\n }\n\n case \'boolean\':\n case \'number\':\n return {\n expr: {\n type: "Literal"\n /* Literal */\n ,\n value: expression\n },\n kind: "AppendExpr"\n /* AppendExpr */\n ,\n trusted: true\n };\n\n default:\n throw (0, _util.assertNever)(expression);\n }\n } else {\n throw (0, _util.assertNever)(expression);\n }\n}\n\nfunction normalizeExpression(expression) {\n if (expression === null || expression === undefined) {\n return {\n type: "Literal"\n /* Literal */\n ,\n value: expression\n };\n } else if (Array.isArray(expression)) {\n switch (expression[0]) {\n case 0\n /* Literal */\n :\n return {\n type: "Literal"\n /* Literal */\n ,\n value: expression[1]\n };\n\n case 5\n /* Get */\n :\n {\n return normalizePath(expression[1], expression[2]);\n }\n\n case 6\n /* Concat */\n :\n {\n var expr = {\n type: "Concat"\n /* Concat */\n ,\n params: normalizeParams(expression.slice(1))\n };\n return expr;\n }\n\n case 7\n /* HasBlock */\n :\n return {\n type: "HasBlock"\n /* HasBlock */\n ,\n name: expression[1]\n };\n\n case 8\n /* HasBlockParams */\n :\n return {\n type: "HasBlockParams"\n /* HasBlockParams */\n ,\n name: expression[1]\n };\n\n default:\n {\n if (isBuilderCallExpression(expression)) {\n return normalizeCallExpression(expression);\n } else {\n throw new Error("Unexpected array in expression position (wasn\'t a tuple expression and ".concat(expression[0], " isn\'t wrapped in parens, so it isn\'t a call): ").concat(JSON.stringify(expression)));\n }\n }\n // BuilderCallExpression\n }\n } else if ((0, _typeof2.default)(expression) !== \'object\') {\n switch ((0, _typeof2.default)(expression)) {\n case \'string\':\n {\n return normalizeDottedPath(expression);\n }\n\n case \'boolean\':\n case \'number\':\n return {\n type: "Literal"\n /* Literal */\n ,\n value: expression\n };\n\n default:\n throw (0, _util.assertNever)(expression);\n }\n } else {\n throw (0, _util.assertNever)(expression);\n }\n}\n\nfunction isBuilderExpression(expr) {\n return Array.isArray(expr);\n}\n\nfunction isLiteral(expr) {\n return Array.isArray(expr) && expr[0] === \'literal\';\n}\n\nfunction statementIsExpression(statement) {\n if (!Array.isArray(statement)) {\n return false;\n }\n\n var name = statement[0];\n\n if (typeof name === \'number\') {\n switch (name) {\n case 0\n /* Literal */\n :\n case 5\n /* Get */\n :\n case 6\n /* Concat */\n :\n case 7\n /* HasBlock */\n :\n case 8\n /* HasBlockParams */\n :\n return true;\n\n default:\n return false;\n }\n }\n\n if (name[0] === \'(\') {\n return true;\n }\n\n return false;\n}\n\nfunction isBuilderCallExpression(value) {\n return typeof value[0] === \'string\' && value[0][0] === \'(\';\n}\n\nfunction normalizeParams(input) {\n return input.map(normalizeExpression);\n}\n\nfunction normalizeHash(input) {\n if (input === null) return null;\n return mapObject(input, normalizeExpression);\n}\n\nfunction normalizeCallExpression(expr) {\n switch (expr.length) {\n case 1:\n return {\n type: "Call"\n /* Call */\n ,\n head: normalizeCallHead(expr[0]),\n params: null,\n hash: null\n };\n\n case 2:\n {\n if (Array.isArray(expr[1])) {\n return {\n type: "Call"\n /* Call */\n ,\n head: normalizeCallHead(expr[0]),\n params: normalizeParams(expr[1]),\n hash: null\n };\n } else {\n return {\n type: "Call"\n /* Call */\n ,\n head: normalizeCallHead(expr[0]),\n params: null,\n hash: normalizeHash(expr[1])\n };\n }\n }\n\n case 3:\n return {\n type: "Call"\n /* Call */\n ,\n head: normalizeCallHead(expr[0]),\n params: normalizeParams(expr[1]),\n hash: normalizeHash(expr[2])\n };\n }\n}\n\n//# sourceURL=webpack:///./node_modules/@glimmer/compiler/dist/modules/es2017/lib/builder/builder-interface.js?')},"./node_modules/@glimmer/compiler/dist/modules/es2017/lib/builder/builder.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.ProgramSymbols = exports.NEWLINE = void 0;\nexports.buildAngleInvocation = buildAngleInvocation;\nexports.buildAttributeValue = buildAttributeValue;\nexports.buildBlocks = buildBlocks;\nexports.buildCallHead = buildCallHead;\nexports.buildConcat = buildConcat;\nexports.buildElementParams = buildElementParams;\nexports.buildExpression = buildExpression;\nexports.buildGetPath = buildGetPath;\nexports.buildHash = buildHash;\nexports.buildNormalizedStatements = buildNormalizedStatements;\nexports.buildParams = buildParams;\nexports.buildStatement = buildStatement;\nexports.buildStatements = buildStatements;\nexports.buildVar = buildVar;\nexports.c = c;\nexports.expressionContextOp = expressionContextOp;\nexports.extractNamespace = extractNamespace;\nexports.s = s;\nexports.unicode = unicode;\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/util/dist/modules/es2017/index.js");\n\nvar _builderInterface = __webpack_require__("./node_modules/@glimmer/compiler/dist/modules/es2017/lib/builder/builder-interface.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 ProgramSymbols = /*#__PURE__*/function () {\n function ProgramSymbols() {\n (0, _classCallCheck2.default)(this, ProgramSymbols);\n this._freeVariables = [];\n this._symbols = [\'this\'];\n this.top = this;\n }\n\n (0, _createClass2.default)(ProgramSymbols, [{\n key: "toSymbols",\n value: function toSymbols() {\n return this._symbols.slice(1);\n }\n }, {\n key: "toUpvars",\n value: function toUpvars() {\n return this._freeVariables;\n }\n }, {\n key: "freeVar",\n value: function freeVar(name) {\n return addString(this._freeVariables, name);\n }\n }, {\n key: "block",\n value: function block(name) {\n return this.symbol(name);\n }\n }, {\n key: "arg",\n value: function arg(name) {\n return addString(this._symbols, name);\n }\n }, {\n key: "local",\n value: function local(name) {\n throw new Error("No local ".concat(name, " was found. Maybe you meant ^").concat(name, " for upvar, or !").concat(name, " for keyword?"));\n }\n }, {\n key: "this",\n value: function _this() {\n return 0;\n }\n }, {\n key: "hasLocal",\n value: function hasLocal(_name) {\n return false;\n } // any symbol\n\n }, {\n key: "symbol",\n value: function symbol(name) {\n return addString(this._symbols, name);\n }\n }, {\n key: "child",\n value: function child(locals) {\n return new LocalSymbols(this, locals);\n }\n }]);\n return ProgramSymbols;\n}();\n\nexports.ProgramSymbols = ProgramSymbols;\n\nvar LocalSymbols = /*#__PURE__*/function () {\n function LocalSymbols(parent, locals) {\n (0, _classCallCheck2.default)(this, LocalSymbols);\n this.parent = parent;\n this.locals = (0, _util.dict)();\n\n var _iterator = _createForOfIteratorHelper(locals),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var local = _step.value;\n this.locals[local] = parent.top.symbol(local);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n (0, _createClass2.default)(LocalSymbols, [{\n key: "paramSymbols",\n get: function get() {\n return (0, _util.values)(this.locals);\n }\n }, {\n key: "top",\n get: function get() {\n return this.parent.top;\n }\n }, {\n key: "freeVar",\n value: function freeVar(name) {\n return this.parent.freeVar(name);\n }\n }, {\n key: "arg",\n value: function arg(name) {\n return this.parent.arg(name);\n }\n }, {\n key: "block",\n value: function block(name) {\n return this.parent.block(name);\n }\n }, {\n key: "local",\n value: function local(name) {\n if (name in this.locals) {\n return this.locals[name];\n } else {\n return this.parent.local(name);\n }\n }\n }, {\n key: "this",\n value: function _this() {\n return this.parent.this();\n }\n }, {\n key: "hasLocal",\n value: function hasLocal(name) {\n if (name in this.locals) {\n return true;\n } else {\n return this.parent.hasLocal(name);\n }\n }\n }, {\n key: "child",\n value: function child(locals) {\n return new LocalSymbols(this, locals);\n }\n }]);\n return LocalSymbols;\n}();\n\nfunction addString(array, item) {\n var index = array.indexOf(item);\n\n if (index === -1) {\n index = array.length;\n array.push(item);\n return index;\n } else {\n return index;\n }\n}\n\nfunction unimpl(message) {\n return new Error("unimplemented ".concat(message));\n}\n\nfunction buildStatements(statements, symbols) {\n var out = [];\n statements.forEach(function (s) {\n return out.push.apply(out, (0, _toConsumableArray2.default)(buildStatement((0, _builderInterface.normalizeStatement)(s), symbols)));\n });\n return out;\n}\n\nfunction buildNormalizedStatements(statements, symbols) {\n var out = [];\n statements.forEach(function (s) {\n return out.push.apply(out, (0, _toConsumableArray2.default)(buildStatement(s, symbols)));\n });\n return out;\n}\n\nfunction buildStatement(normalized) {\n var symbols = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new ProgramSymbols();\n\n switch (normalized.kind) {\n case "AppendPath"\n /* AppendPath */\n :\n {\n return [[normalized.trusted ? 2\n /* TrustingAppend */\n : 1\n /* Append */\n , buildGetPath(normalized.path, symbols)]];\n }\n\n case "AppendExpr"\n /* AppendExpr */\n :\n {\n return [[normalized.trusted ? 2\n /* TrustingAppend */\n : 1\n /* Append */\n , buildExpression(normalized.expr, normalized.trusted ? \'TrustedAppend\' : \'Append\', symbols)]];\n }\n\n case "Call"\n /* Call */\n :\n {\n var path = normalized.head,\n params = normalized.params,\n hash = normalized.hash,\n trusted = normalized.trusted;\n var builtParams = params ? buildParams(params, symbols) : null;\n var builtHash = hash ? buildHash(hash, symbols) : null;\n var builtExpr = buildCallHead(path, trusted ? 3\n /* AmbiguousInvoke */\n : 2\n /* AmbiguousAppendInvoke */\n , symbols);\n return [[trusted ? 2\n /* TrustingAppend */\n : 1\n /* Append */\n , [28\n /* Call */\n , builtExpr, builtParams, builtHash]]];\n }\n\n case "Literal"\n /* Literal */\n :\n {\n return [[1\n /* Append */\n , normalized.value]];\n }\n\n case "Comment"\n /* Comment */\n :\n {\n return [[3\n /* Comment */\n , normalized.value]];\n }\n\n case "Block"\n /* Block */\n :\n {\n var blocks = buildBlocks(normalized.blocks, normalized.blockParams, symbols);\n\n var _hash = buildHash(normalized.hash, symbols);\n\n var _params = buildParams(normalized.params, symbols);\n\n var _path = buildCallHead(normalized.head, 7\n /* ResolveAsComponentHead */\n , symbols);\n\n return [[6\n /* Block */\n , _path, _params, _hash, blocks]];\n }\n\n case "Keyword"\n /* Keyword */\n :\n {\n return [buildKeyword(normalized, symbols)];\n }\n\n case "Element"\n /* Element */\n :\n return buildElement(normalized, symbols);\n\n case "Modifier"\n /* Modifier */\n :\n throw unimpl(\'modifier\');\n\n case "DynamicComponent"\n /* DynamicComponent */\n :\n throw unimpl(\'dynamic component\');\n\n default:\n throw (0, _util.assertNever)(normalized);\n }\n}\n\nfunction s(arr) {\n for (var _len = arguments.length, interpolated = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolated[_key - 1] = arguments[_key];\n }\n\n var result = arr.reduce(function (result, string, i) {\n return result + "".concat(string).concat(interpolated[i] ? String(interpolated[i]) : \'\');\n }, \'\');\n return [0\n /* Literal */\n , result];\n}\n\nfunction c(arr) {\n for (var _len2 = arguments.length, interpolated = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n interpolated[_key2 - 1] = arguments[_key2];\n }\n\n var result = arr.reduce(function (result, string, i) {\n return result + "".concat(string).concat(interpolated[i] ? String(interpolated[i]) : \'\');\n }, \'\');\n return [1\n /* Comment */\n , result];\n}\n\nfunction unicode(charCode) {\n return String.fromCharCode(parseInt(charCode, 16));\n}\n\nvar NEWLINE = \'\\n\';\nexports.NEWLINE = NEWLINE;\n\nfunction buildKeyword(normalized, symbols) {\n var name = normalized.name;\n var params = buildParams(normalized.params, symbols);\n var childSymbols = symbols.child(normalized.blockParams || []);\n var block = buildBlock(normalized.blocks.default, childSymbols, childSymbols.paramSymbols);\n var inverse = normalized.blocks.else ? buildBlock(normalized.blocks.else, symbols, []) : null;\n\n switch (name) {\n case \'with\':\n return [43\n /* With */\n , params[0], block, inverse];\n\n case \'if\':\n return [41\n /* If */\n , params[0], block, inverse];\n\n case \'each\':\n var keyExpr = normalized.hash ? normalized.hash[\'key\'] : null;\n var key = keyExpr ? buildExpression(keyExpr, \'Strict\', symbols) : null;\n return [42\n /* Each */\n , params[0], key, block, inverse];\n\n default:\n throw new Error(\'unimplemented keyword\');\n }\n}\n\nfunction buildElement(_ref, symbols) {\n var name = _ref.name,\n attrs = _ref.attrs,\n block = _ref.block;\n var out = [hasSplat(attrs) ? [11\n /* OpenElementWithSplat */\n , name] : [10\n /* OpenElement */\n , name]];\n\n if (attrs) {\n var _buildElementParams = buildElementParams(attrs, symbols),\n params = _buildElementParams.params,\n args = _buildElementParams.args;\n\n out.push.apply(out, (0, _toConsumableArray2.default)(params));\n false && false;\n }\n\n out.push([12\n /* FlushElement */\n ]);\n\n if (Array.isArray(block)) {\n block.forEach(function (s) {\n return out.push.apply(out, (0, _toConsumableArray2.default)(buildStatement(s, symbols)));\n });\n } else if (block === null) {// do nothing\n } else {\n throw (0, _util.assertNever)(block);\n }\n\n out.push([13\n /* CloseElement */\n ]);\n return out;\n}\n\nfunction hasSplat(attrs) {\n if (attrs === null) return false;\n return Object.keys(attrs).some(function (a) {\n return attrs[a] === "Splat";\n }\n /* Splat */\n );\n}\n\nfunction buildAngleInvocation(_ref2, symbols) {\n var attrs = _ref2.attrs,\n block = _ref2.block,\n head = _ref2.head;\n var paramList = [];\n var args = null;\n var blockList = [];\n\n if (attrs) {\n var built = buildElementParams(attrs, symbols);\n paramList = built.params;\n args = built.args;\n }\n\n if (block) blockList = buildNormalizedStatements(block, symbols);\n return [8\n /* Component */\n , buildExpression(head, 7\n /* ResolveAsComponentHead */\n , symbols), (0, _util.isPresent)(paramList) ? paramList : null, args, [[\'default\'], [[blockList, []]]]];\n}\n\nfunction buildElementParams(attrs, symbols) {\n var params = [];\n var keys = [];\n var values = [];\n Object.keys(attrs).forEach(function (key) {\n var value = attrs[key];\n\n if (value === "Splat"\n /* Splat */\n ) {\n params.push([17\n /* AttrSplat */\n , symbols.block(\'&attrs\')]);\n } else if (key[0] === \'@\') {\n keys.push(key);\n values.push(buildExpression(value, \'Strict\', symbols));\n } else {\n params.push.apply(params, (0, _toConsumableArray2.default)(buildAttributeValue(key, value, // TODO: extract namespace from key\n extractNamespace(key), symbols)));\n }\n });\n return {\n params: params,\n args: (0, _util.isPresent)(keys) && (0, _util.isPresent)(values) ? [keys, values] : null\n };\n}\n\nfunction extractNamespace(name) {\n if (name === \'xmlns\') {\n return "http://www.w3.org/2000/xmlns/"\n /* XMLNS */\n ;\n }\n\n var match = /^([^:]*):([^:]*)$/.exec(name);\n\n if (match === null) {\n return null;\n }\n\n var namespace = match[1];\n\n switch (namespace) {\n case \'xlink\':\n return "http://www.w3.org/1999/xlink"\n /* XLink */\n ;\n\n case \'xml\':\n return "http://www.w3.org/XML/1998/namespace"\n /* XML */\n ;\n\n case \'xmlns\':\n return "http://www.w3.org/2000/xmlns/"\n /* XMLNS */\n ;\n }\n\n return null;\n}\n\nfunction buildAttributeValue(name, value, namespace, symbols) {\n switch (value.type) {\n case "Literal"\n /* Literal */\n :\n {\n var val = value.value;\n\n if (val === false) {\n return [];\n } else if (val === true) {\n return [[14\n /* StaticAttr */\n , name, \'\', namespace !== null && namespace !== void 0 ? namespace : undefined]];\n } else if (typeof val === \'string\') {\n return [[14\n /* StaticAttr */\n , name, val, namespace !== null && namespace !== void 0 ? namespace : undefined]];\n } else {\n throw new Error("Unexpected/unimplemented literal attribute ".concat(JSON.stringify(val)));\n }\n }\n\n default:\n return [[15\n /* DynamicAttr */\n , name, buildExpression(value, \'AttrValue\', symbols), namespace !== null && namespace !== void 0 ? namespace : undefined]];\n }\n}\n\nfunction varContext(context, bare) {\n switch (context) {\n case \'Append\':\n return bare ? \'AppendBare\' : \'AppendInvoke\';\n\n case \'TrustedAppend\':\n return bare ? \'TrustedAppendBare\' : \'TrustedAppendInvoke\';\n\n case \'AttrValue\':\n return bare ? \'AttrValueBare\' : \'AttrValueInvoke\';\n\n default:\n return context;\n }\n}\n\nfunction buildExpression(expr, context, symbols) {\n switch (expr.type) {\n case "GetPath"\n /* GetPath */\n :\n {\n return buildGetPath(expr, symbols);\n }\n\n case "GetVar"\n /* GetVar */\n :\n {\n return buildVar(expr.variable, varContext(context, true), symbols);\n }\n\n case "Concat"\n /* Concat */\n :\n {\n return [29\n /* Concat */\n , buildConcat(expr.params, symbols)];\n }\n\n case "Call"\n /* Call */\n :\n {\n var builtParams = buildParams(expr.params, symbols);\n var builtHash = buildHash(expr.hash, symbols);\n var builtExpr = buildCallHead(expr.head, context === \'Strict\' ? \'SubExpression\' : varContext(context, false), symbols);\n return [28\n /* Call */\n , builtExpr, builtParams, builtHash];\n }\n\n case "HasBlock"\n /* HasBlock */\n :\n {\n return [48\n /* HasBlock */\n , buildVar({\n kind: _builderInterface.VariableKind.Block,\n name: expr.name,\n mode: \'loose\'\n }, 0\n /* Strict */\n , symbols)];\n }\n\n case "HasBlockParams"\n /* HasBlockParams */\n :\n {\n return [49\n /* HasBlockParams */\n , buildVar({\n kind: _builderInterface.VariableKind.Block,\n name: expr.name,\n mode: \'loose\'\n }, 0\n /* Strict */\n , symbols)];\n }\n\n case "Literal"\n /* Literal */\n :\n {\n if (expr.value === undefined) {\n return [27\n /* Undefined */\n ];\n } else {\n return expr.value;\n }\n }\n\n default:\n (0, _util.assertNever)(expr);\n }\n}\n\nfunction buildCallHead(callHead, context, symbols) {\n if (callHead.type === "GetVar"\n /* GetVar */\n ) {\n return buildVar(callHead.variable, context, symbols);\n } else {\n return buildGetPath(callHead, symbols);\n }\n}\n\nfunction buildGetPath(head, symbols) {\n return buildVar(head.path.head, 0\n /* Strict */\n , symbols, head.path.tail);\n}\n\nfunction buildVar(head, context, symbols, path) {\n var op = 30\n /* GetSymbol */\n ;\n var sym;\n\n switch (head.kind) {\n case _builderInterface.VariableKind.Free:\n if (context === \'Strict\') {\n op = 31\n /* GetStrictFree */\n ;\n } else if (context === \'AppendBare\') {\n op = 34\n /* GetFreeAsComponentOrHelperHeadOrThisFallback */\n ;\n } else if (context === \'AppendInvoke\') {\n op = 35\n /* GetFreeAsComponentOrHelperHead */\n ;\n } else if (context === \'TrustedAppendBare\') {\n op = 36\n /* GetFreeAsHelperHeadOrThisFallback */\n ;\n } else if (context === \'TrustedAppendInvoke\') {\n op = 37\n /* GetFreeAsHelperHead */\n ;\n } else if (context === \'AttrValueBare\') {\n op = 36\n /* GetFreeAsHelperHeadOrThisFallback */\n ;\n } else if (context === \'AttrValueInvoke\') {\n op = 37\n /* GetFreeAsHelperHead */\n ;\n } else if (context === \'SubExpression\') {\n op = 37\n /* GetFreeAsHelperHead */\n ;\n } else {\n op = expressionContextOp(context);\n }\n\n sym = symbols.freeVar(head.name);\n break;\n\n default:\n op = 30\n /* GetSymbol */\n ;\n sym = getSymbolForVar(head.kind, symbols, head.name);\n }\n\n if (path === undefined || path.length === 0) {\n return [op, sym];\n } else {\n return [op, sym, path];\n }\n}\n\nfunction getSymbolForVar(kind, symbols, name) {\n switch (kind) {\n case _builderInterface.VariableKind.Arg:\n return symbols.arg(name);\n\n case _builderInterface.VariableKind.Block:\n return symbols.block(name);\n\n case _builderInterface.VariableKind.Local:\n return symbols.local(name);\n\n case _builderInterface.VariableKind.This:\n return symbols.this();\n\n default:\n return (0, _util.exhausted)(kind);\n }\n}\n\nfunction expressionContextOp(context) {\n switch (context) {\n case 0\n /* Strict */\n :\n return 31\n /* GetStrictFree */\n ;\n\n case 1\n /* AmbiguousAppend */\n :\n return 34\n /* GetFreeAsComponentOrHelperHeadOrThisFallback */\n ;\n\n case 2\n /* AmbiguousAppendInvoke */\n :\n return 35\n /* GetFreeAsComponentOrHelperHead */\n ;\n\n case 3\n /* AmbiguousInvoke */\n :\n return 36\n /* GetFreeAsHelperHeadOrThisFallback */\n ;\n\n case 5\n /* ResolveAsCallHead */\n :\n return 37\n /* GetFreeAsHelperHead */\n ;\n\n case 6\n /* ResolveAsModifierHead */\n :\n return 38\n /* GetFreeAsModifierHead */\n ;\n\n case 7\n /* ResolveAsComponentHead */\n :\n return 39\n /* GetFreeAsComponentHead */\n ;\n\n default:\n return (0, _util.exhausted)(context);\n }\n}\n\nfunction buildParams(exprs, symbols) {\n if (exprs === null || !(0, _util.isPresent)(exprs)) return null;\n return exprs.map(function (e) {\n return buildExpression(e, \'Strict\', symbols);\n });\n}\n\nfunction buildConcat(exprs, symbols) {\n return exprs.map(function (e) {\n return buildExpression(e, \'AttrValue\', symbols);\n });\n}\n\nfunction buildHash(exprs, symbols) {\n if (exprs === null) return null;\n var out = [[], []];\n Object.keys(exprs).forEach(function (key) {\n out[0].push(key);\n out[1].push(buildExpression(exprs[key], \'Strict\', symbols));\n });\n return out;\n}\n\nfunction buildBlocks(blocks, blockParams, parent) {\n var keys = [];\n var values = [];\n Object.keys(blocks).forEach(function (name) {\n keys.push(name);\n\n if (name === \'default\') {\n var symbols = parent.child(blockParams || []);\n values.push(buildBlock(blocks[name], symbols, symbols.paramSymbols));\n } else {\n values.push(buildBlock(blocks[name], parent, []));\n }\n });\n return [keys, values];\n}\n\nfunction buildBlock(block, symbols) {\n var locals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n return [buildNormalizedStatements(block, symbols), locals];\n}\n\n//# sourceURL=webpack:///./node_modules/@glimmer/compiler/dist/modules/es2017/lib/builder/builder.js?')},"./node_modules/@glimmer/compiler/dist/modules/es2017/lib/compiler.js":function(module,exports,__webpack_require__){"use strict";eval('/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _interopRequireDefault = __webpack_require__("./node_modules/@babel/runtime/helpers/interopRequireDefault.js");\n\nObject.defineProperty(exports, "__esModule", {\n value: true\n});\nexports.defaultId = void 0;\nexports.precompile = precompile;\nexports.precompileJSON = precompileJSON;\n\nvar _slicedToArray2 = _interopRequireDefault(__webpack_require__("./node_modules/@babel/runtime/helpers/slicedToArray.js"));\n\nvar _typeof2 = _interopRequireDefault(__webpack_require__("./node_modules/@babel/runtime/helpers/typeof.js"));\n\nvar _syntax = __webpack_require__("./node_modules/@glimmer/syntax/dist/modules/es2017/index.js");\n\nvar _util = __webpack_require__("./node_modules/@glimmer/util/dist/modules/es2017/index.js");\n\nvar _index = _interopRequireDefault(__webpack_require__("./node_modules/@glimmer/compiler/dist/modules/es2017/lib/passes/1-normalization/index.js"));\n\nvar _index2 = __webpack_require__("./node_modules/@glimmer/compiler/dist/modules/es2017/lib/passes/2-encoding/index.js");\n\nvar defaultId = function () {\n var req = ( false ? undefined : (0, _typeof2.default)(module)) === \'object\' && typeof module.require === \'function\' ? module.require : __webpack_require__("./node_modules/@glimmer/compiler/dist/modules/es2017/lib sync recursive");\n\n if (req) {\n try {\n var crypto = req(\'crypto\');\n\n var idFn = function idFn(src) {\n var hash = crypto.createHash(\'sha1\');\n hash.update(src, \'utf8\'); // trim to 6 bytes of data (2^48 - 1)\n\n return hash.digest(\'base64\').substring(0, 8);\n };\n\n idFn(\'test\');\n return idFn;\n } catch (e) {}\n }\n\n return function idFn() {\n return null;\n };\n}();\n\nexports.defaultId = defaultId;\nvar defaultOptions = {\n id: defaultId\n};\n/*\n * Compile a string into a template javascript string.\n *\n * Example usage:\n * import { precompile } from \'@glimmer/compiler\';\n * import { templateFactory } from \'glimmer-runtime\';\n * let templateJs = precompile("Howdy {{name}}");\n * let factory = templateFactory(new Function("return " + templateJs)());\n * let template = factory.create(env);\n *\n * @method precompile\n * @param {string} string a Glimmer template string\n * @return {string} a template javascript string\n */\n\nfunction precompileJSON(string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultOptions;\n\n var _a, _b;\n\n var source = new _syntax.Source(string, (_a = o