core-js 3.15.2 → 3.16.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 (284) hide show
  1. package/README.md +1 -1
  2. package/es/aggregate-error.js +1 -1
  3. package/es/array/entries.js +1 -0
  4. package/es/array/index.js +2 -1
  5. package/es/array/iterator.js +1 -0
  6. package/es/array/keys.js +1 -0
  7. package/es/array/values.js +1 -0
  8. package/es/array/virtual/entries.js +1 -0
  9. package/es/array/virtual/index.js +1 -0
  10. package/es/array/virtual/iterator.js +1 -0
  11. package/es/array/virtual/keys.js +1 -0
  12. package/es/array/virtual/values.js +1 -0
  13. package/es/escape.js +2 -2
  14. package/es/map/index.js +1 -1
  15. package/es/promise/all-settled.js +2 -1
  16. package/es/promise/any.js +2 -1
  17. package/es/promise/finally.js +1 -0
  18. package/es/promise/index.js +1 -1
  19. package/es/reflect/index.js +1 -0
  20. package/es/reflect/to-string-tag.js +1 -0
  21. package/es/regexp/constructor.js +3 -0
  22. package/es/regexp/match.js +1 -0
  23. package/es/regexp/replace.js +1 -0
  24. package/es/regexp/search.js +1 -0
  25. package/es/regexp/split.js +1 -0
  26. package/es/set/index.js +2 -2
  27. package/es/string/index.js +1 -0
  28. package/es/string/iterator.js +1 -0
  29. package/es/string/match-all.js +2 -0
  30. package/es/string/replace-all.js +2 -0
  31. package/es/string/virtual/index.js +2 -0
  32. package/es/string/virtual/iterator.js +1 -0
  33. package/es/string/virtual/match-all.js +2 -0
  34. package/es/string/virtual/replace-all.js +2 -0
  35. package/es/symbol/is-concat-spreadable.js +1 -1
  36. package/es/symbol/iterator.js +3 -2
  37. package/es/symbol/match-all.js +2 -0
  38. package/es/symbol/match.js +1 -0
  39. package/es/symbol/replace.js +1 -0
  40. package/es/symbol/search.js +1 -0
  41. package/es/symbol/split.js +1 -0
  42. package/es/symbol/to-primitive.js +1 -0
  43. package/es/symbol/to-string-tag.js +2 -2
  44. package/es/typed-array/entries.js +1 -0
  45. package/es/typed-array/iterator.js +1 -0
  46. package/es/typed-array/keys.js +1 -0
  47. package/es/typed-array/methods.js +2 -1
  48. package/es/typed-array/values.js +1 -0
  49. package/es/unescape.js +2 -2
  50. package/es/weak-map/index.js +1 -1
  51. package/es/weak-set/index.js +1 -1
  52. package/features/array/filter-out.js +1 -0
  53. package/features/array/filter-reject.js +4 -0
  54. package/features/array/group-by.js +4 -0
  55. package/features/array/index.js +3 -0
  56. package/features/array/virtual/filter-out.js +1 -0
  57. package/features/array/virtual/filter-reject.js +4 -0
  58. package/features/array/virtual/group-by.js +4 -0
  59. package/features/array/virtual/index.js +3 -0
  60. package/features/async-iterator/as-indexed-pairs.js +0 -2
  61. package/features/async-iterator/drop.js +0 -2
  62. package/features/async-iterator/every.js +0 -2
  63. package/features/async-iterator/filter.js +0 -2
  64. package/features/async-iterator/find.js +0 -2
  65. package/features/async-iterator/flat-map.js +0 -2
  66. package/features/async-iterator/for-each.js +0 -2
  67. package/features/async-iterator/from.js +1 -0
  68. package/features/async-iterator/index.js +1 -0
  69. package/features/async-iterator/map.js +0 -2
  70. package/features/async-iterator/reduce.js +0 -2
  71. package/features/async-iterator/some.js +0 -2
  72. package/features/async-iterator/take.js +0 -2
  73. package/features/async-iterator/to-array.js +0 -2
  74. package/features/get-iterator-method.js +2 -1
  75. package/features/get-iterator.js +2 -1
  76. package/features/index.js +4 -0
  77. package/features/instance/filter-out.js +1 -0
  78. package/features/instance/filter-reject.js +8 -0
  79. package/features/instance/group-by.js +8 -0
  80. package/features/is-iterable.js +2 -1
  81. package/features/iterator/as-indexed-pairs.js +0 -2
  82. package/features/iterator/drop.js +0 -2
  83. package/features/iterator/every.js +0 -2
  84. package/features/iterator/filter.js +0 -2
  85. package/features/iterator/find.js +0 -2
  86. package/features/iterator/flat-map.js +0 -2
  87. package/features/iterator/for-each.js +0 -2
  88. package/features/iterator/from.js +1 -0
  89. package/features/iterator/index.js +1 -0
  90. package/features/iterator/map.js +0 -2
  91. package/features/iterator/reduce.js +0 -2
  92. package/features/iterator/some.js +0 -2
  93. package/features/iterator/take.js +0 -2
  94. package/features/iterator/to-array.js +0 -2
  95. package/features/map/from.js +1 -0
  96. package/features/map/of.js +1 -2
  97. package/features/number/range.js +1 -0
  98. package/features/set/difference.js +1 -0
  99. package/features/set/from.js +1 -0
  100. package/features/set/intersection.js +3 -0
  101. package/features/set/is-disjoint-from.js +3 -0
  102. package/features/set/is-subset-of.js +1 -0
  103. package/features/set/is-superset-of.js +3 -0
  104. package/features/set/of.js +1 -2
  105. package/features/set/symmetric-difference.js +1 -0
  106. package/features/set/union.js +1 -0
  107. package/features/string/code-points.js +1 -0
  108. package/features/string/virtual/code-points.js +1 -0
  109. package/features/typed-array/copy-within.js +3 -1
  110. package/features/typed-array/entries.js +3 -1
  111. package/features/typed-array/every.js +3 -1
  112. package/features/typed-array/fill.js +3 -1
  113. package/features/typed-array/filter-out.js +1 -0
  114. package/features/typed-array/filter-reject.js +1 -0
  115. package/features/typed-array/filter.js +3 -1
  116. package/features/typed-array/find-index.js +3 -1
  117. package/features/typed-array/find.js +3 -1
  118. package/features/typed-array/float32-array.js +1 -1
  119. package/features/typed-array/float64-array.js +1 -1
  120. package/features/typed-array/for-each.js +3 -1
  121. package/features/typed-array/from.js +3 -1
  122. package/features/typed-array/group-by.js +1 -0
  123. package/features/typed-array/includes.js +3 -1
  124. package/features/typed-array/index-of.js +3 -1
  125. package/features/typed-array/index.js +4 -1
  126. package/features/typed-array/int16-array.js +1 -1
  127. package/features/typed-array/int32-array.js +1 -1
  128. package/features/typed-array/int8-array.js +1 -1
  129. package/features/typed-array/iterator.js +3 -1
  130. package/features/typed-array/join.js +3 -1
  131. package/features/typed-array/keys.js +3 -1
  132. package/features/typed-array/last-index-of.js +3 -1
  133. package/features/typed-array/map.js +3 -1
  134. package/features/typed-array/of.js +3 -1
  135. package/features/typed-array/reduce-right.js +3 -1
  136. package/features/typed-array/reduce.js +3 -1
  137. package/features/typed-array/reverse.js +3 -1
  138. package/features/typed-array/set.js +3 -1
  139. package/features/typed-array/slice.js +3 -1
  140. package/features/typed-array/some.js +3 -1
  141. package/features/typed-array/sort.js +3 -1
  142. package/features/typed-array/subarray.js +3 -1
  143. package/features/typed-array/to-locale-string.js +3 -1
  144. package/features/typed-array/to-string.js +3 -1
  145. package/features/typed-array/uint16-array.js +1 -1
  146. package/features/typed-array/uint32-array.js +1 -1
  147. package/features/typed-array/uint8-array.js +1 -1
  148. package/features/typed-array/uint8-clamped-array.js +1 -1
  149. package/features/typed-array/values.js +3 -1
  150. package/features/weak-map/from.js +1 -0
  151. package/features/weak-map/index.js +1 -0
  152. package/features/weak-map/of.js +1 -2
  153. package/features/weak-set/from.js +1 -0
  154. package/features/weak-set/index.js +1 -0
  155. package/features/weak-set/of.js +1 -2
  156. package/internals/array-buffer-view-core.js +16 -10
  157. package/internals/array-from-constructor-and-list.js +7 -0
  158. package/internals/array-group-by.js +33 -0
  159. package/internals/array-iteration-from-last.js +6 -6
  160. package/internals/array-iteration.js +6 -6
  161. package/internals/array-species-constructor.js +20 -0
  162. package/internals/array-species-create.js +2 -15
  163. package/internals/collection.js +1 -1
  164. package/internals/create-html.js +3 -2
  165. package/internals/create-property.js +2 -2
  166. package/internals/date-to-primitive.js +5 -4
  167. package/internals/engine-v8-version.js +2 -1
  168. package/internals/get-built-in.js +1 -3
  169. package/internals/get-map-iterator.js +1 -4
  170. package/internals/get-set-iterator.js +1 -4
  171. package/internals/internal-metadata.js +32 -2
  172. package/internals/is-symbol.js +9 -0
  173. package/internals/number-parse-float.js +2 -1
  174. package/internals/number-parse-int.js +2 -1
  175. package/internals/object-create.js +17 -12
  176. package/internals/object-define-property.js +2 -2
  177. package/internals/object-get-own-property-descriptor.js +2 -2
  178. package/internals/ordinary-to-primitive.js +11 -0
  179. package/internals/regexp-exec.js +5 -3
  180. package/internals/set-global.js +2 -2
  181. package/internals/shared.js +1 -1
  182. package/internals/string-multibyte.js +3 -2
  183. package/internals/string-pad.js +3 -2
  184. package/internals/string-repeat.js +2 -1
  185. package/internals/string-trim.js +2 -1
  186. package/internals/task.js +9 -4
  187. package/internals/to-primitive.js +17 -9
  188. package/internals/to-property-key.js +9 -0
  189. package/internals/to-string.js +6 -0
  190. package/internals/typed-array-constructor.js +13 -5
  191. package/internals/typed-array-from-species-and-list.js +3 -8
  192. package/internals/typed-array-species-constructor.js +11 -0
  193. package/modules/es.aggregate-error.js +2 -1
  194. package/modules/es.array.sort.js +2 -1
  195. package/modules/es.date.get-year.js +6 -1
  196. package/modules/es.date.to-json.js +1 -1
  197. package/modules/es.date.to-string.js +1 -1
  198. package/modules/es.escape.js +2 -1
  199. package/modules/es.number.constructor.js +3 -1
  200. package/modules/es.object.lookup-getter.js +2 -2
  201. package/modules/es.object.lookup-setter.js +2 -2
  202. package/modules/es.reflect.define-property.js +2 -2
  203. package/modules/es.regexp.constructor.js +3 -2
  204. package/modules/es.regexp.to-string.js +3 -2
  205. package/modules/es.string.ends-with.js +3 -2
  206. package/modules/es.string.includes.js +3 -2
  207. package/modules/es.string.iterator.js +2 -1
  208. package/modules/es.string.match-all.js +6 -5
  209. package/modules/es.string.match.js +7 -6
  210. package/modules/es.string.raw.js +3 -2
  211. package/modules/es.string.replace-all.js +7 -6
  212. package/modules/es.string.replace.js +11 -10
  213. package/modules/es.string.search.js +6 -5
  214. package/modules/es.string.split.js +7 -5
  215. package/modules/es.string.starts-with.js +3 -2
  216. package/modules/es.string.substr.js +2 -1
  217. package/modules/es.symbol.js +8 -13
  218. package/modules/es.typed-array.map.js +2 -3
  219. package/modules/es.typed-array.slice.js +3 -4
  220. package/modules/es.typed-array.subarray.js +3 -2
  221. package/modules/es.unescape.js +2 -1
  222. package/modules/es.weak-map.js +1 -1
  223. package/modules/esnext.array.filter-out.js +3 -2
  224. package/modules/esnext.array.filter-reject.js +14 -0
  225. package/modules/esnext.array.group-by.js +16 -0
  226. package/modules/esnext.map.merge.js +2 -1
  227. package/modules/esnext.string.at-alternative.js +3 -2
  228. package/modules/esnext.string.code-points.js +2 -1
  229. package/modules/esnext.typed-array.filter-out.js +3 -2
  230. package/modules/esnext.typed-array.filter-reject.js +14 -0
  231. package/modules/esnext.typed-array.group-by.js +14 -0
  232. package/modules/web.url-search-params.js +56 -36
  233. package/modules/web.url.js +14 -13
  234. package/package.json +3 -4
  235. package/postinstall.js +4 -2
  236. package/proposals/array-filtering.js +4 -0
  237. package/proposals/array-grouping.js +3 -0
  238. package/stable/aggregate-error.js +1 -0
  239. package/stable/dom-collections/index.js +1 -0
  240. package/stable/dom-collections/iterator.js +1 -0
  241. package/stable/map/index.js +1 -0
  242. package/stable/object/from-entries.js +1 -0
  243. package/stable/object/index.js +1 -0
  244. package/stable/promise/all-settled.js +1 -0
  245. package/stable/promise/any.js +1 -0
  246. package/stable/promise/index.js +1 -0
  247. package/stable/set/index.js +1 -0
  248. package/stable/symbol/index.js +1 -0
  249. package/stable/symbol/iterator.js +1 -0
  250. package/stable/typed-array/copy-within.js +3 -1
  251. package/stable/typed-array/entries.js +3 -1
  252. package/stable/typed-array/every.js +3 -1
  253. package/stable/typed-array/fill.js +3 -1
  254. package/stable/typed-array/filter.js +3 -1
  255. package/stable/typed-array/find-index.js +3 -1
  256. package/stable/typed-array/find.js +3 -1
  257. package/stable/typed-array/for-each.js +3 -1
  258. package/stable/typed-array/from.js +3 -1
  259. package/stable/typed-array/includes.js +3 -1
  260. package/stable/typed-array/index-of.js +3 -1
  261. package/stable/typed-array/iterator.js +3 -1
  262. package/stable/typed-array/join.js +3 -1
  263. package/stable/typed-array/keys.js +3 -1
  264. package/stable/typed-array/last-index-of.js +3 -1
  265. package/stable/typed-array/map.js +3 -1
  266. package/stable/typed-array/of.js +3 -1
  267. package/stable/typed-array/reduce-right.js +3 -1
  268. package/stable/typed-array/reduce.js +3 -1
  269. package/stable/typed-array/reverse.js +3 -1
  270. package/stable/typed-array/set.js +3 -1
  271. package/stable/typed-array/slice.js +3 -1
  272. package/stable/typed-array/some.js +3 -1
  273. package/stable/typed-array/sort.js +3 -1
  274. package/stable/typed-array/subarray.js +3 -1
  275. package/stable/typed-array/to-locale-string.js +3 -1
  276. package/stable/typed-array/to-string.js +3 -1
  277. package/stable/typed-array/values.js +3 -1
  278. package/stable/url-search-params/index.js +1 -0
  279. package/stable/weak-map/index.js +1 -0
  280. package/stable/weak-set/index.js +1 -0
  281. package/stage/1.js +1 -0
  282. package/stage/2.js +0 -1
  283. package/stage/3.js +1 -0
  284. package/es/array/virtual/filter-out.js +0 -4
