UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

26 lines (24 loc) 3.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const typescript_1 = tslib_1.__importDefault(require("typescript")); const constants_1 = require("../constants"); const NodeCompiler_1 = require("../NodeCompiler"); class ArrowFunctionCompiler extends NodeCompiler_1.NodeCompiler { constructor() { super(...arguments); this.kind = typescript_1.default.SyntaxKind.ArrowFunction; } visitNode(sb, expr, options) { if (options.pushValue) { sb.scope.getThis(sb, expr, options); sb.emitHelper(expr, options, sb.helpers.createCallArray); sb.emitHelper(expr, options, sb.helpers.bindFunctionThis({ overwrite: true })); sb.emitHelper(expr, options, sb.helpers.createFunctionObject({ property: constants_1.InternalObjectProperty.Call, })); } } } exports.ArrowFunctionCompiler = ArrowFunctionCompiler; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFycm93RnVuY3Rpb25Db21waWxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvRUFBNEI7QUFDNUIsNENBQXNEO0FBQ3RELGtEQUErQztBQUkvQyxNQUFhLHFCQUFzQixTQUFRLDJCQUE4QjtJQUF6RTs7UUFDa0IsU0FBSSxHQUFHLG9CQUFFLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQW9CckQsQ0FBQztJQWxCUSxTQUFTLENBQUMsRUFBaUIsRUFBRSxJQUFzQixFQUFFLE9BQXFCO1FBQy9FLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUVyQixFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRXBDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBRXpELEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztZQUUvRSxFQUFFLENBQUMsVUFBVSxDQUNYLElBQUksRUFDSixPQUFPLEVBQ1AsRUFBRSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQztnQkFDOUIsUUFBUSxFQUFFLGtDQUFzQixDQUFDLElBQUk7YUFDdEMsQ0FBQyxDQUNILENBQUM7U0FDSDtJQUNILENBQUM7Q0FDRjtBQXJCRCxzREFxQkMiLCJmaWxlIjoibmVvLW9uZS1zbWFydC1jb250cmFjdC1jb21waWxlci9zcmMvY29tcGlsZS9leHByZXNzaW9uL0Fycm93RnVuY3Rpb25Db21waWxlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7IEludGVybmFsT2JqZWN0UHJvcGVydHkgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgTm9kZUNvbXBpbGVyIH0gZnJvbSAnLi4vTm9kZUNvbXBpbGVyJztcbmltcG9ydCB7IFNjcmlwdEJ1aWxkZXIgfSBmcm9tICcuLi9zYic7XG5pbXBvcnQgeyBWaXNpdE9wdGlvbnMgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBBcnJvd0Z1bmN0aW9uQ29tcGlsZXIgZXh0ZW5kcyBOb2RlQ29tcGlsZXI8dHMuQXJyb3dGdW5jdGlvbj4ge1xuICBwdWJsaWMgcmVhZG9ubHkga2luZCA9IHRzLlN5bnRheEtpbmQuQXJyb3dGdW5jdGlvbjtcblxuICBwdWJsaWMgdmlzaXROb2RlKHNiOiBTY3JpcHRCdWlsZGVyLCBleHByOiB0cy5BcnJvd0Z1bmN0aW9uLCBvcHRpb25zOiBWaXNpdE9wdGlvbnMpOiB2b2lkIHtcbiAgICBpZiAob3B0aW9ucy5wdXNoVmFsdWUpIHtcbiAgICAgIC8vIFt0aGlzXVxuICAgICAgc2Iuc2NvcGUuZ2V0VGhpcyhzYiwgZXhwciwgb3B0aW9ucyk7XG4gICAgICAvLyBbY2FsbEFycmF5LCB0aGlzXVxuICAgICAgc2IuZW1pdEhlbHBlcihleHByLCBvcHRpb25zLCBzYi5oZWxwZXJzLmNyZWF0ZUNhbGxBcnJheSk7XG4gICAgICAvLyBbY2FsbEFycmF5XVxuICAgICAgc2IuZW1pdEhlbHBlcihleHByLCBvcHRpb25zLCBzYi5oZWxwZXJzLmJpbmRGdW5jdGlvblRoaXMoeyBvdmVyd3JpdGU6IHRydWUgfSkpO1xuICAgICAgLy8gW2NhbGxPYmplY3RWYWxdXG4gICAgICBzYi5lbWl0SGVscGVyKFxuICAgICAgICBleHByLFxuICAgICAgICBvcHRpb25zLFxuICAgICAgICBzYi5oZWxwZXJzLmNyZWF0ZUZ1bmN0aW9uT2JqZWN0KHtcbiAgICAgICAgICBwcm9wZXJ0eTogSW50ZXJuYWxPYmplY3RQcm9wZXJ0eS5DYWxsLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=