core-js-pure 3.6.3 → 3.8.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 (149) hide show
  1. package/README.md +3 -2
  2. package/es/aggregate-error.js +6 -0
  3. package/es/array/virtual/filter-out.js +4 -0
  4. package/es/index.js +33 -29
  5. package/es/instance/replace-all.js +9 -0
  6. package/es/object/index.js +2 -1
  7. package/es/object/to-string.js +3 -2
  8. package/es/promise/any.js +12 -0
  9. package/es/promise/index.js +4 -2
  10. package/es/reflect/index.js +1 -0
  11. package/es/reflect/to-string-tag.js +3 -0
  12. package/es/string/index.js +1 -0
  13. package/es/string/replace-all.js +4 -0
  14. package/es/string/virtual/index.js +1 -0
  15. package/es/string/virtual/replace-all.js +4 -0
  16. package/es/symbol/index.js +2 -1
  17. package/es/symbol/to-string-tag.js +2 -1
  18. package/features/aggregate-error.js +4 -4
  19. package/features/array/at.js +4 -0
  20. package/features/array/filter-out.js +4 -0
  21. package/features/array/index.js +4 -0
  22. package/features/array/unique-by.js +5 -0
  23. package/features/array/virtual/at.js +4 -0
  24. package/features/array/virtual/filter-out.js +4 -0
  25. package/features/array/virtual/index.js +3 -0
  26. package/features/array/virtual/unique-by.js +5 -0
  27. package/features/bigint/index.js +4 -0
  28. package/features/bigint/range.js +4 -0
  29. package/features/instance/at.js +7 -3
  30. package/features/instance/filter-out.js +8 -0
  31. package/features/instance/replace-all.js +2 -8
  32. package/features/instance/unique-by.js +8 -0
  33. package/features/map/emplace.js +5 -0
  34. package/features/map/index.js +2 -0
  35. package/features/number/index.js +1 -0
  36. package/features/number/range.js +4 -0
  37. package/features/promise/any.js +4 -9
  38. package/features/reflect/to-string-tag.js +3 -0
  39. package/features/string/index.js +2 -0
  40. package/features/string/replace-all.js +4 -2
  41. package/features/string/virtual/index.js +2 -0
  42. package/features/string/virtual/replace-all.js +4 -2
  43. package/features/typed-array/at.js +1 -0
  44. package/features/typed-array/filter-out.js +1 -0
  45. package/features/typed-array/index.js +2 -0
  46. package/features/weak-map/emplace.js +5 -0
  47. package/features/weak-map/index.js +2 -0
  48. package/internals/array-iteration.js +11 -4
  49. package/internals/array-last-index-of.js +2 -1
  50. package/internals/array-method-uses-to-length.js +5 -8
  51. package/internals/async-iterator-iteration.js +25 -6
  52. package/internals/call-with-safe-iteration-closing.js +2 -2
  53. package/internals/collection-from.js +5 -5
  54. package/internals/collection-strong.js +1 -1
  55. package/internals/collection-weak.js +1 -1
  56. package/internals/collection.js +1 -1
  57. package/internals/correct-is-regexp-logic.js +2 -2
  58. package/internals/engine-is-node.js +4 -0
  59. package/internals/global.js +1 -1
  60. package/internals/internal-state.js +4 -1
  61. package/internals/iterate.js +26 -11
  62. package/internals/iterator-close.js +8 -0
  63. package/internals/map-emplace.js +13 -0
  64. package/internals/microtask.js +8 -8
  65. package/internals/range-iterator.js +102 -0
  66. package/internals/shared.js +1 -1
  67. package/internals/task.js +9 -3
  68. package/modules/es.aggregate-error.js +31 -0
  69. package/modules/es.array.reduce-right.js +8 -2
  70. package/modules/es.array.reduce.js +6 -1
  71. package/modules/es.math.to-string-tag.js +1 -5
  72. package/modules/es.object.from-entries.js +1 -1
  73. package/modules/es.promise.all-settled.js +2 -2
  74. package/modules/es.promise.any.js +46 -0
  75. package/modules/es.promise.js +27 -25
  76. package/modules/es.reflect.set.js +3 -2
  77. package/modules/es.reflect.to-string-tag.js +1 -0
  78. package/modules/es.string.replace-all.js +50 -0
  79. package/modules/esnext.aggregate-error.js +2 -45
  80. package/modules/esnext.array.at.js +20 -0
  81. package/modules/esnext.array.filter-out.js +14 -0
  82. package/modules/esnext.array.unique-by.js +38 -0
  83. package/modules/esnext.async-iterator.take.js +12 -3
  84. package/modules/esnext.bigint.range.js +14 -0
  85. package/modules/esnext.iterator.every.js +3 -3
  86. package/modules/esnext.iterator.find.js +3 -3
  87. package/modules/esnext.iterator.flat-map.js +21 -15
  88. package/modules/esnext.iterator.for-each.js +1 -1
  89. package/modules/esnext.iterator.reduce.js +1 -1
  90. package/modules/esnext.iterator.some.js +3 -3
  91. package/modules/esnext.iterator.take.js +4 -2
  92. package/modules/esnext.iterator.to-array.js +1 -1
  93. package/modules/esnext.map.emplace.js +10 -0
  94. package/modules/esnext.map.every.js +3 -3
  95. package/modules/esnext.map.filter.js +1 -1
  96. package/modules/esnext.map.find-key.js +3 -3
  97. package/modules/esnext.map.find.js +3 -3
  98. package/modules/esnext.map.includes.js +3 -3
  99. package/modules/esnext.map.key-of.js +3 -3
  100. package/modules/esnext.map.map-keys.js +1 -1
  101. package/modules/esnext.map.map-values.js +1 -1
  102. package/modules/esnext.map.merge.js +1 -1
  103. package/modules/esnext.map.reduce.js +1 -1
  104. package/modules/esnext.map.some.js +3 -3
  105. package/modules/esnext.map.update-or-insert.js +1 -1
  106. package/modules/esnext.map.upsert.js +2 -1
  107. package/modules/esnext.number.range.js +11 -0
  108. package/modules/esnext.observable.js +3 -3
  109. package/modules/esnext.promise.any.js +2 -46
  110. package/modules/esnext.reflect.get-metadata-keys.js +1 -1
  111. package/modules/esnext.set.every.js +3 -3
  112. package/modules/esnext.set.filter.js +1 -1
  113. package/modules/esnext.set.find.js +3 -3
  114. package/modules/esnext.set.is-disjoint-from.js +3 -3
  115. package/modules/esnext.set.is-subset-of.js +3 -3
  116. package/modules/esnext.set.is-superset-of.js +3 -3
  117. package/modules/esnext.set.join.js +1 -1
  118. package/modules/esnext.set.map.js +1 -1
  119. package/modules/esnext.set.reduce.js +1 -1
  120. package/modules/esnext.set.some.js +3 -3
  121. package/modules/esnext.set.union.js +1 -1
  122. package/modules/esnext.string.at-alternative.js +23 -0
  123. package/modules/esnext.string.at.js +6 -1
  124. package/modules/esnext.string.replace-all.js +2 -50
  125. package/modules/esnext.typed-array.at.js +1 -0
  126. package/modules/esnext.typed-array.filter-out.js +1 -0
  127. package/modules/esnext.weak-map.emplace.js +10 -0
  128. package/modules/esnext.weak-map.upsert.js +3 -2
  129. package/modules/web.queue-microtask.js +2 -3
  130. package/modules/web.url-search-params.js +1 -1
  131. package/modules/web.url.js +1 -1
  132. package/package.json +1 -1
  133. package/postinstall.js +3 -1
  134. package/proposals/array-filtering.js +3 -0
  135. package/proposals/array-unique.js +3 -0
  136. package/proposals/efficient-64-bit-arithmetic.js +1 -0
  137. package/proposals/map-upsert.js +4 -0
  138. package/proposals/number-range.js +3 -0
  139. package/proposals/object-iteration.js +1 -0
  140. package/proposals/relative-indexing-method.js +5 -0
  141. package/stable/aggregate-error.js +6 -0
  142. package/stable/instance/replace-all.js +3 -0
  143. package/stable/promise/any.js +3 -0
  144. package/stable/reflect/to-string-tag.js +3 -0
  145. package/stable/string/replace-all.js +3 -0
  146. package/stable/string/virtual/replace-all.js +3 -0
  147. package/stage/1.js +3 -0
  148. package/stage/3.js +1 -2
  149. package/stage/4.js +2 -0