@@ -1,8 +1,7 @@
1
1
  'use strict';
2
- require('../../modules/es.string.iterator');
2
+ require('../../modules/es.array.iterator');
3
3
  require('../../modules/es.weak-map');
4
4
  require('../../modules/esnext.weak-map.of');
5
- require('../../modules/web.dom-collections.iterator');
6
5
  var path = require('../../internals/path');
7
6
 
8
7
  var WeakMap = path.WeakMap;
@@ -1,4 +1,5 @@
1
1
  'use strict';
2
+ require('../../modules/es.array.iterator');
2
3
  require('../../modules/es.string.iterator');
3
4
  require('../../modules/es.weak-set');
4
5
  require('../../modules/esnext.weak-set.from');
@@ -1,4 +1,5 @@
1
1
  var parent = require('../../es/weak-set');
2
+ require('../../modules/es.string.iterator');
2
3
  require('../../modules/esnext.weak-set.add-all');
3
4
  require('../../modules/esnext.weak-set.delete-all');
4
5
  require('../../modules/esnext.weak-set.from');
@@ -1,8 +1,7 @@
1
1
  'use strict';
2
- require('../../modules/es.string.iterator');
2
+ require('../../modules/es.array.iterator');
3
3
  require('../../modules/es.weak-set');
4
4
  require('../../modules/esnext.weak-set.of');
