UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

55 lines (53 loc) 5.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const TypedHelper_1 = require("./TypedHelper"); class IsNullOrUndefinedHelper extends TypedHelper_1.TypedHelper { emit(sb, node, options) { if (!options.pushValue) { sb.emitOp(node, 'DROP'); return; } const pushFalse = () => { sb.emitOp(node, 'DROP'); sb.emitPushBoolean(node, false); }; const pushTrue = () => { sb.emitOp(node, 'DROP'); sb.emitPushBoolean(node, true); }; sb.emitHelper(node, options, sb.helpers.forBuiltinType({ type: this.type, knownType: this.knownType, array: pushFalse, arrayStorage: pushFalse, boolean: pushFalse, buffer: pushFalse, null: pushTrue, number: pushFalse, object: pushFalse, string: pushFalse, symbol: pushFalse, undefined: pushTrue, map: pushFalse, mapStorage: pushFalse, set: pushFalse, setStorage: pushFalse, error: pushFalse, forwardValue: pushFalse, iteratorResult: pushFalse, iterable: pushFalse, iterableIterator: pushFalse, transaction: pushFalse, output: pushFalse, attribute: pushFalse, input: pushFalse, account: pushFalse, asset: pushFalse, contract: pushFalse, header: pushFalse, block: pushFalse, })); } } exports.IsNullOrUndefinedHelper = IsNullOrUndefinedHelper; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIklzTnVsbE9yVW5kZWZpbmVkSGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0EsK0NBQTRDO0FBSTVDLE1BQWEsdUJBQXdCLFNBQVEseUJBQVc7SUFDL0MsSUFBSSxDQUFDLEVBQWlCLEVBQUUsSUFBYSxFQUFFLE9BQXFCO1FBQ2pFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ3RCLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBRXhCLE9BQU87U0FDUjtRQUVELE1BQU0sU0FBUyxHQUFHLEdBQUcsRUFBRTtZQUNyQixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN4QixFQUFFLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUM7UUFFRixNQUFNLFFBQVEsR0FBRyxHQUFHLEVBQUU7WUFDcEIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDeEIsRUFBRSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDO1FBRUYsRUFBRSxDQUFDLFVBQVUsQ0FDWCxJQUFJLEVBQ0osT0FBTyxFQUNQLEVBQUUsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQ3hCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixLQUFLLEVBQUUsU0FBUztZQUNoQixZQUFZLEVBQUUsU0FBUztZQUN2QixPQUFPLEVBQUUsU0FBUztZQUNsQixNQUFNLEVBQUUsU0FBUztZQUNqQixJQUFJLEVBQUUsUUFBUTtZQUNkLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLFNBQVMsRUFBRSxRQUFRO1lBQ25CLEdBQUcsRUFBRSxTQUFTO1lBQ2QsVUFBVSxFQUFFLFNBQVM7WUFDckIsR0FBRyxFQUFFLFNBQVM7WUFDZCxVQUFVLEVBQUUsU0FBUztZQUNyQixLQUFLLEVBQUUsU0FBUztZQUNoQixZQUFZLEVBQUUsU0FBUztZQUN2QixjQUFjLEVBQUUsU0FBUztZQUN6QixRQUFRLEVBQUUsU0FBUztZQUNuQixnQkFBZ0IsRUFBRSxTQUFTO1lBQzNCLFdBQVcsRUFBRSxTQUFTO1lBQ3RCLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLEtBQUssRUFBRSxTQUFTO1lBQ2hCLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLEtBQUssRUFBRSxTQUFTO1lBQ2hCLFFBQVEsRUFBRSxTQUFTO1lBQ25CLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLEtBQUssRUFBRSxTQUFTO1NBQ2pCLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBdkRELDBEQXVEQyIsImZpbGUiOiJuZW8tb25lLXNtYXJ0LWNvbnRyYWN0LWNvbXBpbGVyL3NyYy9jb21waWxlL2hlbHBlci90eXBlcy9Jc051bGxPclVuZGVmaW5lZEhlbHBlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7IFNjcmlwdEJ1aWxkZXIgfSBmcm9tICcuLi8uLi9zYic7XG5pbXBvcnQgeyBWaXNpdE9wdGlvbnMgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBUeXBlZEhlbHBlciB9IGZyb20gJy4vVHlwZWRIZWxwZXInO1xuXG4vLyBJbnB1dDogW3ZhbF1cbi8vIE91dHB1dDogW2Jvb2xlYW5dXG5leHBvcnQgY2xhc3MgSXNOdWxsT3JVbmRlZmluZWRIZWxwZXIgZXh0ZW5kcyBUeXBlZEhlbHBlciB7XG4gIHB1YmxpYyBlbWl0KHNiOiBTY3JpcHRCdWlsZGVyLCBub2RlOiB0cy5Ob2RlLCBvcHRpb25zOiBWaXNpdE9wdGlvbnMpOiB2b2lkIHtcbiAgICBpZiAoIW9wdGlvbnMucHVzaFZhbHVlKSB7XG4gICAgICBzYi5lbWl0T3Aobm9kZSwgJ0RST1AnKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHB1c2hGYWxzZSA9ICgpID0+IHtcbiAgICAgIHNiLmVtaXRPcChub2RlLCAnRFJPUCcpO1xuICAgICAgc2IuZW1pdFB1c2hCb29sZWFuKG5vZGUsIGZhbHNlKTtcbiAgICB9O1xuXG4gICAgY29uc3QgcHVzaFRydWUgPSAoKSA9PiB7XG4gICAgICBzYi5lbWl0T3Aobm9kZSwgJ0RST1AnKTtcbiAgICAgIHNiLmVtaXRQdXNoQm9vbGVhbihub2RlLCB0cnVlKTtcbiAgICB9O1xuXG4gICAgc2IuZW1pdEhlbHBlcihcbiAgICAgIG5vZGUsXG4gICAgICBvcHRpb25zLFxuICAgICAgc2IuaGVscGVycy5mb3JCdWlsdGluVHlwZSh7XG4gICAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgICAga25vd25UeXBlOiB0aGlzLmtub3duVHlwZSxcbiAgICAgICAgYXJyYXk6IHB1c2hGYWxzZSxcbiAgICAgICAgYXJyYXlTdG9yYWdlOiBwdXNoRmFsc2UsXG4gICAgICAgIGJvb2xlYW46IHB1c2hGYWxzZSxcbiAgICAgICAgYnVmZmVyOiBwdXNoRmFsc2UsXG4gICAgICAgIG51bGw6IHB1c2hUcnVlLFxuICAgICAgICBudW1iZXI6IHB1c2hGYWxzZSxcbiAgICAgICAgb2JqZWN0OiBwdXNoRmFsc2UsXG4gICAgICAgIHN0cmluZzogcHVzaEZhbHNlLFxuICAgICAgICBzeW1ib2w6IHB1c2hGYWxzZSxcbiAgICAgICAgdW5kZWZpbmVkOiBwdXNoVHJ1ZSxcbiAgICAgICAgbWFwOiBwdXNoRmFsc2UsXG4gICAgICAgIG1hcFN0b3JhZ2U6IHB1c2hGYWxzZSxcbiAgICAgICAgc2V0OiBwdXNoRmFsc2UsXG4gICAgICAgIHNldFN0b3JhZ2U6IHB1c2hGYWxzZSxcbiAgICAgICAgZXJyb3I6IHB1c2hGYWxzZSxcbiAgICAgICAgZm9yd2FyZFZhbHVlOiBwdXNoRmFsc2UsXG4gICAgICAgIGl0ZXJhdG9yUmVzdWx0OiBwdXNoRmFsc2UsXG4gICAgICAgIGl0ZXJhYmxlOiBwdXNoRmFsc2UsXG4gICAgICAgIGl0ZXJhYmxlSXRlcmF0b3I6IHB1c2hGYWxzZSxcbiAgICAgICAgdHJhbnNhY3Rpb246IHB1c2hGYWxzZSxcbiAgICAgICAgb3V0cHV0OiBwdXNoRmFsc2UsXG4gICAgICAgIGF0dHJpYnV0ZTogcHVzaEZhbHNlLFxuICAgICAgICBpbnB1dDogcHVzaEZhbHNlLFxuICAgICAgICBhY2NvdW50OiBwdXNoRmFsc2UsXG4gICAgICAgIGFzc2V0OiBwdXNoRmFsc2UsXG4gICAgICAgIGNvbnRyYWN0OiBwdXNoRmFsc2UsXG4gICAgICAgIGhlYWRlcjogcHVzaEZhbHNlLFxuICAgICAgICBibG9jazogcHVzaEZhbHNlLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxufVxuIl19