@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
28 lines (26 loc) • 2.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const ProgramCounter_1 = require("./ProgramCounter");
class DeferredProgramCounter extends ProgramCounter_1.ProgramCounter {
constructor(offset = 0) {
super();
this.offset = offset;
}
plus(offset) {
return new DeferredProgramCounter(this.offset + offset);
}
equals(other) {
return this === other;
}
setPC(pc) {
this.mutablePC = pc;
}
getPC() {
if (this.mutablePC === undefined) {
throw new Error('Unknown PC');
}
return this.mutablePC.getPC() + this.offset;
}
}
exports.DeferredProgramCounter = DeferredProgramCounter;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRlZmVycmVkUHJvZ3JhbUNvdW50ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxREFBa0Q7QUFFbEQsTUFBYSxzQkFBdUIsU0FBUSwrQkFBYztJQUd4RCxZQUFvQyxTQUFpQixDQUFDO1FBQ3BELEtBQUssRUFBRSxDQUFDO1FBRDBCLFdBQU0sR0FBTixNQUFNLENBQVk7SUFFdEQsQ0FBQztJQUVNLElBQUksQ0FBQyxNQUFjO1FBQ3hCLE9BQU8sSUFBSSxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTSxNQUFNLENBQUMsS0FBcUI7UUFDakMsT0FBTyxJQUFJLEtBQUssS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFFTSxLQUFLLENBQUMsRUFBa0I7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFO1lBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDL0I7UUFFRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUM5QyxDQUFDO0NBQ0Y7QUExQkQsd0RBMEJDIiwiZmlsZSI6Im5lby1vbmUtc21hcnQtY29udHJhY3QtY29tcGlsZXIvc3JjL2NvbXBpbGUvcGMvRGVmZXJyZWRQcm9ncmFtQ291bnRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2dyYW1Db3VudGVyIH0gZnJvbSAnLi9Qcm9ncmFtQ291bnRlcic7XG5cbmV4cG9ydCBjbGFzcyBEZWZlcnJlZFByb2dyYW1Db3VudGVyIGV4dGVuZHMgUHJvZ3JhbUNvdW50ZXIge1xuICBwcml2YXRlIG11dGFibGVQQzogUHJvZ3JhbUNvdW50ZXIgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgb2Zmc2V0OiBudW1iZXIgPSAwKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBwbHVzKG9mZnNldDogbnVtYmVyKTogUHJvZ3JhbUNvdW50ZXIge1xuICAgIHJldHVybiBuZXcgRGVmZXJyZWRQcm9ncmFtQ291bnRlcih0aGlzLm9mZnNldCArIG9mZnNldCk7XG4gIH1cblxuICBwdWJsaWMgZXF1YWxzKG90aGVyOiBQcm9ncmFtQ291bnRlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzID09PSBvdGhlcjtcbiAgfVxuXG4gIHB1YmxpYyBzZXRQQyhwYzogUHJvZ3JhbUNvdW50ZXIpOiB2b2lkIHtcbiAgICB0aGlzLm11dGFibGVQQyA9IHBjO1xuICB9XG5cbiAgcHVibGljIGdldFBDKCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMubXV0YWJsZVBDID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biBQQycpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLm11dGFibGVQQy5nZXRQQygpICsgdGhpcy5vZmZzZXQ7XG4gIH1cbn1cbiJdfQ==