5
- require('../../modules/web.dom-collections.iterator');
6
5
  var path = require('../../internals/path');
7
6
 
8
7
  var WeakSet = path.WeakSet;
@@ -24,10 +24,11 @@ var isPrototypeOf = ObjectPrototype.isPrototypeOf;
24
24
 
25
25
  var TO_STRING_TAG = wellKnownSymbol('toStringTag');
26
26
  var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');
27
+ var TYPED_ARRAY_CONSTRUCTOR = uid('TYPED_ARRAY_CONSTRUCTOR');
27
28
  // Fixing native typed arrays in Opera Presto crashes the browser, see #595
28
29
  var NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';
29
30
  var TYPED_ARRAY_TAG_REQIRED = false;
30
- var NAME;
31
+ var NAME, Constructor, Prototype;
31
32
 
32
33
  var TypedArrayConstructorsList = {
33
34
  Int8Array: 1,
@@ -67,14 +68,9 @@ var aTypedArray = function (it) {
67
68
  };
68
69
 
69
70
  var aTypedArrayConstructor = function (C) {
70
- if (setPrototypeOf) {
71
- if (isPrototypeOf.call(TypedArray, C)) return C;
72
- } else for (var ARRAY in TypedArrayConstructorsList) if (has(TypedArrayConstructorsList, NAME)) {
73
- var TypedArrayConstructor = global[ARRAY];
74
- if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) {
75
- return C;
76
- }
77
- } throw TypeError('Target is not a typed array constructor');
71
+ if (setPrototypeOf && !isPrototypeOf.call(TypedArray, C)) {
72
+ throw TypeError('Target is not a typed array constructor');
73
+ } return C;
78
74
  };
