UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

37 lines (35 loc) 1.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BuiltinInstanceMemberCallableProperty = void 0; const types_1 = require("./types"); class BuiltinInstanceMemberCallableProperty { constructor(property) { this.property = property; this.types = new Set([types_1.BuiltinType.InstanceMemberValue, types_1.BuiltinType.InstanceMemberCall]); } 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.emitHelper(node, options, sb.helpers.getSmartContractProperty({ property: this.property })); sb.emitHelper(node, optionsIn, sb.helpers.invokeCall({ bindThis: false })); } emitValue(sb, node, options, visited = false) { if (visited) { sb.emitOp(node, 'DROP'); } if (options.setValue) { sb.context.reportUnsupported(node); } if (options.pushValue) { sb.emitHelper(node, options, sb.helpers.getSmartContractProperty({ property: this.property })); } } } exports.BuiltinInstanceMemberCallableProperty = BuiltinInstanceMemberCallableProperty; //# sourceMappingURL=BuiltinInstanceMemberCallableProperty.js.map