UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

35 lines (33 loc) 1.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CreateCallArrayHelper = void 0; const ts_utils_1 = require("@neo-one/ts-utils"); const Helper_1 = require("../Helper"); const types_1 = require("../types"); class CreateCallArrayHelper extends Helper_1.Helper { emit(sb, node, outerOptions) { if (!outerOptions.pushValue) { return; } sb.emitHelper(node, outerOptions, sb.helpers.createFunctionArray({ body: (innerOptions) => { sb.withScope(node, innerOptions, (options) => { sb.emitHelper(node, options, sb.helpers.parameters({ params: ts_utils_1.tsUtils.parametered.getParameters(node) })); const body = ts_utils_1.tsUtils.body.getBodyOrThrow(node); if (ts_utils_1.tsUtils.guards.isExpression(body)) { sb.visit(body, sb.pushValueOptions(options)); types_1.handleReturnTypeAssignment(sb.context, body); sb.emitHelper(node, options, sb.helpers.return); } else { sb.visit(body, options); sb.emitHelper(node, sb.pushValueOptions(options), sb.helpers.wrapUndefined); sb.emitHelper(node, options, sb.helpers.return); } }); }, })); } } exports.CreateCallArrayHelper = CreateCallArrayHelper; //# sourceMappingURL=CreateCallArrayHelper.js.map