UNPKG

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

Version:

NEO•ONE TypeScript smart contract compiler.

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