UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

31 lines (29 loc) 1.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BuiltinInstanceMemberMethod = void 0; const ts_utils_1 = require("@neo-one/ts-utils"); const BuiltinInstanceMemberCall_1 = require("./BuiltinInstanceMemberCall"); class BuiltinInstanceMemberMethod extends BuiltinInstanceMemberCall_1.BuiltinInstanceMemberCall { constructor(method) { super(); this.method = method; } canCall() { return true; } emitCall(sb, _func, node, optionsIn, visited) { const options = sb.pushValueOptions(optionsIn); if (visited) { sb.emitOp(node, 'DROP'); } sb.emitHelper(node, options, sb.helpers.args); sb.withScope(this.method, optionsIn, (innerOptions) => { sb.emitHelper(this.method, sb.pushValueOptions(innerOptions), sb.helpers.parameters({ params: ts_utils_1.tsUtils.parametered.getParameters(this.method), })); sb.emitHelper(node, innerOptions, sb.helpers.invokeSmartContractMethod({ method: this.method })); }); } } exports.BuiltinInstanceMemberMethod = BuiltinInstanceMemberMethod; //# sourceMappingURL=BuiltinInstanceMemberMethod.js.map