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,9 +1,18 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var deleteAll = require('../internals/collection-delete-all');
3
+ var aSet = require('../internals/a-set');
4
+ var remove = require('../internals/set-helpers').remove;
4
5
 
5
6
  // `Set.prototype.deleteAll` method
6
7
  // https://github.com/tc39/proposal-collection-methods
7
8
  $({ target: 'Set', proto: true, real: true, forced: true }, {
8
- deleteAll: deleteAll
9
+ deleteAll: function deleteAll(/* ...elements */) {
10
+ var collection = aSet(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,22 +1,14 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var getBuiltIn = require('../internals/get-built-in');
4
3
  var call = require('../internals/function-call');
5
- var aCallable = require('../internals/a-callable');
6
- var anObject = require('../internals/an-object');
7
- var speciesConstructor = require('../internals/species-constructor');
8
- var iterate = require('../internals/iterate');
4
+ var toSetLike = require('../internals/to-set-like');
5
+ var $difference = require('../internals/set-difference');
9
6
 
10
7
  // `Set.prototype.difference` method
11
8
  // https://github.com/tc39/proposal-set-methods
9
+ // TODO: Obsolete version, remove from `core-js@4`
12
10
  $({ target: 'Set', proto: true, real: true, forced: true }, {
13
- difference: function difference(iterable) {
14
- var set = anObject(this);
15
- var newSet = new (speciesConstructor(set, getBuiltIn('Set')))(set);
16
- var remover = aCallable(newSet['delete']);
17
- iterate(iterable, function (value) {
18
- call(remover, newSet, value);
19
- });
20
- return newSet;
11
+ difference: function difference(other) {
12
+ return call($difference, this, toSetLike(other));
21
13
  }
22
14
  });
@@ -0,0 +1,9 @@
1
+ var $ = require('../internals/export');
2
+ var difference = require('../internals/set-difference');
3
+ var setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');
4
+
5
+ // `Set.prototype.difference` method
6
+ // https://github.com/tc39/proposal-set-methods
7
+ $({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('difference') }, {
8
+ difference: difference
9
+ });
@@ -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 getSetIterator = require('../internals/get-set-iterator');
6
- var iterate = require('../internals/iterate');
4
+ var aSet = require('../internals/a-set');
5
+ var iterate = require('../internals/set-iterate');
7
6
 
8
7
  // `Set.prototype.every` method
9
8
  // https://github.com/tc39/proposal-collection-methods
10
9
  $({ target: 'Set', proto: true, real: true, forced: true }, {
11
10
  every: function every(callbackfn /* , thisArg */) {
12
- var set = anObject(this);
13
- var iterator = getSetIterator(set);
11
+ var set = aSet(this);
14
12
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);
15
- return !iterate(iterator, function (value, stop) {
16
- if (!boundFunction(value, value, set)) return stop();
17
- }, { IS_ITERATOR: true, INTERRUPTED: true }).stopped;
13
+ return iterate(set, function (value) {
14
+ if (!boundFunction(value, value, set)) 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
- var call = require('../internals/function-call');
5
- var aCallable = require('../internals/a-callable');
6
- var anObject = require('../internals/an-object');
7
3
  var bind = require('../internals/function-bind-context');
8
- var speciesConstructor = require('../internals/species-constructor');
9
- var getSetIterator = require('../internals/get-set-iterator');
10
- var iterate = require('../internals/iterate');
4
+ var aSet = require('../internals/a-set');
5
+ var SetHelpers = require('../internals/set-helpers');
6
+ var iterate = require('../internals/set-iterate');
7
+
8
+ var Set = SetHelpers.Set;
9
+ var add = SetHelpers.add;
11
10
 
12
11
  // `Set.prototype.filter` method
13
12
  // https://github.com/tc39/proposal-collection-methods
14
13
  $({ target: 'Set', proto: true, real: true, forced: true }, {
15
14
  filter: function filter(callbackfn /* , thisArg */) {
16
- var set = anObject(this);
17
- var iterator = getSetIterator(set);
15
+ var set = aSet(this);
18
16
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);
19
- var newSet = new (speciesConstructor(set, getBuiltIn('Set')))();
20
- var adder = aCallable(newSet.add);
21
- iterate(iterator, function (value) {
22
- if (boundFunction(value, value, set)) call(adder, newSet, value);
23
- }, { IS_ITERATOR: true });
17
+ var newSet = new Set();
18
+ iterate(set, function (value) {
19
+ if (boundFunction(value, value, set)) add(newSet, value);
20
+ });
24
21
  return newSet;
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 getSetIterator = require('../internals/get-set-iterator');
6
- var iterate = require('../internals/iterate');
4
+ var aSet = require('../internals/a-set');
5
+ var iterate = require('../internals/set-iterate');
7
6
 
8
7
  // `Set.prototype.find` method
9
8
  // https://github.com/tc39/proposal-collection-methods
10
9
  $({ target: 'Set', proto: true, real: true, forced: true }, {
11
10
  find: function find(callbackfn /* , thisArg */) {
12
- var set = anObject(this);
13
- var iterator = getSetIterator(set);
11
+ var set = aSet(this);
14
12
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);
15
- return iterate(iterator, function (value, stop) {
16
- if (boundFunction(value, value, set)) return stop(value);
17
- }, { IS_ITERATOR: true, INTERRUPTED: true }).result;
13
+ var result = iterate(set, function (value) {
14
+ if (boundFunction(value, value, set)) return { value: value };
15
+ }, true);
16
+ return result && result.value;
18
17
  }
19
18
  });
@@ -1,23 +1,14 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var getBuiltIn = require('../internals/get-built-in');
4
3
  var call = require('../internals/function-call');
5
- var aCallable = require('../internals/a-callable');
6
- var anObject = require('../internals/an-object');
7
- var speciesConstructor = require('../internals/species-constructor');
8
- var iterate = require('../internals/iterate');
4
+ var toSetLike = require('../internals/to-set-like');
5
+ var $intersection = require('../internals/set-intersection');
9
6
 
10
7
  // `Set.prototype.intersection` method
11
8
  // https://github.com/tc39/proposal-set-methods
9
+ // TODO: Obsolete version, remove from `core-js@4`
12
10
  $({ target: 'Set', proto: true, real: true, forced: true }, {
13
- intersection: function intersection(iterable) {
14
- var set = anObject(this);
15
- var newSet = new (speciesConstructor(set, getBuiltIn('Set')))();
16
- var hasCheck = aCallable(set.has);
17
- var adder = aCallable(newSet.add);
18
- iterate(iterable, function (value) {
19
- if (call(hasCheck, set, value)) call(adder, newSet, value);
20
- });
21
- return newSet;
11
+ intersection: function intersection(other) {
12
+ return call($intersection, this, toSetLike(other));
22
13
  }
23
14
  });
@@ -0,0 +1,9 @@
1
+ var $ = require('../internals/export');
2
+ var intersection = require('../internals/set-intersection');
3
+ var setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');
4
+
5
+ // `Set.prototype.intersection` method
6
+ // https://github.com/tc39/proposal-set-methods
7
+ $({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('intersection') }, {
8
+ intersection: intersection
9
+ });
@@ -1,18 +1,14 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
3
  var call = require('../internals/function-call');
4
- var aCallable = require('../internals/a-callable');
5
- var anObject = require('../internals/an-object');
6
- var iterate = require('../internals/iterate');
4
+ var toSetLike = require('../internals/to-set-like');
5
+ var $isDisjointFrom = require('../internals/set-is-disjoint-from');
7
6
 
8
7
  // `Set.prototype.isDisjointFrom` method
9
- // https://tc39.github.io/proposal-set-methods/#Set.prototype.isDisjointFrom
8
+ // https://github.com/tc39/proposal-set-methods
9
+ // TODO: Obsolete version, remove from `core-js@4`
10
10
  $({ target: 'Set', proto: true, real: true, forced: true }, {
11
- isDisjointFrom: function isDisjointFrom(iterable) {
12
- var set = anObject(this);
13
- var hasCheck = aCallable(set.has);
14
- return !iterate(iterable, function (value, stop) {
15
- if (call(hasCheck, set, value) === true) return stop();
16
- }, { INTERRUPTED: true }).stopped;
11
+ isDisjointFrom: function isDisjointFrom(other) {
12
+ return call($isDisjointFrom, this, toSetLike(other));
17
13
  }
18
14
  });
@@ -0,0 +1,9 @@
1
+ var $ = require('../internals/export');
2
+ var isDisjointFrom = require('../internals/set-is-disjoint-from');
3
+ var setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');
4
+
5
+ // `Set.prototype.isDisjointFrom` method
6
+ // https://github.com/tc39/proposal-set-methods
7
+ $({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isDisjointFrom') }, {
8
+ isDisjointFrom: isDisjointFrom
9
+ });
@@ -1,26 +1,14 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var getBuiltIn = require('../internals/get-built-in');
4
3
  var call = require('../internals/function-call');
5
- var aCallable = require('../internals/a-callable');
6
- var isCallable = require('../internals/is-callable');
7
- var anObject = require('../internals/an-object');
8
- var getIterator = require('../internals/get-iterator');
9
- var iterate = require('../internals/iterate');
4
+ var toSetLike = require('../internals/to-set-like');
5
+ var $isSubsetOf = require('../internals/set-is-subset-of');
10
6
 
11
7
  // `Set.prototype.isSubsetOf` method
12
- // https://tc39.github.io/proposal-set-methods/#Set.prototype.isSubsetOf
8
+ // https://github.com/tc39/proposal-set-methods
9
+ // TODO: Obsolete version, remove from `core-js@4`
13
10
  $({ target: 'Set', proto: true, real: true, forced: true }, {
14
- isSubsetOf: function isSubsetOf(iterable) {
15
- var iterator = getIterator(this);
16
- var otherSet = anObject(iterable);
17
- var hasCheck = otherSet.has;
18
- if (!isCallable(hasCheck)) {
19
- otherSet = new (getBuiltIn('Set'))(iterable);
20
- hasCheck = aCallable(otherSet.has);
21
- }
22
- return !iterate(iterator, function (value, stop) {
23
- if (call(hasCheck, otherSet, value) === false) return stop();
24
- }, { IS_ITERATOR: true, INTERRUPTED: true }).stopped;
11
+ isSubsetOf: function isSubsetOf(other) {
12
+ return call($isSubsetOf, this, toSetLike(other));
25
13
  }
26
14
  });
@@ -0,0 +1,9 @@
1
+ var $ = require('../internals/export');
2
+ var isSubsetOf = require('../internals/set-is-subset-of');
3
+ var setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');
4
+
5
+ // `Set.prototype.isSubsetOf` method
6
+ // https://github.com/tc39/proposal-set-methods
7
+ $({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSubsetOf') }, {
8
+ isSubsetOf: isSubsetOf
9
+ });
@@ -1,18 +1,14 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
3
  var call = require('../internals/function-call');
4
- var aCallable = require('../internals/a-callable');
5
- var anObject = require('../internals/an-object');
6
- var iterate = require('../internals/iterate');
4
+ var toSetLike = require('../internals/to-set-like');
5
+ var $isSupersetOf = require('../internals/set-is-superset-of');
7
6
 
8
7
  // `Set.prototype.isSupersetOf` method
9
- // https://tc39.github.io/proposal-set-methods/#Set.prototype.isSupersetOf
8
+ // https://github.com/tc39/proposal-set-methods
9
+ // TODO: Obsolete version, remove from `core-js@4`
10
10
  $({ target: 'Set', proto: true, real: true, forced: true }, {
11
- isSupersetOf: function isSupersetOf(iterable) {
12
- var set = anObject(this);
13
- var hasCheck = aCallable(set.has);
14
- return !iterate(iterable, function (value, stop) {
15
- if (call(hasCheck, set, value) === false) return stop();
16
- }, { INTERRUPTED: true }).stopped;
11
+ isSupersetOf: function isSupersetOf(other) {
12
+ return call($isSupersetOf, this, toSetLike(other));
17
13
  }
18
14
  });
@@ -0,0 +1,9 @@
1
+ var $ = require('../internals/export');
2
+ var isSupersetOf = require('../internals/set-is-superset-of');
3
+ var setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');
4
+
5
+ // `Set.prototype.isSupersetOf` method
6
+ // https://github.com/tc39/proposal-set-methods
7
+ $({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSupersetOf') }, {
8
+ isSupersetOf: isSupersetOf
9
+ });
@@ -1,23 +1,23 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
3
  var uncurryThis = require('../internals/function-uncurry-this');
4
- var anObject = require('../internals/an-object');
4
+ var aSet = require('../internals/a-set');
5
+ var iterate = require('../internals/set-iterate');
5
6
  var toString = require('../internals/to-string');
6
- var getSetIterator = require('../internals/get-set-iterator');
7
- var iterate = require('../internals/iterate');
8
7
 
9
8
  var arrayJoin = uncurryThis([].join);
10
- var push = [].push;
9
+ var push = uncurryThis([].push);
11
10
 
12
11
  // `Set.prototype.join` method
13
12
  // https://github.com/tc39/proposal-collection-methods
14
13
  $({ target: 'Set', proto: true, real: true, forced: true }, {
15
14
  join: function join(separator) {
16
- var set = anObject(this);
17
- var iterator = getSetIterator(set);
15
+ var set = aSet(this);
18
16
  var sep = separator === undefined ? ',' : toString(separator);
19
- var result = [];
20
- iterate(iterator, push, { that: result, IS_ITERATOR: true });
21
- return arrayJoin(result, sep);
17
+ var array = [];
18
+ iterate(set, function (value) {
19
+ push(array, value);
20
+ });
21
+ return arrayJoin(array, sep);
22
22
  }
23
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 getSetIterator = require('../internals/get-set-iterator');
10
- var iterate = require('../internals/iterate');
4
+ var aSet = require('../internals/a-set');
5
+ var SetHelpers = require('../internals/set-helpers');
6
+ var iterate = require('../internals/set-iterate');
7
+
8
+ var Set = SetHelpers.Set;
9
+ var add = SetHelpers.add;
11
10
 
12
11
  // `Set.prototype.map` method
13
12
  // https://github.com/tc39/proposal-collection-methods
14
13
  $({ target: 'Set', proto: true, real: true, forced: true }, {
15
14
  map: function map(callbackfn /* , thisArg */) {
16
- var set = anObject(this);
17
- var iterator = getSetIterator(set);
15
+ var set = aSet(this);
18
16
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);
19
- var newSet = new (speciesConstructor(set, getBuiltIn('Set')))();
20
- var adder = aCallable(newSet.add);
21
- iterate(iterator, function (value) {
22
- call(adder, newSet, boundFunction(value, value, set));
23
- }, { IS_ITERATOR: true });
17
+ var newSet = new Set();
18
+ iterate(set, function (value) {
19
+ add(newSet, boundFunction(value, value, set));
20
+ });
24
21
  return newSet;
25
22
  }
26
23
  });
@@ -1,9 +1,8 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
3
  var aCallable = require('../internals/a-callable');
4
- var anObject = require('../internals/an-object');
5
- var getSetIterator = require('../internals/get-set-iterator');
6
- var iterate = require('../internals/iterate');
4
+ var aSet = require('../internals/a-set');
5
+ var iterate = require('../internals/set-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: 'Set', proto: true, real: true, forced: true }, {
13
12
  reduce: function reduce(callbackfn /* , initialValue */) {
14
- var set = anObject(this);
15
- var iterator = getSetIterator(set);
13
+ var set = aSet(this);
16
14
  var noInitial = arguments.length < 2;
17
15
  var accumulator = noInitial ? undefined : arguments[1];
18
16
  aCallable(callbackfn);
19
- iterate(iterator, function (value) {
17
+ iterate(set, function (value) {
20
18
  if (noInitial) {
21
19
  noInitial = false;
22
20
  accumulator = value;
23
21
  } else {
24
22
  accumulator = callbackfn(accumulator, value, value, set);
25
23
  }
26
- }, { IS_ITERATOR: true });
24
+ });
27
25
  if (noInitial) throw $TypeError('Reduce of empty set 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 getSetIterator = require('../internals/get-set-iterator');
6
- var iterate = require('../internals/iterate');
4
+ var aSet = require('../internals/a-set');
5
+ var iterate = require('../internals/set-iterate');
7
6
 
8
7
  // `Set.prototype.some` method
9
8
  // https://github.com/tc39/proposal-collection-methods
10
9
  $({ target: 'Set', proto: true, real: true, forced: true }, {
11
10
  some: function some(callbackfn /* , thisArg */) {
12
- var set = anObject(this);
13
- var iterator = getSetIterator(set);
11
+ var set = aSet(this);
14
12
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);
15
- return iterate(iterator, function (value, stop) {
16
- if (boundFunction(value, value, set)) return stop();
17
- }, { IS_ITERATOR: true, INTERRUPTED: true }).stopped;
13
+ return iterate(set, function (value) {
14
+ if (boundFunction(value, value, set)) return true;
15
+ }, true) === true;
18
16
  }
19
17
  });
@@ -1,23 +1,14 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var getBuiltIn = require('../internals/get-built-in');
4
3
  var call = require('../internals/function-call');
5
- var aCallable = require('../internals/a-callable');
6
- var anObject = require('../internals/an-object');
7
- var speciesConstructor = require('../internals/species-constructor');
8
- var iterate = require('../internals/iterate');
4
+ var toSetLike = require('../internals/to-set-like');
5
+ var $symmetricDifference = require('../internals/set-symmetric-difference');
9
6
 
10
7
  // `Set.prototype.symmetricDifference` method
11
8
  // https://github.com/tc39/proposal-set-methods
9
+ // TODO: Obsolete version, remove from `core-js@4`
12
10
  $({ target: 'Set', proto: true, real: true, forced: true }, {
13
- symmetricDifference: function symmetricDifference(iterable) {
14
- var set = anObject(this);
15
- var newSet = new (speciesConstructor(set, getBuiltIn('Set')))(set);
16
- var remover = aCallable(newSet['delete']);
17
- var adder = aCallable(newSet.add);
18
- iterate(iterable, function (value) {
19
- call(remover, newSet, value) || call(adder, newSet, value);
20
- });
21
- return newSet;
11
+ symmetricDifference: function symmetricDifference(other) {
12
+ return call($symmetricDifference, this, toSetLike(other));
22
13
  }
23
14
  });
@@ -0,0 +1,9 @@
1
+ var $ = require('../internals/export');
2
+ var symmetricDifference = require('../internals/set-symmetric-difference');
3
+ var setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');
4
+
5
+ // `Set.prototype.symmetricDifference` method
6
+ // https://github.com/tc39/proposal-set-methods
7
+ $({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('symmetricDifference') }, {
8
+ symmetricDifference: symmetricDifference
9
+ });
@@ -1,18 +1,14 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var getBuiltIn = require('../internals/get-built-in');
4
- var aCallable = require('../internals/a-callable');
5
- var anObject = require('../internals/an-object');
6
- var speciesConstructor = require('../internals/species-constructor');
7
- var iterate = require('../internals/iterate');
3
+ var call = require('../internals/function-call');
4
+ var toSetLike = require('../internals/to-set-like');
5
+ var $union = require('../internals/set-union');
8
6
 
9
7
  // `Set.prototype.union` method
10
8
  // https://github.com/tc39/proposal-set-methods
9
+ // TODO: Obsolete version, remove from `core-js@4`
11
10
  $({ target: 'Set', proto: true, real: true, forced: true }, {
12
- union: function union(iterable) {
13
- var set = anObject(this);
14
- var newSet = new (speciesConstructor(set, getBuiltIn('Set')))(set);
15
- iterate(iterable, aCallable(newSet.add), { that: newSet });
16
- return newSet;
11
+ union: function union(other) {
12
+ return call($union, this, toSetLike(other));
17
13
  }
18
14
  });
@@ -0,0 +1,9 @@
1
+ var $ = require('../internals/export');
2
+ var union = require('../internals/set-union');
3
+ var setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');
4
+
5
+ // `Set.prototype.union` method
6
+ // https://github.com/tc39/proposal-set-methods
7
+ $({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('union') }, {
8
+ union: union
9
+ });
@@ -1,29 +1,8 @@
1
1
  var $ = require('../internals/export');
2
- var uncurryThis = require('../internals/function-uncurry-this');
3
- var toIndexedObject = require('../internals/to-indexed-object');
4
- var toString = require('../internals/to-string');
5
- var lengthOfArrayLike = require('../internals/length-of-array-like');
6
-
7
- var $TypeError = TypeError;
8
- var ArrayPrototype = Array.prototype;
9
- var push = uncurryThis(ArrayPrototype.push);
10
- var join = uncurryThis(ArrayPrototype.join);
2
+ var cooked = require('../internals/string-cooked');
11
3
 
12
4
  // `String.cooked` method
13
5
  // https://github.com/tc39/proposal-string-cooked
14
6
  $({ target: 'String', stat: true, forced: true }, {
15
- cooked: function cooked(template /* , ...substitutions */) {
16
- var cookedTemplate = toIndexedObject(template);
17
- var literalSegments = lengthOfArrayLike(cookedTemplate);
18
- var argumentsLength = arguments.length;
19
- var elements = [];
20
- var i = 0;
21
- while (literalSegments > i) {
22
- var nextVal = cookedTemplate[i++];
23
- if (nextVal === undefined) throw $TypeError('Incorrect template');
24
- push(elements, toString(nextVal));
25
- if (i === literalSegments) return join(elements, '');
26
- if (i < argumentsLength) push(elements, toString(arguments[i]));
27
- }
28
- }
7
+ cooked: cooked
29
8
  });