UNPKG

ember-legacy-class-transform

Version:
60 lines (47 loc) 5.76 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _blocks = require('../compiled/blocks'); var _opcodes = require('../opcodes'); var _functions = require('./functions'); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var CompilableTemplate = function () { function CompilableTemplate(statements, symbolTable) { _classCallCheck(this, CompilableTemplate); this.statements = statements; this.symbolTable = symbolTable; this.compiledStatic = null; this.compiledDynamic = null; } CompilableTemplate.prototype.compileStatic = function compileStatic(env) { var compiledStatic = this.compiledStatic; if (!compiledStatic) { var builder = (0, _functions.compileStatements)(this.statements, this.symbolTable.meta, env); builder.finalize(); var handle = builder.start; if (false) { var start = env.program.heap.size() - env.program.heap.sizeof(handle); var end = start + env.program.heap.sizeof(handle); (0, _opcodes.debugSlice)(env, start, end); } compiledStatic = this.compiledStatic = new _blocks.CompiledStaticTemplate(handle); } return compiledStatic; }; CompilableTemplate.prototype.compileDynamic = function compileDynamic(env) { var compiledDynamic = this.compiledDynamic; if (!compiledDynamic) { var staticBlock = this.compileStatic(env); compiledDynamic = new _blocks.CompiledDynamicTemplate(staticBlock.handle, this.symbolTable); } return compiledDynamic; }; return CompilableTemplate; }(); exports.default = CompilableTemplate; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zeW50YXgvY29tcGlsYWJsZS10ZW1wbGF0ZS5qcyJdLCJuYW1lcyI6WyJDb21waWxlZER5bmFtaWNUZW1wbGF0ZSIsIkNvbXBpbGVkU3RhdGljVGVtcGxhdGUiLCJkZWJ1Z1NsaWNlIiwiY29tcGlsZVN0YXRlbWVudHMiLCJDb21waWxhYmxlVGVtcGxhdGUiLCJzdGF0ZW1lbnRzIiwic3ltYm9sVGFibGUiLCJjb21waWxlZFN0YXRpYyIsImNvbXBpbGVkRHluYW1pYyIsImNvbXBpbGVTdGF0aWMiLCJlbnYiLCJidWlsZGVyIiwibWV0YSIsImZpbmFsaXplIiwiaGFuZGxlIiwic3RhcnQiLCJwcm9ncmFtIiwiaGVhcCIsInNpemUiLCJzaXplb2YiLCJlbmQiLCJjb21waWxlRHluYW1pYyIsInN0YXRpY0Jsb2NrIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxBQUFTLEFBQVQsQUFBa0MsQUFBbEMsQUFBZ0UsQUFBaEU7O0FBQ0EsQUFBUyxBQUFULEFBQTJCLEFBQTNCOztBQUNBLEFBQVMsQUFBVCxBQUFrQyxBQUFsQzs7Ozs7Ozs7SUFFcUIsQSxpQ0FDakI7Z0NBQVksQUFBWixZQUF3QixBQUF4QixhQUFxQzs4QkFDakM7O2FBQUssQUFBTCxhQUFrQixBQUFsQixBQUNBO2FBQUssQUFBTCxjQUFtQixBQUFuQixBQUNBO2FBQUssQUFBTCxpQkFBc0IsQUFBdEIsQUFDQTthQUFLLEFBQUwsa0JBQXVCLEFBQXZCLEFBQ0g7OztpQ0FDRCxBLHVDQUFjLEEsS0FBSztZQUNULEFBRFMsaUJBQ1UsQUFEVixLQUNULEFBRFMsQUFFZjs7WUFBSSxDQUFDLEFBQUwsZ0JBQXFCLEFBQ2pCO2dCQUFJLFVBQVUsa0NBQWtCLEtBQUssQUFBdkIsWUFBbUMsS0FBSyxBQUFMLFlBQWlCLEFBQXBELE1BQTBELEFBQTFELEFBQWQsQUFDQTtvQkFBUSxBQUFSLEFBQ0E7Z0JBQUksU0FBUyxRQUFRLEFBQXJCLEFBQ0E7Z0JBQUksQUFBSixPQUFXLEFBQ1A7b0JBQUksUUFBUSxJQUFJLEFBQUosUUFBWSxBQUFaLEtBQWlCLEFBQWpCLFNBQTBCLElBQUksQUFBSixRQUFZLEFBQVosS0FBaUIsQUFBakIsT0FBd0IsQUFBeEIsQUFBdEMsQUFDQTtvQkFBSSxNQUFNLFFBQVEsSUFBSSxBQUFKLFFBQVksQUFBWixLQUFpQixBQUFqQixPQUF3QixBQUF4QixBQUFsQixBQUNBO3lDQUFXLEFBQVgsS0FBZ0IsQUFBaEIsT0FBdUIsQUFBdkIsQUFDSDtBQUNEOzZCQUFpQixLQUFLLEFBQUwsaUJBQXNCLEFBQUksQUFBSixtQ0FBMkIsQUFBM0IsQUFBdkMsQUFDSDtBQUNEO2VBQU8sQUFBUCxBQUNIO0E7O2lDQUNELEEseUNBQWUsQSxLQUFLO1lBQ1YsQUFEVSxrQkFDVSxBQURWLEtBQ1YsQUFEVSxBQUVoQjs7WUFBSSxDQUFDLEFBQUwsaUJBQXNCLEFBQ2xCO2dCQUFJLGNBQWMsS0FBSyxBQUFMLGNBQW1CLEFBQW5CLEFBQWxCLEFBQ0E7OEJBQWtCLEFBQUksQUFBSixvQ0FBNEIsWUFBWSxBQUF4QyxRQUFnRCxLQUFLLEFBQXJELEFBQWxCLEFBQ0g7QUFDRDtlQUFPLEFBQVAsQUFDSDtBOzs7OztrQkE3QmdCLEEiLCJmaWxlIjoibGliL3N5bnRheC9jb21waWxhYmxlLXRlbXBsYXRlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcGlsZWREeW5hbWljVGVtcGxhdGUsIENvbXBpbGVkU3RhdGljVGVtcGxhdGUgfSBmcm9tICcuLi9jb21waWxlZC9ibG9ja3MnO1xuaW1wb3J0IHsgZGVidWdTbGljZSB9IGZyb20gJy4uL29wY29kZXMnO1xuaW1wb3J0IHsgY29tcGlsZVN0YXRlbWVudHMgfSBmcm9tICcuL2Z1bmN0aW9ucyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbXBpbGFibGVUZW1wbGF0ZSB7XG4gICAgY29uc3RydWN0b3Ioc3RhdGVtZW50cywgc3ltYm9sVGFibGUpIHtcbiAgICAgICAgdGhpcy5zdGF0ZW1lbnRzID0gc3RhdGVtZW50cztcbiAgICAgICAgdGhpcy5zeW1ib2xUYWJsZSA9IHN5bWJvbFRhYmxlO1xuICAgICAgICB0aGlzLmNvbXBpbGVkU3RhdGljID0gbnVsbDtcbiAgICAgICAgdGhpcy5jb21waWxlZER5bmFtaWMgPSBudWxsO1xuICAgIH1cbiAgICBjb21waWxlU3RhdGljKGVudikge1xuICAgICAgICBsZXQgeyBjb21waWxlZFN0YXRpYyB9ID0gdGhpcztcbiAgICAgICAgaWYgKCFjb21waWxlZFN0YXRpYykge1xuICAgICAgICAgICAgbGV0IGJ1aWxkZXIgPSBjb21waWxlU3RhdGVtZW50cyh0aGlzLnN0YXRlbWVudHMsIHRoaXMuc3ltYm9sVGFibGUubWV0YSwgZW52KTtcbiAgICAgICAgICAgIGJ1aWxkZXIuZmluYWxpemUoKTtcbiAgICAgICAgICAgIGxldCBoYW5kbGUgPSBidWlsZGVyLnN0YXJ0O1xuICAgICAgICAgICAgaWYgKGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgbGV0IHN0YXJ0ID0gZW52LnByb2dyYW0uaGVhcC5zaXplKCkgLSBlbnYucHJvZ3JhbS5oZWFwLnNpemVvZihoYW5kbGUpO1xuICAgICAgICAgICAgICAgIGxldCBlbmQgPSBzdGFydCArIGVudi5wcm9ncmFtLmhlYXAuc2l6ZW9mKGhhbmRsZSk7XG4gICAgICAgICAgICAgICAgZGVidWdTbGljZShlbnYsIHN0YXJ0LCBlbmQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29tcGlsZWRTdGF0aWMgPSB0aGlzLmNvbXBpbGVkU3RhdGljID0gbmV3IENvbXBpbGVkU3RhdGljVGVtcGxhdGUoaGFuZGxlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29tcGlsZWRTdGF0aWM7XG4gICAgfVxuICAgIGNvbXBpbGVEeW5hbWljKGVudikge1xuICAgICAgICBsZXQgeyBjb21waWxlZER5bmFtaWMgfSA9IHRoaXM7XG4gICAgICAgIGlmICghY29tcGlsZWREeW5hbWljKSB7XG4gICAgICAgICAgICBsZXQgc3RhdGljQmxvY2sgPSB0aGlzLmNvbXBpbGVTdGF0aWMoZW52KTtcbiAgICAgICAgICAgIGNvbXBpbGVkRHluYW1pYyA9IG5ldyBDb21waWxlZER5bmFtaWNUZW1wbGF0ZShzdGF0aWNCbG9jay5oYW5kbGUsIHRoaXMuc3ltYm9sVGFibGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb21waWxlZER5bmFtaWM7XG4gICAgfVxufSJdfQ==