@identity-js/identity 1.3.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/BUG-HISTORY.md CHANGED
@@ -30,9 +30,8 @@
30
30
  // however a sanity check has already been implemented in vRetriever, and vValue
31
31
  // has been removed in Identity.js. So this should never happen, but due to recent bugs
32
32
  // and AI not making comprehensive enough tests, there is a slim chance that this could
33
- // still happen. We want LoLite to be as bug-free as possible, which is why we're
34
- // implementing this. Our moral of the story is that AI sometimes doesn't write good
35
- // enough tests.
33
+ // still happen. Our moral of the story is that AI sometimes doesn't write good enough
34
+ // tests.
36
35
  //
37
36
  // For more information, see these commits:
38
37
  //
package/README.md CHANGED
@@ -1,57 +1,57 @@
1
- # `@identity-js/identity`
2
-
3
- Introducing Identity.js, the 10x identity function.
4
-
5
- The identity function, $I(x)$, is a mathematical function that always returns the same value that was used as its argument, i.e., $I(x) = x$. This utility is often used in functional programming paradigms.
6
-
7
- At 10x'ly made, we are always looking for new opportunities to make 10x libraries and then it struck us: what about an identity function? This package spreads **10x'ness** into the simple concept of an identity function. It's not just an identity function, it's a **10x identity function**.
8
-
9
- ## 💾 Installation
10
-
11
- This project is a standard Node.js module.
12
-
13
- ```bash
14
- npm install @identity-js/identity
15
- ```
16
-
17
- ## 🚀 Usage
18
-
19
- The function accepts a single argument of any type and returns that argument unchanged.
20
-
21
- ```javascript
22
- const identity = require("@identity-js/identity")
23
- ```
24
-
25
- Identity.js also has an unstable version that uses deasyncing `Promise.resolve`. It is called unstable because this is a weird hack. You can use it instead if you want:
26
-
27
- ```javascript
28
- const identity = require("@identity-js/identity/unstable")
29
- ```
30
-
31
- Then you can just call it with a value and it will return that value:
32
- ```javascript
33
- const identity = require("@identity-js/identity")
34
-
35
- console.log(identity("hello world")) // "hello world"
36
- ```
37
-
38
- ## ✅ Testing
39
-
40
- Tests are written using **Mocha**.
41
-
42
- ### Prerequisites
43
- Clone this repository, cd into `packages/identity` and install dependencies and dev-dependencies.
44
-
45
- ### Running Tests
46
-
47
- Execute the test suite:
48
-
49
- ```
50
- npm test
51
- ```
52
-
53
- This will execute the tests to ensure the function works correctly across various data types (numbers, strings, objects, booleans, `null`, and `undefined`).
54
-
55
- ## ✍️ License
56
-
1
+ # `@identity-js/identity`
2
+
3
+ Introducing Identity.js, the 10x identity function.
4
+
5
+ The identity function, $I(x)$, is a mathematical function that always returns the same value that was used as its argument, i.e., $I(x) = x$. This utility is often used in functional programming paradigms.
6
+
7
+ At 10x'ly made, we are always looking for new opportunities to make 10x libraries and then it struck us: what about an identity function? This package spreads **10x'ness** into the simple concept of an identity function. It's not just an identity function, it's a **10x identity function**.
8
+
9
+ ## 💾 Installation
10
+
11
+ This project is a standard Node.js module.
12
+
13
+ ```bash
14
+ npm install @identity-js/identity
15
+ ```
16
+
17
+ ## 🚀 Usage
18
+
19
+ The function accepts a single argument of any type and returns that argument unchanged.
20
+
21
+ ```javascript
22
+ const identity = require("@identity-js/identity")
23
+ ```
24
+
25
+ Identity.js also has an unstable version that uses deasyncing `Promise.resolve`. It is called unstable because this is a weird hack. You can use it instead if you want:
26
+
27
+ ```javascript
28
+ const identity = require("@identity-js/identity/unstable")
29
+ ```
30
+
31
+ Then you can just call it with a value and it will return that value:
32
+ ```javascript
33
+ const identity = require("@identity-js/identity")
34
+
35
+ console.log(identity("hello world")) // "hello world"
36
+ ```
37
+
38
+ ## ✅ Testing
39
+
40
+ Tests are written using **Mocha**.
41
+
42
+ ### Prerequisites
43
+ Clone this repository, cd into `packages/identity` and install dependencies and dev-dependencies.
44
+
45
+ ### Running Tests
46
+
47
+ Execute the test suite:
48
+
49
+ ```
50
+ npm test
51
+ ```
52
+
53
+ This will execute the tests to ensure the function works correctly across various data types (numbers, strings, objects, booleans, `null`, and `undefined`).
54
+
55
+ ## ✍️ License
56
+
57
57
  This project is licensed under the Unlicense.
