core-js 3.8.2 → 3.10.0

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.
Files changed (166) hide show
  1. package/es/index.js +96 -97
  2. package/es/json/index.js +1 -0
  3. package/es/json/stringify.js +2 -1
  4. package/features/array/find-last-index.js +4 -0
  5. package/features/array/find-last.js +4 -0
  6. package/features/array/index.js +2 -0
  7. package/features/array/virtual/find-last-index.js +4 -0
  8. package/features/array/virtual/find-last.js +4 -0
  9. package/features/array/virtual/index.js +3 -0
  10. package/features/index.js +353 -2
  11. package/features/instance/find-last-index.js +8 -0
  12. package/features/instance/find-last.js +8 -0
  13. package/features/typed-array/find-last-index.js +1 -0
  14. package/features/typed-array/find-last.js +1 -0
  15. package/features/typed-array/index.js +4 -0
  16. package/features/typed-array/unique-by.js +2 -0
  17. package/index.js +1 -6
  18. package/internals/array-buffer-native.js +1 -0
  19. package/internals/array-buffer-view-core.js +1 -1
  20. package/internals/array-buffer.js +9 -7
  21. package/internals/array-copy-within.js +1 -0
  22. package/internals/array-for-each.js +2 -3
  23. package/internals/array-includes.js +2 -2
  24. package/internals/array-iteration-from-last.js +34 -0
  25. package/internals/array-last-index-of.js +6 -8
  26. package/internals/array-method-is-strict.js +1 -1
  27. package/internals/array-unique-by.js +32 -0
  28. package/internals/async-iterator-prototype.js +1 -1
  29. package/internals/check-correctness-of-iteration.js +1 -1
  30. package/internals/collection.js +9 -5
  31. package/internals/correct-prototype-getter.js +1 -0
  32. package/internals/descriptors.js +1 -0
  33. package/internals/fix-regexp-well-known-symbol-logic.js +2 -0
  34. package/internals/freezing.js +1 -0
  35. package/internals/function-bind.js +1 -1
  36. package/internals/get-map-iterator.js +1 -1
  37. package/internals/get-set-iterator.js +1 -1
  38. package/internals/get-substitution.js +2 -2
  39. package/internals/global.js +3 -2
  40. package/internals/ie8-dom-define.js +1 -0
  41. package/internals/ieee754.js +2 -4
  42. package/internals/indexed-object.js +1 -1
  43. package/internals/internal-metadata.js +1 -0
  44. package/internals/is-array.js +1 -0
  45. package/internals/is-iterable.js +1 -1
  46. package/internals/iterators-core.js +10 -2
  47. package/internals/math-expm1.js +6 -5
  48. package/internals/math-fround.js +2 -1
  49. package/internals/math-log1p.js +1 -0
  50. package/internals/math-scale.js +2 -2
  51. package/internals/math-sign.js +2 -1
  52. package/internals/native-symbol.js +8 -3
  53. package/internals/number-is-finite.js +1 -0
  54. package/internals/{range-iterator.js → numeric-range-iterator.js} +6 -6
  55. package/internals/object-assign.js +9 -7
  56. package/internals/object-create.js +1 -1
  57. package/internals/object-define-properties.js +1 -0
  58. package/internals/object-define-property.js +4 -3
  59. package/internals/object-get-own-property-descriptor.js +4 -3
  60. package/internals/object-get-own-property-names-external.js +4 -3
  61. package/internals/object-get-own-property-names.js +1 -0
  62. package/internals/object-get-own-property-symbols.js +1 -0
  63. package/internals/object-get-prototype-of.js +1 -0
  64. package/internals/object-keys.js +1 -0
  65. package/internals/object-property-is-enumerable.js +4 -3
  66. package/internals/object-prototype-accessors-forced.js +1 -1
  67. package/internals/object-set-prototype-of.js +3 -1
  68. package/internals/regexp-exec.js +3 -1
  69. package/internals/same-value-zero.js +1 -1
  70. package/internals/same-value.js +2 -1
  71. package/internals/shared.js +1 -1
  72. package/internals/string-pad-webkit-bug.js +1 -1
  73. package/internals/string-punycode-to-ascii.js +1 -1
  74. package/internals/string-repeat.js +1 -1
  75. package/internals/task.js +2 -2
  76. package/internals/typed-array-constructors-require-wrappers.js +1 -1
  77. package/internals/typed-array-from-species-and-list.js +11 -0
  78. package/internals/use-symbol-as-uid.js +1 -2
  79. package/internals/well-known-symbol.js +6 -3
  80. package/internals/whitespaces.js +2 -2
  81. package/modules/es.aggregate-error.js +1 -1
  82. package/modules/es.array.concat.js +2 -1
  83. package/modules/es.array.every.js +1 -3
  84. package/modules/es.array.filter.js +1 -4
  85. package/modules/es.array.find-index.js +1 -4
  86. package/modules/es.array.find.js +1 -4
  87. package/modules/es.array.for-each.js +1 -0
  88. package/modules/es.array.from.js +1 -0
  89. package/modules/es.array.includes.js +1 -4
  90. package/modules/es.array.index-of.js +2 -3
  91. package/modules/es.array.last-index-of.js +1 -0
  92. package/modules/es.array.map.js +1 -4
  93. package/modules/es.array.of.js +1 -0
  94. package/modules/es.array.reduce-right.js +1 -4
  95. package/modules/es.array.reduce.js +1 -3
  96. package/modules/es.array.reverse.js +1 -1
  97. package/modules/es.array.slice.js +1 -3
  98. package/modules/es.array.some.js +1 -3
  99. package/modules/es.array.splice.js +1 -3
  100. package/modules/es.date.to-json.js +1 -1
  101. package/modules/es.date.to-string.js +1 -1
  102. package/modules/es.json.stringify.js +1 -1
  103. package/modules/es.math.acosh.js +5 -4
  104. package/modules/es.math.asinh.js +3 -2
  105. package/modules/es.math.atanh.js +3 -2
  106. package/modules/es.math.cosh.js +3 -2
  107. package/modules/es.math.expm1.js +1 -0
  108. package/modules/es.math.hypot.js +3 -1
  109. package/modules/es.math.imul.js +3 -2
  110. package/modules/es.math.sinh.js +1 -0
  111. package/modules/es.number.is-nan.js +1 -1
  112. package/modules/es.number.parse-float.js +1 -0
  113. package/modules/es.number.parse-int.js +1 -0
  114. package/modules/es.number.to-fixed.js +43 -44
  115. package/modules/es.object.assign.js +1 -0
  116. package/modules/es.object.freeze.js +4 -3
  117. package/modules/es.object.get-own-property-names.js +3 -2
  118. package/modules/es.object.is-extensible.js +4 -3
  119. package/modules/es.object.is-frozen.js +4 -3
  120. package/modules/es.object.is-sealed.js +4 -3
  121. package/modules/es.object.prevent-extensions.js +4 -3
  122. package/modules/es.object.seal.js +4 -3
  123. package/modules/es.promise.js +2 -2
  124. package/modules/es.reflect.define-property.js +1 -1
  125. package/modules/es.reflect.is-extensible.js +1 -0
  126. package/modules/es.reflect.set.js +1 -1
  127. package/modules/es.regexp.flags.js +1 -0
  128. package/modules/es.string.ends-with.js +4 -3
  129. package/modules/es.string.from-code-point.js +5 -3
  130. package/modules/es.string.match-all.js +2 -1
  131. package/modules/es.string.split.js +2 -0
  132. package/modules/es.string.starts-with.js +4 -3
  133. package/modules/es.string.trim-end.js +1 -0
  134. package/modules/es.string.trim-start.js +1 -0
  135. package/modules/es.symbol.js +1 -1
  136. package/modules/es.typed-array.fill.js +1 -1
  137. package/modules/es.typed-array.filter.js +2 -8
  138. package/modules/es.typed-array.join.js +1 -1
  139. package/modules/es.typed-array.last-index-of.js +1 -1
  140. package/modules/es.typed-array.set.js +1 -1
  141. package/modules/es.typed-array.slice.js +1 -1
  142. package/modules/es.weak-map.js +1 -0
  143. package/modules/esnext.array.find-last-index.js +14 -0
  144. package/modules/esnext.array.find-last.js +14 -0
  145. package/modules/esnext.array.is-template-object.js +1 -0
  146. package/modules/esnext.array.unique-by.js +2 -28
  147. package/modules/esnext.bigint.range.js +3 -3
  148. package/modules/esnext.map.merge.js +1 -1
  149. package/modules/esnext.number.range.js +2 -2
  150. package/modules/esnext.typed-array.filter-out.js +2 -8
  151. package/modules/esnext.typed-array.find-last-index.js +12 -0
  152. package/modules/esnext.typed-array.find-last.js +12 -0
  153. package/modules/esnext.typed-array.unique-by.js +13 -0
  154. package/modules/web.timers.js +1 -1
  155. package/modules/web.url.js +9 -11
  156. package/package.json +5 -3
  157. package/postinstall.js +2 -2
  158. package/proposals/array-find-from-last.js +5 -0
  159. package/proposals/array-unique.js +1 -0
  160. package/stable/index.js +220 -4
  161. package/stable/instance/entries.js +1 -1
  162. package/stable/instance/for-each.js +1 -1
  163. package/stable/instance/keys.js +1 -1
  164. package/stable/instance/values.js +1 -1
  165. package/stage/2.js +1 -0
  166. package/internals/array-method-uses-to-length.js +0 -27
