core-js 3.26.0 → 3.27.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 (274) hide show
  1. package/actual/async-iterator/drop.js +8 -0
  2. package/actual/async-iterator/every.js +8 -0
  3. package/actual/async-iterator/filter.js +8 -0
  4. package/actual/async-iterator/find.js +8 -0
  5. package/actual/async-iterator/flat-map.js +8 -0
  6. package/actual/async-iterator/for-each.js +8 -0
  7. package/actual/async-iterator/from.js +11 -0
  8. package/actual/async-iterator/index.js +22 -0
  9. package/actual/async-iterator/map.js +8 -0
  10. package/actual/async-iterator/reduce.js +8 -0
  11. package/actual/async-iterator/some.js +8 -0
  12. package/actual/async-iterator/take.js +8 -0
  13. package/actual/async-iterator/to-array.js +8 -0
  14. package/actual/disposable-stack/constructor.js +7 -0
  15. package/actual/disposable-stack/index.js +7 -0
  16. package/actual/instance/is-well-formed.js +10 -0
  17. package/actual/instance/to-well-formed.js +10 -0
  18. package/actual/iterator/dispose.js +1 -0
  19. package/actual/iterator/drop.js +7 -0
  20. package/actual/iterator/every.js +7 -0
  21. package/actual/iterator/filter.js +7 -0
  22. package/actual/iterator/find.js +7 -0
  23. package/actual/iterator/flat-map.js +7 -0
  24. package/actual/iterator/for-each.js +7 -0
  25. package/actual/iterator/from.js +10 -0
  26. package/actual/iterator/index.js +24 -0
  27. package/actual/iterator/map.js +7 -0
  28. package/actual/iterator/reduce.js +7 -0
  29. package/actual/iterator/some.js +7 -0
  30. package/actual/iterator/take.js +7 -0
  31. package/actual/iterator/to-array.js +7 -0
  32. package/actual/iterator/to-async.js +8 -0
  33. package/actual/set/difference.js +5 -0
  34. package/actual/set/index.js +7 -0
  35. package/actual/set/intersection.js +5 -0
  36. package/actual/set/is-disjoint-from.js +5 -0
  37. package/actual/set/is-subset-of.js +5 -0
  38. package/actual/set/is-superset-of.js +5 -0
  39. package/actual/set/symmetric-difference.js +5 -0
  40. package/actual/set/union.js +5 -0
  41. package/actual/string/index.js +3 -0
  42. package/actual/string/is-well-formed.js +3 -0
  43. package/actual/string/to-well-formed.js +3 -0
  44. package/actual/string/virtual/index.js +3 -0
  45. package/actual/string/virtual/is-well-formed.js +3 -0
  46. package/actual/string/virtual/to-well-formed.js +3 -0
  47. package/actual/suppressed-error.js +5 -0
  48. package/actual/symbol/dispose.js +4 -0
  49. package/actual/symbol/index.js +2 -0
  50. package/es/number/constructor.js +2 -1
  51. package/features/async-disposable-stack/constructor.js +1 -0
  52. package/features/async-disposable-stack/index.js +1 -0
  53. package/features/async-iterator/async-dispose.js +1 -0
  54. package/features/disposable-stack/constructor.js +1 -0
  55. package/features/disposable-stack/index.js +1 -0
  56. package/features/iterator/dispose.js +1 -0
  57. package/features/string/dedent.js +1 -0
  58. package/features/suppressed-error.js +1 -0
  59. package/full/async-disposable-stack/constructor.js +8 -0
  60. package/full/async-disposable-stack/index.js +8 -0
  61. package/full/async-iterator/async-dispose.js +3 -0
  62. package/full/async-iterator/drop.js +2 -7
  63. package/full/async-iterator/every.js +2 -7
  64. package/full/async-iterator/filter.js +2 -7
  65. package/full/async-iterator/find.js +2 -7
  66. package/full/async-iterator/flat-map.js +2 -7
  67. package/full/async-iterator/for-each.js +2 -7
  68. package/full/async-iterator/from.js +2 -10
  69. package/full/async-iterator/index.js +3 -21
  70. package/full/async-iterator/indexed.js +1 -0
  71. package/full/async-iterator/map.js +2 -7
  72. package/full/async-iterator/reduce.js +2 -7
  73. package/full/async-iterator/some.js +2 -7
  74. package/full/async-iterator/take.js +2 -7
  75. package/full/async-iterator/to-array.js +2 -7
  76. package/full/disposable-stack/constructor.js +3 -0
  77. package/full/disposable-stack/index.js +3 -0
  78. package/full/index.js +13 -0
  79. package/full/instance/is-well-formed.js +2 -9
  80. package/full/instance/to-well-formed.js +2 -9
  81. package/full/iterator/dispose.js +3 -0
  82. package/full/iterator/drop.js +2 -6
  83. package/full/iterator/every.js +2 -6
  84. package/full/iterator/filter.js +2 -6
  85. package/full/iterator/find.js +2 -6
  86. package/full/iterator/flat-map.js +2 -6
  87. package/full/iterator/for-each.js +2 -6
  88. package/full/iterator/from.js +2 -9
  89. package/full/iterator/index.js +2 -22
  90. package/full/iterator/indexed.js +1 -0
  91. package/full/iterator/map.js +2 -6
  92. package/full/iterator/reduce.js +2 -6
  93. package/full/iterator/some.js +2 -6
  94. package/full/iterator/take.js +2 -6
  95. package/full/iterator/to-array.js +2 -6
  96. package/full/iterator/to-async.js +2 -7
  97. package/full/set/difference.js +1 -1
  98. package/full/set/intersection.js +1 -1
  99. package/full/set/is-disjoint-from.js +1 -1
  100. package/full/set/is-subset-of.js +1 -1
  101. package/full/set/is-superset-of.js +1 -1
  102. package/full/set/symmetric-difference.js +1 -1
  103. package/full/set/union.js +1 -1
  104. package/full/string/dedent.js +6 -0
  105. package/full/string/index.js +2 -3
  106. package/full/string/is-well-formed.js +2 -2
  107. package/full/string/to-well-formed.js +2 -2
  108. package/full/string/virtual/index.js +0 -2
  109. package/full/string/virtual/is-well-formed.js +2 -2
  110. package/full/string/virtual/to-well-formed.js +2 -2
  111. package/full/suppressed-error.js +3 -0
  112. package/full/symbol/dispose.js +2 -3
  113. package/full/symbol/index.js +0 -1
  114. package/internals/a-map.js +7 -0
  115. package/internals/a-set.js +7 -0
  116. package/internals/a-weak-map.js +7 -0
  117. package/internals/a-weak-set.js +7 -0
  118. package/internals/array-group-to-map.js +5 -6
  119. package/internals/array-unique-by.js +7 -9
  120. package/internals/async-iterator-indexed.js +7 -23
  121. package/internals/async-iterator-map.js +55 -0
  122. package/internals/caller.js +7 -0
  123. package/internals/classof-raw.js +3 -3
  124. package/internals/disposable-stack-helpers.js +40 -0
  125. package/internals/document-all.js +1 -0
  126. package/internals/engine-is-bun.js +2 -0
  127. package/internals/fix-regexp-well-known-symbol-logic.js +1 -1
  128. package/internals/function-bind-context.js +1 -1
  129. package/internals/function-uncurry-this-clause.js +9 -0
  130. package/internals/function-uncurry-this.js +9 -7
  131. package/internals/get-async-iterator-flattenable.js +3 -2
  132. package/internals/get-iterator-flattenable.js +3 -3
  133. package/internals/get-set-record.js +38 -0
  134. package/internals/iterate-simple.js +10 -0
  135. package/internals/iterator-indexed.js +7 -12
  136. package/internals/iterator-map.js +22 -0
  137. package/internals/map-helpers.js +14 -0
  138. package/internals/map-iterate.js +15 -0
  139. package/internals/map-upsert.js +1 -1
  140. package/internals/schedulers-fix.js +20 -20
  141. package/internals/set-clone.js +13 -0
  142. package/internals/set-difference.js +26 -0
  143. package/internals/set-helpers.js +15 -0
  144. package/internals/set-intersection.js +46 -0
  145. package/internals/set-is-disjoint-from.js +22 -0
  146. package/internals/set-is-subset-of.js +16 -0
  147. package/internals/set-is-superset-of.js +17 -0
  148. package/internals/set-iterate.js +13 -0
  149. package/internals/set-method-accept-set-like.js +27 -0
  150. package/internals/set-size.js +8 -0
  151. package/internals/set-symmetric-difference.js +23 -0
  152. package/internals/set-union.js +18 -0
  153. package/internals/shared.js +2 -2
  154. package/internals/string-cooked.js +23 -0
  155. package/internals/string-parse.js +118 -0
  156. package/internals/to-set-like.js +19 -0
  157. package/internals/weak-map-helpers.js +13 -0
  158. package/internals/weak-set-helpers.js +12 -0
  159. package/modules/es.array-buffer.slice.js +1 -1
  160. package/modules/es.array.index-of.js +1 -1
  161. package/modules/es.number.constructor.js +34 -18
  162. package/modules/es.string.ends-with.js +1 -1
  163. package/modules/es.string.match-all.js +1 -1
  164. package/modules/es.string.starts-with.js +1 -1
  165. package/modules/es.typed-array.sort.js +1 -1
  166. package/modules/esnext.array.from-async.js +1 -1
  167. package/modules/esnext.async-disposable-stack.constructor.js +137 -0
  168. package/modules/esnext.async-iterator.as-indexed-pairs.js +2 -1
  169. package/modules/esnext.async-iterator.async-dispose.js +26 -0
  170. package/modules/esnext.async-iterator.constructor.js +2 -1
  171. package/modules/esnext.async-iterator.drop.js +3 -2
  172. package/modules/esnext.async-iterator.every.js +5 -4
  173. package/modules/esnext.async-iterator.filter.js +7 -6
  174. package/modules/esnext.async-iterator.find.js +5 -4
  175. package/modules/esnext.async-iterator.flat-map.js +3 -2
  176. package/modules/esnext.async-iterator.for-each.js +3 -2
  177. package/modules/esnext.async-iterator.from.js +5 -3
  178. package/modules/esnext.async-iterator.indexed.js +2 -1
  179. package/modules/esnext.async-iterator.map.js +5 -53
  180. package/modules/esnext.async-iterator.reduce.js +3 -2
  181. package/modules/esnext.async-iterator.some.js +5 -4
  182. package/modules/esnext.async-iterator.take.js +3 -2
  183. package/modules/esnext.async-iterator.to-array.js +3 -2
  184. package/modules/esnext.disposable-stack.constructor.js +121 -0
  185. package/modules/esnext.function.un-this.js +2 -2
  186. package/modules/esnext.iterator.as-indexed-pairs.js +2 -1
  187. package/modules/esnext.iterator.constructor.js +2 -1
  188. package/modules/esnext.iterator.dispose.js +17 -0
  189. package/modules/esnext.iterator.drop.js +3 -2
  190. package/modules/esnext.iterator.every.js +6 -5
  191. package/modules/esnext.iterator.filter.js +7 -6
  192. package/modules/esnext.iterator.find.js +6 -5
  193. package/modules/esnext.iterator.flat-map.js +3 -2
  194. package/modules/esnext.iterator.for-each.js +3 -2
  195. package/modules/esnext.iterator.from.js +5 -3
  196. package/modules/esnext.iterator.indexed.js +2 -1
  197. package/modules/esnext.iterator.map.js +5 -21
  198. package/modules/esnext.iterator.reduce.js +3 -2
  199. package/modules/esnext.iterator.some.js +6 -5
  200. package/modules/esnext.iterator.take.js +3 -2
  201. package/modules/esnext.iterator.to-array.js +3 -2
  202. package/modules/esnext.iterator.to-async.js +3 -2
  203. package/modules/esnext.map.delete-all.js +11 -2
  204. package/modules/esnext.map.emplace.js +21 -3
  205. package/modules/esnext.map.every.js +6 -8
  206. package/modules/esnext.map.filter.js +11 -14
  207. package/modules/esnext.map.find-key.js +7 -8
  208. package/modules/esnext.map.find.js +7 -8
  209. package/modules/esnext.map.group-by.js +6 -5
  210. package/modules/esnext.map.includes.js +5 -6
  211. package/modules/esnext.map.key-by.js +4 -1
  212. package/modules/esnext.map.key-of.js +6 -6
  213. package/modules/esnext.map.map-keys.js +11 -14
  214. package/modules/esnext.map.map-values.js +11 -14
  215. package/modules/esnext.map.merge.js +6 -5
  216. package/modules/esnext.map.reduce.js +5 -7
  217. package/modules/esnext.map.some.js +7 -9
  218. package/modules/esnext.map.update.js +10 -10
  219. package/modules/esnext.set.add-all.js +8 -2
  220. package/modules/esnext.set.delete-all.js +11 -2
  221. package/modules/esnext.set.difference.js +5 -13
  222. package/modules/esnext.set.difference.v2.js +9 -0
  223. package/modules/esnext.set.every.js +6 -8
  224. package/modules/esnext.set.filter.js +11 -14
  225. package/modules/esnext.set.find.js +7 -8
  226. package/modules/esnext.set.intersection.js +5 -14
  227. package/modules/esnext.set.intersection.v2.js +9 -0
  228. package/modules/esnext.set.is-disjoint-from.js +6 -10
  229. package/modules/esnext.set.is-disjoint-from.v2.js +9 -0
  230. package/modules/esnext.set.is-subset-of.js +6 -18
  231. package/modules/esnext.set.is-subset-of.v2.js +9 -0
  232. package/modules/esnext.set.is-superset-of.js +6 -10
  233. package/modules/esnext.set.is-superset-of.v2.js +9 -0
  234. package/modules/esnext.set.join.js +9 -9
  235. package/modules/esnext.set.map.js +11 -14
  236. package/modules/esnext.set.reduce.js +5 -7
  237. package/modules/esnext.set.some.js +6 -8
  238. package/modules/esnext.set.symmetric-difference.js +5 -14
  239. package/modules/esnext.set.symmetric-difference.v2.js +9 -0
  240. package/modules/esnext.set.union.js +6 -10
  241. package/modules/esnext.set.union.v2.js +9 -0
  242. package/modules/esnext.string.cooked.js +2 -23
  243. package/modules/esnext.string.dedent.js +152 -0
  244. package/modules/esnext.string.is-well-formed.js +1 -1
  245. package/modules/esnext.string.to-well-formed.js +1 -1
  246. package/modules/esnext.suppressed-error.constructor.js +50 -0
  247. package/modules/esnext.symbol.async-dispose.js +1 -1
  248. package/modules/esnext.symbol.dispose.js +1 -1
  249. package/modules/esnext.typed-array.unique-by.js +4 -2
  250. package/modules/esnext.weak-map.delete-all.js +11 -2
  251. package/modules/esnext.weak-map.emplace.js +20 -2
  252. package/modules/esnext.weak-set.add-all.js +8 -2
  253. package/modules/esnext.weak-set.delete-all.js +11 -2
  254. package/modules/web.set-immediate.js +5 -1
  255. package/modules/web.set-interval.js +4 -2
  256. package/modules/web.set-timeout.js +4 -2
  257. package/modules/web.structured-clone.js +10 -8
  258. package/package.json +1 -1
  259. package/proposals/async-explicit-resource-management.js +5 -0
  260. package/proposals/explicit-resource-management.js +5 -0
  261. package/proposals/iterator-helpers-stage-3.js +28 -0
  262. package/proposals/iterator-helpers.js +2 -29
  263. package/proposals/set-methods-v2.js +8 -0
  264. package/proposals/set-methods.js +8 -0
  265. package/proposals/string-dedent.js +2 -0
  266. package/proposals/using-statement.js +2 -1
  267. package/stage/2.js +5 -4
  268. package/stage/3.js +4 -0
  269. package/internals/collection-add-all.js +0 -14
  270. package/internals/collection-delete-all.js +0 -17
  271. package/internals/function-uncurry-this-raw.js +0 -11
  272. package/internals/get-map-iterator.js +0 -6
  273. package/internals/get-set-iterator.js +0 -6
  274. package/internals/map-emplace.js +0 -24
