123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- "use strict";
- const READ = 0x1;
- const WRITE = 0x2;
- const RW = READ | WRITE;
- class Reference {
- constructor(ident, scope, flag, writeExpr, maybeImplicitGlobal, partial, init) {
-
- this.identifier = ident;
-
- this.from = scope;
-
- this.tainted = false;
-
- this.resolved = null;
-
- this.flag = flag;
- if (this.isWrite()) {
-
- this.writeExpr = writeExpr;
-
- this.partial = partial;
-
- this.init = init;
- }
- this.__maybeImplicitGlobal = maybeImplicitGlobal;
- }
-
- isStatic() {
- return !this.tainted && this.resolved && this.resolved.scope.isStatic();
- }
-
- isWrite() {
- return !!(this.flag & Reference.WRITE);
- }
-
- isRead() {
- return !!(this.flag & Reference.READ);
- }
-
- isReadOnly() {
- return this.flag === Reference.READ;
- }
-
- isWriteOnly() {
- return this.flag === Reference.WRITE;
- }
-
- isReadWrite() {
- return this.flag === Reference.RW;
- }
- }
- Reference.READ = READ;
- Reference.WRITE = WRITE;
- Reference.RW = RW;
- module.exports = Reference;
|