@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
26 lines (24 loc) • 3.42 kB
JavaScript
;
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=