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