UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

31 lines (29 loc) 4.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Helper_1 = require("../Helper"); class ArrForEachHelper extends Helper_1.Helper { constructor(options) { super(); this.each = options.each; this.withIndex = options.withIndex || false; } emit(sb, node, options) { if (this.withIndex) { sb.emitSysCall(node, 'Neo.Iterator.Create'); sb.emitHelper(node, options, sb.helpers.rawIteratorForEach({ each: (innerOptions) => { sb.emitOp(node, 'SWAP'); this.each(innerOptions); }, })); } else { sb.emitSysCall(node, 'Neo.Enumerator.Create'); sb.emitHelper(node, options, sb.helpers.rawEnumeratorForEach({ each: this.each, })); } } } exports.ArrForEachHelper = ArrForEachHelper; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFyckZvckVhY2hIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSxzQ0FBbUM7QUFTbkMsTUFBYSxnQkFBaUIsU0FBUSxlQUFNO0lBSTFDLFlBQW1CLE9BQWdDO1FBQ2pELEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUM7SUFDOUMsQ0FBQztJQUVNLElBQUksQ0FBQyxFQUFpQixFQUFFLElBQWEsRUFBRSxPQUFxQjtRQUNqRSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFFbEIsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLENBQUMsQ0FBQztZQUU1QyxFQUFFLENBQUMsVUFBVSxDQUNYLElBQUksRUFDSixPQUFPLEVBQ1AsRUFBRSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQztnQkFDNUIsSUFBSSxFQUFFLENBQUMsWUFBWSxFQUFFLEVBQUU7b0JBRXJCLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO29CQUV4QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUMxQixDQUFDO2FBQ0YsQ0FBQyxDQUNILENBQUM7U0FDSDthQUFNO1lBRUwsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztZQUM5QyxFQUFFLENBQUMsVUFBVSxDQUNYLElBQUksRUFDSixPQUFPLEVBQ1AsRUFBRSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQztnQkFDOUIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2FBQ2hCLENBQUMsQ0FDSCxDQUFDO1NBQ0g7SUFDSCxDQUFDO0NBQ0Y7QUF2Q0QsNENBdUNDIiwiZmlsZSI6Im5lby1vbmUtc21hcnQtY29udHJhY3QtY29tcGlsZXIvc3JjL2NvbXBpbGUvaGVscGVyL2Fyci9BcnJGb3JFYWNoSGVscGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHsgU2NyaXB0QnVpbGRlciB9IGZyb20gJy4uLy4uL3NiJztcbmltcG9ydCB7IFZpc2l0T3B0aW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEhlbHBlciB9IGZyb20gJy4uL0hlbHBlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXJyRm9yRWFjaEhlbHBlck9wdGlvbnMge1xuICByZWFkb25seSBlYWNoOiAob3B0aW9uczogVmlzaXRPcHRpb25zKSA9PiB2b2lkO1xuICByZWFkb25seSB3aXRoSW5kZXg/OiBib29sZWFuO1xufVxuXG4vLyBJbnB1dDogW2FycmF5XVxuLy8gT3V0cHV0OiBbXVxuZXhwb3J0IGNsYXNzIEFyckZvckVhY2hIZWxwZXIgZXh0ZW5kcyBIZWxwZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IGVhY2g6IChvcHRpb25zOiBWaXNpdE9wdGlvbnMpID0+IHZvaWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgd2l0aEluZGV4OiBib29sZWFuO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihvcHRpb25zOiBBcnJGb3JFYWNoSGVscGVyT3B0aW9ucykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5lYWNoID0gb3B0aW9ucy5lYWNoO1xuICAgIHRoaXMud2l0aEluZGV4ID0gb3B0aW9ucy53aXRoSW5kZXggfHwgZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgZW1pdChzYjogU2NyaXB0QnVpbGRlciwgbm9kZTogdHMuTm9kZSwgb3B0aW9uczogVmlzaXRPcHRpb25zKTogdm9pZCB7XG4gICAgaWYgKHRoaXMud2l0aEluZGV4KSB7XG4gICAgICAvLyBbaXRlcmF0b3JdXG4gICAgICBzYi5lbWl0U3lzQ2FsbChub2RlLCAnTmVvLkl0ZXJhdG9yLkNyZWF0ZScpO1xuICAgICAgLy8gW11cbiAgICAgIHNiLmVtaXRIZWxwZXIoXG4gICAgICAgIG5vZGUsXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICAgIHNiLmhlbHBlcnMucmF3SXRlcmF0b3JGb3JFYWNoKHtcbiAgICAgICAgICBlYWNoOiAoaW5uZXJPcHRpb25zKSA9PiB7XG4gICAgICAgICAgICAvLyBbdmFsLCBpZHhdXG4gICAgICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ1NXQVAnKTtcbiAgICAgICAgICAgIC8vIFtdXG4gICAgICAgICAgICB0aGlzLmVhY2goaW5uZXJPcHRpb25zKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFtlbnVtZXJhdG9yXVxuICAgICAgc2IuZW1pdFN5c0NhbGwobm9kZSwgJ05lby5FbnVtZXJhdG9yLkNyZWF0ZScpO1xuICAgICAgc2IuZW1pdEhlbHBlcihcbiAgICAgICAgbm9kZSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgc2IuaGVscGVycy5yYXdFbnVtZXJhdG9yRm9yRWFjaCh7XG4gICAgICAgICAgZWFjaDogdGhpcy5lYWNoLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=