UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

26 lines (24 loc) 878 B
import { Helper } from '../Helper'; export class RawIteratorReduceHelper extends Helper { constructor(options) { super(); this.each = options.each; this.deserializeKey = options.deserializeKey ?? false; } emit(sb, node, options) { sb.emitHelper(node, options, sb.helpers.rawIteratorReduceBase({ each: (innerOptions) => { sb.emitOp(node, 'OVER'); sb.emitSysCall(node, 'Neo.Enumerator.Value'); sb.emitOp(node, 'ROT'); sb.emitSysCall(node, 'Neo.Iterator.Key'); if (this.deserializeKey) { sb.emitSysCall(node, 'Neo.Runtime.Deserialize'); } sb.emitOp(node, 'ROT'); this.each(innerOptions); }, })); } } //# sourceMappingURL=RawIteratorReduceHelper.js.map