UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

69 lines (67 loc) 8.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const TypedHelper_1 = require("../TypedHelper"); class ToBooleanHelper extends TypedHelper_1.TypedHelper { emit(sb, node, options) { if (!options.pushValue) { sb.emitOp(node, 'DROP'); return; } const convertUndefinedOrNull = () => { sb.emitOp(node, 'DROP'); sb.emitPushBoolean(node, false); }; const convertBoolean = (innerOptions) => { sb.emitHelper(node, innerOptions, sb.helpers.unwrapBoolean); }; const convertNumber = (innerOptions) => { sb.emitHelper(node, innerOptions, sb.helpers.unwrapNumber); sb.emitPushInt(node, 0); sb.emitOp(node, 'NUMNOTEQUAL'); }; const convertString = (innerOptions) => { sb.emitHelper(node, innerOptions, sb.helpers.unwrapString); sb.emitPushString(node, ''); sb.emitOp(node, 'EQUAL'); sb.emitOp(node, 'NOT'); }; 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: convertBoolean, buffer: convertOther, null: convertUndefinedOrNull, number: convertNumber, object: convertOther, string: convertString, 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, })); } } exports.ToBooleanHelper = ToBooleanHelper; //# sourceMappingURL=data:application/json;charset=utf8;base64,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RSxZQUFZO1lBQ3BCLFNBQVMsRUFBRSxZQUFZO1lBQ3ZCLEtBQUssRUFBRSxZQUFZO1lBQ25CLE9BQU8sRUFBRSxZQUFZO1lBQ3JCLEtBQUssRUFBRSxZQUFZO1lBQ25CLFFBQVEsRUFBRSxZQUFZO1lBQ3RCLE1BQU0sRUFBRSxZQUFZO1lBQ3BCLEtBQUssRUFBRSxZQUFZO1NBQ3BCLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBMUVELDBDQTBFQyIsImZpbGUiOiJuZW8tb25lLXNtYXJ0LWNvbnRyYWN0LWNvbXBpbGVyL3NyYy9jb21waWxlL2hlbHBlci90eXBlcy9ib29sZWFuL1RvQm9vbGVhbkhlbHBlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7IFNjcmlwdEJ1aWxkZXIgfSBmcm9tICcuLi8uLi8uLi9zYic7XG5pbXBvcnQgeyBWaXNpdE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBUeXBlZEhlbHBlciB9IGZyb20gJy4uL1R5cGVkSGVscGVyJztcblxuLy8gSW5wdXQ6IFt2YWxdXG4vLyBPdXRwdXQ6IFtib29sZWFuXVxuZXhwb3J0IGNsYXNzIFRvQm9vbGVhbkhlbHBlciBleHRlbmRzIFR5cGVkSGVscGVyIHtcbiAgcHVibGljIGVtaXQoc2I6IFNjcmlwdEJ1aWxkZXIsIG5vZGU6IHRzLk5vZGUsIG9wdGlvbnM6IFZpc2l0T3B0aW9ucyk6IHZvaWQge1xuICAgIGlmICghb3B0aW9ucy5wdXNoVmFsdWUpIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICBzYi5lbWl0T3Aobm9kZSwgJ0RST1AnKTtcblxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb252ZXJ0VW5kZWZpbmVkT3JOdWxsID0gKCkgPT4ge1xuICAgICAgc2IuZW1pdE9wKG5vZGUsICdEUk9QJyk7XG4gICAgICBzYi5lbWl0UHVzaEJvb2xlYW4obm9kZSwgZmFsc2UpO1xuICAgIH07XG5cbiAgICBjb25zdCBjb252ZXJ0Qm9vbGVhbiA9IChpbm5lck9wdGlvbnM6IFZpc2l0T3B0aW9ucykgPT4ge1xuICAgICAgc2IuZW1pdEhlbHBlcihub2RlLCBpbm5lck9wdGlvbnMsIHNiLmhlbHBlcnMudW53cmFwQm9vbGVhbik7XG4gICAgfTtcblxuICAgIGNvbnN0IGNvbnZlcnROdW1iZXIgPSAoaW5uZXJPcHRpb25zOiBWaXNpdE9wdGlvbnMpID0+IHtcbiAgICAgIHNiLmVtaXRIZWxwZXIobm9kZSwgaW5uZXJPcHRpb25zLCBzYi5oZWxwZXJzLnVud3JhcE51bWJlcik7XG4gICAgICBzYi5lbWl0UHVzaEludChub2RlLCAwKTtcbiAgICAgIHNiLmVtaXRPcChub2RlLCAnTlVNTk9URVFVQUwnKTtcbiAgICB9O1xuXG4gICAgY29uc3QgY29udmVydFN0cmluZyA9IChpbm5lck9wdGlvbnM6IFZpc2l0T3B0aW9ucykgPT4ge1xuICAgICAgc2IuZW1pdEhlbHBlcihub2RlLCBpbm5lck9wdGlvbnMsIHNiLmhlbHBlcnMudW53cmFwU3RyaW5nKTtcbiAgICAgIHNiLmVtaXRQdXNoU3RyaW5nKG5vZGUsICcnKTtcbiAgICAgIHNiLmVtaXRPcChub2RlLCAnRVFVQUwnKTtcbiAgICAgIHNiLmVtaXRPcChub2RlLCAnTk9UJyk7XG4gICAgfTtcblxuICAgIGNvbnN0IGNvbnZlcnRPdGhlciA9ICgpID0+IHtcbiAgICAgIHNiLmVtaXRPcChub2RlLCAnRFJPUCcpO1xuICAgICAgc2IuZW1pdFB1c2hCb29sZWFuKG5vZGUsIHRydWUpO1xuICAgIH07XG5cbiAgICBzYi5lbWl0SGVscGVyKFxuICAgICAgbm9kZSxcbiAgICAgIG9wdGlvbnMsXG4gICAgICBzYi5oZWxwZXJzLmZvckJ1aWx0aW5UeXBlKHtcbiAgICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgICBrbm93blR5cGU6IHRoaXMua25vd25UeXBlLFxuICAgICAgICBhcnJheTogY29udmVydE90aGVyLFxuICAgICAgICBhcnJheVN0b3JhZ2U6IGNvbnZlcnRPdGhlcixcbiAgICAgICAgYm9vbGVhbjogY29udmVydEJvb2xlYW4sXG4gICAgICAgIGJ1ZmZlcjogY29udmVydE90aGVyLFxuICAgICAgICBudWxsOiBjb252ZXJ0VW5kZWZpbmVkT3JOdWxsLFxuICAgICAgICBudW1iZXI6IGNvbnZlcnROdW1iZXIsXG4gICAgICAgIG9iamVjdDogY29udmVydE90aGVyLFxuICAgICAgICBzdHJpbmc6IGNvbnZlcnRTdHJpbmcsXG4gICAgICAgIHN5bWJvbDogY29udmVydE90aGVyLFxuICAgICAgICB1bmRlZmluZWQ6IGNvbnZlcnRVbmRlZmluZWRPck51bGwsXG4gICAgICAgIG1hcDogY29udmVydE90aGVyLFxuICAgICAgICBtYXBTdG9yYWdlOiBjb252ZXJ0T3RoZXIsXG4gICAgICAgIHNldDogY29udmVydE90aGVyLFxuICAgICAgICBzZXRTdG9yYWdlOiBjb252ZXJ0T3RoZXIsXG4gICAgICAgIGVycm9yOiBjb252ZXJ0T3RoZXIsXG4gICAgICAgIGZvcndhcmRWYWx1ZTogY29udmVydE90aGVyLFxuICAgICAgICBpdGVyYXRvclJlc3VsdDogY29udmVydE90aGVyLFxuICAgICAgICBpdGVyYWJsZTogY29udmVydE90aGVyLFxuICAgICAgICBpdGVyYWJsZUl0ZXJhdG9yOiBjb252ZXJ0T3RoZXIsXG4gICAgICAgIHRyYW5zYWN0aW9uOiBjb252ZXJ0T3RoZXIsXG4gICAgICAgIG91dHB1dDogY29udmVydE90aGVyLFxuICAgICAgICBhdHRyaWJ1dGU6IGNvbnZlcnRPdGhlcixcbiAgICAgICAgaW5wdXQ6IGNvbnZlcnRPdGhlcixcbiAgICAgICAgYWNjb3VudDogY29udmVydE90aGVyLFxuICAgICAgICBhc3NldDogY29udmVydE90aGVyLFxuICAgICAgICBjb250cmFjdDogY29udmVydE90aGVyLFxuICAgICAgICBoZWFkZXI6IGNvbnZlcnRPdGhlcixcbiAgICAgICAgYmxvY2s6IGNvbnZlcnRPdGhlcixcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==