@glimmer/compiler
Version:
33 lines (27 loc) • 2.93 kB
JavaScript
import { VISIT_STMTS } from './visitors/statements';
/**
* This is the mutable state for this compiler pass.
*/
export 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 VISIT_STMTS.visitList(block.body, this);
} finally {
this._currentScope = oldBlock;
}
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2NvbXBpbGVyL2xpYi9wYXNzZXMvMS1ub3JtYWxpemF0aW9uL2NvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsU0FBUyxXQUFULFFBQTRCLHVCQUE1QjtBQUVBOzs7O0FBR0EsT0FBTSxNQUFPLGtCQUFQLENBQXlCO0FBSTdCLEVBQUEsV0FBQSxDQUFZLEtBQVosRUFBeUMsUUFBekMsRUFBMEQ7QUFBakIsU0FBQSxRQUFBLEdBQUEsUUFBQTtBQUZ6QyxTQUFBLFlBQUEsR0FBZSxDQUFmO0FBR0UsU0FBSyxhQUFMLEdBQXFCLEtBQXJCO0FBQ0Q7O0FBRUQsRUFBQSxvQkFBb0IsR0FBQTtBQUNsQixXQUFPLFdBQVcsS0FBSyxZQUFMLEVBQW1CLEdBQXJDO0FBQ0Q7O0FBRUQsTUFBSSxLQUFKLEdBQVM7QUFDUCxXQUFPLEtBQUssYUFBWjtBQUNEOztBQUVELEVBQUEsVUFBVSxDQUFDLEtBQUQsRUFBbUI7QUFDM0IsUUFBSSxRQUFRLEdBQUcsS0FBSyxhQUFwQjtBQUNBLFNBQUssYUFBTCxHQUFxQixLQUFLLENBQUMsS0FBM0I7O0FBRUEsUUFBSTtBQUNGLGFBQU8sV0FBVyxDQUFDLFNBQVosQ0FBc0IsS0FBSyxDQUFDLElBQTVCLEVBQWtDLElBQWxDLENBQVA7QUFDRCxLQUZELFNBRVU7QUFDUixXQUFLLGFBQUwsR0FBcUIsUUFBckI7QUFDRDtBQUNGOztBQXpCNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBU1R2MiwgU3ltYm9sVGFibGUgfSBmcm9tICdAZ2xpbW1lci9zeW50YXgnO1xuXG5pbXBvcnQgeyBPcHRpb25hbExpc3QgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGlzdCc7XG5pbXBvcnQgeyBSZXN1bHQgfSBmcm9tICcuLi8uLi9zaGFyZWQvcmVzdWx0JztcbmltcG9ydCAqIGFzIG1pciBmcm9tICcuLi8yLWVuY29kaW5nL21pcic7XG5pbXBvcnQgeyBWSVNJVF9TVE1UUyB9IGZyb20gJy4vdmlzaXRvcnMvc3RhdGVtZW50cyc7XG5cbi8qKlxuICogVGhpcyBpcyB0aGUgbXV0YWJsZSBzdGF0ZSBmb3IgdGhpcyBjb21waWxlciBwYXNzLlxuICovXG5leHBvcnQgY2xhc3MgTm9ybWFsaXphdGlvblN0YXRlIHtcbiAgX2N1cnJlbnRTY29wZTogU3ltYm9sVGFibGU7XG4gIF9jdXJzb3JDb3VudCA9IDA7XG5cbiAgY29uc3RydWN0b3IoYmxvY2s6IFN5bWJvbFRhYmxlLCByZWFkb25seSBpc1N0cmljdDogYm9vbGVhbikge1xuICAgIHRoaXMuX2N1cnJlbnRTY29wZSA9IGJsb2NrO1xuICB9XG5cbiAgZ2VuZXJhdGVVbmlxdWVDdXJzb3IoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCVjdXJzb3I6JHt0aGlzLl9jdXJzb3JDb3VudCsrfSVgO1xuICB9XG5cbiAgZ2V0IHNjb3BlKCk6IFN5bWJvbFRhYmxlIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFNjb3BlO1xuICB9XG5cbiAgdmlzaXRCbG9jayhibG9jazogQVNUdjIuQmxvY2spOiBSZXN1bHQ8T3B0aW9uYWxMaXN0PG1pci5TdGF0ZW1lbnQ+PiB7XG4gICAgbGV0IG9sZEJsb2NrID0gdGhpcy5fY3VycmVudFNjb3BlO1xuICAgIHRoaXMuX2N1cnJlbnRTY29wZSA9IGJsb2NrLnNjb3BlO1xuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBWSVNJVF9TVE1UUy52aXNpdExpc3QoYmxvY2suYm9keSwgdGhpcyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuX2N1cnJlbnRTY29wZSA9IG9sZEJsb2NrO1xuICAgIH1cbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==