UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

33 lines (31 loc) 1.17 kB
import { BuiltinType, } from './types'; export class BuiltinInstanceMemberCallableProperty { constructor(property) { this.property = property; this.types = new Set([BuiltinType.InstanceMemberValue, 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 })); } } } //# sourceMappingURL=BuiltinInstanceMemberCallableProperty.js.map