UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

34 lines (32 loc) 1.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ThrowHelper = void 0; const constants_1 = require("../../constants"); const Helper_1 = require("../Helper"); class ThrowHelper extends Helper_1.Helper { emit(sb, node, optionsIn) { const options = sb.pushValueOptions(optionsIn); sb.emitOp(node, 'DUP'); sb.emitHelper(node, options, sb.helpers.if({ condition: () => { sb.emitOp(node, 'DUP'); sb.emitHelper(node, options, sb.helpers.isString); }, whenFalse: () => { sb.emitHelper(node, options, sb.helpers.unwrapError); sb.emitPushInt(node, constants_1.ErrorSlots.message); sb.emitOp(node, 'PICKITEM'); }, })); sb.emitHelper(node, options, sb.helpers.unwrapString); sb.emitLine(node); sb.emitOp(node, 'SWAP'); sb.emitPushString(node, 'error'); sb.emitPushInt(node, 3); sb.emitOp(node, 'PACK'); sb.emitSysCall(node, 'Neo.Runtime.Notify'); sb.emitHelper(node, optionsIn, sb.helpers.throwCompletion); } } exports.ThrowHelper = ThrowHelper; //# sourceMappingURL=ThrowHelper.js.map