79
75
 
80
76
  var exportTypedArrayMethod = function (KEY, property, forced) {
@@ -117,7 +113,16 @@ var exportTypedArrayStaticMethod = function (KEY, property, forced) {
117
113
  };
118
114
 
119
115
  for (NAME in TypedArrayConstructorsList) {
120
- if (!global[NAME]) NATIVE_ARRAY_BUFFER_VIEWS = false;
116
+ Constructor = global[NAME];
117
+ Prototype = Constructor && Constructor.prototype;
118
+ if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);
119
+ else NATIVE_ARRAY_BUFFER_VIEWS = false;
120
+ }
121
+
122
+ for (NAME in BigIntArrayConstructorsList) {
123
+ Constructor = global[NAME];
124
+ Prototype = Constructor && Constructor.prototype;
125
+ if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);
121
126
  }
122
127
 
123
128
  // WebKit bug - typed arrays constructors prototype is Object.prototype
@@ -155,6 +160,7 @@ if (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {
155
160
 
156
161
  module.exports = {
157
162
  NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,
163
+ TYPED_ARRAY_CONSTRUCTOR: TYPED_ARRAY_CONSTRUCTOR,
158
164
  TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,
159
165
  aTypedArray: aTypedArray,
160
166
  aTypedArrayConstructor: aTypedArrayConstructor,
@@ -0,0 +1,7 @@
1
+ module.exports = function (Constructor, list) {
2
+ var index = 0;
3
+ var length = list.length;
4
+ var result = new Constructor(length);
5
+ while (length > index) result[index] = list[index++];
6
+ return result;
7
+ };
@@ -0,0 +1,33 @@
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
+ var toPropertyKey = require('../internals/to-property-key');
6
+ var objectCreate = require('../internals/object-create');
7
+ var arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');
8
+
9
+ var push = [].push;
10
+
11
+ module.exports = function ($this, callbackfn, that, specificConstructor) {
12
+ var O = toObject($this);
13
+ var self = IndexedObject(O);
14
+ var boundFunction = bind(callbackfn, that, 3);
15
+ var target = objectCreate(null);
16
+ var length = toLength(self.length);
17
+ var index = 0;
18
+ var Constructor, key, value;
19
+ for (;length > index; index++) {
20
+ value = self[index];
21
+ key = toPropertyKey(boundFunction(value, index, O));
22
+ // in some IE10 builds, `hasOwnProperty` returns incorrect result on integer keys
23
+ // but since it's a `null` prototype object, we can safely use `in`
24
+ if (key in target) push.call(target[key], value);
25
+ else target[key] = [value];
26
+ }
27
+ if (specificConstructor) {
28
+ Constructor = specificConstructor(O);
29
+ if (Constructor !== Array) {
30
+ for (key in target) target[key] = arrayFromConstructorAndList(Constructor, target[key]);
31
+ }
32
+ } return target;
33
+ };
@@ -5,7 +5,7 @@ var toLength = require('../internals/to-length');
5
5
 
6
6
  // `Array.prototype.{ findLast, findLastIndex }` methods implementation
7
7
  var createMethod = function (TYPE) {
8
- var IS_FIND_INDEX = TYPE == 6;
8
+ var IS_FIND_LAST_INDEX = TYPE == 1;
9
9
  return function ($this, callbackfn, that) {
10
10
  var O = toObject($this);
11
11
  var self = IndexedObject(O);
@@ -16,19 +16,19 @@ var createMethod = function (TYPE) {
16
16
  value = self[index];
17
17
  result = boundFunction(value, index, O);
18
18
  if (result) switch (TYPE) {
19
- case 5: return value; // find
20
- case 6: return index; // findIndex
19
+ case 0: return value; // findLast
20
+ case 1: return index; // findLastIndex
21
21
  }
22
22
  }
23
- return IS_FIND_INDEX ? -1 : undefined;
23
+ return IS_FIND_LAST_INDEX ? -1 : undefined;
24
24
  };
25
25
  };
26
26
 
27
27
  module.exports = {
28
28
  // `Array.prototype.findLast` method
29
29
  // https://github.com/tc39/proposal-array-find-from-last
30
- findLast: createMethod(5),
30
+ findLast: createMethod(0),
31
31
  // `Array.prototype.findLastIndex` method
32
32
  // https://github.com/tc39/proposal-array-find-from-last
33
- findLastIndex: createMethod(6)
33
+ findLastIndex: createMethod(1)
34
34
  };
@@ -6,14 +6,14 @@ var arraySpeciesCreate = require('../internals/array-species-create');
6
6
 
7
7
  var push = [].push;
8
8
 
9
- // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation
9
+ // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation
10
10
  var createMethod = function (TYPE) {
11
11
  var IS_MAP = TYPE == 1;
12
12
  var IS_FILTER = TYPE == 2;
13
13
  var IS_SOME = TYPE == 3;
14
14
  var IS_EVERY = TYPE == 4;
15
15
  var IS_FIND_INDEX = TYPE == 6;
16
- var IS_FILTER_OUT = TYPE == 7;
16
+ var IS_FILTER_REJECT = TYPE == 7;
17
17
  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
18
18
  return function ($this, callbackfn, that, specificCreate) {
19
19
  var O = toObject($this);
@@ -22,7 +22,7 @@ var createMethod = function (TYPE) {
22
22
  var length = toLength(self.length);
23
23
  var index = 0;
24
24
  var create = specificCreate || arraySpeciesCreate;
25
- var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;
25
+ var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;
26
26
  var value, result;
27
27
  for (;length > index; index++) if (NO_HOLES || index in self) {
28
28
  value = self[index];
@@ -36,7 +36,7 @@ var createMethod = function (TYPE) {
36
36
  case 2: push.call(target, value); // filter
37
37
  } else switch (TYPE) {
38
38
  case 4: return false; // every
39
- case 7: push.call(target, value); // filterOut
39
+ case 7: push.call(target, value); // filterReject
40
40
  }
41
41
  }
42
42
  }
@@ -66,7 +66,7 @@ module.exports = {
66
66
  // `Array.prototype.findIndex` method
67
67
  // https://tc39.es/ecma262/#sec-array.prototype.findIndex
68
68
  findIndex: createMethod(6),
69
- // `Array.prototype.filterOut` method
69
+ // `Array.prototype.filterReject` method
70
70
  // https://github.com/tc39/proposal-array-filtering
71
- filterOut: createMethod(7)
71
+ filterReject: createMethod(7)
72
72
  };
@@ -0,0 +1,20 @@
1
+ var isObject = require('../internals/is-object');
2
+ var isArray = require('../internals/is-array');
3
+ var wellKnownSymbol = require('../internals/well-known-symbol');
4
+
5
+ var SPECIES = wellKnownSymbol('species');
6
+
7
+ // a part of `ArraySpeciesCreate` abstract operation
8
+ // https://tc39.es/ecma262/#sec-arrayspeciescreate
9
+ module.exports = function (originalArray) {
10
+ var C;
11
+ if (isArray(originalArray)) {
12
+ C = originalArray.constructor;
13
+ // cross-realm fallback
14
+ if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
15
+ else if (isObject(C)) {
16
+ C = C[SPECIES];
17
+ if (C === null) C = undefined;
18
+ }
19
+ } return C === undefined ? Array : C;
20
+ };
@@ -1,20 +1,7 @@
1
- var isObject = require('../internals/is-object');
2
- var isArray = require('../internals/is-array');
3
- var wellKnownSymbol = require('../internals/well-known-symbol');
4
-
5
- var SPECIES = wellKnownSymbol('species');
1
+ var arraySpeciesConstructor = require('../internals/array-species-constructor');
6
2
 
7
3
  // `ArraySpeciesCreate` abstract operation
8
4
  // https://tc39.es/ecma262/#sec-arrayspeciescreate
9
5
  module.exports = function (originalArray, length) {
10
- var C;
11
- if (isArray(originalArray)) {
12
- C = originalArray.constructor;
13
- // cross-realm fallback
14
- if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
15
- else if (isObject(C)) {
16
- C = C[SPECIES];
17
- if (C === null) C = undefined;
18
- }
19
- } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
6
+ return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);
20
7
  };
@@ -50,7 +50,7 @@ module.exports = function (CONSTRUCTOR_NAME, wrapper, common) {
50
50
  if (REPLACE) {
51
51
  // create collection constructor
52
52
  Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);
53
- InternalMetadataModule.REQUIRED = true;
53
+ InternalMetadataModule.enable();
54
54
  } else if (isForced(CONSTRUCTOR_NAME, true)) {
55
55
  var instance = new Constructor();
56
56
  // early implementations not supports chaining
@@ -1,12 +1,13 @@
1
1
  var requireObjectCoercible = require('../internals/require-object-coercible');
2
+ var toString = require('../internals/to-string');
2
3
 
3
4
  var quot = /"/g;
4
5
 
5
6
  // `CreateHTML` abstract operation
6
7
  // https://tc39.es/ecma262/#sec-createhtml
7
8
  module.exports = function (string, tag, attribute, value) {
8
- var S = String(requireObjectCoercible(string));
9
+ var S = toString(requireObjectCoercible(string));
9
10
  var p1 = '<' + tag;
10
- if (attribute !== '') p1 += ' ' + attribute + '="' + String(value).replace(quot, '&quot;') + '"';
11
+ if (attribute !== '') p1 += ' ' + attribute + '="' + toString(value).replace(quot, '&quot;') + '"';
11
12
  return p1 + '>' + S + '</' + tag + '>';
12
13
  };
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
- var toPrimitive = require('../internals/to-primitive');
2
+ var toPropertyKey = require('../internals/to-property-key');
3
3
  var definePropertyModule = require('../internals/object-define-property');
4
4
  var createPropertyDescriptor = require('../internals/create-property-descriptor');
5
5
 
6
6
  module.exports = function (object, key, value) {
7
- var propertyKey = toPrimitive(key);
7
+ var propertyKey = toPropertyKey(key);
8
8
  if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));
9
9
  else object[propertyKey] = value;
10
10
  };
@@ -1,11 +1,12 @@
1
1
  'use strict';
2
2
  var anObject = require('../internals/an-object');
3
- var toPrimitive = require('../internals/to-primitive');
3
+ var ordinaryToPrimitive = require('../internals/ordinary-to-primitive');
4
4
 
5
5
  // `Date.prototype[@@toPrimitive](hint)` method implementation
6
6
  // https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive
7
7
  module.exports = function (hint) {
8
- if (hint !== 'string' && hint !== 'number' && hint !== 'default') {
9
- throw TypeError('Incorrect hint');
10
- } return toPrimitive(anObject(this), hint !== 'number');
8
+ anObject(this);
9
+ if (hint === 'string' || hint === 'default') hint = 'string';
10
+ else if (hint !== 'number') throw TypeError('Incorrect hint');
11
+ return ordinaryToPrimitive(this, hint);
11
12
  };
@@ -2,7 +2,8 @@ var global = require('../internals/global');
2
2
  var userAgent = require('../internals/engine-user-agent');
3
3
 
4
4
  var process = global.process;
5
- var versions = process && process.versions;
5
+ var Deno = global.Deno;
6
+ var versions = process && process.versions || Deno && Deno.version;
6
7
  var v8 = versions && versions.v8;
7
8
  var match, version;
8
9
 
@@ -1,4 +1,3 @@
1
- var path = require('../internals/path');
2
1
  var global = require('../internals/global');
3
2
 
4
3
  var aFunction = function (variable) {
@@ -6,6 +5,5 @@ var aFunction = function (variable) {
6
5
  };
7
6
 
8
7
  module.exports = function (namespace, method) {
9
- return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])
10
- : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];
8
+ return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];
11
9
  };
