Sha256: bbdb2bc1d91d3dd67afc0f3b0296eba9c1b1ce70a5942f229b437d2b13204eb1
Contents?: true
Size: 1.05 KB
Versions: 33
Compression:
Stored size: 1.05 KB
Contents
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = optimiseCallExpression; var _t = require("@babel/types"); const { callExpression, identifier, isIdentifier, isSpreadElement, memberExpression, optionalCallExpression, optionalMemberExpression } = _t; function optimiseCallExpression(callee, thisNode, args, optional) { if (args.length === 1 && isSpreadElement(args[0]) && isIdentifier(args[0].argument, { name: "arguments" })) { if (optional) { return optionalCallExpression(optionalMemberExpression(callee, identifier("apply"), false, true), [thisNode, args[0].argument], false); } return callExpression(memberExpression(callee, identifier("apply")), [thisNode, args[0].argument]); } else { if (optional) { return optionalCallExpression(optionalMemberExpression(callee, identifier("call"), false, true), [thisNode, ...args], false); } return callExpression(memberExpression(callee, identifier("call")), [thisNode, ...args]); } } //# sourceMappingURL=index.js.map
Version data entries
33 entries across 33 versions & 2 rubygems