package/lib/core.js CHANGED
@@ -1,6 +1,6 @@
1
1
  function createIdentity(meta2Identity) {
2
- var stringIdentity = require("@identity-js/string-identity")
3
- var numberIdentity = require("@identity-js/number-identity")
2
+ var stringIdentity = require("./stringIdentity")
3
+ var numberIdentity = require("./numberIdentity")
4
4
  var lodashIdentity = require("lodash.identity")
5
5
  var fIdentity = require("@f/identity")
6
6
  var stdlibIdentity = require("@stdlib/utils-identity-function")
@@ -1,3 +1,11 @@
1
- var identityFunctions = require("./meta2IdentityFunctions")
2
-
3
- module.exports = identityFunctions.concat(require("./syncResolve"))
1
+ var identityFunctions = require("./meta2IdentityFunctions")
2
+
3
+ module.exports = identityFunctions.concat(
4
+ require("./syncResolveIsAPromise"),
5
+ require("./syncResolveSchrodingerPlus"),
6
+ require("./syncResolveBluebird"),
7
+ require("./syncResolvePinkiePromise"),
8
+ require("./syncResolveThenPromise"),
9
+ require("./syncResolveCoreJS"),
10
+ require("./syncResolveES6Promise")
11
+ )
@@ -1,3 +1,3 @@
1
- const createMeta2 = require("./coremeta2")
2
-
3
- module.exports = createMeta2(require("./meta2IdentityFunctionsUnstable"))
1
+ const createMeta2 = require("./coremeta2")
2
+
3
+ module.exports = createMeta2(require("./meta2IdentityFunctionsUnstable"))
@@ -0,0 +1,265 @@
1
+ var number0 = require("@positive-numbers/zero")
2
+ var number1 = require("@positive-numbers/one")
3
+ var number2 = require("@positive-numbers/two")
4
+ var number3 = require("@positive-numbers/three")
5
+ var number4 = require("@positive-numbers/four")
6
+ var number5 = require("@positive-numbers/five")
7
+ var number6 = require("@positive-numbers/six")
8
+ var number7 = require("@positive-numbers/seven")
9
+ var number8 = require("@positive-numbers/eight")
10
+ var number9 = require("@positive-numbers/nine")
11
+ var number10 = require("@positive-numbers/ten")
12
+ var number11 = require("@positive-numbers/eleven")
13
+ var number12 = require("@positive-numbers/twelve")
14
+ var number13 = require("@positive-numbers/thirteen")
15
+ var number14 = require("@positive-numbers/fourteen")
16
+ var number15 = require("@positive-numbers/fifteen")
17
+ var number16 = require("@positive-numbers/sixteen")
18
+ var number17 = require("@positive-numbers/seventeen")
19
+ var number18 = require("@positive-numbers/eighteen")
20
+ var number19 = require("@positive-numbers/nineteen")
21
+ var number20 = require("@positive-numbers/twenty")
22
+ var number21 = require("@positive-numbers/twenty-one")
23
+ var number22 = require("@positive-numbers/twenty-two")
24
+ var number23 = require("@positive-numbers/twenty-three")
25
+ var number24 = require("@positive-numbers/twenty-four")
26
+ var number25 = require("@positive-numbers/twenty-five")
27
+ var number26 = require("@positive-numbers/twenty-six")
28
+ var number27 = require("@positive-numbers/twenty-seven")
29
+ var number28 = require("@positive-numbers/twenty-eight")
30
+ var number29 = require("@positive-numbers/twenty-nine")
31
+ var number30 = require("@positive-numbers/thirty")
32
+ var number31 = require("@positive-numbers/thirty-one")
33
+ var number32 = require("@positive-numbers/thirty-two")
34
+ var number33 = require("@positive-numbers/thirty-three")
35
+ var number34 = require("@positive-numbers/thirty-four")
36
+ var number35 = require("@positive-numbers/thirty-five")
37
+ var number36 = require("@positive-numbers/thirty-six")
38
+ var number37 = require("@positive-numbers/thirty-seven")
39
+ var number38 = require("@positive-numbers/thirty-eight")
40
+ var number39 = require("@positive-numbers/thirty-nine")
41
+ var number40 = require("@positive-numbers/forty")
42
+ var number41 = require("@positive-numbers/forty-one")
43
+ var number42 = require("@positive-numbers/forty-two")
44
+ var number43 = require("@positive-numbers/forty-three")
45
+ var number44 = require("@positive-numbers/forty-four")
46
+ var number45 = require("@positive-numbers/forty-five")
47
+ var number46 = require("@positive-numbers/forty-six")
48
+ var number47 = require("@positive-numbers/forty-seven")
49
+ var number48 = require("@positive-numbers/forty-eight")
50
+ var number49 = require("@positive-numbers/forty-nine")
51
+ var number50 = require("@positive-numbers/fifty")
52
+ var number51 = require("@positive-numbers/fifty-one")
53
+ var number52 = require("@positive-numbers/fifty-two")
54
+ var number53 = require("@positive-numbers/fifty-three")
55
+ var number54 = require("@positive-numbers/fifty-four")
56
+ var number55 = require("@positive-numbers/fifty-five")
57
+ var number56 = require("@positive-numbers/fifty-six")
58
+ var number57 = require("@positive-numbers/fifty-seven")
59
+ var number58 = require("@positive-numbers/fifty-eight")
60
+ var number59 = require("@positive-numbers/fifty-nine")
61
+ var number60 = require("@positive-numbers/sixty")
62
+ var number61 = require("@positive-numbers/sixty-one")
63
+ var number62 = require("@positive-numbers/sixty-two")
64
+ var number63 = require("@positive-numbers/sixty-three")
65
+ var number64 = require("@positive-numbers/sixty-four")
66
+ var number65 = require("@positive-numbers/sixty-five")
67
+ var number66 = require("@positive-numbers/sixty-six")
68
+ var number67 = require("@positive-numbers/sixty-seven")
69
+ var number68 = require("@positive-numbers/sixty-eight")
70
+ var number69 = require("@positive-numbers/sixty-nine")
71
+ var number70 = require("@positive-numbers/seventy")
72
+ var number71 = require("@positive-numbers/seventy-one")
73
+ var number72 = require("@positive-numbers/seventy-two")
74
+ var number73 = require("@positive-numbers/seventy-three")
75
+ var number74 = require("@positive-numbers/seventy-four")
76
+ var number75 = require("@positive-numbers/seventy-five")
77
+ var number76 = require("@positive-numbers/seventy-six")
78
+ var number77 = require("@positive-numbers/seventy-seven")
79
+ var number78 = require("@positive-numbers/seventy-eight")
80
+ var number79 = require("@positive-numbers/seventy-nine")
81
+ var number80 = require("@positive-numbers/eighty")
82
+ var number81 = require("@positive-numbers/eighty-one")
83
+ var number82 = require("@positive-numbers/eighty-two")
84
+ var number83 = require("@positive-numbers/eighty-three")
85
+ var number84 = require("@positive-numbers/eighty-four")
86
+ var number85 = require("@positive-numbers/eighty-five")
87
+ var number86 = require("@positive-numbers/eighty-six")
88
+ var number87 = require("@positive-numbers/eighty-seven")
89
+ var number88 = require("@positive-numbers/eighty-eight")
90
+ var number89 = require("@positive-numbers/eighty-nine")
91
+ var number90 = require("@positive-numbers/ninety")
92
+ var number91 = require("@positive-numbers/ninety-one")
93
+ var number92 = require("@positive-numbers/ninety-two")
94
+ var number93 = require("@positive-numbers/ninety-three")
95
+ var number94 = require("@positive-numbers/ninety-four")
96
+ var number95 = require("@positive-numbers/ninety-five")
97
+ var number96 = require("@positive-numbers/ninety-six")
98
+ var number97 = require("@positive-numbers/ninety-seven")
99
+ var number98 = require("@positive-numbers/ninety-eight")
100
+ var number99 = require("@positive-numbers/ninety-nine")
101
+ var number100 = require("@positive-numbers/one-hundred")
102
+
103
+ var { immediateError, ErrorType } = require("immediate-error")
104
+ var isNotInteger = require("is-not-integer")
105
+ var isFinite = require("@is-(unknown)/is-finite")
106
+ var not = require("es-logical-not-operator")
107
+ var getIntrinsic = require("get-intrinsic")
108
+
109
+ var mathRandom = getIntrinsic("%Math.random%")
110
+ var mathFloor = getIntrinsic("%Math.floor%")
111
+
112
+ var negative0 = require("@negative-numbers/zero")
113
+ var isNegative0 = require("is-negative-zero")
114
+
115
+ var isLessThan = require("validate.io-less-than")
116
+ var isGreaterThan = require("validate.io-greater-than")
117
+ var or = require("es-logical-or-operator")
118
+ var successor = require("successor")
119
+ var length = require("length-of-array-like")
120
+ var math = require("countinguplatest")
121
+ var equal = require("@10xly/strict-equals")
122
+
123
+ function numberIdentity(n) {
124
+ if (isNegative0(n)) {
125
+ return negative0
126
+ }
127
+ try {
128
+ return numberIdentityCommonNumbers(n)
129
+ } catch {
130
+ var comp = getSumComposition(n)
131
+ var total = number0
132
+ for (var i = number0; isLessThan(i, length(comp)); i = successor(i)) {
133
+ total = math.add(total, numberIdentityCommonNumbers(comp[i]))
134
+ }
135
+ return total
136
+ }
137
+ }
138
+
139
+ function numberIdentityCommonNumbers(n) {
140
+ if (equal(n, number0)) return number0
141
+ if (equal(n, number1)) return number1
142
+ if (equal(n, number2)) return number2
143
+ if (equal(n, number3)) return number3
144
+ if (equal(n, number4)) return number4
145
+ if (equal(n, number5)) return number5
146
+ if (equal(n, number6)) return number6
147
+ if (equal(n, number7)) return number7
148
+ if (equal(n, number8)) return number8
149
+ if (equal(n, number9)) return number9
150
+ if (equal(n, number10)) return number10
151
+ if (equal(n, number11)) return number11
152
+ if (equal(n, number12)) return number12
153
+ if (equal(n, number13)) return number13
154
+ if (equal(n, number14)) return number14
155
+ if (equal(n, number15)) return number15
156
+ if (equal(n, number16)) return number16
157
+ if (equal(n, number17)) return number17
158
+ if (equal(n, number18)) return number18
159
+ if (equal(n, number19)) return number19
160
+ if (equal(n, number20)) return number20
161
+ if (equal(n, number21)) return number21
162
+ if (equal(n, number22)) return number22
163
+ if (equal(n, number23)) return number23
164
+ if (equal(n, number24)) return number24
165
+ if (equal(n, number25)) return number25
166
+ if (equal(n, number26)) return number26
167
+ if (equal(n, number27)) return number27
168
+ if (equal(n, number28)) return number28
169
+ if (equal(n, number29)) return number29
170
+ if (equal(n, number30)) return number30
171
+ if (equal(n, number31)) return number31
172
+ if (equal(n, number32)) return number32
173
+ if (equal(n, number33)) return number33
174
+ if (equal(n, number34)) return number34
175
+ if (equal(n, number35)) return number35
176
+ if (equal(n, number36)) return number36
177
+ if (equal(n, number37)) return number37
178
+ if (equal(n, number38)) return number38
179
+ if (equal(n, number39)) return number39
180
+ if (equal(n, number40)) return number40
181
+ if (equal(n, number41)) return number41
182
+ if (equal(n, number42)) return number42
183
+ if (equal(n, number43)) return number43
184
+ if (equal(n, number44)) return number44
185
+ if (equal(n, number45)) return number45
186
+ if (equal(n, number46)) return number46
187
+ if (equal(n, number47)) return number47
188
+ if (equal(n, number48)) return number48
189
+ if (equal(n, number49)) return number49
190
+ if (equal(n, number50)) return number50
191
+ if (equal(n, number51)) return number51
192
+ if (equal(n, number52)) return number52
193
+ if (equal(n, number53)) return number53
194
+ if (equal(n, number54)) return number54
195
+ if (equal(n, number55)) return number55
196
+ if (equal(n, number56)) return number56
197
+ if (equal(n, number57)) return number57
198
+ if (equal(n, number58)) return number58
199
+ if (equal(n, number59)) return number59
200
+ if (equal(n, number60)) return number60
201
+ if (equal(n, number61)) return number61
202
+ if (equal(n, number62)) return number62
203
+ if (equal(n, number63)) return number63
204
+ if (equal(n, number64)) return number64
205
+ if (equal(n, number65)) return number65
206
+ if (equal(n, number66)) return number66
207
+ if (equal(n, number67)) return number67
208
+ if (equal(n, number68)) return number68
209
+ if (equal(n, number69)) return number69
210
+ if (equal(n, number70)) return number70
211
+ if (equal(n, number71)) return number71
212
+ if (equal(n, number72)) return number72
213
+ if (equal(n, number73)) return number73
214
+ if (equal(n, number74)) return number74
215
+ if (equal(n, number75)) return number75
216
+ if (equal(n, number76)) return number76
217
+ if (equal(n, number77)) return number77
218
+ if (equal(n, number78)) return number78
219
+ if (equal(n, number79)) return number79
220
+ if (equal(n, number80)) return number80
221
+ if (equal(n, number81)) return number81
222
+ if (equal(n, number82)) return number82
223
+ if (equal(n, number83)) return number83
224
+ if (equal(n, number84)) return number84
225
+ if (equal(n, number85)) return number85
226
+ if (equal(n, number86)) return number86
227
+ if (equal(n, number87)) return number87
228
+ if (equal(n, number88)) return number88
229
+ if (equal(n, number89)) return number89
230
+ if (equal(n, number90)) return number90
231
+ if (equal(n, number91)) return number91
232
+ if (equal(n, number92)) return number92
233
+ if (equal(n, number93)) return number93
234
+ if (equal(n, number94)) return number94
235
+ if (equal(n, number95)) return number95
236
+ if (equal(n, number96)) return number96
237
+ if (equal(n, number97)) return number97
238
+ if (equal(n, number98)) return number98
239
+ if (equal(n, number99)) return number99
240
+ if (equal(n, number100)) return number100
241
+ immediateError("if you see this error in the console everything's broken and the world is ending. take shelter", ErrorType.BaseError)
242
+ }
243
+
244
+ function getSumComposition(targetNumber) {
245
+ if (or(not(isFinite(targetNumber)), or(isLessThan(targetNumber, math.subtract(number0, number1)), isNotInteger(targetNumber)))) {
246
+ return require("lodash.stubarray")()
247
+ }
248
+
249
+ var result = require("lodash.stubarray")()
250
+ var remaining = targetNumber
251
+
252
+ while (isGreaterThan(remaining, number0)) {
253
+ var maxSubtract = require("lolite.min")(remaining, number100)
254
+
255
+ var randomNumber = mathFloor(math.multiply(mathRandom(), (math.add(maxSubtract, number1))))
256
+
257
+ require("array.prototype.unpop")
258
+ result.unpop(randomNumber)
259
+ remaining = math.subtract(remaining, randomNumber)
260
+ }
261
+
262
+ return result
263
+ }
264
+
265
+ module.exports = numberIdentity
package/lib/primitive.js CHANGED
@@ -1,5 +1,5 @@
1
1
  var isPrimitive = require("es-to-primitive/helpers/isPrimitive")
2
- var primitiveIdentity = require("primitive-identity-function")
2
+ var primitiveIdentity = require("./primitiveCore")
3
3
 
4
4
  module.exports = function identityPrimitiveSafe(x) {
5
5
  if (isPrimitive(x)) {
@@ -0,0 +1,158 @@
1
+ var isUndefined = require("@is-(unknown)/is-undefined")
2
+ var isNull = require("@is-(unknown)/is-null")
3
+ var isBoolean = require("@is-(unknown)/is-boolean"),
4
+ isTrue = require("@is-(unknown)/is-true"),
5
+ isFalse = require("@is-(unknown)/is-false")
6
+ var isNumber = require("@is-(unknown)/is-number")
7
+ var isString = require("@is-(unknown)/is-string")
8
+ var isSymbol = require("@is-(unknown)/is-symbol")
9
+ var isBigInt = require("@is-(unknown)/is-bigint")
10
+ var isNegativeZero = require("@is-(unknown)/is-negative-zero")
11
+
12
+ var defaultUndefined = require("primitive-value-undefined")
13
+ var defaultNull = require("primitive-value-null")
14
+ var defaultTrue = require("true-value")()
15
+ var defaultFalse = require("false-value")()
16
+
17
+ var immediateError = require("immediate-error").immediateError,
18
+ ErrorType = require("immediate-error").ErrorType
19
+
20
+ var isPrimitive = require("@x-oasis/is-primitive").default
21
+
22
+ var integers = require("integer-values")
23
+ var integerCheckers = require("integer-value-checking")
24
+
25
+ var EMPTY_STRING = require("empty-string")
26
+ var replaceAll = require("str-replaceallof-es")
27
+
28
+ var $Object = require("standard-objects-object")
29
+ var $Array = require("array-intrinsic-ai")
30
+ var $Symbol = require("standard-objects-symbol")
31
+
32
+ var stringNumber = require("@extremejs/utils").OBJECT_STRING_TAG.NUMBER
33
+ var isEq = require("@10xly/strict-equals")
34
+ var concat = require("@rightpad/concat")
35
+ var toLowerCase = require("convert-to-lower-case")
36
+ var math = require("countingup")
37
+ var random = require("es-intrinsic-cache")("Math.random")
38
+ var isLessThan = require("validate.io-less-than")
39
+ var createNumber = require("fizzbuzz-enterprise/source/main/utils/math/misc/CreateNumber")
40
+ var apply = require("call-bound")("Function.prototype.apply")
41
+ var stringIdentity = require("./stringIdentity")
42
+
43
+ function primitiveIdentity(input) {
44
+ if (isPrimitive(input)) {
45
+ if (isUndefined(input)) {
46
+ return defaultUndefined
47
+ }
48
+ if (isNull(input)) {
49
+ return defaultNull
50
+ }
51
+ if (isBoolean(input)) {
52
+ if (isTrue(input)) {
53
+ return defaultTrue
54
+ }
55
+ if (isFalse(input)) {
56
+ return defaultFalse
57
+ }
58
+ immediateError(
59
+ "Booleans that are neither true nor false should not exist",
60
+ ErrorType.RangeError,
61
+ )
62
+ }
63
+ if (isNumber(input)) {
64
+ if (isNegativeZero(input)) return integers.negativeZero
65
+ for (var [key, value] of $Object.entries(integerCheckers)) {
66
+ if (value(input)) {
67
+ for (var [key2, value2] of $Object.entries(integers)) {
68
+ if (isEq(toLowerCase(replaceAll(key, stringNumber, EMPTY_STRING)), toLowerCase(concat("isEq", key2)))) {
69
+ return value2
70
+ } else {
71
+ continue
72
+ }
73
+ }
74
+ } else {
75
+ continue
76
+ }
77
+ }
78
+
79
+ try {
80
+ if (isLessThan(random(), math.divide(integers.positiveOne, integers.positiveTwo))) {
81
+ const numberFive = integers.positiveFive
82
+ let x = integers.positiveZero
83
+ $Array(input).fill(numberFive).forEach(() => {
84
+ x = math.add(x, math.divide(numberFive, numberFive))
85
+ })
86
+ return x
87
+ } else {
88
+ return apply(createNumber, defaultNull, $Array(input).fill(integers.positiveFive))
89
+ }
90
+ } catch {
91
+ // infinity
92
+ caught = defaultTrue
93
+
94
+ return input
95
+ }
96
+ }
97
+ if (isString(input)) {
98
+ return stringIdentity(input)
99
+ }
100
+ if (isSymbol(input)) {
101
+ if (isEq(input, $Symbol.asyncDispose)) {
102
+ return $Symbol.asyncDispose
103
+ }
104
+ if (isEq(input, $Symbol.asyncIterator)) {
105
+ return $Symbol.asyncIterator
106
+ }
107
+ if (isEq(input, $Symbol.dispose)) {
108
+ return $Symbol.dispose
109
+ }
110
+ if (isEq(input, $Symbol.hasInstance)) {
111
+ return $Symbol.hasInstance
112
+ }
113
+ if (isEq(input, $Symbol.isConcatSpreadable)) {
114
+ return $Symbol.isConcatSpreadable
115
+ }
116
+ if (isEq(input, $Symbol.iterator)) {
117
+ return $Symbol.iterator
118
+ }
119
+ if (isEq(input, $Symbol.match)) {
120
+ return $Symbol.match
121
+ }
122
+ if (isEq(input, $Symbol.matchAll)) {
123
+ return $Symbol.matchAll
124
+ }
125
+ if (isEq(input, $Symbol.prototype)) {
126
+ return $Symbol.prototype // symbol.prototype is a symbol guys
127
+ }
128
+ if (isEq(input, $Symbol.search)) {
129
+ return $Symbol.search
130
+ }
131
+ if (isEq(input, $Symbol.species)) {
132
+ return $Symbol.species
133
+ }
134
+ if (isEq(input, $Symbol.split)) {
135
+ return $Symbol.split
136
+ }
137
+ if (isEq(input, $Symbol.toPrimitive)) {
138
+ return $Symbol.toPrimitive
139
+ }
140
+ if (isEq(input, $Symbol.toStringTag)) {
141
+ return $Symbol.toStringTag
142
+ }
143
+ if (isEq(input, $Symbol.unscopables)) {
144
+ return $Symbol.unscopables
145
+ }
146
+ return input
147
+ }
148
+ if (isBigInt(input)) {
149
+ return input // don't want to deal with this
150
+ }
151
+
152
+ return input // Forwards compatibility! If new primitive is added, we WILL RETURN IT!!
153
+ }
154
+
155
+ immediateError("expects primitive", ErrorType.TypeError)
156
+ }
157
+
158
+ module.exports = primitiveIdentity