UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

36 lines (34 loc) 4.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Helper_1 = require("../Helper"); class CreateConstructArrayHelper extends Helper_1.Helper { constructor({ body, withScope }) { super(); this.body = body; this.withScope = withScope; } emit(sb, node, outerOptions) { if (!outerOptions.pushValue) { return; } const emit = (options) => { this.body(sb.noPushValueOptions(options)); sb.emitHelper(node, sb.pushValueOptions(options), sb.helpers.wrapUndefined); sb.emitHelper(node, options, sb.helpers.return); }; sb.emitHelper(node, outerOptions, sb.helpers.createFunctionArray({ body: (innerOptions) => { if (this.withScope) { sb.withScope(node, innerOptions, (options) => { emit(options); }); } else { emit(innerOptions); } }, })); } } exports.CreateConstructArrayHelper = CreateConstructArrayHelper; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNyZWF0ZUNvbnN0cnVjdEFycmF5SGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBSUEsc0NBQW1DO0FBU25DLE1BQWEsMEJBQTJCLFNBQVEsZUFBTTtJQUlwRCxZQUFtQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQXFDO1FBQ3ZFLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVNLElBQUksQ0FBQyxFQUFpQixFQUFFLElBQWEsRUFBRSxZQUEwQjtRQUN0RSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRTtZQUMzQixPQUFPO1NBQ1I7UUFFRCxNQUFNLElBQUksR0FBRyxDQUFDLE9BQXFCLEVBQUUsRUFBRTtZQUVyQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBRTFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBRTVFLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQztRQUVGLEVBQUUsQ0FBQyxVQUFVLENBQ1gsSUFBSSxFQUNKLFlBQVksRUFDWixFQUFFLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDO1lBQzdCLElBQUksRUFBRSxDQUFDLFlBQVksRUFBRSxFQUFFO2dCQUNyQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7b0JBQ2xCLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFO3dCQUMzQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQ2hCLENBQUMsQ0FBQyxDQUFDO2lCQUNKO3FCQUFNO29CQUNMLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztpQkFDcEI7WUFDSCxDQUFDO1NBQ0YsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF4Q0QsZ0VBd0NDIiwiZmlsZSI6Im5lby1vbmUtc21hcnQtY29udHJhY3QtY29tcGlsZXIvc3JjL2NvbXBpbGUvaGVscGVyL2Z1bmN0aW9uL0NyZWF0ZUNvbnN0cnVjdEFycmF5SGVscGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQgeyBTY3JpcHRCdWlsZGVyIH0gZnJvbSAnLi4vLi4vc2InO1xuaW1wb3J0IHsgVmlzaXRPcHRpb25zIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgSGVscGVyIH0gZnJvbSAnLi4vSGVscGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVDb25zdHJ1Y3RBcnJheUhlbHBlck9wdGlvbnMge1xuICByZWFkb25seSBib2R5OiAob3B0aW9uczogVmlzaXRPcHRpb25zKSA9PiB2b2lkO1xuICByZWFkb25seSB3aXRoU2NvcGU6IGJvb2xlYW47XG59XG5cbi8vIElucHV0OiBbXVxuLy8gT3V0cHV0OiBbZmFycl1cbmV4cG9ydCBjbGFzcyBDcmVhdGVDb25zdHJ1Y3RBcnJheUhlbHBlciBleHRlbmRzIEhlbHBlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYm9keTogKG9wdGlvbnM6IFZpc2l0T3B0aW9ucykgPT4gdm9pZDtcbiAgcHJpdmF0ZSByZWFkb25seSB3aXRoU2NvcGU6IGJvb2xlYW47XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHsgYm9keSwgd2l0aFNjb3BlIH06IENyZWF0ZUNvbnN0cnVjdEFycmF5SGVscGVyT3B0aW9ucykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgICB0aGlzLndpdGhTY29wZSA9IHdpdGhTY29wZTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0KHNiOiBTY3JpcHRCdWlsZGVyLCBub2RlOiB0cy5Ob2RlLCBvdXRlck9wdGlvbnM6IFZpc2l0T3B0aW9ucyk6IHZvaWQge1xuICAgIGlmICghb3V0ZXJPcHRpb25zLnB1c2hWYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVtaXQgPSAob3B0aW9uczogVmlzaXRPcHRpb25zKSA9PiB7XG4gICAgICAvLyBbXVxuICAgICAgdGhpcy5ib2R5KHNiLm5vUHVzaFZhbHVlT3B0aW9ucyhvcHRpb25zKSk7XG4gICAgICAvLyBbdW5kZWZpbmVkVmFsXVxuICAgICAgc2IuZW1pdEhlbHBlcihub2RlLCBzYi5wdXNoVmFsdWVPcHRpb25zKG9wdGlvbnMpLCBzYi5oZWxwZXJzLndyYXBVbmRlZmluZWQpO1xuICAgICAgLy8gW11cbiAgICAgIHNiLmVtaXRIZWxwZXIobm9kZSwgb3B0aW9ucywgc2IuaGVscGVycy5yZXR1cm4pO1xuICAgIH07XG5cbiAgICBzYi5lbWl0SGVscGVyKFxuICAgICAgbm9kZSxcbiAgICAgIG91dGVyT3B0aW9ucyxcbiAgICAgIHNiLmhlbHBlcnMuY3JlYXRlRnVuY3Rpb25BcnJheSh7XG4gICAgICAgIGJvZHk6IChpbm5lck9wdGlvbnMpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy53aXRoU2NvcGUpIHtcbiAgICAgICAgICAgIHNiLndpdGhTY29wZShub2RlLCBpbm5lck9wdGlvbnMsIChvcHRpb25zKSA9PiB7XG4gICAgICAgICAgICAgIGVtaXQob3B0aW9ucyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZW1pdChpbm5lck9wdGlvbnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==