提交学习笔记专用
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

19 lines
687 B

  1. 'use strict';
  2. var GetIntrinsic = require('get-intrinsic');
  3. var callBindBasic = require('call-bind-apply-helpers');
  4. /** @type {(thisArg: string, searchString: string, position?: number) => number} */
  5. var $indexOf = callBindBasic([GetIntrinsic('%String.prototype.indexOf%')]);
  6. /** @type {import('.')} */
  7. module.exports = function callBoundIntrinsic(name, allowMissing) {
  8. /* eslint no-extra-parens: 0 */
  9. var intrinsic = /** @type {(this: unknown, ...args: unknown[]) => unknown} */ (GetIntrinsic(name, !!allowMissing));
  10. if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {
  11. return callBindBasic(/** @type {const} */ ([intrinsic]));
  12. }
  13. return intrinsic;
  14. };