UNPKG

@neo-one/smart-contract-compiler-esnext-esm

Version:

NEO•ONE TypeScript smart contract compiler.

52 lines (50 loc) 1.72 kB
import { TypedHelper } from '../TypedHelper'; export class ToNullishBooleanHelper extends TypedHelper { emit(sb, node, options) { if (!options.pushValue) { sb.emitOp(node, 'DROP'); return; } const convertUndefinedOrNull = () => { sb.emitOp(node, 'DROP'); sb.emitPushBoolean(node, false); }; const convertOther = () => { sb.emitOp(node, 'DROP'); sb.emitPushBoolean(node, true); }; sb.emitHelper(node, options, sb.helpers.forBuiltinType({ type: this.type, knownType: this.knownType, array: convertOther, arrayStorage: convertOther, boolean: convertOther, buffer: convertOther, null: convertUndefinedOrNull, number: convertOther, object: convertOther, string: convertOther, symbol: convertOther, undefined: convertUndefinedOrNull, map: convertOther, mapStorage: convertOther, set: convertOther, setStorage: convertOther, error: convertOther, forwardValue: convertOther, iteratorResult: convertOther, iterable: convertOther, iterableIterator: convertOther, transaction: convertOther, output: convertOther, attribute: convertOther, input: convertOther, account: convertOther, asset: convertOther, contract: convertOther, header: convertOther, block: convertOther, })); } } //# sourceMappingURL=ToNullishBooleanHelper.js.map