package/README.md CHANGED
@@ -1,8 +1,9 @@
1
1
  # core-js-pure
2
2
 
3
- [![Sponsors on Open Collective](https://opencollective.com/core-js/sponsors/badge.svg)](#sponsors) [![Backers on Open Collective](https://opencollective.com/core-js/backers/badge.svg)](#backers) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/zloirock/core-js?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![version](https://img.shields.io/npm/v/core-js-pure.svg)](https://www.npmjs.com/package/core-js-pure) [![npm downloads](https://img.shields.io/npm/dm/core-js-pure.svg)](http://npm-stat.com/charts.html?package=core-js-pure&author=&from=2019-03-18) [![Build Status](https://travis-ci.org/zloirock/core-js.svg)](https://travis-ci.org/zloirock/core-js) [![devDependency status](https://david-dm.org/zloirock/core-js/dev-status.svg)](https://david-dm.org/zloirock/core-js?type=dev)
3
+ [![Sponsors on Open Collective](https://opencollective.com/core-js/sponsors/badge.svg)](#sponsors) [![Backers on Open Collective](https://opencollective.com/core-js/backers/badge.svg)](#backers) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/zloirock/core-js?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![version](https://img.shields.io/npm/v/core-js-pure.svg)](https://www.npmjs.com/package/core-js-pure) [![npm downloads](https://img.shields.io/npm/dm/core-js-pure.svg)](http://npm-stat.com/charts.html?package=core-js-pure&author=&from=2019-03-18) [![tests](https://github.com/zloirock/core-js/workflows/tests/badge.svg)](https://github.com/zloirock/core-js/actions)
4
+ [![eslint](https://github.com/zloirock/core-js/workflows/eslint/badge.svg)](https://github.com/zloirock/core-js/actions)
4
5
 
5
- > Modular standard library for JavaScript. Includes polyfills for [ECMAScript up to 2019](https://github.com/zloirock/core-js#ecmascript): [promises](https://github.com/zloirock/core-js#ecmascript-promise), [symbols](https://github.com/zloirock/core-js#ecmascript-symbol), [collections](https://github.com/zloirock/core-js#ecmascript-collections), iterators, [typed arrays](https://github.com/zloirock/core-js#ecmascript-typed-arrays), many other features, [ECMAScript proposals](https://github.com/zloirock/core-js#ecmascript-proposals), [some cross-platform WHATWG / W3C features and proposals](#web-standards) like [`URL`](https://github.com/zloirock/core-js#url-and-urlsearchparams). You can load only required features or use it without global namespace pollution.
6
+ > Modular standard library for JavaScript. Includes polyfills for [ECMAScript up to 2021](https://github.com/zloirock/core-js#ecmascript): [promises](https://github.com/zloirock/core-js#ecmascript-promise), [symbols](https://github.com/zloirock/core-js#ecmascript-symbol), [collections](https://github.com/zloirock/core-js#ecmascript-collections), iterators, [typed arrays](https://github.com/zloirock/core-js#ecmascript-typed-arrays), many other features, [ECMAScript proposals](https://github.com/zloirock/core-js#ecmascript-proposals), [some cross-platform WHATWG / W3C features and proposals](#web-standards) like [`URL`](https://github.com/zloirock/core-js#url-and-urlsearchparams). You can load only required features or use it without global namespace pollution.
6
7
 
7
8
  ## As advertising: the author is looking for a good job -)
8
9
 
@@ -0,0 +1,6 @@
1
+ require('../modules/es.aggregate-error');
2
+ require('../modules/es.string.iterator');
3
+ require('../modules/web.dom-collections.iterator');
4
+ var path = require('../internals/path');
5
+
6
+ module.exports = path.AggregateError;
@@ -0,0 +1,4 @@
1
+ require('../../../modules/esnext.array.filter-out');
2
+ var entryVirtual = require('../../../internals/entry-virtual');
3
+
4
+ module.exports = entryVirtual('Array').filterOut;
package/es/index.js CHANGED
@@ -13,35 +13,7 @@ require('../modules/es.symbol.split');
13
13
  require('../modules/es.symbol.to-primitive');
14
14
  require('../modules/es.symbol.to-string-tag');
15
15
  require('../modules/es.symbol.unscopables');
16
- require('../modules/es.object.assign');
17
- require('../modules/es.object.create');
18
- require('../modules/es.object.define-property');
19
- require('../modules/es.object.define-properties');
20
- require('../modules/es.object.entries');
21
- require('../modules/es.object.freeze');
22
- require('../modules/es.object.from-entries');
23
- require('../modules/es.object.get-own-property-descriptor');
24
- require('../modules/es.object.get-own-property-descriptors');
25
- require('../modules/es.object.get-own-property-names');
26
- require('../modules/es.object.get-prototype-of');
27
- require('../modules/es.object.is');
28
- require('../modules/es.object.is-extensible');
29
- require('../modules/es.object.is-frozen');
30
- require('../modules/es.object.is-sealed');
31
- require('../modules/es.object.keys');
32
- require('../modules/es.object.prevent-extensions');
33
- require('../modules/es.object.seal');
34
- require('../modules/es.object.set-prototype-of');
35
- require('../modules/es.object.values');
36
- require('../modules/es.object.to-string');
37
- require('../modules/es.object.define-getter');
38
- require('../modules/es.object.define-setter');
39
- require('../modules/es.object.lookup-getter');
40
- require('../modules/es.object.lookup-setter');
41
- require('../modules/es.function.bind');
42
- require('../modules/es.function.name');
43
- require('../modules/es.function.has-instance');
44
- require('../modules/es.global-this');
16
+ require('../modules/es.aggregate-error');
45
17
  require('../modules/es.array.from');
46
18
  require('../modules/es.array.is-array');
47
19
  require('../modules/es.array.of');
@@ -71,6 +43,35 @@ require('../modules/es.array.species');
71
43
  require('../modules/es.array.unscopables.flat');
72
44
  require('../modules/es.array.unscopables.flat-map');
73
45
  require('../modules/es.array.iterator');
46
+ require('../modules/es.function.bind');
47
+ require('../modules/es.function.name');
48
+ require('../modules/es.function.has-instance');
49
+ require('../modules/es.global-this');
50
+ require('../modules/es.object.assign');
51
+ require('../modules/es.object.create');
52
+ require('../modules/es.object.define-property');
53
+ require('../modules/es.object.define-properties');
54
+ require('../modules/es.object.entries');
55
+ require('../modules/es.object.freeze');
56
+ require('../modules/es.object.from-entries');
57
+ require('../modules/es.object.get-own-property-descriptor');
58
+ require('../modules/es.object.get-own-property-descriptors');
59
+ require('../modules/es.object.get-own-property-names');
60
+ require('../modules/es.object.get-prototype-of');
61
+ require('../modules/es.object.is');
62
+ require('../modules/es.object.is-extensible');
63
+ require('../modules/es.object.is-frozen');
64
+ require('../modules/es.object.is-sealed');
65
+ require('../modules/es.object.keys');
66
+ require('../modules/es.object.prevent-extensions');
67
+ require('../modules/es.object.seal');
68
+ require('../modules/es.object.set-prototype-of');
69
+ require('../modules/es.object.values');
70
+ require('../modules/es.object.to-string');
71
+ require('../modules/es.object.define-getter');
72
+ require('../modules/es.object.define-setter');
73
+ require('../modules/es.object.lookup-getter');
74
+ require('../modules/es.object.lookup-setter');
74
75
  require('../modules/es.string.from-code-point');
75
76
  require('../modules/es.string.raw');
76
77
  require('../modules/es.string.code-point-at');
@@ -102,6 +103,7 @@ require('../modules/es.string.small');
102
103
  require('../modules/es.string.strike');
103
104
  require('../modules/es.string.sub');
104
105
  require('../modules/es.string.sup');
106
+ require('../modules/es.string.replace-all');
105
107
  require('../modules/es.regexp.constructor');
106
108
  require('../modules/es.regexp.exec');
107
109
  require('../modules/es.regexp.flags');
@@ -149,6 +151,7 @@ require('../modules/es.json.stringify');
149
151
  require('../modules/es.json.to-string-tag');
150
152
  require('../modules/es.promise');
151
153
  require('../modules/es.promise.all-settled');
154
+ require('../modules/es.promise.any');
152
155
  require('../modules/es.promise.finally');
153
156
  require('../modules/es.map');
154
157
  require('../modules/es.set');
@@ -205,6 +208,7 @@ require('../modules/es.reflect.own-keys');
205
208
  require('../modules/es.reflect.prevent-extensions');
206
209
  require('../modules/es.reflect.set');
207
210
  require('../modules/es.reflect.set-prototype-of');
211
+ require('../modules/es.reflect.to-string-tag');
208
212
  var path = require('../internals/path');
209
213
 
210
214
  module.exports = path;
@@ -0,0 +1,9 @@
1
+ var replaceAll = require('../string/virtual/replace-all');
2
+
3
+ var StringPrototype = String.prototype;
4
+
5
+ module.exports = function (it) {
6
+ var own = it.replaceAll;
7
+ return typeof it === 'string' || it === StringPrototype
8
+ || (it instanceof String && own === StringPrototype.replaceAll) ? replaceAll : own;
9
+ };
@@ -24,8 +24,9 @@ require('../../modules/es.object.define-getter');
24
24
  require('../../modules/es.object.define-setter');
25
25
  require('../../modules/es.object.lookup-getter');
26
26
  require('../../modules/es.object.lookup-setter');
27
- require('../../modules/es.math.to-string-tag');
28
27
  require('../../modules/es.json.to-string-tag');
28
+ require('../../modules/es.math.to-string-tag');
29
+ require('../../modules/es.reflect.to-string-tag');
29
30
  var path = require('../../internals/path');
30
31
 
31
32
  module.exports = path.Object;
@@ -1,6 +1,7 @@
1
- require('../../modules/es.object.to-string');
2
- require('../../modules/es.math.to-string-tag');
3
1
  require('../../modules/es.json.to-string-tag');
2
+ require('../../modules/es.math.to-string-tag');
3
+ require('../../modules/es.object.to-string');
4
+ require('../../modules/es.reflect.to-string-tag');
4
5
  var classof = require('../../internals/classof');
5
6
 
6
7
  module.exports = function (it) {
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+ require('../../modules/es.aggregate-error');
3
+ require('../../modules/es.promise');
4
+ require('../../modules/es.promise.any');
5
+ var path = require('../../internals/path');
6
+
7
+ var Promise = path.Promise;
8
+ var $any = Promise.any;
9
+
10
+ module.exports = function any(iterable) {
11
+ return $any.call(typeof this === 'function' ? this : Promise, iterable);
12
+ };
@@ -1,9 +1,11 @@
1
+ require('../../modules/es.aggregate-error');
1
2
  require('../../modules/es.object.to-string');
2
- require('../../modules/es.string.iterator');
3
- require('../../modules/web.dom-collections.iterator');
4
3
  require('../../modules/es.promise');
5
4
  require('../../modules/es.promise.all-settled');
5
+ require('../../modules/es.promise.any');
6
6
  require('../../modules/es.promise.finally');
7
+ require('../../modules/es.string.iterator');
8
+ require('../../modules/web.dom-collections.iterator');
7
9
  var path = require('../../internals/path');
8
10
 
9
11
  module.exports = path.Promise;
@@ -11,6 +11,7 @@ require('../../modules/es.reflect.own-keys');
11
11
  require('../../modules/es.reflect.prevent-extensions');
12
12
  require('../../modules/es.reflect.set');
13
13
  require('../../modules/es.reflect.set-prototype-of');
14
+ require('../../modules/es.reflect.to-string-tag');
14
15
  var path = require('../../internals/path');
15
16
 
16
17
  module.exports = path.Reflect;
@@ -0,0 +1,3 @@
1
+ require('../../modules/es.reflect.to-string-tag');
2
+
3
+ module.exports = 'Reflect';
@@ -10,6 +10,7 @@ require('../../modules/es.string.pad-end');
10
10
  require('../../modules/es.string.pad-start');
11
11
  require('../../modules/es.string.repeat');
12
12
  require('../../modules/es.string.replace');
13
+ require('../../modules/es.string.replace-all');
13
14
  require('../../modules/es.string.search');
14
15
  require('../../modules/es.string.split');
15
16
  require('../../modules/es.string.starts-with');
@@ -0,0 +1,4 @@
1
+ require('../../modules/es.string.replace-all');
2
+ var entryUnbind = require('../../internals/entry-unbind');
3
+
4
+ module.exports = entryUnbind('String', 'replaceAll');
@@ -7,6 +7,7 @@ require('../../../modules/es.string.pad-end');
7
7
  require('../../../modules/es.string.pad-start');
8
8
  require('../../../modules/es.string.repeat');
9
9
  require('../../../modules/es.string.replace');
10
+ require('../../../modules/es.string.replace-all');
10
11
  require('../../../modules/es.string.search');
11
12
  require('../../../modules/es.string.split');
12
13
  require('../../../modules/es.string.starts-with');
@@ -0,0 +1,4 @@
1
+ require('../../../modules/es.string.replace-all');
2
+ var entryVirtual = require('../../../internals/entry-virtual');
3
+
4
+ module.exports = entryVirtual('String').replaceAll;
@@ -15,8 +15,9 @@ require('../../modules/es.symbol.split');
15
15
  require('../../modules/es.symbol.to-primitive');
16
16
  require('../../modules/es.symbol.to-string-tag');
17
17
  require('../../modules/es.symbol.unscopables');
18
- require('../../modules/es.math.to-string-tag');
19
18
  require('../../modules/es.json.to-string-tag');
19
+ require('../../modules/es.math.to-string-tag');
20
+ require('../../modules/es.reflect.to-string-tag');
20
21
  var path = require('../../internals/path');
21
22
 
22
23
  module.exports = path.Symbol;
@@ -1,7 +1,8 @@
1
1
  require('../../modules/es.symbol.to-string-tag');
2
2
  require('../../modules/es.object.to-string');
3
- require('../../modules/es.math.to-string-tag');
4
3
  require('../../modules/es.json.to-string-tag');
4
+ require('../../modules/es.math.to-string-tag');
5
+ require('../../modules/es.reflect.to-string-tag');
5
6
  var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
6
7
 
7
8
  module.exports = WrappedWellKnownSymbolModule.f('toStringTag');
@@ -1,6 +1,6 @@
1
- require('../modules/web.dom-collections.iterator');
2
- require('../modules/es.string.iterator');
1
+ // TODO: remove from `core-js@4`
3
2
  require('../modules/esnext.aggregate-error');
4
- var path = require('../internals/path');
5
3
 
6
- module.exports = path.AggregateError;
4
+ var parent = require('../stable/aggregate-error');
5
+
6
+ module.exports = parent;
@@ -0,0 +1,4 @@
1
+ require('../../modules/esnext.array.at');
2
+ var entryUnbind = require('../../internals/entry-unbind');
3
+
4
+ module.exports = entryUnbind('Array', 'at');
@@ -0,0 +1,4 @@
1
+ require('../../modules/esnext.array.filter-out');
2
+ var entryUnbind = require('../../internals/entry-unbind');
3
+
4
+ module.exports = entryUnbind('Array', 'filterOut');
@@ -1,6 +1,10 @@
1
1
  var parent = require('../../es/array');
2
+ require('../../modules/es.map');
3
+ require('../../modules/esnext.array.at');
4
+ require('../../modules/esnext.array.filter-out');
2
5
  require('../../modules/esnext.array.is-template-object');
3
6
  require('../../modules/esnext.array.last-item');
4
7
  require('../../modules/esnext.array.last-index');
8
+ require('../../modules/esnext.array.unique-by');
5
9
 
6
10
  module.exports = parent;
@@ -0,0 +1,5 @@
1
+ require('../../modules/es.map');
2
+ require('../../modules/esnext.array.unique-by');
3
+ var entryUnbind = require('../../internals/entry-unbind');
4
+
5
+ module.exports = entryUnbind('Array', 'uniqueBy');
@@ -0,0 +1,4 @@
1
+ require('../../../modules/esnext.array.at');
2
+ var entryVirtual = require('../../../internals/entry-virtual');
3
+
4
+ module.exports = entryVirtual('Array').at;
@@ -0,0 +1,4 @@
1
+ require('../../../modules/esnext.array.filter-out');
2
+ var entryVirtual = require('../../../internals/entry-virtual');
3
+
4
+ module.exports = entryVirtual('Array').filterOut;
@@ -1,3 +1,6 @@
1
1
  var parent = require('../../../es/array/virtual');
2
+ require('../../../modules/esnext.array.at');
3
+ require('../../../modules/esnext.array.filter-out');
4
+ require('../../../modules/esnext.array.unique-by');
2
5
 
3
6
  module.exports = parent;
@@ -0,0 +1,5 @@
1
+ require('../../../modules/es.map');
2
+ require('../../../modules/esnext.array.unique-by');
3
+ var entryVirtual = require('../../../internals/entry-virtual');
4
+
5
+ module.exports = entryVirtual('Array').uniqueBy;
@@ -0,0 +1,4 @@
1
+ require('../../modules/esnext.bigint.range');
2
+ var BigInt = require('../../internals/path').BigInt;
3
+
4
+ module.exports = BigInt;
@@ -0,0 +1,4 @@
1
+ require('../../modules/esnext.bigint.range');
2
+ var BigInt = require('../../internals/path').BigInt;
3
+
4
+ module.exports = BigInt && BigInt.range;
@@ -1,9 +1,13 @@
1
- var at = require('../string/virtual/at');
1
+ var arrayAt = require('../array/virtual/at');
2
+ var stringAt = require('../string/virtual/at');
2
3
 
4
+ var ArrayPrototype = Array.prototype;
3
5
  var StringPrototype = String.prototype;
4
6
 
5
7
  module.exports = function (it) {
6
8
  var own = it.at;
7
- return typeof it === 'string' || it === StringPrototype
8
- || (it instanceof String && own === StringPrototype.at) ? at : own;
9
+ if (it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.at)) return arrayAt;
10
+ if (typeof it === 'string' || it === StringPrototype || (it instanceof String && own === StringPrototype.at)) {
11
+ return stringAt;
12
+ } return own;
9
13
  };
@@ -0,0 +1,8 @@
1
+ var filterOut = require('../array/virtual/filter-out');
2
+
3
+ var ArrayPrototype = Array.prototype;
4
+
5
+ module.exports = function (it) {
6
+ var own = it.filterOut;
7
+ return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.filterOut) ? filterOut : own;
8
+ };
@@ -1,9 +1,3 @@
1
- var replaceAll = require('../string/virtual/replace-all');
1
+ var parent = require('../../stable/instance/replace-all');
2
2
 
3
- var StringPrototype = String.prototype;
4
-
5
- module.exports = function (it) {
6
- var own = it.replaceAll;
7
- return typeof it === 'string' || it === StringPrototype
8
- || (it instanceof String && own === StringPrototype.replaceAll) ? replaceAll : own;
9
- };
3
+ module.exports = parent;
@@ -0,0 +1,8 @@
1
+ var uniqueBy = require('../array/virtual/unique-by');
2
+
3
+ var ArrayPrototype = Array.prototype;
4
+
5
+ module.exports = function (it) {
6
+ var own = it.uniqueBy;
7
+ return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.uniqueBy) ? uniqueBy : own;
8
+ };
@@ -0,0 +1,5 @@
1
+ require('../../modules/es.map');
2
+ require('../../modules/esnext.map.emplace');
3
+ var entryUnbind = require('../../internals/entry-unbind');
4
+
5
+ module.exports = entryUnbind('Map', 'emplace');
@@ -2,6 +2,7 @@ var parent = require('../../es/map');
2
2
  require('../../modules/esnext.map.from');
3
3
  require('../../modules/esnext.map.of');
4
4
  require('../../modules/esnext.map.delete-all');
5
+ require('../../modules/esnext.map.emplace');
5
6
  require('../../modules/esnext.map.every');
6
7
  require('../../modules/esnext.map.filter');
7
8
  require('../../modules/esnext.map.find');
@@ -16,6 +17,7 @@ require('../../modules/esnext.map.merge');
16
17
  require('../../modules/esnext.map.reduce');
17
18
  require('../../modules/esnext.map.some');
18
19
  require('../../modules/esnext.map.update');
20
+ // TODO: remove from `core-js@4`
19
21
  require('../../modules/esnext.map.upsert');
20
22
  // TODO: remove from `core-js@4`
21
23
  require('../../modules/esnext.map.update-or-insert');
@@ -3,3 +3,4 @@ var parent = require('../../es/number');
3
3
  module.exports = parent;
4
4
 
5
5
  require('../../modules/esnext.number.from-string');
6
+ require('../../modules/esnext.number.range');
@@ -0,0 +1,4 @@
1
+ require('../../modules/esnext.number.range');
2
+ var path = require('../../internals/path');
3
+
4
+ module.exports = path.Number.range;
@@ -1,12 +1,7 @@
1
- 'use strict';
2
- require('../../modules/es.promise');
1
+ var parent = require('../../es/promise/any');
2
+
3
+ // TODO: Remove from `core-js@4`
3
4
  require('../../modules/esnext.aggregate-error');
4
5
  require('../../modules/esnext.promise.any');
5
- var path = require('../../internals/path');
6
-
7
- var Promise = path.Promise;
8
- var $any = Promise.any;
9
6
 
10
- module.exports = function any(iterable) {
11
- return $any.call(typeof this === 'function' ? this : Promise, iterable);
12
- };
7
+ module.exports = parent;
@@ -0,0 +1,3 @@
1
+ require('../../modules/es.reflect.to-string-tag');
2
+
3
+ module.exports = 'Reflect';
@@ -1,5 +1,7 @@
1
1
  var parent = require('../../es/string');
2
2
  require('../../modules/esnext.string.at');
3
+ // TODO: disabled by default because of the conflict with another proposal
4
+ // require('../../modules/esnext.string.at-alternative');
3
5
  require('../../modules/esnext.string.code-points');
4
6
  // TODO: remove from `core-js@4`
5
7
  require('../../modules/esnext.string.match-all');
@@ -1,4 +1,6 @@
1
+ // TODO: remove from `core-js@4`
1
2
  require('../../modules/esnext.string.replace-all');
2
- var entryUnbind = require('../../internals/entry-unbind');
3
3
 
4
- module.exports = entryUnbind('String', 'replaceAll');
4
+ var parent = require('../../es/string/replace-all');
5
+
6
+ module.exports = parent;
@@ -1,5 +1,7 @@
1
1
  var parent = require('../../../es/string/virtual');
2
2
  require('../../../modules/esnext.string.at');
3
+ // TODO: disabled by default because of the conflict with another proposal
4
+ // require('../../../modules/esnext.string.at-alternative');
3
5
  require('../../../modules/esnext.string.code-points');
4
6
  // TODO: remove from `core-js@4`
5
7
  require('../../../modules/esnext.string.match-all');
@@ -1,4 +1,6 @@
1
+ // TODO: remove from `core-js@4`
1
2
  require('../../../modules/esnext.string.replace-all');
2
- var entryVirtual = require('../../../internals/entry-virtual');
3
3
 
4
- module.exports = entryVirtual('String').replaceAll;
4
+ var parent = require('../../../es/string/virtual/replace-all');
5
+
6
+ module.exports = parent;
@@ -0,0 +1 @@
1
+ require('../../modules/esnext.typed-array.at');
@@ -0,0 +1 @@
1
+ require('../../modules/esnext.typed-array.filter-out');
@@ -1,3 +1,5 @@
1
1
  var parent = require('../../es/typed-array');
2
+ require('../../modules/esnext.typed-array.at');
3
+ require('../../modules/esnext.typed-array.filter-out');
2
4
 
3
5
  module.exports = parent;
@@ -0,0 +1,5 @@
1
+ require('../../modules/es.weak-map');
2
+ require('../../modules/esnext.weak-map.emplace');
3
+ var entryUnbind = require('../../internals/entry-unbind');
4
+
5
+ module.exports = entryUnbind('WeakMap', 'emplace');
@@ -1,7 +1,9 @@
1
1
  var parent = require('../../es/weak-map');
2
+ require('../../modules/esnext.weak-map.emplace');
2
3
  require('../../modules/esnext.weak-map.from');
3
4
  require('../../modules/esnext.weak-map.of');
4
5
  require('../../modules/esnext.weak-map.delete-all');
6
+ // TODO: remove from `core-js@4`
5
7
  require('../../modules/esnext.weak-map.upsert');
6
8
 
7
9
  module.exports = parent;
@@ -6,13 +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 }` methods implementation
9
+ // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` 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
17
  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
17
18
  return function ($this, callbackfn, that, specificCreate) {
18
19
  var O = toObject($this);
@@ -21,7 +22,7 @@ var createMethod = function (TYPE) {
21
22
  var length = toLength(self.length);
22
23
  var index = 0;
23
24
  var create = specificCreate || arraySpeciesCreate;
24
- var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
25
+ var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;
25
26
  var value, result;
26
27
  for (;length > index; index++) if (NO_HOLES || index in self) {
27
28
  value = self[index];
@@ -33,7 +34,10 @@ var createMethod = function (TYPE) {
33
34
  case 5: return value; // find
34
35
  case 6: return index; // findIndex
35
36
  case 2: push.call(target, value); // filter
36
- } else if (IS_EVERY) return false; // every
37
+ } else switch (TYPE) {
38
+ case 4: return false; // every
39
+ case 7: push.call(target, value); // filterOut
40
+ }
37
41
  }
38
42
  }
39
43
  return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;
@@ -61,5 +65,8 @@ module.exports = {
61
65
  find: createMethod(5),
62
66
  // `Array.prototype.findIndex` method
63
67
  // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex
64
- findIndex: createMethod(6)
68
+ findIndex: createMethod(6),
69
+ // `Array.prototype.filterOut` method
70
+ // https://github.com/tc39/proposal-array-filtering
71
+ filterOut: createMethod(7)
65
72
  };
@@ -9,7 +9,8 @@ var min = Math.min;
9
9
  var nativeLastIndexOf = [].lastIndexOf;
10
10
  var NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;
11
11
  var STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');
12
- var USES_TO_LENGTH = arrayMethodUsesToLength('lastIndexOf', { ACCESSORS: true, 1: 2147483647 });
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 });
13
14
  var FORCED = NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH;
14
15
 
15
16
  // `Array.prototype.lastIndexOf` method implementation
@@ -3,28 +3,25 @@ var fails = require('../internals/fails');
3
3
  var has = require('../internals/has');
4
4
 
5
5
  var defineProperty = Object.defineProperty;
6
+ var cache = {};
6
7
 
7
8
  var thrower = function (it) { throw it; };
8
9
 
9
10
  module.exports = function (METHOD_NAME, options) {
11
+ if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];
10
12
  if (!options) options = {};
11
13
  var method = [][METHOD_NAME];
12
14
  var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;
13
15
  var argument0 = has(options, 0) ? options[0] : thrower;
14
16
  var argument1 = has(options, 1) ? options[1] : undefined;
15
17
 
16
- return !!method && !fails(function () {
18
+ return cache[METHOD_NAME] = !!method && !fails(function () {
17
19
  if (ACCESSORS && !DESCRIPTORS) return true;
18
20
  var O = { length: -1 };
19
21
 
20
- var addTrap = function (key) {
21
- if (ACCESSORS) defineProperty(O, key, { enumerable: true, get: thrower });
22
- else O[key] = 1;
23
- };
22
+ if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });
23
+ else O[1] = 1;
24
24
 
25
- addTrap(1);
26
- addTrap(2147483646);
27
- addTrap(4294967294);
28
25
  method.call(O, argument0, argument1);
29
26
  });
30
27
  };