package/features/index.js CHANGED
@@ -1,3 +1,354 @@
1
- var parent = require('..');
1
+ require('../modules/es.symbol');
2
+ require('../modules/es.symbol.description');
3
+ require('../modules/es.symbol.async-iterator');
4
+ require('../modules/es.symbol.has-instance');
5
+ require('../modules/es.symbol.is-concat-spreadable');
6
+ require('../modules/es.symbol.iterator');
7
+ require('../modules/es.symbol.match');
8
+ require('../modules/es.symbol.match-all');
9
+ require('../modules/es.symbol.replace');
10
+ require('../modules/es.symbol.search');
11
+ require('../modules/es.symbol.species');
12
+ require('../modules/es.symbol.split');
13
+ require('../modules/es.symbol.to-primitive');
14
+ require('../modules/es.symbol.to-string-tag');
15
+ require('../modules/es.symbol.unscopables');
16
+ require('../modules/es.aggregate-error');
17
+ require('../modules/es.array.concat');
18
+ require('../modules/es.array.copy-within');
19
+ require('../modules/es.array.every');
20
+ require('../modules/es.array.fill');
21
+ require('../modules/es.array.filter');
22
+ require('../modules/es.array.find');
23
+ require('../modules/es.array.find-index');
24
+ require('../modules/es.array.flat');
25
+ require('../modules/es.array.flat-map');
26
+ require('../modules/es.array.for-each');
27
+ require('../modules/es.array.from');
28
+ require('../modules/es.array.includes');
29
+ require('../modules/es.array.index-of');
30
+ require('../modules/es.array.is-array');
31
+ require('../modules/es.array.iterator');
32
+ require('../modules/es.array.join');
33
+ require('../modules/es.array.last-index-of');
34
+ require('../modules/es.array.map');
35
+ require('../modules/es.array.of');
36
+ require('../modules/es.array.reduce');
37
+ require('../modules/es.array.reduce-right');
38
+ require('../modules/es.array.reverse');
39
+ require('../modules/es.array.slice');
40
+ require('../modules/es.array.some');
41
+ require('../modules/es.array.sort');
42
+ require('../modules/es.array.species');
43
+ require('../modules/es.array.splice');
44
+ require('../modules/es.array.unscopables.flat');
45
+ require('../modules/es.array.unscopables.flat-map');
46
+ require('../modules/es.array-buffer.constructor');
47
+ require('../modules/es.array-buffer.is-view');
48
+ require('../modules/es.array-buffer.slice');
49
+ require('../modules/es.data-view');
50
+ require('../modules/es.date.now');
51
+ require('../modules/es.date.to-iso-string');
52
+ require('../modules/es.date.to-json');
53
+ require('../modules/es.date.to-primitive');
54
+ require('../modules/es.date.to-string');
55
+ require('../modules/es.function.bind');
56
+ require('../modules/es.function.has-instance');
57
+ require('../modules/es.function.name');
58
+ require('../modules/es.global-this');
59
+ require('../modules/es.json.stringify');
60
+ require('../modules/es.json.to-string-tag');
61
+ require('../modules/es.map');
62
+ require('../modules/es.math.acosh');
63
+ require('../modules/es.math.asinh');
64
+ require('../modules/es.math.atanh');
65
+ require('../modules/es.math.cbrt');
66
+ require('../modules/es.math.clz32');
67
+ require('../modules/es.math.cosh');
68
+ require('../modules/es.math.expm1');
69
+ require('../modules/es.math.fround');
70
+ require('../modules/es.math.hypot');
71
+ require('../modules/es.math.imul');
72
+ require('../modules/es.math.log10');
73
+ require('../modules/es.math.log1p');
74
+ require('../modules/es.math.log2');
75
+ require('../modules/es.math.sign');
76
+ require('../modules/es.math.sinh');
77
+ require('../modules/es.math.tanh');
78
+ require('../modules/es.math.to-string-tag');
79
+ require('../modules/es.math.trunc');
80
+ require('../modules/es.number.constructor');
81
+ require('../modules/es.number.epsilon');
82
+ require('../modules/es.number.is-finite');
83
+ require('../modules/es.number.is-integer');
84
+ require('../modules/es.number.is-nan');
85
+ require('../modules/es.number.is-safe-integer');
86
+ require('../modules/es.number.max-safe-integer');
87
+ require('../modules/es.number.min-safe-integer');
88
+ require('../modules/es.number.parse-float');
89
+ require('../modules/es.number.parse-int');
90
+ require('../modules/es.number.to-fixed');
91
+ require('../modules/es.number.to-precision');
92
+ require('../modules/es.object.assign');
93
+ require('../modules/es.object.create');
94
+ require('../modules/es.object.define-getter');
95
+ require('../modules/es.object.define-properties');
96
+ require('../modules/es.object.define-property');
97
+ require('../modules/es.object.define-setter');
98
+ require('../modules/es.object.entries');
99
+ require('../modules/es.object.freeze');
100
+ require('../modules/es.object.from-entries');
101
+ require('../modules/es.object.get-own-property-descriptor');
102
+ require('../modules/es.object.get-own-property-descriptors');
103
+ require('../modules/es.object.get-own-property-names');
104
+ require('../modules/es.object.get-prototype-of');
105
+ require('../modules/es.object.is');
106
+ require('../modules/es.object.is-extensible');
107
+ require('../modules/es.object.is-frozen');
108
+ require('../modules/es.object.is-sealed');
109
+ require('../modules/es.object.keys');
110
+ require('../modules/es.object.lookup-getter');
111
+ require('../modules/es.object.lookup-setter');
112
+ require('../modules/es.object.prevent-extensions');
113
+ require('../modules/es.object.seal');
114
+ require('../modules/es.object.set-prototype-of');
115
+ require('../modules/es.object.to-string');
116
+ require('../modules/es.object.values');
117
+ require('../modules/es.parse-float');
118
+ require('../modules/es.parse-int');
119
+ require('../modules/es.promise');
120
+ require('../modules/es.promise.all-settled');
121
+ require('../modules/es.promise.any');
122
+ require('../modules/es.promise.finally');
123
+ require('../modules/es.reflect.apply');
124
+ require('../modules/es.reflect.construct');
125
+ require('../modules/es.reflect.define-property');
126
+ require('../modules/es.reflect.delete-property');
127
+ require('../modules/es.reflect.get');
128
+ require('../modules/es.reflect.get-own-property-descriptor');
129
+ require('../modules/es.reflect.get-prototype-of');
130
+ require('../modules/es.reflect.has');
131
+ require('../modules/es.reflect.is-extensible');
132
+ require('../modules/es.reflect.own-keys');
133
+ require('../modules/es.reflect.prevent-extensions');
134
+ require('../modules/es.reflect.set');
135
+ require('../modules/es.reflect.set-prototype-of');
136
+ require('../modules/es.reflect.to-string-tag');
137
+ require('../modules/es.regexp.constructor');
138
+ require('../modules/es.regexp.exec');
139
+ require('../modules/es.regexp.flags');
140
+ require('../modules/es.regexp.sticky');
141
+ require('../modules/es.regexp.test');
142
+ require('../modules/es.regexp.to-string');
143
+ require('../modules/es.set');
144
+ require('../modules/es.string.code-point-at');
145
+ require('../modules/es.string.ends-with');
146
+ require('../modules/es.string.from-code-point');
147
+ require('../modules/es.string.includes');
148
+ require('../modules/es.string.iterator');
149
+ require('../modules/es.string.match');
150
+ require('../modules/es.string.match-all');
151
+ require('../modules/es.string.pad-end');
152
+ require('../modules/es.string.pad-start');
153
+ require('../modules/es.string.raw');
154
+ require('../modules/es.string.repeat');
155
+ require('../modules/es.string.replace');
156
+ require('../modules/es.string.replace-all');
157
+ require('../modules/es.string.search');
158
+ require('../modules/es.string.split');
159
+ require('../modules/es.string.starts-with');
160
+ require('../modules/es.string.trim');
161
+ require('../modules/es.string.trim-end');
162
+ require('../modules/es.string.trim-start');
163
+ require('../modules/es.string.anchor');
164
+ require('../modules/es.string.big');
165
+ require('../modules/es.string.blink');
166
+ require('../modules/es.string.bold');
167
+ require('../modules/es.string.fixed');
168
+ require('../modules/es.string.fontcolor');
169
+ require('../modules/es.string.fontsize');
170
+ require('../modules/es.string.italics');
171
+ require('../modules/es.string.link');
172
+ require('../modules/es.string.small');
173
+ require('../modules/es.string.strike');
174
+ require('../modules/es.string.sub');
175
+ require('../modules/es.string.sup');
176
+ require('../modules/es.typed-array.float32-array');
177
+ require('../modules/es.typed-array.float64-array');
178
+ require('../modules/es.typed-array.int8-array');
179
+ require('../modules/es.typed-array.int16-array');
180
+ require('../modules/es.typed-array.int32-array');
181
+ require('../modules/es.typed-array.uint8-array');
182
+ require('../modules/es.typed-array.uint8-clamped-array');
183
+ require('../modules/es.typed-array.uint16-array');
184
+ require('../modules/es.typed-array.uint32-array');
185
+ require('../modules/es.typed-array.copy-within');
186
+ require('../modules/es.typed-array.every');
187
+ require('../modules/es.typed-array.fill');
188
+ require('../modules/es.typed-array.filter');
189
+ require('../modules/es.typed-array.find');
190
+ require('../modules/es.typed-array.find-index');
191
+ require('../modules/es.typed-array.for-each');
192
+ require('../modules/es.typed-array.from');
193
+ require('../modules/es.typed-array.includes');
194
+ require('../modules/es.typed-array.index-of');
195
+ require('../modules/es.typed-array.iterator');
196
+ require('../modules/es.typed-array.join');
197
+ require('../modules/es.typed-array.last-index-of');
198
+ require('../modules/es.typed-array.map');
199
+ require('../modules/es.typed-array.of');
200
+ require('../modules/es.typed-array.reduce');
201
+ require('../modules/es.typed-array.reduce-right');
202
+ require('../modules/es.typed-array.reverse');
203
+ require('../modules/es.typed-array.set');
204
+ require('../modules/es.typed-array.slice');
205
+ require('../modules/es.typed-array.some');
206
+ require('../modules/es.typed-array.sort');
207
+ require('../modules/es.typed-array.subarray');
208
+ require('../modules/es.typed-array.to-locale-string');
209
+ require('../modules/es.typed-array.to-string');
210
+ require('../modules/es.weak-map');
211
+ require('../modules/es.weak-set');
212
+ require('../modules/esnext.aggregate-error');
213
+ require('../modules/esnext.array.at');
214
+ require('../modules/esnext.array.filter-out');
215
+ require('../modules/esnext.array.find-last');
216
+ require('../modules/esnext.array.find-last-index');
217
+ require('../modules/esnext.array.is-template-object');
218
+ require('../modules/esnext.array.last-index');
219
+ require('../modules/esnext.array.last-item');
220
+ require('../modules/esnext.array.unique-by');
221
+ require('../modules/esnext.async-iterator.constructor');
222
+ require('../modules/esnext.async-iterator.as-indexed-pairs');
223
+ require('../modules/esnext.async-iterator.drop');
224
+ require('../modules/esnext.async-iterator.every');
225
+ require('../modules/esnext.async-iterator.filter');
226
+ require('../modules/esnext.async-iterator.find');
227
+ require('../modules/esnext.async-iterator.flat-map');
228
+ require('../modules/esnext.async-iterator.for-each');
229
+ require('../modules/esnext.async-iterator.from');
230
+ require('../modules/esnext.async-iterator.map');
231
+ require('../modules/esnext.async-iterator.reduce');
232
+ require('../modules/esnext.async-iterator.some');
233
+ require('../modules/esnext.async-iterator.take');
234
+ require('../modules/esnext.async-iterator.to-array');
235
+ require('../modules/esnext.bigint.range');
236
+ require('../modules/esnext.composite-key');
237
+ require('../modules/esnext.composite-symbol');
238
+ require('../modules/esnext.global-this');
239
+ require('../modules/esnext.iterator.constructor');
240
+ require('../modules/esnext.iterator.as-indexed-pairs');
241
+ require('../modules/esnext.iterator.drop');
242
+ require('../modules/esnext.iterator.every');
243
+ require('../modules/esnext.iterator.filter');
244
+ require('../modules/esnext.iterator.find');
245
+ require('../modules/esnext.iterator.flat-map');
246
+ require('../modules/esnext.iterator.for-each');
247
+ require('../modules/esnext.iterator.from');
248
+ require('../modules/esnext.iterator.map');
249
+ require('../modules/esnext.iterator.reduce');
250
+ require('../modules/esnext.iterator.some');
251
+ require('../modules/esnext.iterator.take');
252
+ require('../modules/esnext.iterator.to-array');
253
+ require('../modules/esnext.map.delete-all');
254
+ require('../modules/esnext.map.emplace');
255
+ require('../modules/esnext.map.every');
256
+ require('../modules/esnext.map.filter');
257
+ require('../modules/esnext.map.find');
258
+ require('../modules/esnext.map.find-key');
259
+ require('../modules/esnext.map.from');
260
+ require('../modules/esnext.map.group-by');
261
+ require('../modules/esnext.map.includes');
262
+ require('../modules/esnext.map.key-by');
263
+ require('../modules/esnext.map.key-of');
264
+ require('../modules/esnext.map.map-keys');
265
+ require('../modules/esnext.map.map-values');
266
+ require('../modules/esnext.map.merge');
267
+ require('../modules/esnext.map.of');
268
+ require('../modules/esnext.map.reduce');
269
+ require('../modules/esnext.map.some');
270
+ require('../modules/esnext.map.update');
271
+ require('../modules/esnext.map.update-or-insert');
272
+ require('../modules/esnext.map.upsert');
273
+ require('../modules/esnext.math.clamp');
274
+ require('../modules/esnext.math.deg-per-rad');
275
+ require('../modules/esnext.math.degrees');
276
+ require('../modules/esnext.math.fscale');
277
+ require('../modules/esnext.math.iaddh');
278
+ require('../modules/esnext.math.imulh');
279
+ require('../modules/esnext.math.isubh');
280
+ require('../modules/esnext.math.rad-per-deg');
281
+ require('../modules/esnext.math.radians');
282
+ require('../modules/esnext.math.scale');
283
+ require('../modules/esnext.math.seeded-prng');
284
+ require('../modules/esnext.math.signbit');
285
+ require('../modules/esnext.math.umulh');
286
+ require('../modules/esnext.number.from-string');
287
+ require('../modules/esnext.number.range');
288
+ require('../modules/esnext.object.iterate-entries');
289
+ require('../modules/esnext.object.iterate-keys');
290
+ require('../modules/esnext.object.iterate-values');
291
+ require('../modules/esnext.observable');
292
+ require('../modules/esnext.promise.all-settled');
293
+ require('../modules/esnext.promise.any');
294
+ require('../modules/esnext.promise.try');
295
+ require('../modules/esnext.reflect.define-metadata');
296
+ require('../modules/esnext.reflect.delete-metadata');
297
+ require('../modules/esnext.reflect.get-metadata');
298
+ require('../modules/esnext.reflect.get-metadata-keys');
299
+ require('../modules/esnext.reflect.get-own-metadata');
300
+ require('../modules/esnext.reflect.get-own-metadata-keys');
301
+ require('../modules/esnext.reflect.has-metadata');
302
+ require('../modules/esnext.reflect.has-own-metadata');
303
+ require('../modules/esnext.reflect.metadata');
304
+ require('../modules/esnext.set.add-all');
305
+ require('../modules/esnext.set.delete-all');
306
+ require('../modules/esnext.set.difference');
307
+ require('../modules/esnext.set.every');
308
+ require('../modules/esnext.set.filter');
309
+ require('../modules/esnext.set.find');
310
+ require('../modules/esnext.set.from');
311
+ require('../modules/esnext.set.intersection');
312
+ require('../modules/esnext.set.is-disjoint-from');
313
+ require('../modules/esnext.set.is-subset-of');
314
+ require('../modules/esnext.set.is-superset-of');
315
+ require('../modules/esnext.set.join');
316
+ require('../modules/esnext.set.map');
317
+ require('../modules/esnext.set.of');
318
+ require('../modules/esnext.set.reduce');
319
+ require('../modules/esnext.set.some');
320
+ require('../modules/esnext.set.symmetric-difference');
321
+ require('../modules/esnext.set.union');
322
+ require('../modules/esnext.string.at');
323
+ require('../modules/esnext.string.code-points');
324
+ require('../modules/esnext.string.match-all');
325
+ require('../modules/esnext.string.replace-all');
326
+ require('../modules/esnext.symbol.async-dispose');
327
+ require('../modules/esnext.symbol.dispose');
328
+ require('../modules/esnext.symbol.observable');
329
+ require('../modules/esnext.symbol.pattern-match');
330
+ require('../modules/esnext.symbol.replace-all');
331
+ require('../modules/esnext.typed-array.at');
332
+ require('../modules/esnext.typed-array.filter-out');
333
+ require('../modules/esnext.typed-array.find-last');
334
+ require('../modules/esnext.typed-array.find-last-index');
335
+ require('../modules/esnext.typed-array.unique-by');
336
+ require('../modules/esnext.weak-map.delete-all');
337
+ require('../modules/esnext.weak-map.from');
338
+ require('../modules/esnext.weak-map.of');
339
+ require('../modules/esnext.weak-map.emplace');
340
+ require('../modules/esnext.weak-map.upsert');
341
+ require('../modules/esnext.weak-set.add-all');
342
+ require('../modules/esnext.weak-set.delete-all');
343
+ require('../modules/esnext.weak-set.from');
344
+ require('../modules/esnext.weak-set.of');
345
+ require('../modules/web.dom-collections.for-each');
346
+ require('../modules/web.dom-collections.iterator');
347
+ require('../modules/web.immediate');
348
+ require('../modules/web.queue-microtask');
349
+ require('../modules/web.timers');
350
+ require('../modules/web.url');
351
+ require('../modules/web.url.to-json');
352
+ require('../modules/web.url-search-params');
2
353
 
