UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

32 lines (30 loc) 1.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.HandleUndefinedStorageHelper = void 0; const Helper_1 = require("../Helper"); class HandleUndefinedStorageHelper extends Helper_1.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(); }, })); } } exports.HandleUndefinedStorageHelper = HandleUndefinedStorageHelper; //# sourceMappingURL=HandleUndefinedStorageHelper.js.map