@@ -1,8 +1,9 @@
1
1
  // TODO: Remove from `core-js@4`
2
- // https://github.com/tc39/proposal-iterator-helpers
3
2
  var $ = require('../internals/export');
4
3
  var indexed = require('../internals/iterator-indexed');
5
4
 
5
+ // `Iterator.prototype.indexed` method
6
+ // https://github.com/tc39/proposal-iterator-helpers
6
7
  $({ target: 'Iterator', proto: true, real: true, forced: true }, {
7
8
  indexed: indexed
8
9
  });
@@ -1,24 +1,8 @@
1
- 'use strict';
2
- // https://github.com/tc39/proposal-iterator-helpers
3
1
  var $ = require('../internals/export');
4
- var call = require('../internals/function-call');
5
- var aCallable = require('../internals/a-callable');
6
- var anObject = require('../internals/an-object');
7
- var getIteratorDirect = require('../internals/get-iterator-direct');
8
- var createIteratorProxy = require('../internals/iterator-create-proxy');
9
- var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
10
-
11
- var IteratorProxy = createIteratorProxy(function () {
12
- var iterator = this.iterator;
13
- var result = anObject(call(this.next, iterator));
14
- var done = this.done = !!result.done;
15
- if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);
16
- });
2
+ var map = require('../internals/iterator-map');
17
3
 