3
- module.exports = parent;
354
+ module.exports = require('../internals/path');
@@ -0,0 +1,8 @@
1
+ var findLastIndex = require('../array/virtual/find-last-index');
2
+
3
+ var ArrayPrototype = Array.prototype;
4
+
5
+ module.exports = function (it) {
6
+ var own = it.findLastIndex;
7
+ return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.findLastIndex) ? findLastIndex : own;
8
+ };
@@ -0,0 +1,8 @@
1
+ var findLast = require('../array/virtual/find-last');
2
+
3
+ var ArrayPrototype = Array.prototype;
4
+
5
+ module.exports = function (it) {
6
+ var own = it.findLast;
7
+ return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.findLast) ? findLast : own;
8
+ };
@@ -0,0 +1 @@
1
+ require('../../modules/esnext.typed-array.find-last-index');
@@ -0,0 +1 @@
1
+ require('../../modules/esnext.typed-array.find-last');
@@ -1,5 +1,9 @@
1
1
  var parent = require('../../es/typed-array');
2
+ require('../../modules/es.map');
2
3
  require('../../modules/esnext.typed-array.at');
3
4
  require('../../modules/esnext.typed-array.filter-out');
5
+ require('../../modules/esnext.typed-array.find-last');
6
+ require('../../modules/esnext.typed-array.find-last-index');
7
+ require('../../modules/esnext.typed-array.unique-by');
4
8
 
