20 lines
		
	
	
		
			687 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			20 lines
		
	
	
		
			687 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | 'use strict'; | ||
|  | 
 | ||
|  | var GetIntrinsic = require('get-intrinsic'); | ||
|  | 
 | ||
|  | var callBindBasic = require('call-bind-apply-helpers'); | ||
|  | 
 | ||
|  | /** @type {(thisArg: string, searchString: string, position?: number) => number} */ | ||
|  | var $indexOf = callBindBasic([GetIntrinsic('%String.prototype.indexOf%')]); | ||
|  | 
 | ||
|  | /** @type {import('.')} */ | ||
|  | module.exports = function callBoundIntrinsic(name, allowMissing) { | ||
|  | 	/* eslint no-extra-parens: 0 */ | ||
|  | 
 | ||
|  | 	var intrinsic = /** @type {(this: unknown, ...args: unknown[]) => unknown} */ (GetIntrinsic(name, !!allowMissing)); | ||
|  | 	if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) { | ||
|  | 		return callBindBasic(/** @type {const} */ ([intrinsic])); | ||
|  | 	} | ||
|  | 	return intrinsic; | ||
|  | }; |