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