5
9
  module.exports = parent;
@@ -0,0 +1,2 @@
1
+ require('../../modules/es.map');
2
+ require('../../modules/esnext.typed-array.unique-by');
package/index.js CHANGED
@@ -1,6 +1 @@
1
- require('./es');
2
- require('./proposals');
3
- require('./web');
4
- var path = require('./internals/path');
5
-
6
- module.exports = path;
1
+ module.exports = require('./features');
@@ -1 +1,2 @@
1
+ // eslint-disable-next-line es/no-typed-arrays -- safe
1
2
  module.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';
@@ -122,7 +122,7 @@ for (NAME in TypedArrayConstructorsList) {
122
122
 
123
123
  // WebKit bug - typed arrays constructors prototype is Object.prototype
124
124
  if (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) {
125
- // eslint-disable-next-line no-shadow
125
+ // eslint-disable-next-line no-shadow -- safe
126
126
  TypedArray = function TypedArray() {
127
127
  throw TypeError('Incorrect invocation');
128
128
  };
@@ -174,16 +174,18 @@ if (!NATIVE_ARRAY_BUFFER) {
174
174
  }
175
175
  });
176
176
  } else {
177
+ /* eslint-disable no-new -- required for testing */
177
178
  if (!fails(function () {
178
179
  NativeArrayBuffer(1);
179
180
  }) || !fails(function () {
180
- new NativeArrayBuffer(-1); // eslint-disable-line no-new
181
+ new NativeArrayBuffer(-1);
181
182
  }) || fails(function () {
182
- new NativeArrayBuffer(); // eslint-disable-line no-new
183
- new NativeArrayBuffer(1.5); // eslint-disable-line no-new
184
- new NativeArrayBuffer(NaN); // eslint-disable-line no-new
183
+ new NativeArrayBuffer();
184
+ new NativeArrayBuffer(1.5);
185
+ new NativeArrayBuffer(NaN);
185
186
  return NativeArrayBuffer.name != ARRAY_BUFFER;
186
187
  })) {
188
+ /* eslint-enable no-new -- required for testing */
187
189
  $ArrayBuffer = function ArrayBuffer(length) {
188
190
  anInstance(this, $ArrayBuffer);
189
191
  return new NativeArrayBuffer(toIndex(length));
@@ -204,15 +206,15 @@ if (!NATIVE_ARRAY_BUFFER) {
204
206
 
205
207
  // iOS Safari 7.x bug
206
208
  var testView = new $DataView(new $ArrayBuffer(2));
207
- var nativeSetInt8 = $DataViewPrototype.setInt8;
209
+ var $setInt8 = $DataViewPrototype.setInt8;
208
210
  testView.setInt8(0, 2147483648);
209
211
  testView.setInt8(1, 2147483649);
210
212
  if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, {
211
213
  setInt8: function setInt8(byteOffset, value) {
212
- nativeSetInt8.call(this, byteOffset, value << 24 >> 24);
214
+ $setInt8.call(this, byteOffset, value << 24 >> 24);
213
215
  },
214
216
  setUint8: function setUint8(byteOffset, value) {
215
- nativeSetInt8.call(this, byteOffset, value << 24 >> 24);
217
+ $setInt8.call(this, byteOffset, value << 24 >> 24);
216
218
  }
217
219
  }, { unsafe: true });
218
220
  }
@@ -7,6 +7,7 @@ var min = Math.min;
7
7
 
8
8
  // `Array.prototype.copyWithin` method implementation
9
9
  // https://tc39.es/ecma262/#sec-array.prototype.copywithin
10
+ // eslint-disable-next-line es/no-array-prototype-copywithin -- safe
10
11
  module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {
11
12
  var O = toObject(this);
12
13
  var len = toLength(O.length);
@@ -1,13 +1,12 @@
1
1
  'use strict';
2
2
  var $forEach = require('../internals/array-iteration').forEach;
3
3
  var arrayMethodIsStrict = require('../internals/array-method-is-strict');
4
- var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
5
4
 
6
5
  var STRICT_METHOD = arrayMethodIsStrict('forEach');
7
- var USES_TO_LENGTH = arrayMethodUsesToLength('forEach');
8
6
 
9
7
  // `Array.prototype.forEach` method implementation
10
8
  // https://tc39.es/ecma262/#sec-array.prototype.foreach
11
- module.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {
9
+ module.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {
12
10
  return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
11
+ // eslint-disable-next-line es/no-array-prototype-foreach -- safe
13
12
  } : [].forEach;
@@ -10,10 +10,10 @@ var createMethod = function (IS_INCLUDES) {
10
10
  var index = toAbsoluteIndex(fromIndex, length);
11
11
  var value;
12
12
  // Array#includes uses SameValueZero equality algorithm
13
- // eslint-disable-next-line no-self-compare
13
+ // eslint-disable-next-line no-self-compare -- NaN check
14
14
  if (IS_INCLUDES && el != el) while (length > index) {
15
15
  value = O[index++];
16
- // eslint-disable-next-line no-self-compare
16
+ // eslint-disable-next-line no-self-compare -- NaN check
17
17
  if (value != value) return true;
18
18
  // Array#indexOf ignores holes, Array#includes - not
19
19
  } else for (;length > index; index++) {
@@ -0,0 +1,34 @@
1
+ var bind = require('../internals/function-bind-context');
2
+ var IndexedObject = require('../internals/indexed-object');
3
+ var toObject = require('../internals/to-object');
4
+ var toLength = require('../internals/to-length');
5
+
6
+ // `Array.prototype.{ findLast, findLastIndex }` methods implementation
7
+ var createMethod = function (TYPE) {
8
+ var IS_FIND_INDEX = TYPE == 6;
9
+ return function ($this, callbackfn, that) {
10
+ var O = toObject($this);
11
+ var self = IndexedObject(O);
12
+ var boundFunction = bind(callbackfn, that, 3);
13
+ var index = toLength(self.length);
14
+ var value, result;
15
+ while (index-- > 0) {
16
+ value = self[index];
17
+ result = boundFunction(value, index, O);
18
+ if (result) switch (TYPE) {
19
+ case 5: return value; // find
20
+ case 6: return index; // findIndex
21
+ }
22
+ }
23
+ return IS_FIND_INDEX ? -1 : undefined;
24
+ };
25
+ };
26
+
27
+ module.exports = {
28
+ // `Array.prototype.findLast` method
29
+ // https://github.com/tc39/proposal-array-find-from-last
30
+ findLast: createMethod(5),
31
+ // `Array.prototype.findLastIndex` method
32
+ // https://github.com/tc39/proposal-array-find-from-last
33
+ findLastIndex: createMethod(6)
34
+ };
@@ -1,23 +1,21 @@
1
1
  'use strict';
2
+ /* eslint-disable es/no-array-prototype-lastindexof -- safe */
2
3
  var toIndexedObject = require('../internals/to-indexed-object');
3
4
  var toInteger = require('../internals/to-integer');
4
5
  var toLength = require('../internals/to-length');
5
6
  var arrayMethodIsStrict = require('../internals/array-method-is-strict');
6
- var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
7
7
 
8
8
  var min = Math.min;
9
- var nativeLastIndexOf = [].lastIndexOf;
10
- var NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;
9
+ var $lastIndexOf = [].lastIndexOf;
10
+ var NEGATIVE_ZERO = !!$lastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;
11
11
  var STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');
12
- // For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method
13
- var USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });
14
- var FORCED = NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH;
12
+ var FORCED = NEGATIVE_ZERO || !STRICT_METHOD;
15
13
 
16
14
  // `Array.prototype.lastIndexOf` method implementation
17
15
  // https://tc39.es/ecma262/#sec-array.prototype.lastindexof
18
16
  module.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {
19
17
  // convert -0 to +0
20
- if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0;
18
+ if (NEGATIVE_ZERO) return $lastIndexOf.apply(this, arguments) || 0;
21
19
  var O = toIndexedObject(this);
22
20
  var length = toLength(O.length);
23
21
  var index = length - 1;
@@ -25,4 +23,4 @@ module.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[
25
23
  if (index < 0) index = length + index;
26
24
  for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;
27
25
  return -1;
28
- } : nativeLastIndexOf;
26
+ } : $lastIndexOf;
@@ -4,7 +4,7 @@ var fails = require('../internals/fails');
4
4
  module.exports = function (METHOD_NAME, argument) {
5
5
  var method = [][METHOD_NAME];
6
6
  return !!method && fails(function () {
7
- // eslint-disable-next-line no-useless-call,no-throw-literal
7
+ // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing
8
8
  method.call(null, argument || function () { throw 1; }, 1);
9
9
  });
10
10
  };
@@ -0,0 +1,32 @@
1
+ 'use strict';
2
+ var toLength = require('../internals/to-length');
3
+ var toObject = require('../internals/to-object');
4
+ var getBuiltIn = require('../internals/get-built-in');
5
+ var arraySpeciesCreate = require('../internals/array-species-create');
6
+
7
+ var push = [].push;
8
+
9
+ // `Array.prototype.uniqueBy` method
10
+ // https://github.com/tc39/proposal-array-unique
11
+ module.exports = function uniqueBy(resolver) {
12
+ var that = toObject(this);
13
+ var length = toLength(that.length);
14
+ var result = arraySpeciesCreate(that, 0);
15
+ var Map = getBuiltIn('Map');
16
+ var map = new Map();
17
+ var resolverFunction, index, item, key;
18
+ if (typeof resolver == 'function') resolverFunction = resolver;
19
+ else if (resolver == null) resolverFunction = function (value) {
20
+ return value;
21
+ };
22
+ else throw new TypeError('Incorrect resolver!');
23
+ for (index = 0; index < length; index++) {
24
+ item = that[index];
25
+ key = resolverFunction(item);
26
+ if (!map.has(key)) map.set(key, item);
27
+ }
28
+ map.forEach(function (value) {
29
+ push.call(result, value);
30
+ });
31
+ return result;
32
+ };
@@ -19,7 +19,7 @@ if (!IS_PURE) {
19
19
  AsyncIteratorPrototype = AsyncIterator.prototype;
20
20
  } else if (shared[USE_FUNCTION_CONSTRUCTOR] || global[USE_FUNCTION_CONSTRUCTOR]) {
21
21
  try {
22
- // eslint-disable-next-line no-new-func
22
+ // eslint-disable-next-line no-new-func -- we have no alternatives without usage of modern syntax
23
23
  prototype = getPrototypeOf(getPrototypeOf(getPrototypeOf(Function('return async function*(){}()')())));
24
24
  if (getPrototypeOf(prototype) === Object.prototype) AsyncIteratorPrototype = prototype;
25
25
  } catch (error) { /* empty */ }
@@ -16,7 +16,7 @@ try {
16
16
  iteratorWithReturn[ITERATOR] = function () {
17
17
  return this;
18
18
  };
19
- // eslint-disable-next-line no-throw-literal
19
+ // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing
20
20
  Array.from(iteratorWithReturn, function () { throw 2; });
21
21
  } catch (error) { /* empty */ }
22
22