18
- $({ target: 'Iterator', proto: true, real: true, forced: true }, {
19
- map: function map(mapper) {
20
- return new IteratorProxy(getIteratorDirect(this), {
21
- mapper: aCallable(mapper)
22
- });
23
- }
4
+ // `Iterator.prototype.map` method
5
+ // https://github.com/tc39/proposal-iterator-helpers
6
+ $({ target: 'Iterator', proto: true, real: true }, {
7
+ map: map
24
8
  });
@@ -1,5 +1,4 @@
1
1
  'use strict';
2
- // https://github.com/tc39/proposal-iterator-helpers
3
2
  var $ = require('../internals/export');
4
3
  var iterate = require('../internals/iterate');
5
4
  var aCallable = require('../internals/a-callable');
@@ -7,7 +6,9 @@ var getIteratorDirect = require('../internals/get-iterator-direct');
7
6
 
8
7
  var $TypeError = TypeError;
9
8
 
10
- $({ target: 'Iterator', proto: true, real: true, forced: true }, {
9
+ // `Iterator.prototype.reduce` method
10
+ // https://github.com/tc39/proposal-iterator-helpers
11
+ $({ target: 'Iterator', proto: true, real: true }, {
11
12
  reduce: function reduce(reducer /* , initialValue */) {
12
13
  var record = getIteratorDirect(this);
13
14
  aCallable(reducer);
@@ -1,17 +1,18 @@
1
1
  'use strict';
2
- // https://github.com/tc39/proposal-iterator-helpers
3
2
  var $ = require('../internals/export');
4
3
  var iterate = require('../internals/iterate');
5
4
  var aCallable = require('../internals/a-callable');
6
5
  var getIteratorDirect = require('../internals/get-iterator-direct');
7
6
 
8
- $({ target: 'Iterator', proto: true, real: true, forced: true }, {
9
- some: function some(fn) {
7
+ // `Iterator.prototype.some` method
8
+ // https://github.com/tc39/proposal-iterator-helpers
9
+ $({ target: 'Iterator', proto: true, real: true }, {
10
+ some: function some(predicate) {
10
11
  var record = getIteratorDirect(this);
11
12
  var counter = 0;
12
- aCallable(fn);
13
+ aCallable(predicate);
13
14
  return iterate(record, function (value, stop) {
14
- if (fn(value, counter++)) return stop();
15
+ if (predicate(value, counter++)) return stop();
15
16
  }, { IS_RECORD: true, INTERRUPTED: true }).stopped;
16
17
  }
17
18
  });
@@ -1,5 +1,4 @@
1
1
  'use strict';
2
- // https://github.com/tc39/proposal-iterator-helpers
3
2
  var $ = require('../internals/export');
4
3
  var call = require('../internals/function-call');
5
4
  var anObject = require('../internals/an-object');
@@ -20,7 +19,9 @@ var IteratorProxy = createIteratorProxy(function () {
20
19
  if (!done) return result.value;
21
20
  });
22
21
 
23
- $({ target: 'Iterator', proto: true, real: true, forced: true }, {
22
+ // `Iterator.prototype.take` method
23
+ // https://github.com/tc39/proposal-iterator-helpers
24
+ $({ target: 'Iterator', proto: true, real: true }, {
24
25
  take: function take(limit) {
25
26
  return new IteratorProxy(getIteratorDirect(this), {
26
27
  remaining: toPositiveInteger(notANaN(+limit))
@@ -1,12 +1,13 @@
1
1
  'use strict';
2
- // https://github.com/tc39/proposal-iterator-helpers
3
2
  var $ = require('../internals/export');
4
3
  var iterate = require('../internals/iterate');
5
4
  var getIteratorDirect = require('../internals/get-iterator-direct');
6
5
 
7
6
  var push = [].push;
8
7
 
9
- $({ target: 'Iterator', proto: true, real: true, forced: true }, {
8
+ // `Iterator.prototype.toArray` method
9
+ // https://github.com/tc39/proposal-iterator-helpers
10
+ $({ target: 'Iterator', proto: true, real: true }, {
10
11
  toArray: function toArray() {
11
12
  var result = [];
12
13
  iterate(getIteratorDirect(this), push, { that: result, IS_RECORD: true });
@@ -1,11 +1,12 @@
1
1
  'use strict';
2
- // https://github.com/tc39/proposal-iterator-helpers
3
2
  var $ = require('../internals/export');
4
3
  var AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');
5
4
  var WrapAsyncIterator = require('../internals/async-iterator-wrap');
6
5
  var getIteratorDirect = require('../internals/get-iterator-direct');
7
6
 
8
- $({ target: 'Iterator', proto: true, real: true, forced: true }, {
7
+ // `Iterator.prototype.toAsync` method
8
+ // https://github.com/tc39/proposal-iterator-helpers
9
+ $({ target: 'Iterator', proto: true, real: true }, {
9
10
  toAsync: function toAsync() {
10
11
  return new WrapAsyncIterator(getIteratorDirect(new AsyncFromSyncIterator(getIteratorDirect(this))));
11
12
  }
@@ -1,9 +1,18 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var deleteAll = require('../internals/collection-delete-all');
3
+ var aMap = require('../internals/a-map');
4
+ var remove = require('../internals/map-helpers').remove;
4
5
 
5
6
  // `Map.prototype.deleteAll` method
6
7
  // https://github.com/tc39/proposal-collection-methods
7
8
  $({ target: 'Map', proto: true, real: true, forced: true }, {
8
- deleteAll: deleteAll
9
+ deleteAll: function deleteAll(/* ...elements */) {
10
+ var collection = aMap(this);
11
+ var allDeleted = true;
12
+ var wasDeleted;
13
+ for (var k = 0, len = arguments.length; k < len; k++) {
14
+ wasDeleted = remove(collection, arguments[k]);
15
+ allDeleted = allDeleted && wasDeleted;
16
+ } return !!allDeleted;
17
+ }
9
18
  });
@@ -1,9 +1,27 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var emplace = require('../internals/map-emplace');
3
+ var aMap = require('../internals/a-map');
4
+ var MapHelpers = require('../internals/map-helpers');
5
+
6
+ var get = MapHelpers.get;
7
+ var has = MapHelpers.has;
8
+ var set = MapHelpers.set;
4
9
 
5
10
  // `Map.prototype.emplace` method
6
- // https://github.com/thumbsupep/proposal-upsert
11
+ // https://github.com/tc39/proposal-upsert
7
12
  $({ target: 'Map', proto: true, real: true, forced: true }, {
8
- emplace: emplace
13
+ emplace: function emplace(key, handler) {
14
+ var map = aMap(this);
15
+ var value, inserted;
16
+ if (has(map, key)) {
17
+ value = get(map, key);
18
+ if ('update' in handler) {
19
+ value = handler.update(value, key, map);
20
+ set(map, key, value);
21
+ } return value;
22
+ }
23
+ inserted = handler.insert(key, map);
24
+ set(map, key, inserted);
25
+ return inserted;
26
+ }
9
27
  });
@@ -1,19 +1,17 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var anObject = require('../internals/an-object');
4
3
  var bind = require('../internals/function-bind-context');
5
- var getMapIterator = require('../internals/get-map-iterator');
6
- var iterate = require('../internals/iterate');
4
+ var aMap = require('../internals/a-map');
5
+ var iterate = require('../internals/map-iterate');
7
6
 
8
7
  // `Map.prototype.every` method
9
8
  // https://github.com/tc39/proposal-collection-methods
10
9
  $({ target: 'Map', proto: true, real: true, forced: true }, {
11
10
  every: function every(callbackfn /* , thisArg */) {
12
- var map = anObject(this);
13
- var iterator = getMapIterator(map);
11
+ var map = aMap(this);
14
12
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);
15
- return !iterate(iterator, function (key, value, stop) {
16
- if (!boundFunction(value, key, map)) return stop();
17
- }, { AS_ENTRIES: true, IS_ITERATOR: true, INTERRUPTED: true }).stopped;
13
+ return iterate(map, function (value, key) {
14
+ if (!boundFunction(value, key, map)) return false;
15
+ }, true) !== false;
18
16
  }
19
17
  });
@@ -1,26 +1,23 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var getBuiltIn = require('../internals/get-built-in');
4
3
  var bind = require('../internals/function-bind-context');
5
- var call = require('../internals/function-call');
6
- var aCallable = require('../internals/a-callable');
7
- var anObject = require('../internals/an-object');
8
- var speciesConstructor = require('../internals/species-constructor');
9
- var getMapIterator = require('../internals/get-map-iterator');
10
- var iterate = require('../internals/iterate');
4
+ var aMap = require('../internals/a-map');
5
+ var MapHelpers = require('../internals/map-helpers');
6
+ var iterate = require('../internals/map-iterate');
7
+
8
+ var Map = MapHelpers.Map;
9
+ var set = MapHelpers.set;
11
10
 
12
11
  // `Map.prototype.filter` method
13
12
  // https://github.com/tc39/proposal-collection-methods
14
13
  $({ target: 'Map', proto: true, real: true, forced: true }, {
15
14
  filter: function filter(callbackfn /* , thisArg */) {
16
- var map = anObject(this);
17
- var iterator = getMapIterator(map);
15
+ var map = aMap(this);
18
16
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);
19
- var newMap = new (speciesConstructor(map, getBuiltIn('Map')))();
20
- var setter = aCallable(newMap.set);
21
- iterate(iterator, function (key, value) {
22
- if (boundFunction(value, key, map)) call(setter, newMap, key, value);
23
- }, { AS_ENTRIES: true, IS_ITERATOR: true });
17
+ var newMap = new Map();
18
+ iterate(map, function (value, key) {
19
+ if (boundFunction(value, key, map)) set(newMap, key, value);
20
+ });
24
21
  return newMap;
25
22
  }
26
23
  });
@@ -1,19 +1,18 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var anObject = require('../internals/an-object');
4
3
  var bind = require('../internals/function-bind-context');
5
- var getMapIterator = require('../internals/get-map-iterator');
6
- var iterate = require('../internals/iterate');
4
+ var aMap = require('../internals/a-map');
5
+ var iterate = require('../internals/map-iterate');
7
6
 
8
7
  // `Map.prototype.findKey` method
9
8
  // https://github.com/tc39/proposal-collection-methods
10
9
  $({ target: 'Map', proto: true, real: true, forced: true }, {
11
10
  findKey: function findKey(callbackfn /* , thisArg */) {
12
- var map = anObject(this);
13
- var iterator = getMapIterator(map);
11
+ var map = aMap(this);
14
12
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);
15
- return iterate(iterator, function (key, value, stop) {
16
- if (boundFunction(value, key, map)) return stop(key);
17
- }, { AS_ENTRIES: true, IS_ITERATOR: true, INTERRUPTED: true }).result;
13
+ var result = iterate(map, function (value, key) {
14
+ if (boundFunction(value, key, map)) return { key: key };
15
+ }, true);
16
+ return result && result.key;
18
17
  }
19
18
  });
@@ -1,19 +1,18 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var anObject = require('../internals/an-object');
4
3
  var bind = require('../internals/function-bind-context');
5
- var getMapIterator = require('../internals/get-map-iterator');
6
- var iterate = require('../internals/iterate');
4
+ var aMap = require('../internals/a-map');
5
+ var iterate = require('../internals/map-iterate');
7
6
 
8
7
  // `Map.prototype.find` method
9
8
  // https://github.com/tc39/proposal-collection-methods
10
9
  $({ target: 'Map', proto: true, real: true, forced: true }, {
11
10
  find: function find(callbackfn /* , thisArg */) {
12
- var map = anObject(this);
13
- var iterator = getMapIterator(map);
11
+ var map = aMap(this);
14
12
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);
15
- return iterate(iterator, function (key, value, stop) {
16
- if (boundFunction(value, key, map)) return stop(value);
17
- }, { AS_ENTRIES: true, IS_ITERATOR: true, INTERRUPTED: true }).result;
13
+ var result = iterate(map, function (value, key) {
14
+ if (boundFunction(value, key, map)) return { value: value };
15
+ }, true);
16
+ return result && result.value;
18
17
  }
19
18
  });
@@ -2,9 +2,10 @@
2
2
  var $ = require('../internals/export');
3
3
  var call = require('../internals/function-call');
4
4
  var uncurryThis = require('../internals/function-uncurry-this');
5
+ var isCallable = require('../internals/is-callable');
5
6
  var aCallable = require('../internals/a-callable');
6
- var getIterator = require('../internals/get-iterator');
7
7
  var iterate = require('../internals/iterate');
8
+ var Map = require('../internals/map-helpers').Map;
8
9
 
9
10
  var push = uncurryThis([].push);
10
11
 
@@ -12,17 +13,17 @@ var push = uncurryThis([].push);
12
13
  // https://github.com/tc39/proposal-collection-methods
13
14
  $({ target: 'Map', stat: true, forced: true }, {
14
15
  groupBy: function groupBy(iterable, keyDerivative) {
16
+ var C = isCallable(this) ? this : Map;
17
+ var newMap = new C();
15
18
  aCallable(keyDerivative);
16
- var iterator = getIterator(iterable);
17
- var newMap = new this();
18
19
  var has = aCallable(newMap.has);
19
20
  var get = aCallable(newMap.get);
20
21
  var set = aCallable(newMap.set);
21
- iterate(iterator, function (element) {
22
+ iterate(iterable, function (element) {
22
23
  var derivedKey = keyDerivative(element);
23
24
  if (!call(has, newMap, derivedKey)) call(set, newMap, derivedKey, [element]);
24
25
  else push(call(get, newMap, derivedKey), element);
25
- }, { IS_ITERATOR: true });
26
+ });
26
27
  return newMap;
27
28
  }
28
29
  });
@@ -1,16 +1,15 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var anObject = require('../internals/an-object');
4
- var getMapIterator = require('../internals/get-map-iterator');
5
3
  var sameValueZero = require('../internals/same-value-zero');
6
- var iterate = require('../internals/iterate');
4
+ var aMap = require('../internals/a-map');
5
+ var iterate = require('../internals/map-iterate');
7
6
 
8
7
  // `Map.prototype.includes` method
9
8
  // https://github.com/tc39/proposal-collection-methods
10
9
  $({ target: 'Map', proto: true, real: true, forced: true }, {
11
10
  includes: function includes(searchElement) {
12
- return iterate(getMapIterator(anObject(this)), function (key, value, stop) {
13
- if (sameValueZero(value, searchElement)) return stop();
14
- }, { AS_ENTRIES: true, IS_ITERATOR: true, INTERRUPTED: true }).stopped;
11
+ return iterate(aMap(this), function (value) {
12
+ if (sameValueZero(value, searchElement)) return true;
13
+ }, true) === true;
15
14
  }
16
15
  });
@@ -2,13 +2,16 @@
2
2
  var $ = require('../internals/export');
3
3
  var call = require('../internals/function-call');
4
4
  var iterate = require('../internals/iterate');
5
+ var isCallable = require('../internals/is-callable');
5
6
  var aCallable = require('../internals/a-callable');
7
+ var Map = require('../internals/map-helpers').Map;
6
8
 
7
9
  // `Map.keyBy` method
8
10
  // https://github.com/tc39/proposal-collection-methods
9
11
  $({ target: 'Map', stat: true, forced: true }, {
10
12
  keyBy: function keyBy(iterable, keyDerivative) {
11
- var newMap = new this();
13
+ var C = isCallable(this) ? this : Map;
14
+ var newMap = new C();
12
15
  aCallable(keyDerivative);
13
16
  var setter = aCallable(newMap.set);
14
17
  iterate(iterable, function (element) {
@@ -1,15 +1,15 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var anObject = require('../internals/an-object');
4
- var getMapIterator = require('../internals/get-map-iterator');
5
- var iterate = require('../internals/iterate');
3
+ var aMap = require('../internals/a-map');
4
+ var iterate = require('../internals/map-iterate');
6
5
 
7
6
  // `Map.prototype.keyOf` method
8
7
  // https://github.com/tc39/proposal-collection-methods
9
8
  $({ target: 'Map', proto: true, real: true, forced: true }, {
10
9
  keyOf: function keyOf(searchElement) {
11
- return iterate(getMapIterator(anObject(this)), function (key, value, stop) {
12
- if (value === searchElement) return stop(key);
13
- }, { AS_ENTRIES: true, IS_ITERATOR: true, INTERRUPTED: true }).result;
10
+ var result = iterate(aMap(this), function (value, key) {
11
+ if (value === searchElement) return { key: key };
12
+ }, true);
13
+ return result && result.key;
14
14
  }
15
15
  });
@@ -1,26 +1,23 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var getBuiltIn = require('../internals/get-built-in');
4
3
  var bind = require('../internals/function-bind-context');
5
- var call = require('../internals/function-call');
6
- var aCallable = require('../internals/a-callable');
7
- var anObject = require('../internals/an-object');
8
- var speciesConstructor = require('../internals/species-constructor');
9
- var getMapIterator = require('../internals/get-map-iterator');
10
- var iterate = require('../internals/iterate');
4
+ var aMap = require('../internals/a-map');
5
+ var MapHelpers = require('../internals/map-helpers');
6
+ var iterate = require('../internals/map-iterate');
7
+
8
+ var Map = MapHelpers.Map;
9
+ var set = MapHelpers.set;
11
10
 
12
11
  // `Map.prototype.mapKeys` method
13
12
  // https://github.com/tc39/proposal-collection-methods
14
13
  $({ target: 'Map', proto: true, real: true, forced: true }, {
15
14
  mapKeys: function mapKeys(callbackfn /* , thisArg */) {
16
- var map = anObject(this);
17
- var iterator = getMapIterator(map);
15
+ var map = aMap(this);
18
16
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);
19
- var newMap = new (speciesConstructor(map, getBuiltIn('Map')))();
20
- var setter = aCallable(newMap.set);
21
- iterate(iterator, function (key, value) {
22
- call(setter, newMap, boundFunction(value, key, map), value);
23
- }, { AS_ENTRIES: true, IS_ITERATOR: true });
17
+ var newMap = new Map();
18
+ iterate(map, function (value, key) {
19
+ set(newMap, boundFunction(value, key, map), value);
20
+ });
24
21
  return newMap;
25
22
  }
26
23
  });
@@ -1,26 +1,23 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var getBuiltIn = require('../internals/get-built-in');
4
3
  var bind = require('../internals/function-bind-context');
5
- var call = require('../internals/function-call');
6
- var aCallable = require('../internals/a-callable');
7
- var anObject = require('../internals/an-object');
8
- var speciesConstructor = require('../internals/species-constructor');
9
- var getMapIterator = require('../internals/get-map-iterator');
10
- var iterate = require('../internals/iterate');
4
+ var aMap = require('../internals/a-map');
5
+ var MapHelpers = require('../internals/map-helpers');
6
+ var iterate = require('../internals/map-iterate');
7
+
8
+ var Map = MapHelpers.Map;
9
+ var set = MapHelpers.set;
11
10
 
12
11
  // `Map.prototype.mapValues` method
13
12
  // https://github.com/tc39/proposal-collection-methods
14
13
  $({ target: 'Map', proto: true, real: true, forced: true }, {
15
14
  mapValues: function mapValues(callbackfn /* , thisArg */) {
16
- var map = anObject(this);
17
- var iterator = getMapIterator(map);
15
+ var map = aMap(this);
18
16
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);
19
- var newMap = new (speciesConstructor(map, getBuiltIn('Map')))();
20
- var setter = aCallable(newMap.set);
21
- iterate(iterator, function (key, value) {
22
- call(setter, newMap, key, boundFunction(value, key, map));
23
- }, { AS_ENTRIES: true, IS_ITERATOR: true });
17
+ var newMap = new Map();
18
+ iterate(map, function (value, key) {
19
+ set(newMap, key, boundFunction(value, key, map));
20
+ });
24
21
  return newMap;
25
22
  }
26
23
  });
@@ -1,20 +1,21 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var aCallable = require('../internals/a-callable');
4
- var anObject = require('../internals/an-object');
3
+ var aMap = require('../internals/a-map');
5
4
  var iterate = require('../internals/iterate');
5
+ var set = require('../internals/map-helpers').set;
6
6
 
7
7
  // `Map.prototype.merge` method
8
8
  // https://github.com/tc39/proposal-collection-methods
9
9
  $({ target: 'Map', proto: true, real: true, arity: 1, forced: true }, {
10
10
  // eslint-disable-next-line no-unused-vars -- required for `.length`
11
11
  merge: function merge(iterable /* ...iterables */) {
12
- var map = anObject(this);
13
- var setter = aCallable(map.set);
12
+ var map = aMap(this);
14
13
  var argumentsLength = arguments.length;
15
14
  var i = 0;
16
15
  while (i < argumentsLength) {
17
- iterate(arguments[i++], setter, { that: map, AS_ENTRIES: true });
16
+ iterate(arguments[i++], function (key, value) {
17
+ set(map, key, value);
18
+ }, { AS_ENTRIES: true });
18
19
  }
19
20
  return map;
20
21
  }
@@ -1,9 +1,8 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var anObject = require('../internals/an-object');
4
3
  var aCallable = require('../internals/a-callable');
5
- var getMapIterator = require('../internals/get-map-iterator');
6
- var iterate = require('../internals/iterate');
4
+ var aMap = require('../internals/a-map');
5
+ var iterate = require('../internals/map-iterate');
7
6
 
8
7
  var $TypeError = TypeError;
9
8
 
@@ -11,19 +10,18 @@ var $TypeError = TypeError;
11
10
  // https://github.com/tc39/proposal-collection-methods
12
11
  $({ target: 'Map', proto: true, real: true, forced: true }, {
13
12
  reduce: function reduce(callbackfn /* , initialValue */) {
14
- var map = anObject(this);
15
- var iterator = getMapIterator(map);
13
+ var map = aMap(this);
16
14
  var noInitial = arguments.length < 2;
17
15
  var accumulator = noInitial ? undefined : arguments[1];
18
16
  aCallable(callbackfn);
19
- iterate(iterator, function (key, value) {
17
+ iterate(map, function (value, key) {
20
18
  if (noInitial) {
21
19
  noInitial = false;
22
20
  accumulator = value;
23
21
  } else {
24
22
  accumulator = callbackfn(accumulator, value, key, map);
25
23
  }
26
- }, { AS_ENTRIES: true, IS_ITERATOR: true });
24
+ });
27
25
  if (noInitial) throw $TypeError('Reduce of empty map with no initial value');
28
26
  return accumulator;
29
27
  }
@@ -1,19 +1,17 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var anObject = require('../internals/an-object');
4
3
  var bind = require('../internals/function-bind-context');
5
- var getMapIterator = require('../internals/get-map-iterator');
6
- var iterate = require('../internals/iterate');
4
+ var aMap = require('../internals/a-map');
5
+ var iterate = require('../internals/map-iterate');
7
6
 
8
- // `Set.prototype.some` method
7
+ // `Map.prototype.some` method
9
8
  // https://github.com/tc39/proposal-collection-methods
10
9
  $({ target: 'Map', proto: true, real: true, forced: true }, {
11
10
  some: function some(callbackfn /* , thisArg */) {
12
- var map = anObject(this);
13
- var iterator = getMapIterator(map);
11
+ var map = aMap(this);
14
12
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);
15
- return iterate(iterator, function (key, value, stop) {
16
- if (boundFunction(value, key, map)) return stop();
17
- }, { AS_ENTRIES: true, IS_ITERATOR: true, INTERRUPTED: true }).stopped;
13
+ return iterate(map, function (value, key) {
14
+ if (boundFunction(value, key, map)) return true;
15
+ }, true) === true;
18
16
  }
19
17
  });
@@ -1,27 +1,27 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var call = require('../internals/function-call');
4
- var anObject = require('../internals/an-object');
5
3
  var aCallable = require('../internals/a-callable');
4
+ var aMap = require('../internals/a-map');
5
+ var MapHelpers = require('../internals/map-helpers');
6
6
 
7
7
  var $TypeError = TypeError;
8
+ var get = MapHelpers.get;
9
+ var has = MapHelpers.has;
10
+ var set = MapHelpers.set;
8
11
 
9
- // `Set.prototype.update` method
12
+ // `Map.prototype.update` method
10
13
  // https://github.com/tc39/proposal-collection-methods
11
14
  $({ target: 'Map', proto: true, real: true, forced: true }, {
12
15
  update: function update(key, callback /* , thunk */) {
13
- var map = anObject(this);
14
- var get = aCallable(map.get);
15
- var has = aCallable(map.has);
16
- var set = aCallable(map.set);
16
+ var map = aMap(this);
17
17
  var length = arguments.length;
18
18
  aCallable(callback);
19
- var isPresentInMap = call(has, map, key);
19
+ var isPresentInMap = has(map, key);
20
20
  if (!isPresentInMap && length < 3) {
21
21
  throw $TypeError('Updating absent value');
22
22
  }
23
- var value = isPresentInMap ? call(get, map, key) : aCallable(length > 2 ? arguments[2] : undefined)(key, map);
24
- call(set, map, key, callback(value, key, map));
23
+ var value = isPresentInMap ? get(map, key) : aCallable(length > 2 ? arguments[2] : undefined)(key, map);
24
+ set(map, key, callback(value, key, map));
25
25
  return map;
26
26
  }
27
27
  });
@@ -1,9 +1,15 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var addAll = require('../internals/collection-add-all');
3
+ var aSet = require('../internals/a-set');
4
+ var add = require('../internals/set-helpers').add;
4
5
 
5
6
  // `Set.prototype.addAll` method
6
7
  // https://github.com/tc39/proposal-collection-methods
7
8
  $({ target: 'Set', proto: true, real: true, forced: true }, {
8
- addAll: addAll
9
+ addAll: function addAll(/* ...elements */) {
10
+ var set = aSet(this);
11
+ for (var k = 0, len = arguments.length; k < len; k++) {
12
+ add(set, arguments[k]);
13
+ } return set;
14
+ }
9
15
  });