@glimmer/syntax
Version:
29 lines (25 loc) • 3.39 kB
JavaScript
import { node } from './node';
/**
* Corresponds to `this` at the head of an expression.
*/
export class ThisReference extends node('This').fields() {}
/**
* Corresponds to `@<ident>` at the beginning of an expression.
*/
export class ArgReference extends node('Arg').fields() {}
/**
* Corresponds to `<ident>` at the beginning of an expression, when `<ident>` is in the current
* block's scope.
*/
export class LocalVarReference extends node('Local').fields() {}
/**
* Corresponds to `<ident>` at the beginning of an expression, when `<ident>` is *not* in the
* current block's scope.
*
* The `resolution: FreeVarResolution` field describes how to resolve the free variable.
*
* Note: In strict mode, it must always be a variable that is in a concrete JavaScript scope that
* the template will be installed into.
*/
export class FreeVarReference extends node('Free').fields() {}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjItYS9vYmplY3RzL3JlZnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBUyxJQUFULFFBQXFCLFFBQXJCO0FBR0E7Ozs7QUFHQSxPQUFNLE1BQU8sYUFBUCxTQUE2QixJQUFJLENBQUMsTUFBRCxDQUFKLENBQWEsTUFBYixFQUE3QixDQUFrRDtBQUV4RDs7OztBQUdBLE9BQU0sTUFBTyxZQUFQLFNBQTRCLElBQUksQ0FBQyxLQUFELENBQUosQ0FBWSxNQUFaLEVBQTVCLENBQXVGO0FBRTdGOzs7OztBQUlBLE9BQU0sTUFBTyxpQkFBUCxTQUFpQyxJQUFJLENBQUMsT0FBRCxDQUFKLENBQWMsTUFBZCxFQUFqQyxDQUlGO0FBRUo7Ozs7Ozs7Ozs7QUFTQSxPQUFNLE1BQU8sZ0JBQVAsU0FBZ0MsSUFBSSxDQUFDLE1BQUQsQ0FBSixDQUFhLE1BQWIsRUFBaEMsQ0FJRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvdXJjZVNsaWNlIH0gZnJvbSAnLi4vLi4vc291cmNlL3NsaWNlJztcbmltcG9ydCB7IG5vZGUgfSBmcm9tICcuL25vZGUnO1xuaW1wb3J0IHR5cGUgeyBGcmVlVmFyUmVzb2x1dGlvbiB9IGZyb20gJy4vcmVzb2x1dGlvbic7XG5cbi8qKlxuICogQ29ycmVzcG9uZHMgdG8gYHRoaXNgIGF0IHRoZSBoZWFkIG9mIGFuIGV4cHJlc3Npb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBUaGlzUmVmZXJlbmNlIGV4dGVuZHMgbm9kZSgnVGhpcycpLmZpZWxkcygpIHt9XG5cbi8qKlxuICogQ29ycmVzcG9uZHMgdG8gYEA8aWRlbnQ+YCBhdCB0aGUgYmVnaW5uaW5nIG9mIGFuIGV4cHJlc3Npb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBBcmdSZWZlcmVuY2UgZXh0ZW5kcyBub2RlKCdBcmcnKS5maWVsZHM8eyBuYW1lOiBTb3VyY2VTbGljZTsgc3ltYm9sOiBudW1iZXIgfT4oKSB7fVxuXG4vKipcbiAqIENvcnJlc3BvbmRzIHRvIGA8aWRlbnQ+YCBhdCB0aGUgYmVnaW5uaW5nIG9mIGFuIGV4cHJlc3Npb24sIHdoZW4gYDxpZGVudD5gIGlzIGluIHRoZSBjdXJyZW50XG4gKiBibG9jaydzIHNjb3BlLlxuICovXG5leHBvcnQgY2xhc3MgTG9jYWxWYXJSZWZlcmVuY2UgZXh0ZW5kcyBub2RlKCdMb2NhbCcpLmZpZWxkczx7XG4gIG5hbWU6IHN0cmluZztcbiAgaXNUZW1wbGF0ZUxvY2FsOiBib29sZWFuO1xuICBzeW1ib2w6IG51bWJlcjtcbn0+KCkge31cblxuLyoqXG4gKiBDb3JyZXNwb25kcyB0byBgPGlkZW50PmAgYXQgdGhlIGJlZ2lubmluZyBvZiBhbiBleHByZXNzaW9uLCB3aGVuIGA8aWRlbnQ+YCBpcyAqbm90KiBpbiB0aGVcbiAqIGN1cnJlbnQgYmxvY2sncyBzY29wZS5cbiAqXG4gKiBUaGUgYHJlc29sdXRpb246IEZyZWVWYXJSZXNvbHV0aW9uYCBmaWVsZCBkZXNjcmliZXMgaG93IHRvIHJlc29sdmUgdGhlIGZyZWUgdmFyaWFibGUuXG4gKlxuICogTm90ZTogSW4gc3RyaWN0IG1vZGUsIGl0IG11c3QgYWx3YXlzIGJlIGEgdmFyaWFibGUgdGhhdCBpcyBpbiBhIGNvbmNyZXRlIEphdmFTY3JpcHQgc2NvcGUgdGhhdFxuICogdGhlIHRlbXBsYXRlIHdpbGwgYmUgaW5zdGFsbGVkIGludG8uXG4gKi9cbmV4cG9ydCBjbGFzcyBGcmVlVmFyUmVmZXJlbmNlIGV4dGVuZHMgbm9kZSgnRnJlZScpLmZpZWxkczx7XG4gIG5hbWU6IHN0cmluZztcbiAgcmVzb2x1dGlvbjogRnJlZVZhclJlc29sdXRpb247XG4gIHN5bWJvbDogbnVtYmVyO1xufT4oKSB7fVxuXG5leHBvcnQgdHlwZSBWYXJpYWJsZVJlZmVyZW5jZSA9IFRoaXNSZWZlcmVuY2UgfCBBcmdSZWZlcmVuY2UgfCBMb2NhbFZhclJlZmVyZW5jZSB8IEZyZWVWYXJSZWZlcmVuY2U7XG4iXSwic291cmNlUm9vdCI6IiJ9