UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

28 lines (26 loc) 883 B
import { Helper } from '../Helper'; export class HandleUndefinedStorageHelper extends Helper { constructor({ handleUndefined, handleDefined }) { super(); this.handleUndefined = handleUndefined; this.handleDefined = handleDefined; } emit(sb, node, optionsIn) { const options = sb.pushValueOptions(optionsIn); sb.emitHelper(node, options, sb.helpers.if({ condition: () => { sb.emitOp(node, 'DUP'); sb.emitPushBuffer(node, Buffer.alloc(0, 0)); sb.emitOp(node, 'EQUAL'); }, whenTrue: () => { sb.emitOp(node, 'DROP'); this.handleUndefined(); }, whenFalse: () => { this.handleDefined(); }, })); } } //# sourceMappingURL=HandleUndefinedStorageHelper.js.map