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