@neo-one/smart-contract-compiler-esnext-esm
Version:
NEO•ONE TypeScript smart contract compiler.
54 lines (52 loc) • 1.78 kB
JavaScript
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