@glimmer/compiler
Version:
42 lines (33 loc) • 3.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.NormalizationState = void 0;
var _statements = require("./visitors/statements");
/**
* This is the mutable state for this compiler pass.
*/
class NormalizationState {
constructor(block, isStrict) {
this.isStrict = isStrict;
this._cursorCount = 0;
this._currentScope = block;
}
generateUniqueCursor() {
return `%cursor:${this._cursorCount++}%`;
}
get scope() {
return this._currentScope;
}
visitBlock(block) {
let oldBlock = this._currentScope;
this._currentScope = block.scope;
try {
return _statements.VISIT_STMTS.visitList(block.body, this);
} finally {
this._currentScope = oldBlock;
}
}
}
exports.NormalizationState = NormalizationState;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2NvbXBpbGVyL2xpYi9wYXNzZXMvMS1ub3JtYWxpemF0aW9uL2NvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUtBOztBQUVBOzs7QUFHTSxNQUFBLGtCQUFBLENBQXlCO0FBSTdCLEVBQUEsV0FBQSxDQUFBLEtBQUEsRUFBQSxRQUFBLEVBQTBEO0FBQWpCLFNBQUEsUUFBQSxHQUFBLFFBQUE7QUFGekMsU0FBQSxZQUFBLEdBQUEsQ0FBQTtBQUdFLFNBQUEsYUFBQSxHQUFBLEtBQUE7QUFDRDs7QUFFRCxFQUFBLG9CQUFvQixHQUFBO0FBQ2xCLFdBQU8sV0FBVyxLQUFBLFlBQUEsRUFBbEIsR0FBQTtBQUNEOztBQUVELE1BQUEsS0FBQSxHQUFTO0FBQ1AsV0FBTyxLQUFQLGFBQUE7QUFDRDs7QUFFRCxFQUFBLFVBQVUsQ0FBQSxLQUFBLEVBQW1CO0FBQzNCLFFBQUksUUFBUSxHQUFHLEtBQWYsYUFBQTtBQUNBLFNBQUEsYUFBQSxHQUFxQixLQUFLLENBQTFCLEtBQUE7O0FBRUEsUUFBSTtBQUNGLGFBQU8sd0JBQUEsU0FBQSxDQUFzQixLQUFLLENBQTNCLElBQUEsRUFBUCxJQUFPLENBQVA7QUFERixLQUFBLFNBRVU7QUFDUixXQUFBLGFBQUEsR0FBQSxRQUFBO0FBQ0Q7QUFDRjs7QUF6QjRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVNUdjIsIFN5bWJvbFRhYmxlIH0gZnJvbSAnQGdsaW1tZXIvc3ludGF4JztcblxuaW1wb3J0IHsgT3B0aW9uYWxMaXN0IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpc3QnO1xuaW1wb3J0IHsgUmVzdWx0IH0gZnJvbSAnLi4vLi4vc2hhcmVkL3Jlc3VsdCc7XG5pbXBvcnQgKiBhcyBtaXIgZnJvbSAnLi4vMi1lbmNvZGluZy9taXInO1xuaW1wb3J0IHsgVklTSVRfU1RNVFMgfSBmcm9tICcuL3Zpc2l0b3JzL3N0YXRlbWVudHMnO1xuXG4vKipcbiAqIFRoaXMgaXMgdGhlIG11dGFibGUgc3RhdGUgZm9yIHRoaXMgY29tcGlsZXIgcGFzcy5cbiAqL1xuZXhwb3J0IGNsYXNzIE5vcm1hbGl6YXRpb25TdGF0ZSB7XG4gIF9jdXJyZW50U2NvcGU6IFN5bWJvbFRhYmxlO1xuICBfY3Vyc29yQ291bnQgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKGJsb2NrOiBTeW1ib2xUYWJsZSwgcmVhZG9ubHkgaXNTdHJpY3Q6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9jdXJyZW50U2NvcGUgPSBibG9jaztcbiAgfVxuXG4gIGdlbmVyYXRlVW5pcXVlQ3Vyc29yKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAlY3Vyc29yOiR7dGhpcy5fY3Vyc29yQ291bnQrK30lYDtcbiAgfVxuXG4gIGdldCBzY29wZSgpOiBTeW1ib2xUYWJsZSB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRTY29wZTtcbiAgfVxuXG4gIHZpc2l0QmxvY2soYmxvY2s6IEFTVHYyLkJsb2NrKTogUmVzdWx0PE9wdGlvbmFsTGlzdDxtaXIuU3RhdGVtZW50Pj4ge1xuICAgIGxldCBvbGRCbG9jayA9IHRoaXMuX2N1cnJlbnRTY29wZTtcbiAgICB0aGlzLl9jdXJyZW50U2NvcGUgPSBibG9jay5zY29wZTtcblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gVklTSVRfU1RNVFMudmlzaXRMaXN0KGJsb2NrLmJvZHksIHRoaXMpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLl9jdXJyZW50U2NvcGUgPSBvbGRCbG9jaztcbiAgICB9XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=