@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
26 lines (24 loc) • 3.92 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const StructuredStorageBaseHelper_1 = require("./StructuredStorageBaseHelper");
class CreateIterableIteratorStructuredStorageBaseHelper extends StructuredStorageBaseHelper_1.StructuredStorageBaseHelper {
constructor(_a) {
var { handleNext } = _a, rest = tslib_1.__rest(_a, ["handleNext"]);
super(rest);
this.handleNext = handleNext;
}
emit(sb, node, options) {
if (!options.pushValue) {
sb.emitOp(node, 'DROP');
return;
}
sb.emitHelper(node, options, sb.helpers.createIteratorStructuredStorage({ type: this.type }));
sb.emitHelper(node, options, sb.helpers.createIterableIteratorBase({
handleNext: this.handleNext,
hasFilter: true,
}));
}
}
exports.CreateIterableIteratorStructuredStorageBaseHelper = CreateIterableIteratorStructuredStorageBaseHelper;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNyZWF0ZUl0ZXJhYmxlSXRlcmF0b3JTdHJ1Y3R1cmVkU3RvcmFnZUJhc2VIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsK0VBQWdIO0FBUWhILE1BQWEsaURBQWtELFNBQVEseURBQTJCO0lBR2hHLFlBQW1CLEVBQWlGO1lBQWpGLEVBQUUsVUFBVSxPQUFxRSxFQUFuRSx5Q0FBTztRQUN0QyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDWixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBRU0sSUFBSSxDQUFDLEVBQWlCLEVBQUUsSUFBYSxFQUFFLE9BQXFCO1FBQ2pFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ3RCLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBRXhCLE9BQU87U0FDUjtRQUdELEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLCtCQUErQixDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFOUYsRUFBRSxDQUFDLFVBQVUsQ0FDWCxJQUFJLEVBQ0osT0FBTyxFQUNQLEVBQUUsQ0FBQyxPQUFPLENBQUMsMEJBQTBCLENBQUM7WUFDcEMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFNBQVMsRUFBRSxJQUFJO1NBQ2hCLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBM0JELDhHQTJCQyIsImZpbGUiOiJuZW8tb25lLXNtYXJ0LWNvbnRyYWN0LWNvbXBpbGVyL3NyYy9jb21waWxlL2hlbHBlci9zdG9yYWdlL0NyZWF0ZUl0ZXJhYmxlSXRlcmF0b3JTdHJ1Y3R1cmVkU3RvcmFnZUJhc2VIZWxwZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBTY3JpcHRCdWlsZGVyIH0gZnJvbSAnLi4vLi4vc2InO1xuaW1wb3J0IHsgVmlzaXRPcHRpb25zIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgU3RydWN0dXJlZFN0b3JhZ2VCYXNlSGVscGVyLCBTdHJ1Y3R1cmVkU3RvcmFnZUJhc2VIZWxwZXJPcHRpb25zIH0gZnJvbSAnLi9TdHJ1Y3R1cmVkU3RvcmFnZUJhc2VIZWxwZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUl0ZXJhYmxlSXRlcmF0b3JTdHJ1Y3R1cmVkU3RvcmFnZUJhc2VIZWxwZXJPcHRpb25zIGV4dGVuZHMgU3RydWN0dXJlZFN0b3JhZ2VCYXNlSGVscGVyT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGhhbmRsZU5leHQ6IChvcHRpb25zOiBWaXNpdE9wdGlvbnMpID0+IHZvaWQ7XG59XG5cbi8vIElucHV0OiBbdmFsXVxuLy8gT3V0cHV0OiBbdmFsXVxuZXhwb3J0IGNsYXNzIENyZWF0ZUl0ZXJhYmxlSXRlcmF0b3JTdHJ1Y3R1cmVkU3RvcmFnZUJhc2VIZWxwZXIgZXh0ZW5kcyBTdHJ1Y3R1cmVkU3RvcmFnZUJhc2VIZWxwZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IGhhbmRsZU5leHQ6IChvcHRpb25zOiBWaXNpdE9wdGlvbnMpID0+IHZvaWQ7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHsgaGFuZGxlTmV4dCwgLi4ucmVzdCB9OiBDcmVhdGVJdGVyYWJsZUl0ZXJhdG9yU3RydWN0dXJlZFN0b3JhZ2VCYXNlSGVscGVyT3B0aW9ucykge1xuICAgIHN1cGVyKHJlc3QpO1xuICAgIHRoaXMuaGFuZGxlTmV4dCA9IGhhbmRsZU5leHQ7XG4gIH1cblxuICBwdWJsaWMgZW1pdChzYjogU2NyaXB0QnVpbGRlciwgbm9kZTogdHMuTm9kZSwgb3B0aW9uczogVmlzaXRPcHRpb25zKTogdm9pZCB7XG4gICAgaWYgKCFvcHRpb25zLnB1c2hWYWx1ZSkge1xuICAgICAgc2IuZW1pdE9wKG5vZGUsICdEUk9QJyk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBbaXRlcmF0b3JdXG4gICAgc2IuZW1pdEhlbHBlcihub2RlLCBvcHRpb25zLCBzYi5oZWxwZXJzLmNyZWF0ZUl0ZXJhdG9yU3RydWN0dXJlZFN0b3JhZ2UoeyB0eXBlOiB0aGlzLnR5cGUgfSkpO1xuICAgIC8vIFt2YWxdXG4gICAgc2IuZW1pdEhlbHBlcihcbiAgICAgIG5vZGUsXG4gICAgICBvcHRpb25zLFxuICAgICAgc2IuaGVscGVycy5jcmVhdGVJdGVyYWJsZUl0ZXJhdG9yQmFzZSh7XG4gICAgICAgIGhhbmRsZU5leHQ6IHRoaXMuaGFuZGxlTmV4dCxcbiAgICAgICAgaGFzRmlsdGVyOiB0cnVlLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxufVxuIl19