UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

31 lines (29 loc) 5.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Helper_1 = require("../../Helper"); class CreatePropertyObjectHelper extends Helper_1.Helper { emit(sb, node, options) { if (options.pushValue) { const obj = sb.scope.addUnique(); const pobj = sb.scope.addUnique(); sb.emitOp(node, 'DUP'); sb.scope.set(sb, node, options, pobj); sb.emitHelper(node, options, sb.helpers.createObject); sb.emitOp(node, 'TUCK'); sb.scope.set(sb, node, options, obj); sb.emitOp(node, 'KEYS'); sb.emitHelper(node, options, sb.helpers.arrForEach({ each: () => { sb.scope.get(sb, node, options, obj); sb.scope.get(sb, node, options, pobj); sb.emitOp(node, 'ROT'); sb.emitOp(node, 'TUCK'); sb.emitOp(node, 'PICKITEM'); sb.emitHelper(node, options, sb.helpers.setDataPropertyObjectProperty); }, })); } } } exports.CreatePropertyObjectHelper = CreatePropertyObjectHelper; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNyZWF0ZVByb3BlcnR5T2JqZWN0SGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBSUEseUNBQXNDO0FBSXRDLE1BQWEsMEJBQTJCLFNBQVEsZUFBTTtJQUM3QyxJQUFJLENBQUMsRUFBaUIsRUFBRSxJQUFhLEVBQUUsT0FBcUI7UUFDakUsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ3JCLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakMsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUVsQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUV2QixFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUV0QyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUV0RCxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztZQUV4QixFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztZQUVyQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztZQUV4QixFQUFFLENBQUMsVUFBVSxDQUNYLElBQUksRUFDSixPQUFPLEVBQ1AsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7Z0JBQ3BCLElBQUksRUFBRSxHQUFHLEVBQUU7b0JBRVQsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBRXJDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUV0QyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFFdkIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7b0JBRXhCLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO29CQUU1QixFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2dCQUN6RSxDQUFDO2FBQ0YsQ0FBQyxDQUNILENBQUM7U0FDSDtJQUNILENBQUM7Q0FDRjtBQXhDRCxnRUF3Q0MiLCJmaWxlIjoibmVvLW9uZS1zbWFydC1jb250cmFjdC1jb21waWxlci9zcmMvY29tcGlsZS9oZWxwZXIvdHlwZXMvb2JqZWN0L0NyZWF0ZVByb3BlcnR5T2JqZWN0SGVscGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQgeyBTY3JpcHRCdWlsZGVyIH0gZnJvbSAnLi4vLi4vLi4vc2InO1xuaW1wb3J0IHsgVmlzaXRPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgSGVscGVyIH0gZnJvbSAnLi4vLi4vSGVscGVyJztcblxuLy8gSW5wdXQ6IFtwb2JqXVxuLy8gT3V0cHV0OiBbb2JqZWN0VmFsXVxuZXhwb3J0IGNsYXNzIENyZWF0ZVByb3BlcnR5T2JqZWN0SGVscGVyIGV4dGVuZHMgSGVscGVyIHtcbiAgcHVibGljIGVtaXQoc2I6IFNjcmlwdEJ1aWxkZXIsIG5vZGU6IHRzLk5vZGUsIG9wdGlvbnM6IFZpc2l0T3B0aW9ucyk6IHZvaWQge1xuICAgIGlmIChvcHRpb25zLnB1c2hWYWx1ZSkge1xuICAgICAgY29uc3Qgb2JqID0gc2Iuc2NvcGUuYWRkVW5pcXVlKCk7XG4gICAgICBjb25zdCBwb2JqID0gc2Iuc2NvcGUuYWRkVW5pcXVlKCk7XG4gICAgICAvLyBbcG9iaiwgcG9ial1cbiAgICAgIHNiLmVtaXRPcChub2RlLCAnRFVQJyk7XG4gICAgICAvLyBbcG9ial1cbiAgICAgIHNiLnNjb3BlLnNldChzYiwgbm9kZSwgb3B0aW9ucywgcG9iaik7XG4gICAgICAvLyBbb2JqZWN0VmFsLCBwb2JqXVxuICAgICAgc2IuZW1pdEhlbHBlcihub2RlLCBvcHRpb25zLCBzYi5oZWxwZXJzLmNyZWF0ZU9iamVjdCk7XG4gICAgICAvLyBbb2JqZWN0VmFsLCBwb2JqLCBvYmplY3RWYWxdXG4gICAgICBzYi5lbWl0T3Aobm9kZSwgJ1RVQ0snKTtcbiAgICAgIC8vIFtwb2JqLCBvYmplY3RWYWxdXG4gICAgICBzYi5zY29wZS5zZXQoc2IsIG5vZGUsIG9wdGlvbnMsIG9iaik7XG4gICAgICAvLyBba2V5c0Fyciwgb2JqZWN0VmFsXVxuICAgICAgc2IuZW1pdE9wKG5vZGUsICdLRVlTJyk7XG4gICAgICAvLyBbb2JqZWN0VmFsXVxuICAgICAgc2IuZW1pdEhlbHBlcihcbiAgICAgICAgbm9kZSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgc2IuaGVscGVycy5hcnJGb3JFYWNoKHtcbiAgICAgICAgICBlYWNoOiAoKSA9PiB7XG4gICAgICAgICAgICAvLyBbb2JqZWN0VmFsLCBrZXldXG4gICAgICAgICAgICBzYi5zY29wZS5nZXQoc2IsIG5vZGUsIG9wdGlvbnMsIG9iaik7XG4gICAgICAgICAgICAvLyBbcG9iaiwgb2JqZWN0VmFsLCBrZXldXG4gICAgICAgICAgICBzYi5zY29wZS5nZXQoc2IsIG5vZGUsIG9wdGlvbnMsIHBvYmopO1xuICAgICAgICAgICAgLy8gW2tleSwgcG9iaiwgb2JqZWN0VmFsXVxuICAgICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdST1QnKTtcbiAgICAgICAgICAgIC8vIFtrZXksIHBvYmosIGtleSwgb2JqZWN0VmFsXVxuICAgICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdUVUNLJyk7XG4gICAgICAgICAgICAvLyBbdmFsLCBrZXksIG9iamVjdFZhbF1cbiAgICAgICAgICAgIHNiLmVtaXRPcChub2RlLCAnUElDS0lURU0nKTtcbiAgICAgICAgICAgIC8vIFtdXG4gICAgICAgICAgICBzYi5lbWl0SGVscGVyKG5vZGUsIG9wdGlvbnMsIHNiLmhlbHBlcnMuc2V0RGF0YVByb3BlcnR5T2JqZWN0UHJvcGVydHkpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==