UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

27 lines (25 loc) 5.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Helper_1 = require("../../Helper"); class PickObjectPropertiesHelperBase extends Helper_1.Helper { emit(sb, node, options) { const objectValName = sb.scope.addUnique(); const outputObjectValName = sb.scope.addUnique(); sb.emitOp(node, 'SWAP'); sb.scope.set(sb, node, options, objectValName); sb.emitOp(node, 'SWAP'); sb.scope.set(sb, node, options, outputObjectValName); sb.emitHelper(node, options, sb.helpers.arrForEach({ each: () => { sb.scope.get(sb, node, options, outputObjectValName); sb.emitOp(node, 'SWAP'); sb.scope.get(sb, node, options, objectValName); sb.emitOp(node, 'OVER'); sb.emitHelper(node, options, this.getObjectProperty(sb)); sb.emitHelper(node, options, this.setObjectDataProperty(sb)); }, })); } } exports.PickObjectPropertiesHelperBase = PickObjectPropertiesHelperBase; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlBpY2tPYmplY3RQcm9wZXJ0aWVzSGVscGVyQmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUlBLHlDQUFzQztBQUl0QyxNQUFzQiw4QkFBK0IsU0FBUSxlQUFNO0lBQzFELElBQUksQ0FBQyxFQUFpQixFQUFFLElBQWEsRUFBRSxPQUFxQjtRQUNqRSxNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzNDLE1BQU0sbUJBQW1CLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVqRCxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUV4QixFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztRQUUvQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUV4QixFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBRXJELEVBQUUsQ0FBQyxVQUFVLENBQ1gsSUFBSSxFQUNKLE9BQU8sRUFDUCxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztZQUNwQixJQUFJLEVBQUUsR0FBRyxFQUFFO2dCQUVULEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixDQUFDLENBQUM7Z0JBRXJELEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUV4QixFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztnQkFFL0MsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBRXhCLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFFekQsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQy9ELENBQUM7U0FDRixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7Q0FJRjtBQXJDRCx3RUFxQ0MiLCJmaWxlIjoibmVvLW9uZS1zbWFydC1jb250cmFjdC1jb21waWxlci9zcmMvY29tcGlsZS9oZWxwZXIvdHlwZXMvb2JqZWN0L1BpY2tPYmplY3RQcm9wZXJ0aWVzSGVscGVyQmFzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHsgU2NyaXB0QnVpbGRlciB9IGZyb20gJy4uLy4uLy4uL3NiJztcbmltcG9ydCB7IFZpc2l0T3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEhlbHBlciB9IGZyb20gJy4uLy4uL0hlbHBlcic7XG5cbi8vIElucHV0OiBbc3RyaW5nQXJyLCBvYmplY3RWYWwsIG91dHB1dE9iamVjdFZhbF1cbi8vIE91dHB1dDogW11cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQaWNrT2JqZWN0UHJvcGVydGllc0hlbHBlckJhc2UgZXh0ZW5kcyBIZWxwZXIge1xuICBwdWJsaWMgZW1pdChzYjogU2NyaXB0QnVpbGRlciwgbm9kZTogdHMuTm9kZSwgb3B0aW9uczogVmlzaXRPcHRpb25zKTogdm9pZCB7XG4gICAgY29uc3Qgb2JqZWN0VmFsTmFtZSA9IHNiLnNjb3BlLmFkZFVuaXF1ZSgpO1xuICAgIGNvbnN0IG91dHB1dE9iamVjdFZhbE5hbWUgPSBzYi5zY29wZS5hZGRVbmlxdWUoKTtcbiAgICAvLyBbb2JqZWN0VmFsLCBzdHJpbmdBcnIsIG91dHB1dE9iamVjdFZhbF1cbiAgICBzYi5lbWl0T3Aobm9kZSwgJ1NXQVAnKTtcbiAgICAvLyBbc3RyaW5nQXJyLCBvdXRwdXRPYmplY3RWYWxdXG4gICAgc2Iuc2NvcGUuc2V0KHNiLCBub2RlLCBvcHRpb25zLCBvYmplY3RWYWxOYW1lKTtcbiAgICAvLyBbb3V0cHV0T2JqZWN0VmFsLCBzdHJpbmdBcnJdXG4gICAgc2IuZW1pdE9wKG5vZGUsICdTV0FQJyk7XG4gICAgLy8gW3N0cmluZ0Fycl1cbiAgICBzYi5zY29wZS5zZXQoc2IsIG5vZGUsIG9wdGlvbnMsIG91dHB1dE9iamVjdFZhbE5hbWUpO1xuXG4gICAgc2IuZW1pdEhlbHBlcihcbiAgICAgIG5vZGUsXG4gICAgICBvcHRpb25zLFxuICAgICAgc2IuaGVscGVycy5hcnJGb3JFYWNoKHtcbiAgICAgICAgZWFjaDogKCkgPT4ge1xuICAgICAgICAgIC8vIFtvdXRwdXRPYmplY3RWYWwsIHN0cmluZ11cbiAgICAgICAgICBzYi5zY29wZS5nZXQoc2IsIG5vZGUsIG9wdGlvbnMsIG91dHB1dE9iamVjdFZhbE5hbWUpO1xuICAgICAgICAgIC8vIFtzdHJpbmcsIG91dHB1dE9iamVjdFZhbF1cbiAgICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ1NXQVAnKTtcbiAgICAgICAgICAvLyBbb2JqZWN0VmFsLCBzdHJpbmcsIG91dHB1dE9iamVjdFZhbF1cbiAgICAgICAgICBzYi5zY29wZS5nZXQoc2IsIG5vZGUsIG9wdGlvbnMsIG9iamVjdFZhbE5hbWUpO1xuICAgICAgICAgIC8vIFtzdHJpbmcsIG9iamVjdFZhbCwgc3RyaW5nLCBvdXRwdXRPYmplY3RWYWxdXG4gICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdPVkVSJyk7XG4gICAgICAgICAgLy8gW3ZhbCwgc3RyaW5nLCBvdXRwdXRPYmplY3RWYWxdXG4gICAgICAgICAgc2IuZW1pdEhlbHBlcihub2RlLCBvcHRpb25zLCB0aGlzLmdldE9iamVjdFByb3BlcnR5KHNiKSk7XG4gICAgICAgICAgLy8gW11cbiAgICAgICAgICBzYi5lbWl0SGVscGVyKG5vZGUsIG9wdGlvbnMsIHRoaXMuc2V0T2JqZWN0RGF0YVByb3BlcnR5KHNiKSk7XG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldE9iamVjdFByb3BlcnR5KHNiOiBTY3JpcHRCdWlsZGVyKTogSGVscGVyO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2V0T2JqZWN0RGF0YVByb3BlcnR5KHNiOiBTY3JpcHRCdWlsZGVyKTogSGVscGVyO1xufVxuIl19