@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
68 lines (66 loc) • 12.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const Helper_1 = require("../Helper");
class ArrFilterFuncHelper extends Helper_1.Helper {
emit(sb, node, optionsIn) {
const options = sb.pushValueOptions(optionsIn);
sb.emitHelper(node, options, sb.helpers.getCallable({}));
sb.emitOp(node, 'SWAP');
sb.emitOp(node, 'UNPACK');
sb.emitOp(node, 'DUP');
sb.emitOp(node, 'INC');
sb.emitOp(node, 'ROLL');
sb.emitOp(node, 'SWAP');
sb.emitPushInt(node, 0);
sb.emitOp(node, 'NEWARRAY');
sb.emitOp(node, 'SWAP');
sb.emitPushInt(node, 0);
sb.emitOp(node, 'SWAP');
sb.emitHelper(node, options, sb.helpers.forLoop({
condition: () => {
sb.emitOp(node, 'TUCK');
sb.emitOp(node, 'OVER');
sb.emitOp(node, 'GT');
},
each: (innerOptions) => {
sb.emitOp(node, 'ROT');
sb.emitOp(node, 'OVER');
sb.emitHelper(node, innerOptions, sb.helpers.wrapNumber);
sb.emitPushInt(node, 5);
sb.emitOp(node, 'ROLL');
sb.emitOp(node, 'TUCK');
sb.emitPushInt(node, 2);
sb.emitOp(node, 'PACK');
sb.emitPushInt(node, 5);
sb.emitOp(node, 'PICK');
sb.emitHelper(node, innerOptions, sb.helpers.if({
condition: () => {
sb.emitHelper(node, innerOptions, sb.helpers.call);
sb.emitHelper(node, innerOptions, sb.helpers.toBoolean({ type: undefined }));
},
whenTrue: () => {
sb.emitOp(node, 'OVER');
sb.emitOp(node, 'SWAP');
sb.emitOp(node, 'APPEND');
},
whenFalse: () => {
sb.emitOp(node, 'DROP');
},
}));
sb.emitOp(node, 'SWAP');
sb.emitOp(node, 'INC');
sb.emitOp(node, 'ROT');
},
cleanup: () => {
sb.emitOp(node, 'DROP');
sb.emitOp(node, 'DROP');
sb.emitOp(node, 'NIP');
if (!optionsIn.pushValue) {
sb.emitOp(node, 'DROP');
}
},
}));
}
}
exports.ArrFilterFuncHelper = ArrFilterFuncHelper;
//# sourceMappingURL=data:application/json;charset=utf8;base64,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Q0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFO29CQUN4QixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztpQkFDekI7WUFDSCxDQUFDO1NBQ0YsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0NBQ0Y7QUE3R0Qsa0RBNkdDIiwiZmlsZSI6Im5lby1vbmUtc21hcnQtY29udHJhY3QtY29tcGlsZXIvc3JjL2NvbXBpbGUvaGVscGVyL2Fyci9BcnJGaWx0ZXJGdW5jSGVscGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHsgU2NyaXB0QnVpbGRlciB9IGZyb20gJy4uLy4uL3NiJztcbmltcG9ydCB7IFZpc2l0T3B0aW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEhlbHBlciB9IGZyb20gJy4uL0hlbHBlcic7XG5cbi8vIElucHV0OiBbb2JqZWN0VmFsLCBhcnJdXG4vLyBPdXRwdXQ6IFthcnJdXG5leHBvcnQgY2xhc3MgQXJyRmlsdGVyRnVuY0hlbHBlciBleHRlbmRzIEhlbHBlciB7XG4gIHB1YmxpYyBlbWl0KHNiOiBTY3JpcHRCdWlsZGVyLCBub2RlOiB0cy5Ob2RlLCBvcHRpb25zSW46IFZpc2l0T3B0aW9ucyk6IHZvaWQge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBzYi5wdXNoVmFsdWVPcHRpb25zKG9wdGlvbnNJbik7XG5cbiAgICAvLyBbY2FsbGFibGUsIGFycl1cbiAgICBzYi5lbWl0SGVscGVyKG5vZGUsIG9wdGlvbnMsIHNiLmhlbHBlcnMuZ2V0Q2FsbGFibGUoe30pKTtcbiAgICAvLyBbYXJyLCBjYWxsYWJsZV1cbiAgICBzYi5lbWl0T3Aobm9kZSwgJ1NXQVAnKTtcbiAgICAvLyBbc2l6ZSwgLi4uYXJyLCBjYWxsYWJsZV1cbiAgICBzYi5lbWl0T3Aobm9kZSwgJ1VOUEFDSycpO1xuICAgIC8vIFtzaXplLCBzaXplLCAuLi5hcnIsIGNhbGxhYmxlXVxuICAgIHNiLmVtaXRPcChub2RlLCAnRFVQJyk7XG4gICAgLy8gW3NpemUgKyAxLCBzaXplLCAuLi5hcnIsIGNhbGxhYmxlXVxuICAgIHNiLmVtaXRPcChub2RlLCAnSU5DJyk7XG4gICAgLy8gW2NhbGxhYmxlLCBzaXplLCAuLi5hcnJdXG4gICAgc2IuZW1pdE9wKG5vZGUsICdST0xMJyk7XG4gICAgLy8gW3NpemUsIGNhbGxhYmxlLCAuLi5hcnJdXG4gICAgc2IuZW1pdE9wKG5vZGUsICdTV0FQJyk7XG4gICAgLy8gWzAsIHNpemUsIGNhbGxhYmxlLCAuLi5hcnJdXG4gICAgc2IuZW1pdFB1c2hJbnQobm9kZSwgMCk7XG4gICAgLy8gW2Fyciwgc2l6ZSwgY2FsbGFibGUsIC4uLmFycl1cbiAgICBzYi5lbWl0T3Aobm9kZSwgJ05FV0FSUkFZJyk7XG4gICAgLy8gW3NpemUsIGFyciwgY2FsbGFibGUsIC4uLmFycl1cbiAgICBzYi5lbWl0T3Aobm9kZSwgJ1NXQVAnKTtcbiAgICAvLyBbaWR4LCBzaXplLCBhcnIsIGNhbGxhYmxlLCAuLi5hcnJdXG4gICAgc2IuZW1pdFB1c2hJbnQobm9kZSwgMCk7XG4gICAgLy8gW3NpemUsIGlkeCwgYXJyLCBjYWxsYWJsZSwgLi4uYXJyXVxuICAgIHNiLmVtaXRPcChub2RlLCAnU1dBUCcpO1xuICAgIHNiLmVtaXRIZWxwZXIoXG4gICAgICBub2RlLFxuICAgICAgb3B0aW9ucyxcbiAgICAgIHNiLmhlbHBlcnMuZm9yTG9vcCh7XG4gICAgICAgIGNvbmRpdGlvbjogKCkgPT4ge1xuICAgICAgICAgIC8vIFtzaXplLCBpZHgsIHNpemUsIGFyciwgY2FsbGFibGUsIC4uLmFycl1cbiAgICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ1RVQ0snKTtcbiAgICAgICAgICAvLyBbaWR4LCBzaXplLCBpZHgsIHNpemUsIGFyciwgY2FsbGFibGUsIC4uLmFycl1cbiAgICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ09WRVInKTtcbiAgICAgICAgICAvLyBbc2l6ZSA+IGlkeCwgaWR4LCBzaXplLCBhcnIsIGNhbGxhYmxlLCAuLi5hcnJdXG4gICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdHVCcpO1xuICAgICAgICB9LFxuICAgICAgICBlYWNoOiAoaW5uZXJPcHRpb25zKSA9PiB7XG4gICAgICAgICAgLy8gW2FyciwgaWR4LCBzaXplLCBjYWxsYWJsZSwgLi4uYXJyXVxuICAgICAgICAgIHNiLmVtaXRPcChub2RlLCAnUk9UJyk7XG4gICAgICAgICAgLy8gW2lkeCwgYXJyLCBpZHgsIHNpemUsIGNhbGxhYmxlLCAuLi5hcnJdXG4gICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdPVkVSJyk7XG4gICAgICAgICAgLy8gW2lkeFZhbCwgYXJyLCBpZHgsIHNpemUsIGNhbGxhYmxlLCAuLi5hcnJdXG4gICAgICAgICAgc2IuZW1pdEhlbHBlcihub2RlLCBpbm5lck9wdGlvbnMsIHNiLmhlbHBlcnMud3JhcE51bWJlcik7XG4gICAgICAgICAgLy8gWzUsIGlkeFZhbCwgYXJyLCBpZHgsIHNpemUsIGNhbGxhYmxlLCAuLi5hcnJdXG4gICAgICAgICAgc2IuZW1pdFB1c2hJbnQobm9kZSwgNSk7XG4gICAgICAgICAgLy8gW3ZhbHVlLCBpZHhWYWwsIGFyciwgaWR4LCBzaXplLCBjYWxsYWJsZSwgLi4uYXJyXVxuICAgICAgICAgIHNiLmVtaXRPcChub2RlLCAnUk9MTCcpO1xuICAgICAgICAgIC8vIFt2YWx1ZSwgaWR4VmFsLCB2YWx1ZSwgYXJyLCBpZHgsIHNpemUsIGNhbGxhYmxlLCAuLi5hcnJdXG4gICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdUVUNLJyk7XG4gICAgICAgICAgLy8gWzIsIHZhbHVlLCBpZHhWYWwsIHZhbHVlLCBhcnIsIGlkeCwgc2l6ZSwgY2FsbGFibGUsIC4uLmFycl1cbiAgICAgICAgICBzYi5lbWl0UHVzaEludChub2RlLCAyKTtcbiAgICAgICAgICAvLyBbYXJnc2FyciwgdmFsdWUsIGFyciwgaWR4LCBzaXplLCBjYWxsYWJsZSwgLi4uYXJyXVxuICAgICAgICAgIHNiLmVtaXRPcChub2RlLCAnUEFDSycpO1xuICAgICAgICAgIC8vIFs1LCBhcmdzYXJyLCB2YWx1ZSwgYXJyLCBpZHgsIHNpemUsIGNhbGxhYmxlLCAuLi5hcnJdXG4gICAgICAgICAgc2IuZW1pdFB1c2hJbnQobm9kZSwgNSk7XG4gICAgICAgICAgLy8gW2NhbGxhYmxlLCBhcmdzYXJyLCB2YWx1ZSwgYXJyLCBpZHgsIHNpemUsIGNhbGxhYmxlLCAuLi5hcnJdXG4gICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdQSUNLJyk7XG5cbiAgICAgICAgICBzYi5lbWl0SGVscGVyKFxuICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgIGlubmVyT3B0aW9ucyxcbiAgICAgICAgICAgIHNiLmhlbHBlcnMuaWYoe1xuICAgICAgICAgICAgICBjb25kaXRpb246ICgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBba2VlcFZhbCwgdmFsdWUsIGFyciwgaWR4LCBzaXplLCBjYWxsYWJsZSwgLi4uYXJyXVxuICAgICAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby1tYXAtd2l0aG91dC11c2FnZVxuICAgICAgICAgICAgICAgIHNiLmVtaXRIZWxwZXIobm9kZSwgaW5uZXJPcHRpb25zLCBzYi5oZWxwZXJzLmNhbGwpO1xuICAgICAgICAgICAgICAgIC8vIFtrZWVwLCB2YWx1ZSwgYXJyLCBpZHgsIHNpemUsIGNhbGxhYmxlLCAuLi5hcnJdXG4gICAgICAgICAgICAgICAgc2IuZW1pdEhlbHBlcihub2RlLCBpbm5lck9wdGlvbnMsIHNiLmhlbHBlcnMudG9Cb29sZWFuKHsgdHlwZTogdW5kZWZpbmVkIH0pKTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgd2hlblRydWU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBbYXJyLCB2YWx1ZSwgYXJyLCBpZHgsIHNpemUsIGNhbGxhYmxlLCAuLi5hcnJdXG4gICAgICAgICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdPVkVSJyk7XG4gICAgICAgICAgICAgICAgLy8gW3ZhbHVlLCBhcnIsIGFyciwgaWR4LCBzaXplLCBjYWxsYWJsZSwgLi4uYXJyXVxuICAgICAgICAgICAgICAgIHNiLmVtaXRPcChub2RlLCAnU1dBUCcpO1xuICAgICAgICAgICAgICAgIC8vIFthcnIsIGlkeCwgc2l6ZSwgY2FsbGFibGUsIC4uLmFycl1cbiAgICAgICAgICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ0FQUEVORCcpO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB3aGVuRmFsc2U6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBbYXJyLCBpZHgsIHNpemUsIGNhbGxhYmxlLCAuLi5hcnJdXG4gICAgICAgICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdEUk9QJyk7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuICAgICAgICAgIC8vIFtpZHgsIGFyciwgc2l6ZSwgY2FsbGFibGUsIC4uLmFycl1cbiAgICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ1NXQVAnKTtcbiAgICAgICAgICAvLyBbaWR4LCBhcnIsIHNpemUsIGNhbGxhYmxlLCAuLi5hcnJdXG4gICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdJTkMnKTtcbiAgICAgICAgICAvLyBbc2l6ZSwgaWR4LCBhcnIsIGNhbGxhYmxlLCAuLi5hcnJdXG4gICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdST1QnKTtcbiAgICAgICAgfSxcbiAgICAgICAgY2xlYW51cDogKCkgPT4ge1xuICAgICAgICAgIC8vIFtpZHgsIGFyciwgY2FsbGFibGVdXG4gICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdEUk9QJyk7XG4gICAgICAgICAgLy8gW2FyciwgY2FsbGFibGVdXG4gICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdEUk9QJyk7XG4gICAgICAgICAgLy8gW2Fycl1cbiAgICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ05JUCcpO1xuXG4gICAgICAgICAgaWYgKCFvcHRpb25zSW4ucHVzaFZhbHVlKSB7XG4gICAgICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ0RST1AnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICApO1xuICB9XG59XG4iXX0=