@@ -1,7 +1,4 @@
1
- var IS_PURE = require('../internals/is-pure');
2
- var getIterator = require('../internals/get-iterator');
3
-
4
- module.exports = IS_PURE ? getIterator : function (it) {
1
+ module.exports = function (it) {
5
2
  // eslint-disable-next-line es/no-map -- safe
6
3
  return Map.prototype.entries.call(it);
7
4
  };
@@ -1,7 +1,4 @@
1
- var IS_PURE = require('../internals/is-pure');
2
- var getIterator = require('../internals/get-iterator');
3
-
4
- module.exports = IS_PURE ? getIterator : function (it) {
1
+ module.exports = function (it) {
5
2
  // eslint-disable-next-line es/no-set -- safe
6
3
  return Set.prototype.values.call(it);
7
4
  };
@@ -1,10 +1,14 @@
1
+ var $ = require('../internals/export');
1
2
  var hiddenKeys = require('../internals/hidden-keys');
2
3
  var isObject = require('../internals/is-object');
3
4
  var has = require('../internals/has');
4
5
  var defineProperty = require('../internals/object-define-property').f;
6
+ var getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');
7
+ var getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');
5
8
  var uid = require('../internals/uid');
6
9
  var FREEZING = require('../internals/freezing');
7
10
 
11
+ var REQUIRED = false;
8
12
  var METADATA = uid('meta');
9
13
  var id = 0;
10
14
 
@@ -48,12 +52,38 @@ var getWeakData = function (it, create) {
48
52
 
49
53
  // add metadata on freeze-family methods calling
50
54
  var onFreeze = function (it) {
51
- if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);
55
+ if (FREEZING && REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);
52
56
  return it;
53
57
  };
54
58
 
59
+ var enable = function () {
60
+ meta.enable = function () { /* empty */ };
61
+ REQUIRED = true;
62
+ var getOwnPropertyNames = getOwnPropertyNamesModule.f;
63
+ var splice = [].splice;
64
+ var test = {};
65
+ test[METADATA] = 1;
66
+
67
+ // prevent exposing of metadata key
68
+ if (getOwnPropertyNames(test).length) {
69
+ getOwnPropertyNamesModule.f = function (it) {
70
+ var result = getOwnPropertyNames(it);
71
+ for (var i = 0, length = result.length; i < length; i++) {
72
+ if (result[i] === METADATA) {
73
+ splice.call(result, i, 1);
74
+ break;
75
+ }
76
+ } return result;
77
+ };
78
+
79
+ $({ target: 'Object', stat: true, forced: true }, {
80
+ getOwnPropertyNames: getOwnPropertyNamesExternalModule.f
81
+ });
82
+ }
83
+ };
84
+
55
85
  var meta = module.exports = {
56
- REQUIRED: false,
86
+ enable: enable,
57
87
  fastKey: fastKey,
58
88
  getWeakData: getWeakData,
59
89
  onFreeze: onFreeze
@@ -0,0 +1,9 @@
1
+ var getBuiltIn = require('../internals/get-built-in');
2
+ var USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');
3
+
4
+ module.exports = USE_SYMBOL_AS_UID ? function (it) {
5
+ return typeof it == 'symbol';
6
+ } : function (it) {
7
+ var $Symbol = getBuiltIn('Symbol');
8
+ return typeof $Symbol == 'function' && Object(it) instanceof $Symbol;
9
+ };
@@ -1,4 +1,5 @@
1
1
  var global = require('../internals/global');
2
+ var toString = require('../internals/to-string');
2
3
  var trim = require('../internals/string-trim').trim;
3
4
  var whitespaces = require('../internals/whitespaces');
4
5
 
@@ -8,7 +9,7 @@ var FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity;
8
9
  // `parseFloat` method
9
10
  // https://tc39.es/ecma262/#sec-parsefloat-string
10
11
  module.exports = FORCED ? function parseFloat(string) {
11
- var trimmedString = trim(String(string));
12
+ var trimmedString = trim(toString(string));
12
13
  var result = $parseFloat(trimmedString);
13
14
  return result === 0 && trimmedString.charAt(0) == '-' ? -0 : result;
14
15
  } : $parseFloat;
@@ -1,4 +1,5 @@
1
1
  var global = require('../internals/global');
2
+ var toString = require('../internals/to-string');
2
3
  var trim = require('../internals/string-trim').trim;
3
4
  var whitespaces = require('../internals/whitespaces');
4
5
 
@@ -9,6 +10,6 @@ var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x1
9
10
  // `parseInt` method
10
11
  // https://tc39.es/ecma262/#sec-parseint-string-radix
11
12
  module.exports = FORCED ? function parseInt(string, radix) {
12
- var S = trim(String(string));
13
+ var S = trim(toString(string));
13
14
  return $parseInt(S, (radix >>> 0) || (hex.test(S) ? 16 : 10));
14
15
  } : $parseInt;
@@ -1,3 +1,4 @@
1
+ /* global ActiveXObject -- old IE, WSH */
1
2
  var anObject = require('../internals/an-object');
2
3
  var defineProperties = require('../internals/object-define-properties');
3
4
  var enumBugKeys = require('../internals/enum-bug-keys');
@@ -33,15 +34,17 @@ var NullProtoObjectViaIFrame = function () {
33
34
  var iframe = documentCreateElement('iframe');
34
35
  var JS = 'java' + SCRIPT + ':';
35
36
  var iframeDocument;
36
- iframe.style.display = 'none';
37
- html.appendChild(iframe);
38
- // https://github.com/zloirock/core-js/issues/475
39
- iframe.src = String(JS);
40
- iframeDocument = iframe.contentWindow.document;
41
- iframeDocument.open();
42
- iframeDocument.write(scriptTag('document.F=Object'));
43
- iframeDocument.close();
44
- return iframeDocument.F;
37
+ if (iframe.style) {
38
+ iframe.style.display = 'none';
39
+ html.appendChild(iframe);
40
+ // https://github.com/zloirock/core-js/issues/475
41
+ iframe.src = String(JS);
42
+ iframeDocument = iframe.contentWindow.document;
43
+ iframeDocument.open();
44
+ iframeDocument.write(scriptTag('document.F=Object'));
45
+ iframeDocument.close();
46
+ return iframeDocument.F;
47
+ }
45
48
  };
46
49
 
47
50
  // Check for document.domain and active x support
@@ -52,10 +55,12 @@ var NullProtoObjectViaIFrame = function () {
52
55
  var activeXDocument;
53
56
  var NullProtoObject = function () {
54
57
  try {
55
- /* global ActiveXObject -- old IE */
56
- activeXDocument = document.domain && new ActiveXObject('htmlfile');
58
+ activeXDocument = new ActiveXObject('htmlfile');
57
59
  } catch (error) { /* ignore */ }
58
- NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();
60
+ NullProtoObject = document.domain && activeXDocument ?
61
+ NullProtoObjectViaActiveX(activeXDocument) : // old IE
62
+ NullProtoObjectViaIFrame() ||
63
+ NullProtoObjectViaActiveX(activeXDocument); // WSH
59
64
  var length = enumBugKeys.length;
60
65
  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];
61
66
  return NullProtoObject();
@@ -1,7 +1,7 @@
1
1
  var DESCRIPTORS = require('../internals/descriptors');
2
2
  var IE8_DOM_DEFINE = require('../internals/ie8-dom-define');
3
3
  var anObject = require('../internals/an-object');
4
- var toPrimitive = require('../internals/to-primitive');
4
+ var toPropertyKey = require('../internals/to-property-key');
5
5
 
6
6
  // eslint-disable-next-line es/no-object-defineproperty -- safe
7
7
  var $defineProperty = Object.defineProperty;
@@ -10,7 +10,7 @@ var $defineProperty = Object.defineProperty;
10
10
  // https://tc39.es/ecma262/#sec-object.defineproperty
11
11
  exports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {
12
12
  anObject(O);
13
- P = toPrimitive(P, true);
13
+ P = toPropertyKey(P);
14
14
  anObject(Attributes);
15
15
  if (IE8_DOM_DEFINE) try {
16
16
  return $defineProperty(O, P, Attributes);
@@ -2,7 +2,7 @@ var DESCRIPTORS = require('../internals/descriptors');
2
2
  var propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');
3
3
  var createPropertyDescriptor = require('../internals/create-property-descriptor');
4
4
  var toIndexedObject = require('../internals/to-indexed-object');
5
- var toPrimitive = require('../internals/to-primitive');
5
+ var toPropertyKey = require('../internals/to-property-key');
6
6
  var has = require('../internals/has');
7
7
  var IE8_DOM_DEFINE = require('../internals/ie8-dom-define');
8
8
 
@@ -13,7 +13,7 @@ var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
13
13
  // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor
14
14
  exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
15
15
  O = toIndexedObject(O);
16
- P = toPrimitive(P, true);
16
+ P = toPropertyKey(P);
17
17
  if (IE8_DOM_DEFINE) try {
18
18
  return $getOwnPropertyDescriptor(O, P);
19
19
  } catch (error) { /* empty */ }
@@ -0,0 +1,11 @@
1
+ var isObject = require('../internals/is-object');
2
+
3
+ // `OrdinaryToPrimitive` abstract operation
4
+ // https://tc39.es/ecma262/#sec-ordinarytoprimitive
5
+ module.exports = function (input, pref) {
6
+ var fn, val;
7
+ if (pref === 'string' && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
8
+ if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;
9
+ if (pref !== 'string' && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
10
+ throw TypeError("Can't convert object to primitive value");
11
+ };
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
  /* eslint-disable regexp/no-assertion-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */
3
3
  /* eslint-disable regexp/no-useless-quantifier -- testing */
4
+ var toString = require('../internals/to-string');
4
5
  var regexpFlags = require('../internals/regexp-flags');
5
6
  var stickyHelpers = require('../internals/regexp-sticky-helpers');
6
7
  var shared = require('../internals/shared');
@@ -31,9 +32,10 @@ var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPP
31
32
 
32
33
  if (PATCH) {
33
34
  // eslint-disable-next-line max-statements -- TODO
34
- patchedExec = function exec(str) {
35
+ patchedExec = function exec(string) {
35
36
  var re = this;
36
37
  var state = getInternalState(re);
38
+ var str = toString(string);
37
39
  var raw = state.raw;
38
40
  var result, reCopy, lastIndex, match, i, object, group;
39
41
 
@@ -57,9 +59,9 @@ if (PATCH) {
57
59
  flags += 'g';
58
60
  }
59
61
 
60
- strCopy = String(str).slice(re.lastIndex);
62
+ strCopy = str.slice(re.lastIndex);
61
63
  // Support anchored sticky behavior.
62
- if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\n')) {
64
+ if (re.lastIndex > 0 && (!re.multiline || re.multiline && str.charAt(re.lastIndex - 1) !== '\n')) {
63
65
  source = '(?: ' + source + ')';
64
66
  strCopy = ' ' + strCopy;
65
67
  charsAdded++;
@@ -1,9 +1,9 @@
1
1
  var global = require('../internals/global');
2
- var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
3
2
 
4
3
  module.exports = function (key, value) {
5
4
  try {
6
- createNonEnumerableProperty(global, key, value);
5
+ // eslint-disable-next-line es/no-object-defineproperty -- safe
6
+ Object.defineProperty(global, key, { value: value, configurable: true, writable: true });
7
7
  } catch (error) {
8
8
  global[key] = value;
9
9
  } return value;
@@ -4,7 +4,7 @@ var store = require('../internals/shared-store');
4
4
  (module.exports = function (key, value) {
5
5
  return store[key] || (store[key] = value !== undefined ? value : {});
6
6
  })('versions', []).push({
7
- version: '3.15.2',
7
+ version: '3.16.0',
8
8
  mode: IS_PURE ? 'pure' : 'global',
9
9
  copyright: '© 2021 Denis Pushkarev (zloirock.ru)'
10
10
  });
@@ -1,10 +1,11 @@
1
1
  var toInteger = require('../internals/to-integer');
2
+ var toString = require('../internals/to-string');
2
3
  var requireObjectCoercible = require('../internals/require-object-coercible');
3
4
 
4
- // `String.prototype.{ codePointAt, at }` methods implementation
5
+ // `String.prototype.codePointAt` methods implementation
5
6
  var createMethod = function (CONVERT_TO_STRING) {
6
7
  return function ($this, pos) {
7
- var S = String(requireObjectCoercible($this));
8
+ var S = toString(requireObjectCoercible($this));
8
9
  var position = toInteger(pos);
9
10
  var size = S.length;
10
11
  var first, second;