forked from dachan/dach
		
	a lot of changes
This commit is contained in:
		
							
								
								
									
										1
									
								
								node_modules/call-bind/.eslintignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/call-bind/.eslintignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
coverage/
 | 
			
		||||
							
								
								
									
										16
									
								
								node_modules/call-bind/.eslintrc
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								node_modules/call-bind/.eslintrc
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
{
 | 
			
		||||
	"root": true,
 | 
			
		||||
 | 
			
		||||
	"extends": "@ljharb",
 | 
			
		||||
 | 
			
		||||
	"rules": {
 | 
			
		||||
		"func-name-matching": 0,
 | 
			
		||||
		"id-length": 0,
 | 
			
		||||
		"new-cap": [2, {
 | 
			
		||||
			"capIsNewExceptions": [
 | 
			
		||||
				"GetIntrinsic",
 | 
			
		||||
			],
 | 
			
		||||
		}],
 | 
			
		||||
		"no-magic-numbers": 0,
 | 
			
		||||
	},
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										12
									
								
								node_modules/call-bind/.github/FUNDING.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								node_modules/call-bind/.github/FUNDING.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
# These are supported funding model platforms
 | 
			
		||||
 | 
			
		||||
github: [ljharb]
 | 
			
		||||
patreon: # Replace with a single Patreon username
 | 
			
		||||
open_collective: # Replace with a single Open Collective username
 | 
			
		||||
ko_fi: # Replace with a single Ko-fi username
 | 
			
		||||
tidelift: npm/call-bind
 | 
			
		||||
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
 | 
			
		||||
liberapay: # Replace with a single Liberapay username
 | 
			
		||||
issuehunt: # Replace with a single IssueHunt username
 | 
			
		||||
otechie: # Replace with a single Otechie username
 | 
			
		||||
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
 | 
			
		||||
							
								
								
									
										9
									
								
								node_modules/call-bind/.nycrc
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								node_modules/call-bind/.nycrc
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
{
 | 
			
		||||
	"all": true,
 | 
			
		||||
	"check-coverage": false,
 | 
			
		||||
	"reporter": ["text-summary", "text", "html", "json"],
 | 
			
		||||
	"exclude": [
 | 
			
		||||
		"coverage",
 | 
			
		||||
		"test"
 | 
			
		||||
	]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										77
									
								
								node_modules/call-bind/CHANGELOG.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								node_modules/call-bind/CHANGELOG.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,77 @@
 | 
			
		||||
# Changelog
 | 
			
		||||
 | 
			
		||||
All notable changes to this project will be documented in this file.
 | 
			
		||||
 | 
			
		||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 | 
			
		||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 | 
			
		||||
 | 
			
		||||
## [v1.0.5](https://github.com/ljharb/call-bind/compare/v1.0.4...v1.0.5) - 2023-10-19
 | 
			
		||||
 | 
			
		||||
### Commits
 | 
			
		||||
 | 
			
		||||
- [Fix] throw an error on non-functions as early as possible [`f262408`](https://github.com/ljharb/call-bind/commit/f262408f822c840fbc268080f3ad7c429611066d)
 | 
			
		||||
- [Deps] update `set-function-length` [`3fff271`](https://github.com/ljharb/call-bind/commit/3fff27145a1e3a76a5b74f1d7c3c43d0fa3b9871)
 | 
			
		||||
 | 
			
		||||
## [v1.0.4](https://github.com/ljharb/call-bind/compare/v1.0.3...v1.0.4) - 2023-10-19
 | 
			
		||||
 | 
			
		||||
## [v1.0.3](https://github.com/ljharb/call-bind/compare/v1.0.2...v1.0.3) - 2023-10-19
 | 
			
		||||
 | 
			
		||||
### Commits
 | 
			
		||||
 | 
			
		||||
- [actions] reuse common workflows [`a994df6`](https://github.com/ljharb/call-bind/commit/a994df69f401f4bf735a4ccd77029b85d1549453)
 | 
			
		||||
- [meta] use `npmignore` to autogenerate an npmignore file [`eef3ef2`](https://github.com/ljharb/call-bind/commit/eef3ef21e1f002790837fedb8af2679c761fbdf5)
 | 
			
		||||
- [readme] flesh out content [`1845ccf`](https://github.com/ljharb/call-bind/commit/1845ccfd9976a607884cfc7157c93192cc16cf22)
 | 
			
		||||
- [actions] use `node/install` instead of `node/run`; use `codecov` action [`5b47d53`](https://github.com/ljharb/call-bind/commit/5b47d53d2fd74af5ea0a44f1d51e503cd42f7a90)
 | 
			
		||||
- [Refactor] use `set-function-length` [`a0e165c`](https://github.com/ljharb/call-bind/commit/a0e165c5dc61db781cbc919b586b1c2b8da0b150)
 | 
			
		||||
- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`9c50103`](https://github.com/ljharb/call-bind/commit/9c50103f44137279a817317cf6cc421a658f85b4)
 | 
			
		||||
- [meta] simplify "exports" [`019c6d0`](https://github.com/ljharb/call-bind/commit/019c6d06b0e1246ceed8e579f57e44441cbbf6d9)
 | 
			
		||||
- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `safe-publish-latest`, `tape` [`23bd718`](https://github.com/ljharb/call-bind/commit/23bd718a288d3b03042062b4ef5153b3cea83f11)
 | 
			
		||||
- [actions] update codecov uploader [`62552d7`](https://github.com/ljharb/call-bind/commit/62552d79cc79e05825e99aaba134ae5b37f33da5)
 | 
			
		||||
- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`ec81665`](https://github.com/ljharb/call-bind/commit/ec81665b300f87eabff597afdc8b8092adfa7afd)
 | 
			
		||||
- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `tape` [`35d67fc`](https://github.com/ljharb/call-bind/commit/35d67fcea883e686650f736f61da5ddca2592de8)
 | 
			
		||||
- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`0266d8d`](https://github.com/ljharb/call-bind/commit/0266d8d2a45086a922db366d0c2932fa463662ff)
 | 
			
		||||
- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`43a5b28`](https://github.com/ljharb/call-bind/commit/43a5b28a444e710e1bbf92adb8afb5cf7523a223)
 | 
			
		||||
- [Deps] update `define-data-property`, `function-bind`, `get-intrinsic` [`780eb36`](https://github.com/ljharb/call-bind/commit/780eb36552514f8cc99c70821ce698697c2726a5)
 | 
			
		||||
- [Dev Deps] update `aud`, `tape` [`90d50ad`](https://github.com/ljharb/call-bind/commit/90d50ad03b061e0268b3380b0065fcaec183dc05)
 | 
			
		||||
- [meta] use `prepublishOnly` script for npm 7+ [`44c5433`](https://github.com/ljharb/call-bind/commit/44c5433b7980e02b4870007046407cf6fc543329)
 | 
			
		||||
- [Deps] update `get-intrinsic` [`86bfbfc`](https://github.com/ljharb/call-bind/commit/86bfbfcf34afdc6eabc93ce3d408548d0e27d958)
 | 
			
		||||
- [Deps] update `get-intrinsic` [`5c53354`](https://github.com/ljharb/call-bind/commit/5c5335489be0294c18cd7a8bb6e08226ee019ff5)
 | 
			
		||||
- [actions] update checkout action [`4c393a8`](https://github.com/ljharb/call-bind/commit/4c393a8173b3c8e5b30d5b3297b3b94d48bf87f3)
 | 
			
		||||
- [Deps] update `get-intrinsic` [`4e70bde`](https://github.com/ljharb/call-bind/commit/4e70bdec0626acb11616d66250fc14565e716e91)
 | 
			
		||||
- [Deps] update `get-intrinsic` [`55ae803`](https://github.com/ljharb/call-bind/commit/55ae803a920bd93c369cd798c20de31f91e9fc60)
 | 
			
		||||
 | 
			
		||||
## [v1.0.2](https://github.com/ljharb/call-bind/compare/v1.0.1...v1.0.2) - 2021-01-11
 | 
			
		||||
 | 
			
		||||
### Commits
 | 
			
		||||
 | 
			
		||||
- [Fix] properly include the receiver in the bound length [`dbae7bc`](https://github.com/ljharb/call-bind/commit/dbae7bc676c079a0d33c0a43e9ef92cb7b01345d)
 | 
			
		||||
 | 
			
		||||
## [v1.0.1](https://github.com/ljharb/call-bind/compare/v1.0.0...v1.0.1) - 2021-01-08
 | 
			
		||||
 | 
			
		||||
### Commits
 | 
			
		||||
 | 
			
		||||
- [Tests] migrate tests to Github Actions [`b6db284`](https://github.com/ljharb/call-bind/commit/b6db284c36f8ccd195b88a6764fe84b7223a0da1)
 | 
			
		||||
- [meta] do not publish github action workflow files [`ec7fe46`](https://github.com/ljharb/call-bind/commit/ec7fe46e60cfa4764ee943d2755f5e5a366e578e)
 | 
			
		||||
- [Fix] preserve original function’s length when possible [`adbceaa`](https://github.com/ljharb/call-bind/commit/adbceaa3cac4b41ea78bb19d7ccdbaaf7e0bdadb)
 | 
			
		||||
- [Tests] gather coverage data on every job [`d69e23c`](https://github.com/ljharb/call-bind/commit/d69e23cc65f101ba1d4c19bb07fa8eb0ec624be8)
 | 
			
		||||
- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`2fd3586`](https://github.com/ljharb/call-bind/commit/2fd3586c5d47b335364c14293114c6b625ae1f71)
 | 
			
		||||
- [Deps] update `get-intrinsic` [`f23e931`](https://github.com/ljharb/call-bind/commit/f23e9318cc271c2add8bb38cfded85ee7baf8eee)
 | 
			
		||||
- [Deps] update `get-intrinsic` [`72d9f44`](https://github.com/ljharb/call-bind/commit/72d9f44e184465ba8dd3fb48260bbcff234985f2)
 | 
			
		||||
- [meta] fix FUNDING.yml [`e723573`](https://github.com/ljharb/call-bind/commit/e723573438c5a68dcec31fb5d96ea6b7e4a93be8)
 | 
			
		||||
- [eslint] ignore coverage output [`15e76d2`](https://github.com/ljharb/call-bind/commit/15e76d28a5f43e504696401e5b31ebb78ee1b532)
 | 
			
		||||
- [meta] add Automatic Rebase and Require Allow Edits workflows [`8fa4dab`](https://github.com/ljharb/call-bind/commit/8fa4dabb23ba3dd7bb92c9571c1241c08b56e4b6)
 | 
			
		||||
 | 
			
		||||
## v1.0.0 - 2020-10-30
 | 
			
		||||
 | 
			
		||||
### Commits
 | 
			
		||||
 | 
			
		||||
- Initial commit [`306cf98`](https://github.com/ljharb/call-bind/commit/306cf98c7ec9e7ef66b653ec152277ac1381eb50)
 | 
			
		||||
- Tests [`e10d0bb`](https://github.com/ljharb/call-bind/commit/e10d0bbdadc7a10ecedc9a1c035112d3e368b8df)
 | 
			
		||||
- Implementation [`43852ed`](https://github.com/ljharb/call-bind/commit/43852eda0f187327b7fad2423ca972149a52bd65)
 | 
			
		||||
- npm init [`408f860`](https://github.com/ljharb/call-bind/commit/408f860b773a2f610805fd3613d0d71bac1b6249)
 | 
			
		||||
- [meta] add Automatic Rebase and Require Allow Edits workflows [`fb349b2`](https://github.com/ljharb/call-bind/commit/fb349b2e48defbec8b5ec8a8395cc8f69f220b13)
 | 
			
		||||
- [meta] add `auto-changelog` [`c4001fc`](https://github.com/ljharb/call-bind/commit/c4001fc43031799ef908211c98d3b0fb2b60fde4)
 | 
			
		||||
- [meta] add "funding"; create `FUNDING.yml` [`d4d6d29`](https://github.com/ljharb/call-bind/commit/d4d6d2974a14bc2e98830468eda7fe6d6a776717)
 | 
			
		||||
- [Tests] add `npm run lint` [`dedfb98`](https://github.com/ljharb/call-bind/commit/dedfb98bd0ecefb08ddb9a94061bd10cde4332af)
 | 
			
		||||
- Only apps should have lockfiles [`54ac776`](https://github.com/ljharb/call-bind/commit/54ac77653db45a7361dc153d2f478e743f110650)
 | 
			
		||||
- [meta] add `safe-publish-latest` [`9ea8e43`](https://github.com/ljharb/call-bind/commit/9ea8e435b950ce9b705559cd651039f9bf40140f)
 | 
			
		||||
							
								
								
									
										21
									
								
								node_modules/call-bind/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								node_modules/call-bind/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
MIT License
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2020 Jordan Harband
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
			
		||||
of this software and associated documentation files (the "Software"), to deal
 | 
			
		||||
in the Software without restriction, including without limitation the rights
 | 
			
		||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
			
		||||
copies of the Software, and to permit persons to whom the Software is
 | 
			
		||||
furnished to do so, subject to the following conditions:
 | 
			
		||||
 | 
			
		||||
The above copyright notice and this permission notice shall be included in all
 | 
			
		||||
copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
			
		||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
			
		||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
			
		||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
			
		||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
			
		||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
			
		||||
SOFTWARE.
 | 
			
		||||
							
								
								
									
										64
									
								
								node_modules/call-bind/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								node_modules/call-bind/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,64 @@
 | 
			
		||||
# call-bind <sup>[![Version Badge][npm-version-svg]][package-url]</sup>
 | 
			
		||||
 | 
			
		||||
[![github actions][actions-image]][actions-url]
 | 
			
		||||
[![coverage][codecov-image]][codecov-url]
 | 
			
		||||
[![dependency status][deps-svg]][deps-url]
 | 
			
		||||
[![dev dependency status][dev-deps-svg]][dev-deps-url]
 | 
			
		||||
[![License][license-image]][license-url]
 | 
			
		||||
[![Downloads][downloads-image]][downloads-url]
 | 
			
		||||
 | 
			
		||||
[![npm badge][npm-badge-png]][package-url]
 | 
			
		||||
 | 
			
		||||
Robustly `.call.bind()` a function.
 | 
			
		||||
 | 
			
		||||
## Getting started
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
npm install --save call-bind
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Usage/Examples
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
const assert = require('assert');
 | 
			
		||||
const callBind = require('call-bind');
 | 
			
		||||
const callBound = require('call-bind/callBound');
 | 
			
		||||
 | 
			
		||||
function f(a, b) {
 | 
			
		||||
	assert.equal(this, 1);
 | 
			
		||||
	assert.equal(a, 2);
 | 
			
		||||
	assert.equal(b, 3);
 | 
			
		||||
	assert.equal(arguments.length, 2);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const fBound = callBind(f);
 | 
			
		||||
 | 
			
		||||
const slice = callBound('Array.prototype.slice');
 | 
			
		||||
 | 
			
		||||
delete Function.prototype.call;
 | 
			
		||||
delete Function.prototype.bind;
 | 
			
		||||
 | 
			
		||||
fBound(1, 2, 3);
 | 
			
		||||
 | 
			
		||||
assert.deepEqual(slice([1, 2, 3, 4], 1, -1), [2, 3]);
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Tests
 | 
			
		||||
 | 
			
		||||
Clone the repo, `npm install`, and run `npm test`
 | 
			
		||||
 | 
			
		||||
[package-url]: https://npmjs.org/package/call-bind
 | 
			
		||||
[npm-version-svg]: https://versionbadg.es/ljharb/call-bind.svg
 | 
			
		||||
[deps-svg]: https://david-dm.org/ljharb/call-bind.svg
 | 
			
		||||
[deps-url]: https://david-dm.org/ljharb/call-bind
 | 
			
		||||
[dev-deps-svg]: https://david-dm.org/ljharb/call-bind/dev-status.svg
 | 
			
		||||
[dev-deps-url]: https://david-dm.org/ljharb/call-bind#info=devDependencies
 | 
			
		||||
[npm-badge-png]: https://nodei.co/npm/call-bind.png?downloads=true&stars=true
 | 
			
		||||
[license-image]: https://img.shields.io/npm/l/call-bind.svg
 | 
			
		||||
[license-url]: LICENSE
 | 
			
		||||
[downloads-image]: https://img.shields.io/npm/dm/call-bind.svg
 | 
			
		||||
[downloads-url]: https://npm-stat.com/charts.html?package=call-bind
 | 
			
		||||
[codecov-image]: https://codecov.io/gh/ljharb/call-bind/branch/main/graphs/badge.svg
 | 
			
		||||
[codecov-url]: https://app.codecov.io/gh/ljharb/call-bind/
 | 
			
		||||
[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/call-bind
 | 
			
		||||
[actions-url]: https://github.com/ljharb/call-bind/actions
 | 
			
		||||
							
								
								
									
										15
									
								
								node_modules/call-bind/callBound.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								node_modules/call-bind/callBound.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
var GetIntrinsic = require('get-intrinsic');
 | 
			
		||||
 | 
			
		||||
var callBind = require('./');
 | 
			
		||||
 | 
			
		||||
var $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));
 | 
			
		||||
 | 
			
		||||
module.exports = function callBoundIntrinsic(name, allowMissing) {
 | 
			
		||||
	var intrinsic = GetIntrinsic(name, !!allowMissing);
 | 
			
		||||
	if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {
 | 
			
		||||
		return callBind(intrinsic);
 | 
			
		||||
	}
 | 
			
		||||
	return intrinsic;
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										44
									
								
								node_modules/call-bind/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								node_modules/call-bind/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,44 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
var bind = require('function-bind');
 | 
			
		||||
var GetIntrinsic = require('get-intrinsic');
 | 
			
		||||
var setFunctionLength = require('set-function-length');
 | 
			
		||||
 | 
			
		||||
var $TypeError = GetIntrinsic('%TypeError%');
 | 
			
		||||
var $apply = GetIntrinsic('%Function.prototype.apply%');
 | 
			
		||||
var $call = GetIntrinsic('%Function.prototype.call%');
 | 
			
		||||
var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);
 | 
			
		||||
 | 
			
		||||
var $defineProperty = GetIntrinsic('%Object.defineProperty%', true);
 | 
			
		||||
var $max = GetIntrinsic('%Math.max%');
 | 
			
		||||
 | 
			
		||||
if ($defineProperty) {
 | 
			
		||||
	try {
 | 
			
		||||
		$defineProperty({}, 'a', { value: 1 });
 | 
			
		||||
	} catch (e) {
 | 
			
		||||
		// IE 8 has a broken defineProperty
 | 
			
		||||
		$defineProperty = null;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = function callBind(originalFunction) {
 | 
			
		||||
	if (typeof originalFunction !== 'function') {
 | 
			
		||||
		throw new $TypeError('a function is required');
 | 
			
		||||
	}
 | 
			
		||||
	var func = $reflectApply(bind, $call, arguments);
 | 
			
		||||
	return setFunctionLength(
 | 
			
		||||
		func,
 | 
			
		||||
		1 + $max(0, originalFunction.length - (arguments.length - 1)),
 | 
			
		||||
		true
 | 
			
		||||
	);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
var applyBind = function applyBind() {
 | 
			
		||||
	return $reflectApply(bind, $apply, arguments);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
if ($defineProperty) {
 | 
			
		||||
	$defineProperty(module.exports, 'apply', { value: applyBind });
 | 
			
		||||
} else {
 | 
			
		||||
	module.exports.apply = applyBind;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										90
									
								
								node_modules/call-bind/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								node_modules/call-bind/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,90 @@
 | 
			
		||||
{
 | 
			
		||||
	"name": "call-bind",
 | 
			
		||||
	"version": "1.0.5",
 | 
			
		||||
	"description": "Robustly `.call.bind()` a function",
 | 
			
		||||
	"main": "index.js",
 | 
			
		||||
	"exports": {
 | 
			
		||||
		".": "./index.js",
 | 
			
		||||
		"./callBound": "./callBound.js",
 | 
			
		||||
		"./package.json": "./package.json"
 | 
			
		||||
	},
 | 
			
		||||
	"scripts": {
 | 
			
		||||
		"prepack": "npmignore --auto --commentLines=auto",
 | 
			
		||||
		"prepublish": "not-in-publish || npm run prepublishOnly",
 | 
			
		||||
		"prepublishOnly": "safe-publish-latest",
 | 
			
		||||
		"lint": "eslint --ext=.js,.mjs .",
 | 
			
		||||
		"postlint": "evalmd README.md",
 | 
			
		||||
		"pretest": "npm run lint",
 | 
			
		||||
		"tests-only": "nyc tape 'test/**/*.js'",
 | 
			
		||||
		"test": "npm run tests-only",
 | 
			
		||||
		"posttest": "aud --production",
 | 
			
		||||
		"version": "auto-changelog && git add CHANGELOG.md",
 | 
			
		||||
		"postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
 | 
			
		||||
	},
 | 
			
		||||
	"repository": {
 | 
			
		||||
		"type": "git",
 | 
			
		||||
		"url": "git+https://github.com/ljharb/call-bind.git"
 | 
			
		||||
	},
 | 
			
		||||
	"keywords": [
 | 
			
		||||
		"javascript",
 | 
			
		||||
		"ecmascript",
 | 
			
		||||
		"es",
 | 
			
		||||
		"js",
 | 
			
		||||
		"callbind",
 | 
			
		||||
		"callbound",
 | 
			
		||||
		"call",
 | 
			
		||||
		"bind",
 | 
			
		||||
		"bound",
 | 
			
		||||
		"call-bind",
 | 
			
		||||
		"call-bound",
 | 
			
		||||
		"function",
 | 
			
		||||
		"es-abstract"
 | 
			
		||||
	],
 | 
			
		||||
	"author": "Jordan Harband <ljharb@gmail.com>",
 | 
			
		||||
	"funding": {
 | 
			
		||||
		"url": "https://github.com/sponsors/ljharb"
 | 
			
		||||
	},
 | 
			
		||||
	"license": "MIT",
 | 
			
		||||
	"bugs": {
 | 
			
		||||
		"url": "https://github.com/ljharb/call-bind/issues"
 | 
			
		||||
	},
 | 
			
		||||
	"homepage": "https://github.com/ljharb/call-bind#readme",
 | 
			
		||||
	"devDependencies": {
 | 
			
		||||
		"@ljharb/eslint-config": "^21.1.0",
 | 
			
		||||
		"aud": "^2.0.3",
 | 
			
		||||
		"auto-changelog": "^2.4.0",
 | 
			
		||||
		"es-value-fixtures": "^1.4.2",
 | 
			
		||||
		"eslint": "=8.8.0",
 | 
			
		||||
		"evalmd": "^0.0.19",
 | 
			
		||||
		"for-each": "^0.3.3",
 | 
			
		||||
		"gopd": "^1.0.1",
 | 
			
		||||
		"has-strict-mode": "^1.0.1",
 | 
			
		||||
		"in-publish": "^2.0.1",
 | 
			
		||||
		"npmignore": "^0.3.0",
 | 
			
		||||
		"nyc": "^10.3.2",
 | 
			
		||||
		"object-inspect": "^1.13.1",
 | 
			
		||||
		"safe-publish-latest": "^2.0.0",
 | 
			
		||||
		"tape": "^5.7.1"
 | 
			
		||||
	},
 | 
			
		||||
	"dependencies": {
 | 
			
		||||
		"function-bind": "^1.1.2",
 | 
			
		||||
		"get-intrinsic": "^1.2.1",
 | 
			
		||||
		"set-function-length": "^1.1.1"
 | 
			
		||||
	},
 | 
			
		||||
	"testling": {
 | 
			
		||||
		"files": "test/index.js"
 | 
			
		||||
	},
 | 
			
		||||
	"auto-changelog": {
 | 
			
		||||
		"output": "CHANGELOG.md",
 | 
			
		||||
		"template": "keepachangelog",
 | 
			
		||||
		"unreleased": false,
 | 
			
		||||
		"commitLimit": false,
 | 
			
		||||
		"backfillLimit": false,
 | 
			
		||||
		"hideCredit": true
 | 
			
		||||
	},
 | 
			
		||||
	"publishConfig": {
 | 
			
		||||
		"ignore": [
 | 
			
		||||
			".github/workflows"
 | 
			
		||||
		]
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										54
									
								
								node_modules/call-bind/test/callBound.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								node_modules/call-bind/test/callBound.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,54 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
var test = require('tape');
 | 
			
		||||
 | 
			
		||||
var callBound = require('../callBound');
 | 
			
		||||
 | 
			
		||||
test('callBound', function (t) {
 | 
			
		||||
	// static primitive
 | 
			
		||||
	t.equal(callBound('Array.length'), Array.length, 'Array.length yields itself');
 | 
			
		||||
	t.equal(callBound('%Array.length%'), Array.length, '%Array.length% yields itself');
 | 
			
		||||
 | 
			
		||||
	// static non-function object
 | 
			
		||||
	t.equal(callBound('Array.prototype'), Array.prototype, 'Array.prototype yields itself');
 | 
			
		||||
	t.equal(callBound('%Array.prototype%'), Array.prototype, '%Array.prototype% yields itself');
 | 
			
		||||
	t.equal(callBound('Array.constructor'), Array.constructor, 'Array.constructor yields itself');
 | 
			
		||||
	t.equal(callBound('%Array.constructor%'), Array.constructor, '%Array.constructor% yields itself');
 | 
			
		||||
 | 
			
		||||
	// static function
 | 
			
		||||
	t.equal(callBound('Date.parse'), Date.parse, 'Date.parse yields itself');
 | 
			
		||||
	t.equal(callBound('%Date.parse%'), Date.parse, '%Date.parse% yields itself');
 | 
			
		||||
 | 
			
		||||
	// prototype primitive
 | 
			
		||||
	t.equal(callBound('Error.prototype.message'), Error.prototype.message, 'Error.prototype.message yields itself');
 | 
			
		||||
	t.equal(callBound('%Error.prototype.message%'), Error.prototype.message, '%Error.prototype.message% yields itself');
 | 
			
		||||
 | 
			
		||||
	// prototype function
 | 
			
		||||
	t.notEqual(callBound('Object.prototype.toString'), Object.prototype.toString, 'Object.prototype.toString does not yield itself');
 | 
			
		||||
	t.notEqual(callBound('%Object.prototype.toString%'), Object.prototype.toString, '%Object.prototype.toString% does not yield itself');
 | 
			
		||||
	t.equal(callBound('Object.prototype.toString')(true), Object.prototype.toString.call(true), 'call-bound Object.prototype.toString calls into the original');
 | 
			
		||||
	t.equal(callBound('%Object.prototype.toString%')(true), Object.prototype.toString.call(true), 'call-bound %Object.prototype.toString% calls into the original');
 | 
			
		||||
 | 
			
		||||
	t['throws'](
 | 
			
		||||
		function () { callBound('does not exist'); },
 | 
			
		||||
		SyntaxError,
 | 
			
		||||
		'nonexistent intrinsic throws'
 | 
			
		||||
	);
 | 
			
		||||
	t['throws'](
 | 
			
		||||
		function () { callBound('does not exist', true); },
 | 
			
		||||
		SyntaxError,
 | 
			
		||||
		'allowMissing arg still throws for unknown intrinsic'
 | 
			
		||||
	);
 | 
			
		||||
 | 
			
		||||
	t.test('real but absent intrinsic', { skip: typeof WeakRef !== 'undefined' }, function (st) {
 | 
			
		||||
		st['throws'](
 | 
			
		||||
			function () { callBound('WeakRef'); },
 | 
			
		||||
			TypeError,
 | 
			
		||||
			'real but absent intrinsic throws'
 | 
			
		||||
		);
 | 
			
		||||
		st.equal(callBound('WeakRef', true), undefined, 'allowMissing arg avoids exception');
 | 
			
		||||
		st.end();
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	t.end();
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										80
									
								
								node_modules/call-bind/test/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								node_modules/call-bind/test/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,80 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
var callBind = require('../');
 | 
			
		||||
var bind = require('function-bind');
 | 
			
		||||
var gOPD = require('gopd');
 | 
			
		||||
var hasStrictMode = require('has-strict-mode')();
 | 
			
		||||
var forEach = require('for-each');
 | 
			
		||||
var inspect = require('object-inspect');
 | 
			
		||||
var v = require('es-value-fixtures');
 | 
			
		||||
 | 
			
		||||
var test = require('tape');
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * older engines have length nonconfigurable
 | 
			
		||||
 * in io.js v3, it is configurable except on bound functions, hence the .bind()
 | 
			
		||||
 */
 | 
			
		||||
var functionsHaveConfigurableLengths = !!(
 | 
			
		||||
	gOPD
 | 
			
		||||
	&& Object.getOwnPropertyDescriptor
 | 
			
		||||
	&& Object.getOwnPropertyDescriptor(bind.call(function () {}), 'length').configurable
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
test('callBind', function (t) {
 | 
			
		||||
	forEach(v.nonFunctions, function (nonFunction) {
 | 
			
		||||
		t['throws'](
 | 
			
		||||
			function () { callBind(nonFunction); },
 | 
			
		||||
			TypeError,
 | 
			
		||||
			inspect(nonFunction) + ' is not a function'
 | 
			
		||||
		);
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	var sentinel = { sentinel: true };
 | 
			
		||||
	var func = function (a, b) {
 | 
			
		||||
		// eslint-disable-next-line no-invalid-this
 | 
			
		||||
		return [!hasStrictMode && this === global ? undefined : this, a, b];
 | 
			
		||||
	};
 | 
			
		||||
	t.equal(func.length, 2, 'original function length is 2');
 | 
			
		||||
	t.deepEqual(func(), [undefined, undefined, undefined], 'unbound func with too few args');
 | 
			
		||||
	t.deepEqual(func(1, 2), [undefined, 1, 2], 'unbound func with right args');
 | 
			
		||||
	t.deepEqual(func(1, 2, 3), [undefined, 1, 2], 'unbound func with too many args');
 | 
			
		||||
 | 
			
		||||
	var bound = callBind(func);
 | 
			
		||||
	t.equal(bound.length, func.length + 1, 'function length is preserved', { skip: !functionsHaveConfigurableLengths });
 | 
			
		||||
	t.deepEqual(bound(), [undefined, undefined, undefined], 'bound func with too few args');
 | 
			
		||||
	t.deepEqual(bound(1, 2), [hasStrictMode ? 1 : Object(1), 2, undefined], 'bound func with right args');
 | 
			
		||||
	t.deepEqual(bound(1, 2, 3), [hasStrictMode ? 1 : Object(1), 2, 3], 'bound func with too many args');
 | 
			
		||||
 | 
			
		||||
	var boundR = callBind(func, sentinel);
 | 
			
		||||
	t.equal(boundR.length, func.length, 'function length is preserved', { skip: !functionsHaveConfigurableLengths });
 | 
			
		||||
	t.deepEqual(boundR(), [sentinel, undefined, undefined], 'bound func with receiver, with too few args');
 | 
			
		||||
	t.deepEqual(boundR(1, 2), [sentinel, 1, 2], 'bound func with receiver, with right args');
 | 
			
		||||
	t.deepEqual(boundR(1, 2, 3), [sentinel, 1, 2], 'bound func with receiver, with too many args');
 | 
			
		||||
 | 
			
		||||
	var boundArg = callBind(func, sentinel, 1);
 | 
			
		||||
	t.equal(boundArg.length, func.length - 1, 'function length is preserved', { skip: !functionsHaveConfigurableLengths });
 | 
			
		||||
	t.deepEqual(boundArg(), [sentinel, 1, undefined], 'bound func with receiver and arg, with too few args');
 | 
			
		||||
	t.deepEqual(boundArg(2), [sentinel, 1, 2], 'bound func with receiver and arg, with right arg');
 | 
			
		||||
	t.deepEqual(boundArg(2, 3), [sentinel, 1, 2], 'bound func with receiver and arg, with too many args');
 | 
			
		||||
 | 
			
		||||
	t.test('callBind.apply', function (st) {
 | 
			
		||||
		var aBound = callBind.apply(func);
 | 
			
		||||
		st.deepEqual(aBound(sentinel), [sentinel, undefined, undefined], 'apply-bound func with no args');
 | 
			
		||||
		st.deepEqual(aBound(sentinel, [1], 4), [sentinel, 1, undefined], 'apply-bound func with too few args');
 | 
			
		||||
		st.deepEqual(aBound(sentinel, [1, 2], 4), [sentinel, 1, 2], 'apply-bound func with right args');
 | 
			
		||||
 | 
			
		||||
		var aBoundArg = callBind.apply(func);
 | 
			
		||||
		st.deepEqual(aBoundArg(sentinel, [1, 2, 3], 4), [sentinel, 1, 2], 'apply-bound func with too many args');
 | 
			
		||||
		st.deepEqual(aBoundArg(sentinel, [1, 2], 4), [sentinel, 1, 2], 'apply-bound func with right args');
 | 
			
		||||
		st.deepEqual(aBoundArg(sentinel, [1], 4), [sentinel, 1, undefined], 'apply-bound func with too few args');
 | 
			
		||||
 | 
			
		||||
		var aBoundR = callBind.apply(func, sentinel);
 | 
			
		||||
		st.deepEqual(aBoundR([1, 2, 3], 4), [sentinel, 1, 2], 'apply-bound func with receiver and too many args');
 | 
			
		||||
		st.deepEqual(aBoundR([1, 2], 4), [sentinel, 1, 2], 'apply-bound func with receiver and right args');
 | 
			
		||||
		st.deepEqual(aBoundR([1], 4), [sentinel, 1, undefined], 'apply-bound func with receiver and too few args');
 | 
			
		||||
 | 
			
		||||
		st.end();
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	t.end();
 | 
			
		||||
});
 | 
			
		||||
		Reference in New Issue
	
	Block a user