UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

28 lines (26 loc) 4.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const StructuredStorageBaseHelper_1 = require("./StructuredStorageBaseHelper"); class ForEachFuncStructuredStorageBaseHelper extends StructuredStorageBaseHelper_1.StructuredStorageBaseHelper { constructor(_a) { var { handleNext } = _a, rest = tslib_1.__rest(_a, ["handleNext"]); super(rest); this.handleNext = handleNext; } emit(sb, node, optionsIn) { const options = sb.pushValueOptions(optionsIn); sb.emitOp(node, 'SWAP'); sb.emitHelper(node, options, sb.helpers.createIteratorStructuredStorage({ type: this.type })); sb.emitOp(node, 'SWAP'); sb.emitHelper(node, options, sb.helpers.rawIteratorForEachFuncBase({ hasFilter: true, handleNext: this.handleNext, })); if (optionsIn.pushValue) { sb.emitHelper(node, options, sb.helpers.wrapUndefined); } } } exports.ForEachFuncStructuredStorageBaseHelper = ForEachFuncStructuredStorageBaseHelper; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZvckVhY2hGdW5jU3RydWN0dXJlZFN0b3JhZ2VCYXNlSGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLCtFQUFnSDtBQVFoSCxNQUFhLHNDQUF1QyxTQUFRLHlEQUEyQjtJQUdyRixZQUFtQixFQUFzRTtZQUF0RSxFQUFFLFVBQVUsT0FBMEQsRUFBeEQseUNBQU87UUFDdEMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ1osSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVNLElBQUksQ0FBQyxFQUFpQixFQUFFLElBQWEsRUFBRSxTQUF1QjtRQUNuRSxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFHL0MsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFeEIsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsK0JBQStCLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUU5RixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUV4QixFQUFFLENBQUMsVUFBVSxDQUNYLElBQUksRUFDSixPQUFPLEVBQ1AsRUFBRSxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQztZQUNwQyxTQUFTLEVBQUUsSUFBSTtZQUNmLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtTQUM1QixDQUFDLENBQ0gsQ0FBQztRQUNGLElBQUksU0FBUyxDQUFDLFNBQVMsRUFBRTtZQUV2QixFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUN4RDtJQUNILENBQUM7Q0FDRjtBQS9CRCx3RkErQkMiLCJmaWxlIjoibmVvLW9uZS1zbWFydC1jb250cmFjdC1jb21waWxlci9zcmMvY29tcGlsZS9oZWxwZXIvc3RvcmFnZS9Gb3JFYWNoRnVuY1N0cnVjdHVyZWRTdG9yYWdlQmFzZUhlbHBlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7IFNjcmlwdEJ1aWxkZXIgfSBmcm9tICcuLi8uLi9zYic7XG5pbXBvcnQgeyBWaXNpdE9wdGlvbnMgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBTdHJ1Y3R1cmVkU3RvcmFnZUJhc2VIZWxwZXIsIFN0cnVjdHVyZWRTdG9yYWdlQmFzZUhlbHBlck9wdGlvbnMgfSBmcm9tICcuL1N0cnVjdHVyZWRTdG9yYWdlQmFzZUhlbHBlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9yRWFjaEZ1bmNTdHJ1Y3R1cmVkU3RvcmFnZUJhc2VIZWxwZXJPcHRpb25zIGV4dGVuZHMgU3RydWN0dXJlZFN0b3JhZ2VCYXNlSGVscGVyT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGhhbmRsZU5leHQ6IChvcHRpb25zOiBWaXNpdE9wdGlvbnMpID0+IHZvaWQ7XG59XG5cbi8vIElucHV0OiBbb2JqZWN0VmFsLCB2YWxdXG4vLyBPdXRwdXQ6IFt2YWxdXG5leHBvcnQgY2xhc3MgRm9yRWFjaEZ1bmNTdHJ1Y3R1cmVkU3RvcmFnZUJhc2VIZWxwZXIgZXh0ZW5kcyBTdHJ1Y3R1cmVkU3RvcmFnZUJhc2VIZWxwZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IGhhbmRsZU5leHQ6IChvcHRpb25zOiBWaXNpdE9wdGlvbnMpID0+IHZvaWQ7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHsgaGFuZGxlTmV4dCwgLi4ucmVzdCB9OiBGb3JFYWNoRnVuY1N0cnVjdHVyZWRTdG9yYWdlQmFzZUhlbHBlck9wdGlvbnMpIHtcbiAgICBzdXBlcihyZXN0KTtcbiAgICB0aGlzLmhhbmRsZU5leHQgPSBoYW5kbGVOZXh0O1xuICB9XG5cbiAgcHVibGljIGVtaXQoc2I6IFNjcmlwdEJ1aWxkZXIsIG5vZGU6IHRzLk5vZGUsIG9wdGlvbnNJbjogVmlzaXRPcHRpb25zKTogdm9pZCB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHNiLnB1c2hWYWx1ZU9wdGlvbnMob3B0aW9uc0luKTtcblxuICAgIC8vIFt2YWwsIG9iamVjdFZhbF1cbiAgICBzYi5lbWl0T3Aobm9kZSwgJ1NXQVAnKTtcbiAgICAvLyBbaXRlcmF0b3IsIG9iamVjdFZhbF1cbiAgICBzYi5lbWl0SGVscGVyKG5vZGUsIG9wdGlvbnMsIHNiLmhlbHBlcnMuY3JlYXRlSXRlcmF0b3JTdHJ1Y3R1cmVkU3RvcmFnZSh7IHR5cGU6IHRoaXMudHlwZSB9KSk7XG4gICAgLy8gW29iamVjdFZhbCwgaXRlcmF0b3JdXG4gICAgc2IuZW1pdE9wKG5vZGUsICdTV0FQJyk7XG4gICAgLy8gW11cbiAgICBzYi5lbWl0SGVscGVyKFxuICAgICAgbm9kZSxcbiAgICAgIG9wdGlvbnMsXG4gICAgICBzYi5oZWxwZXJzLnJhd0l0ZXJhdG9yRm9yRWFjaEZ1bmNCYXNlKHtcbiAgICAgICAgaGFzRmlsdGVyOiB0cnVlLFxuICAgICAgICBoYW5kbGVOZXh0OiB0aGlzLmhhbmRsZU5leHQsXG4gICAgICB9KSxcbiAgICApO1xuICAgIGlmIChvcHRpb25zSW4ucHVzaFZhbHVlKSB7XG4gICAgICAvLyBbdmFsXVxuICAgICAgc2IuZW1pdEhlbHBlcihub2RlLCBvcHRpb25zLCBzYi5oZWxwZXJzLndyYXBVbmRlZmluZWQpO1xuICAgIH1cbiAgfVxufVxuIl19