@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
28 lines (26 loc) • 4.47 kB
JavaScript
;
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