@glimmer/compiler
Version:
64 lines (52 loc) • 4.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.NormalizationState = void 0;
var _statements = require("./visitors/statements");
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
/**
* This is the mutable state for this compiler pass.
*/
var NormalizationState = /*#__PURE__*/function () {
function NormalizationState(block, isStrict) {
this.isStrict = isStrict;
this._cursorCount = 0;
this._currentScope = block;
}
var _proto = NormalizationState.prototype;
_proto.generateUniqueCursor = function generateUniqueCursor() {
return "%cursor:" + this._cursorCount++ + "%";
};
_proto.visitBlock = function visitBlock(block) {
var oldBlock = this._currentScope;
this._currentScope = block.scope;
try {
return _statements.VISIT_STMTS.visitList(block.body, this);
} finally {
this._currentScope = oldBlock;
}
};
_createClass(NormalizationState, [{
key: "scope",
get: function get() {
return this._currentScope;
}
}]);
return NormalizationState;
}();
exports.NormalizationState = NormalizationState;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2NvbXBpbGVyL2xpYi9wYXNzZXMvMS1ub3JtYWxpemF0aW9uL2NvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUtBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQTs7O0FBR0EsSUFBTSxrQkFBTixHQUFBLGFBQUEsWUFBQTtBQUlFLFdBQUEsa0JBQUEsQ0FBQSxLQUFBLEVBQUEsUUFBQSxFQUEwRDtBQUFqQixTQUFBLFFBQUEsR0FBQSxRQUFBO0FBRnpDLFNBQUEsWUFBQSxHQUFBLENBQUE7QUFHRSxTQUFBLGFBQUEsR0FBQSxLQUFBO0FBQ0Q7O0FBTkgsTUFBQSxNQUFBLEdBQUEsa0JBQUEsQ0FBQSxTQUFBOztBQUFBLEVBQUEsTUFBQSxDQUFBLG9CQUFBLEdBUUUsU0FBQSxvQkFBQSxHQUFvQjtBQUNsQixXQUFBLGFBQWtCLEtBQWxCLFlBQWtCLEVBQWxCLEdBQUEsR0FBQTtBQVRKLEdBQUE7O0FBQUEsRUFBQSxNQUFBLENBQUEsVUFBQSxHQWdCRSxTQUFBLFVBQUEsQ0FBQSxLQUFBLEVBQTZCO0FBQzNCLFFBQUksUUFBUSxHQUFHLEtBQWYsYUFBQTtBQUNBLFNBQUEsYUFBQSxHQUFxQixLQUFLLENBQTFCLEtBQUE7O0FBRUEsUUFBSTtBQUNGLGFBQU8sd0JBQUEsU0FBQSxDQUFzQixLQUFLLENBQTNCLElBQUEsRUFBUCxJQUFPLENBQVA7QUFERixLQUFBLFNBRVU7QUFDUixXQUFBLGFBQUEsR0FBQSxRQUFBO0FBQ0Q7QUF4QkwsR0FBQTs7QUFBQSxFQUFBLFlBQUEsQ0FBQSxrQkFBQSxFQUFBLENBQUE7QUFBQSxJQUFBLEdBQUEsRUFBQSxPQUFBO0FBQUEsSUFBQSxHQUFBLEVBQUEsU0FBQSxHQUFBLEdBWVc7QUFDUCxhQUFPLEtBQVAsYUFBQTtBQUNEO0FBZEgsR0FBQSxDQUFBLENBQUE7O0FBQUEsU0FBQSxrQkFBQTtBQUFBLENBQUEsRUFBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFTVHYyLCBTeW1ib2xUYWJsZSB9IGZyb20gJ0BnbGltbWVyL3N5bnRheCc7XG5cbmltcG9ydCB7IE9wdGlvbmFsTGlzdCB9IGZyb20gJy4uLy4uL3NoYXJlZC9saXN0JztcbmltcG9ydCB7IFJlc3VsdCB9IGZyb20gJy4uLy4uL3NoYXJlZC9yZXN1bHQnO1xuaW1wb3J0ICogYXMgbWlyIGZyb20gJy4uLzItZW5jb2RpbmcvbWlyJztcbmltcG9ydCB7IFZJU0lUX1NUTVRTIH0gZnJvbSAnLi92aXNpdG9ycy9zdGF0ZW1lbnRzJztcblxuLyoqXG4gKiBUaGlzIGlzIHRoZSBtdXRhYmxlIHN0YXRlIGZvciB0aGlzIGNvbXBpbGVyIHBhc3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBOb3JtYWxpemF0aW9uU3RhdGUge1xuICBfY3VycmVudFNjb3BlOiBTeW1ib2xUYWJsZTtcbiAgX2N1cnNvckNvdW50ID0gMDtcblxuICBjb25zdHJ1Y3RvcihibG9jazogU3ltYm9sVGFibGUsIHJlYWRvbmx5IGlzU3RyaWN0OiBib29sZWFuKSB7XG4gICAgdGhpcy5fY3VycmVudFNjb3BlID0gYmxvY2s7XG4gIH1cblxuICBnZW5lcmF0ZVVuaXF1ZUN1cnNvcigpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJWN1cnNvcjoke3RoaXMuX2N1cnNvckNvdW50Kyt9JWA7XG4gIH1cblxuICBnZXQgc2NvcGUoKTogU3ltYm9sVGFibGUge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50U2NvcGU7XG4gIH1cblxuICB2aXNpdEJsb2NrKGJsb2NrOiBBU1R2Mi5CbG9jayk6IFJlc3VsdDxPcHRpb25hbExpc3Q8bWlyLlN0YXRlbWVudD4+IHtcbiAgICBsZXQgb2xkQmxvY2sgPSB0aGlzLl9jdXJyZW50U2NvcGU7XG4gICAgdGhpcy5fY3VycmVudFNjb3BlID0gYmxvY2suc2NvcGU7XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIFZJU0lUX1NUTVRTLnZpc2l0TGlzdChibG9jay5ib2R5LCB0aGlzKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fY3VycmVudFNjb3BlID0gb2xkQmxvY2s7XG4gICAgfVxuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9