"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const __READ = 0x1; const __WRITE = 0x2; const __RW = __READ | __WRITE; const __EXPORT = 0x4; class Reference { constructor(identifier, from, flag, writeExpr, maybeImplicitGlobal = null, partial, init) { this.identifier = identifier; this.from = from; this.flag = flag; this.maybeImplicitGlobal = maybeImplicitGlobal; this.tainted = false; this.tainted = false; this.resolved = null; this.flag = flag; if (this.isWrite) { this.writeExpr = writeExpr; this.partial = partial; this.init = init; } } get isStatic() { return (!this.tainted && this.resolved && this.resolved.scope.isStatic()); } get isWrite() { return !!(this.flag & Reference.WRITE); } get isRead() { return !!(this.flag & Reference.READ); } get isReadOnly() { return this.flag === Reference.READ; } get isWriteOnly() { return this.flag === Reference.WRITE; } get isReadWrite() { return this.flag === Reference.RW; } get isExport() { return this.flag === Reference.EXPORT; } } Reference.READ = __READ; Reference.WRITE = __WRITE; Reference.RW = __RW; Reference.EXPORT = __EXPORT; exports.Reference = Reference; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JlZmVyZW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUlBLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQztBQUNuQixNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDcEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxHQUFHLE9BQU8sQ0FBQztBQUM5QixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7QUFVckI7SUFhRSxZQUNrQixVQUE2QixFQUM3QixJQUFXLEVBQ1gsSUFBWSxFQUM1QixTQUE2QixFQUNiLHNCQUE2QyxJQUFJLEVBQ2pFLE9BQWlCLEVBQ2pCLElBQWM7UUFORSxlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUM3QixTQUFJLEdBQUosSUFBSSxDQUFPO1FBQ1gsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUVaLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBOEI7UUFaNUQsWUFBTyxHQUFZLEtBQUssQ0FBQztRQW9COUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFLckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFFckIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1lBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQztJQUtELElBQUksUUFBUTtRQUNWLE9BQU8sQ0FDTCxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQ2IsSUFBSSxDQUFDLFFBQVE7WUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FDL0IsQ0FBQztJQUNKLENBQUM7SUFLRCxJQUFJLE9BQU87UUFDVCxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFLRCxJQUFJLE1BQU07UUFDUixPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFLRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLElBQUksQ0FBQztJQUN0QyxDQUFDO0lBS0QsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDdkMsQ0FBQztJQUtELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLE1BQU0sQ0FBQztJQUN4QyxDQUFDOztBQXhGYSxjQUFJLEdBQUcsTUFBTSxDQUFDO0FBQ2QsZUFBSyxHQUFHLE9BQU8sQ0FBQztBQUNoQixZQUFFLEdBQUcsSUFBSSxDQUFDO0FBQ1YsZ0JBQU0sR0FBRyxRQUFRLENBQUM7QUFKbEMsOEJBMEZDIn0=