core-js-pure 3.2.0 → 3.3.3

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 (119) hide show
  1. package/configurator.js +7 -0
  2. package/es/global-this.js +3 -0
  3. package/es/index.js +1 -0
  4. package/features/async-iterator/as-indexed-pairs.js +10 -0
  5. package/features/async-iterator/drop.js +10 -0
  6. package/features/async-iterator/every.js +10 -0
  7. package/features/async-iterator/filter.js +10 -0
  8. package/features/async-iterator/find.js +10 -0
  9. package/features/async-iterator/flat-map.js +10 -0
  10. package/features/async-iterator/for-each.js +10 -0
  11. package/features/async-iterator/from.js +10 -0
  12. package/features/async-iterator/index.js +22 -0
  13. package/features/async-iterator/map.js +10 -0
  14. package/features/async-iterator/reduce.js +10 -0
  15. package/features/async-iterator/some.js +10 -0
  16. package/features/async-iterator/take.js +10 -0
  17. package/features/async-iterator/to-array.js +10 -0
  18. package/features/global-this.js +1 -3
  19. package/features/iterator/as-indexed-pairs.js +10 -0
  20. package/features/iterator/drop.js +9 -0
  21. package/features/iterator/every.js +9 -0
  22. package/features/iterator/filter.js +9 -0
  23. package/features/iterator/find.js +9 -0
  24. package/features/iterator/flat-map.js +9 -0
  25. package/features/iterator/for-each.js +9 -0
  26. package/features/iterator/from.js +9 -0
  27. package/features/iterator/index.js +21 -0
  28. package/features/iterator/map.js +9 -0
  29. package/features/iterator/reduce.js +9 -0
  30. package/features/iterator/some.js +9 -0
  31. package/features/iterator/take.js +9 -0
  32. package/features/iterator/to-array.js +9 -0
  33. package/features/map/index.js +2 -0
  34. package/features/map/update-or-insert.js +1 -0
  35. package/features/map/upsert.js +5 -0
  36. package/features/weak-map/index.js +1 -0
  37. package/features/weak-map/upsert.js +5 -0
  38. package/internals/array-from.js +3 -2
  39. package/internals/async-iterator-iteration.js +61 -0
  40. package/internals/async-iterator-prototype.js +37 -0
  41. package/internals/collection.js +9 -7
  42. package/internals/create-async-iterator-proxy.js +61 -0
  43. package/internals/create-iterator-proxy.js +51 -0
  44. package/internals/{hide.js → create-non-enumerable-property.js} +0 -0
  45. package/internals/define-iterator.js +3 -3
  46. package/internals/export.js +8 -4
  47. package/internals/get-async-iterator-method.js +9 -0
  48. package/internals/global.js +4 -5
  49. package/internals/internal-state.js +2 -2
  50. package/internals/iterate.js +4 -3
  51. package/internals/iterators-core.js +4 -2
  52. package/internals/map-upsert.js +23 -0
  53. package/internals/microtask.js +4 -3
  54. package/internals/native-url.js +13 -4
  55. package/internals/redefine.js +2 -2
  56. package/internals/set-global.js +2 -2
  57. package/internals/set-to-string-tag.js +4 -2
  58. package/internals/shared-store.js +7 -0
  59. package/internals/shared.js +2 -6
  60. package/internals/task.js +3 -1
  61. package/internals/to-positive-integer.js +7 -0
  62. package/modules/es.global-this.js +8 -0
  63. package/modules/es.promise.js +2 -1
  64. package/modules/es.string.match-all.js +22 -7
  65. package/modules/es.symbol.js +4 -2
  66. package/modules/esnext.aggregate-error.js +28 -4
  67. package/modules/esnext.async-iterator.as-indexed-pairs.js +27 -0
  68. package/modules/esnext.async-iterator.constructor.js +25 -0
  69. package/modules/esnext.async-iterator.drop.js +41 -0
  70. package/modules/esnext.async-iterator.every.js +10 -0
  71. package/modules/esnext.async-iterator.filter.js +42 -0
  72. package/modules/esnext.async-iterator.find.js +10 -0
  73. package/modules/esnext.async-iterator.flat-map.js +67 -0
  74. package/modules/esnext.async-iterator.for-each.js +10 -0
  75. package/modules/esnext.async-iterator.from.js +30 -0
  76. package/modules/esnext.async-iterator.map.js +30 -0
  77. package/modules/esnext.async-iterator.reduce.js +46 -0
  78. package/modules/esnext.async-iterator.some.js +10 -0
  79. package/modules/esnext.async-iterator.take.js +22 -0
  80. package/modules/esnext.async-iterator.to-array.js +10 -0
  81. package/modules/esnext.global-this.js +2 -8
  82. package/modules/esnext.iterator.as-indexed-pairs.js +20 -0
  83. package/modules/esnext.iterator.constructor.js +39 -0
  84. package/modules/esnext.iterator.drop.js +30 -0
  85. package/modules/esnext.iterator.every.js +16 -0
  86. package/modules/esnext.iterator.filter.js +30 -0
  87. package/modules/esnext.iterator.find.js +16 -0
  88. package/modules/esnext.iterator.flat-map.js +45 -0
  89. package/modules/esnext.iterator.for-each.js +11 -0
  90. package/modules/esnext.iterator.from.js +32 -0
  91. package/modules/esnext.iterator.map.js +23 -0
  92. package/modules/esnext.iterator.reduce.js +25 -0
  93. package/modules/esnext.iterator.some.js +16 -0
  94. package/modules/esnext.iterator.take.js +25 -0
  95. package/modules/esnext.iterator.to-array.js +15 -0
  96. package/modules/esnext.map.reduce.js +9 -8
  97. package/modules/esnext.map.update-or-insert.js +5 -12
  98. package/modules/esnext.map.upsert.js +10 -0
  99. package/modules/esnext.math.signbit.js +0 -1
  100. package/modules/esnext.observable.js +2 -2
  101. package/modules/esnext.set.reduce.js +9 -8
  102. package/modules/esnext.string.match-all.js +0 -1
  103. package/modules/esnext.string.replace-all.js +13 -19
  104. package/modules/esnext.symbol.replace-all.js +1 -2
  105. package/modules/esnext.weak-map.upsert.js +10 -0
  106. package/modules/web.dom-collections.iterator.js +2 -2
  107. package/modules/web.url-search-params.js +7 -5
  108. package/modules/web.url.js +0 -1
  109. package/package.json +2 -2
  110. package/postinstall.js +49 -0
  111. package/proposals/iterator-helpers.js +20 -0
  112. package/proposals/map-update-or-insert.js +2 -1
  113. package/proposals/map-upsert.js +5 -0
  114. package/stable/global-this.js +1 -3
  115. package/stage/1.js +0 -1
  116. package/stage/2.js +2 -2
  117. package/stage/3.js +2 -1
  118. package/stage/4.js +1 -0
  119. package/scripts/postinstall.js +0 -24
package/configurator.js CHANGED
@@ -1,7 +1,12 @@
1
+ var has = require('./internals/has');
1
2
  var isArray = require('./internals/is-array');
2
3
  var isForced = require('./internals/is-forced');
4
+ var shared = require('./internals/shared-store');
5
+
3
6
  var data = isForced.data;
4
7
  var normalize = isForced.normalize;
8
+ var USE_FUNCTION_CONSTRUCTOR = 'USE_FUNCTION_CONSTRUCTOR';
9
+ var ASYNC_ITERATOR_PROTOTYPE = 'AsyncIteratorPrototype';
5
10
 
6
11
  var setAggressivenessLevel = function (object, constant) {
7
12
  if (isArray(object)) for (var i = 0; i < object.length; i++) data[normalize(object[i])] = constant;
@@ -12,5 +17,7 @@ module.exports = function (options) {
12
17
  setAggressivenessLevel(options.useNative, isForced.NATIVE);
13
18
  setAggressivenessLevel(options.usePolyfill, isForced.POLYFILL);
14
19
  setAggressivenessLevel(options.useFeatureDetection, null);
20
+ if (has(options, USE_FUNCTION_CONSTRUCTOR)) shared[USE_FUNCTION_CONSTRUCTOR] = !!options[USE_FUNCTION_CONSTRUCTOR];
21
+ if (has(options, ASYNC_ITERATOR_PROTOTYPE)) shared[USE_FUNCTION_CONSTRUCTOR] = options[ASYNC_ITERATOR_PROTOTYPE];
15
22
  }
16
23
  };
@@ -0,0 +1,3 @@
1
+ require('../modules/esnext.global-this');
2
+
3
+ module.exports = require('../internals/global');
package/es/index.js CHANGED
@@ -41,6 +41,7 @@ require('../modules/es.object.lookup-setter');
41
41
  require('../modules/es.function.bind');
42
42
  require('../modules/es.function.name');
43
43
  require('../modules/es.function.has-instance');
44
+ require('../modules/es.global-this');
44
45
  require('../modules/es.array.from');
45
46
  require('../modules/es.array.is-array');
46
47
  require('../modules/es.array.of');
@@ -0,0 +1,10 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/es.promise');
3
+ require('../../modules/es.string.iterator');
4
+ require('../../modules/esnext.async-iterator.constructor');
5
+ require('../../modules/esnext.async-iterator.as-indexed-pairs');
6
+ require('../../modules/web.dom-collections.iterator');
7
+
8
+ var entryUnbind = require('../../internals/entry-unbind');
9
+
10
+ module.exports = entryUnbind('AsyncIterator', 'asIndexedPairs');
@@ -0,0 +1,10 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/es.promise');
3
+ require('../../modules/es.string.iterator');
4
+ require('../../modules/esnext.async-iterator.constructor');
5
+ require('../../modules/esnext.async-iterator.drop');
6
+ require('../../modules/web.dom-collections.iterator');
7
+
8
+ var entryUnbind = require('../../internals/entry-unbind');
9
+
10
+ module.exports = entryUnbind('AsyncIterator', 'drop');
@@ -0,0 +1,10 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/es.promise');
3
+ require('../../modules/es.string.iterator');
4
+ require('../../modules/esnext.async-iterator.constructor');
5
+ require('../../modules/esnext.async-iterator.every');
6
+ require('../../modules/web.dom-collections.iterator');
7
+
8
+ var entryUnbind = require('../../internals/entry-unbind');
9
+
10
+ module.exports = entryUnbind('AsyncIterator', 'every');
@@ -0,0 +1,10 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/es.promise');
3
+ require('../../modules/es.string.iterator');
4
+ require('../../modules/esnext.async-iterator.constructor');
5
+ require('../../modules/esnext.async-iterator.filter');
6
+ require('../../modules/web.dom-collections.iterator');
7
+
8
+ var entryUnbind = require('../../internals/entry-unbind');
9
+
10
+ module.exports = entryUnbind('AsyncIterator', 'filter');
@@ -0,0 +1,10 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/es.promise');
3
+ require('../../modules/es.string.iterator');
4
+ require('../../modules/esnext.async-iterator.constructor');
5
+ require('../../modules/esnext.async-iterator.find');
6
+ require('../../modules/web.dom-collections.iterator');
7
+
8
+ var entryUnbind = require('../../internals/entry-unbind');
9
+
10
+ module.exports = entryUnbind('AsyncIterator', 'find');
@@ -0,0 +1,10 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/es.promise');
3
+ require('../../modules/es.string.iterator');
4
+ require('../../modules/esnext.async-iterator.constructor');
5
+ require('../../modules/esnext.async-iterator.flat-map');
6
+ require('../../modules/web.dom-collections.iterator');
7
+
8
+ var entryUnbind = require('../../internals/entry-unbind');
9
+
10
+ module.exports = entryUnbind('AsyncIterator', 'flatMap');
@@ -0,0 +1,10 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/es.promise');
3
+ require('../../modules/es.string.iterator');
4
+ require('../../modules/esnext.async-iterator.constructor');
5
+ require('../../modules/esnext.async-iterator.for-each');
6
+ require('../../modules/web.dom-collections.iterator');
7
+
8
+ var entryUnbind = require('../../internals/entry-unbind');
9
+
10
+ module.exports = entryUnbind('AsyncIterator', 'forEach');
@@ -0,0 +1,10 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/es.promise');
3
+ require('../../modules/es.string.iterator');
4
+ require('../../modules/esnext.async-iterator.constructor');
5
+ require('../../modules/esnext.async-iterator.from');
6
+ require('../../modules/web.dom-collections.iterator');
7
+
8
+ var path = require('../../internals/path');
9
+
10
+ module.exports = path.AsyncIterator.from;
@@ -0,0 +1,22 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/es.promise');
3
+ require('../../modules/es.string.iterator');
4
+ require('../../modules/esnext.async-iterator.constructor');
5
+ require('../../modules/esnext.async-iterator.as-indexed-pairs');
6
+ require('../../modules/esnext.async-iterator.drop');
7
+ require('../../modules/esnext.async-iterator.every');
8
+ require('../../modules/esnext.async-iterator.filter');
9
+ require('../../modules/esnext.async-iterator.find');
10
+ require('../../modules/esnext.async-iterator.flat-map');
11
+ require('../../modules/esnext.async-iterator.for-each');
12
+ require('../../modules/esnext.async-iterator.from');
13
+ require('../../modules/esnext.async-iterator.map');
14
+ require('../../modules/esnext.async-iterator.reduce');
15
+ require('../../modules/esnext.async-iterator.some');
16
+ require('../../modules/esnext.async-iterator.take');
17
+ require('../../modules/esnext.async-iterator.to-array');
18
+ require('../../modules/web.dom-collections.iterator');
19
+
20
+ var path = require('../../internals/path');
21
+
22
+ module.exports = path.AsyncIterator;
@@ -0,0 +1,10 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/es.promise');
3
+ require('../../modules/es.string.iterator');
4
+ require('../../modules/esnext.async-iterator.constructor');
5
+ require('../../modules/esnext.async-iterator.map');
6
+ require('../../modules/web.dom-collections.iterator');
7
+
8
+ var entryUnbind = require('../../internals/entry-unbind');
9
+
10
+ module.exports = entryUnbind('AsyncIterator', 'map');
@@ -0,0 +1,10 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/es.promise');
3
+ require('../../modules/es.string.iterator');
4
+ require('../../modules/esnext.async-iterator.constructor');
5
+ require('../../modules/esnext.async-iterator.reduce');
6
+ require('../../modules/web.dom-collections.iterator');
7
+
8
+ var entryUnbind = require('../../internals/entry-unbind');
9
+
10
+ module.exports = entryUnbind('AsyncIterator', 'reduce');
@@ -0,0 +1,10 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/es.promise');
3
+ require('../../modules/es.string.iterator');
4
+ require('../../modules/esnext.async-iterator.constructor');
5
+ require('../../modules/esnext.async-iterator.some');
6
+ require('../../modules/web.dom-collections.iterator');
7
+
8
+ var entryUnbind = require('../../internals/entry-unbind');
9
+
10
+ module.exports = entryUnbind('AsyncIterator', 'some');
@@ -0,0 +1,10 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/es.promise');
3
+ require('../../modules/es.string.iterator');
4
+ require('../../modules/esnext.async-iterator.constructor');
5
+ require('../../modules/esnext.async-iterator.take');
6
+ require('../../modules/web.dom-collections.iterator');
7
+
8
+ var entryUnbind = require('../../internals/entry-unbind');
9
+
10
+ module.exports = entryUnbind('AsyncIterator', 'take');
@@ -0,0 +1,10 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/es.promise');
3
+ require('../../modules/es.string.iterator');
4
+ require('../../modules/esnext.async-iterator.constructor');
5
+ require('../../modules/esnext.async-iterator.to-array');
6
+ require('../../modules/web.dom-collections.iterator');
7
+
8
+ var entryUnbind = require('../../internals/entry-unbind');
9
+
10
+ module.exports = entryUnbind('AsyncIterator', 'toArray');
@@ -1,3 +1 @@
1
- require('../modules/esnext.global-this');
2
-
3
- module.exports = require('../internals/global');
1
+ module.exports = require('../es/global-this');
@@ -0,0 +1,10 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/es.string.iterator');
3
+ require('../../modules/esnext.iterator.constructor');
4
+ require('../../modules/esnext.iterator.as-indexed-pairs');
5
+ require('../../modules/web.dom-collections.iterator');
6
+
7
+ var entryUnbind = require('../../internals/entry-unbind');
8
+
9
+ module.exports = entryUnbind('Iterator', 'asIndexedPairs');
10
+
@@ -0,0 +1,9 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/es.string.iterator');
3
+ require('../../modules/esnext.iterator.constructor');
4
+ require('../../modules/esnext.iterator.drop');
5
+ require('../../modules/web.dom-collections.iterator');
6
+
7
+ var entryUnbind = require('../../internals/entry-unbind');
8
+
9
+ module.exports = entryUnbind('Iterator', 'drop');
@@ -0,0 +1,9 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/es.string.iterator');
3
+ require('../../modules/esnext.iterator.constructor');
4
+ require('../../modules/esnext.iterator.every');
5
+ require('../../modules/web.dom-collections.iterator');
6
+
7
+ var entryUnbind = require('../../internals/entry-unbind');
8
+
9
+ module.exports = entryUnbind('Iterator', 'every');
@@ -0,0 +1,9 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/es.string.iterator');
3
+ require('../../modules/esnext.iterator.constructor');
4
+ require('../../modules/esnext.iterator.filter');
5
+ require('../../modules/web.dom-collections.iterator');
6
+
7
+ var entryUnbind = require('../../internals/entry-unbind');
8
+
9
+ module.exports = entryUnbind('Iterator', 'filter');
@@ -0,0 +1,9 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/es.string.iterator');
3
+ require('../../modules/esnext.iterator.constructor');
4
+ require('../../modules/esnext.iterator.find');
5
+ require('../../modules/web.dom-collections.iterator');
6
+
7
+ var entryUnbind = require('../../internals/entry-unbind');
8
+
9
+ module.exports = entryUnbind('Iterator', 'find');
@@ -0,0 +1,9 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/es.string.iterator');
3
+ require('../../modules/esnext.iterator.constructor');
4
+ require('../../modules/esnext.iterator.flat-map');
5
+ require('../../modules/web.dom-collections.iterator');
6
+
7
+ var entryUnbind = require('../../internals/entry-unbind');
8
+
9
+ module.exports = entryUnbind('Iterator', 'flatMap');
@@ -0,0 +1,9 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/es.string.iterator');
3
+ require('../../modules/esnext.iterator.constructor');
4
+ require('../../modules/esnext.iterator.for-each');
5
+ require('../../modules/web.dom-collections.iterator');
6
+
7
+ var entryUnbind = require('../../internals/entry-unbind');
8
+
9
+ module.exports = entryUnbind('Iterator', 'forEach');
@@ -0,0 +1,9 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/es.string.iterator');
3
+ require('../../modules/esnext.iterator.constructor');
4
+ require('../../modules/esnext.iterator.from');
5
+ require('../../modules/web.dom-collections.iterator');
6
+
7
+ var path = require('../../internals/path');
8
+
9
+ module.exports = path.Iterator.from;
@@ -0,0 +1,21 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/es.string.iterator');
3
+ require('../../modules/esnext.iterator.constructor');
4
+ require('../../modules/esnext.iterator.as-indexed-pairs');
5
+ require('../../modules/esnext.iterator.drop');
6
+ require('../../modules/esnext.iterator.every');
7
+ require('../../modules/esnext.iterator.filter');
8
+ require('../../modules/esnext.iterator.find');
9
+ require('../../modules/esnext.iterator.flat-map');
10
+ require('../../modules/esnext.iterator.for-each');
11
+ require('../../modules/esnext.iterator.from');
12
+ require('../../modules/esnext.iterator.map');
13
+ require('../../modules/esnext.iterator.reduce');
14
+ require('../../modules/esnext.iterator.some');
15
+ require('../../modules/esnext.iterator.take');
16
+ require('../../modules/esnext.iterator.to-array');
17
+ require('../../modules/web.dom-collections.iterator');
18
+
19
+ var path = require('../../internals/path');
20
+
21
+ module.exports = path.Iterator;
@@ -0,0 +1,9 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/es.string.iterator');
3
+ require('../../modules/esnext.iterator.constructor');
4
+ require('../../modules/esnext.iterator.map');
5
+ require('../../modules/web.dom-collections.iterator');
6
+
7
+ var entryUnbind = require('../../internals/entry-unbind');
8
+
9
+ module.exports = entryUnbind('Iterator', 'map');
@@ -0,0 +1,9 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/es.string.iterator');
3
+ require('../../modules/esnext.iterator.constructor');
4
+ require('../../modules/esnext.iterator.reduce');
5
+ require('../../modules/web.dom-collections.iterator');
6
+
7
+ var entryUnbind = require('../../internals/entry-unbind');
8
+
9
+ module.exports = entryUnbind('Iterator', 'reduce');
@@ -0,0 +1,9 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/es.string.iterator');
3
+ require('../../modules/esnext.iterator.constructor');
4
+ require('../../modules/esnext.iterator.some');
5
+ require('../../modules/web.dom-collections.iterator');
6
+
7
+ var entryUnbind = require('../../internals/entry-unbind');
8
+
9
+ module.exports = entryUnbind('Iterator', 'some');
@@ -0,0 +1,9 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/es.string.iterator');
3
+ require('../../modules/esnext.iterator.constructor');
4
+ require('../../modules/esnext.iterator.take');
5
+ require('../../modules/web.dom-collections.iterator');
6
+
7
+ var entryUnbind = require('../../internals/entry-unbind');
8
+
9
+ module.exports = entryUnbind('Iterator', 'take');
@@ -0,0 +1,9 @@
1
+ require('../../modules/es.object.to-string');
2
+ require('../../modules/es.string.iterator');
3
+ require('../../modules/esnext.iterator.constructor');
4
+ require('../../modules/esnext.iterator.to-array');
5
+ require('../../modules/web.dom-collections.iterator');
6
+
7
+ var entryUnbind = require('../../internals/entry-unbind');
8
+
9
+ module.exports = entryUnbind('Iterator', 'toArray');
@@ -17,4 +17,6 @@ require('../../modules/esnext.map.merge');
17
17
  require('../../modules/esnext.map.reduce');
18
18
  require('../../modules/esnext.map.some');
19
19
  require('../../modules/esnext.map.update');
20
+ // TODO: remove from `core-js@4`
20
21
  require('../../modules/esnext.map.update-or-insert');
22
+ require('../../modules/esnext.map.upsert');
@@ -1,3 +1,4 @@
1
+ // TODO: remove from `core-js@4`
1
2
  require('../../modules/es.map');
2
3
  require('../../modules/esnext.map.update-or-insert');
3
4
  var entryUnbind = require('../../internals/entry-unbind');
@@ -0,0 +1,5 @@
1
+ require('../../modules/es.map');
2
+ require('../../modules/esnext.map.upsert');
3
+ var entryUnbind = require('../../internals/entry-unbind');
4
+
5
+ module.exports = entryUnbind('Map', 'upsert');
@@ -3,3 +3,4 @@ module.exports = require('../../es/weak-map');
3
3
  require('../../modules/esnext.weak-map.from');
4
4
  require('../../modules/esnext.weak-map.of');
5
5
  require('../../modules/esnext.weak-map.delete-all');
6
+ require('../../modules/esnext.weak-map.upsert');
@@ -0,0 +1,5 @@
1
+ require('../../modules/es.weak-map');
2
+ require('../../modules/esnext.weak-map.upsert');
3
+ var entryUnbind = require('../../internals/entry-unbind');
4
+
5
+ module.exports = entryUnbind('WeakMap', 'upsert');
@@ -17,13 +17,14 @@ module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undef
17
17
  var mapping = mapfn !== undefined;
18
18
  var index = 0;
19
19
  var iteratorMethod = getIteratorMethod(O);
20
- var length, result, step, iterator;
20
+ var length, result, step, iterator, next;
21
21
  if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);
22
22
  // if the target is not iterable or it's an array with the default iterator - use a simple case
23
23
  if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {
24
24
  iterator = iteratorMethod.call(O);
25
+ next = iterator.next;
25
26
  result = new C();
26
- for (;!(step = iterator.next()).done; index++) {
27
+ for (;!(step = next.call(iterator)).done; index++) {
27
28
  createProperty(result, index, mapping
28
29
  ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true)
29
30
  : step.value
@@ -0,0 +1,61 @@
1
+ 'use strict';
2
+ // https://github.com/tc39/proposal-iterator-helpers
3
+ var aFunction = require('../internals/a-function');
4
+ var anObject = require('../internals/an-object');
5
+ var getBuiltIn = require('../internals/get-built-in');
6
+
7
+ var Promise = getBuiltIn('Promise');
8
+ var push = [].push;
9
+
10
+ var createMethod = function (TYPE) {
11
+ var IS_TO_ARRAY = TYPE == 0;
12
+ var IS_FOR_EACH = TYPE == 1;
13
+ var IS_EVERY = TYPE == 2;
14
+ var IS_SOME = TYPE == 3;
15
+ return function (iterator, fn) {
16
+ anObject(iterator);
17
+ var next = aFunction(iterator.next);
18
+ var array = IS_TO_ARRAY ? [] : undefined;
19
+ if (!IS_TO_ARRAY) aFunction(fn);
20
+
21
+ return new Promise(function (resolve, reject) {
22
+ var loop = function () {
23
+ try {
24
+ Promise.resolve(anObject(next.call(iterator))).then(function (step) {
25
+ try {
26
+ if (anObject(step).done) {
27
+ resolve(IS_TO_ARRAY ? array : IS_SOME ? false : IS_EVERY || undefined);
28
+ } else {
29
+ var value = step.value;
30
+ if (IS_TO_ARRAY) {
31
+ push.call(array, value);
32
+ loop();
33
+ } else {
34
+ Promise.resolve(fn(value)).then(function (result) {
35
+ if (IS_FOR_EACH) {
36
+ loop();
37
+ } else if (IS_EVERY) {
38
+ result ? loop() : resolve(false);
39
+ } else {
40
+ result ? resolve(IS_SOME || value) : loop();
41
+ }
42
+ }, reject);
43
+ }
44
+ }
45
+ } catch (err) { reject(err); }
46
+ }, reject);
47
+ } catch (error) { reject(error); }
48
+ };
49
+
50
+ loop();
51
+ });
52
+ };
53
+ };
54
+
55
+ module.exports = {
56
+ toArray: createMethod(0),
57
+ forEach: createMethod(1),
58
+ every: createMethod(2),
59
+ some: createMethod(3),
60
+ find: createMethod(4)
61
+ };
@@ -0,0 +1,37 @@
1
+ var global = require('../internals/global');
2
+ var shared = require('../internals/shared-store');
3
+ var getPrototypeOf = require('../internals/object-get-prototype-of');
4
+ var has = require('../internals/has');
5
+ var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
6
+ var wellKnownSymbol = require('../internals/well-known-symbol');
7
+ var IS_PURE = require('../internals/is-pure');
8
+
9
+ var USE_FUNCTION_CONSTRUCTOR = 'USE_FUNCTION_CONSTRUCTOR';
10
+ var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');
11
+ var AsyncIterator = global.AsyncIterator;
12
+ var PassedAsyncIteratorPrototype = shared.AsyncIteratorPrototype;
13
+ var AsyncIteratorPrototype, prototype;
14
+
15
+ if (!IS_PURE) {
16
+ if (PassedAsyncIteratorPrototype) {
17
+ AsyncIteratorPrototype = PassedAsyncIteratorPrototype;
18
+ } else if (typeof AsyncIterator == 'function') {
19
+ AsyncIteratorPrototype = AsyncIterator.prototype;
20
+ } else if (shared[USE_FUNCTION_CONSTRUCTOR] || global[USE_FUNCTION_CONSTRUCTOR]) {
21
+ try {
22
+ // eslint-disable-next-line no-new-func
23
+ prototype = getPrototypeOf(getPrototypeOf(getPrototypeOf(Function('return async function*(){}()')())));
24
+ if (getPrototypeOf(prototype) === Object.prototype) AsyncIteratorPrototype = prototype;
25
+ } catch (error) { /* empty */ }
26
+ }
27
+ }
28
+
29
+ if (!AsyncIteratorPrototype) AsyncIteratorPrototype = {};
30
+
31
+ if (!has(AsyncIteratorPrototype, ASYNC_ITERATOR)) {
32
+ createNonEnumerableProperty(AsyncIteratorPrototype, ASYNC_ITERATOR, function () {
33
+ return this;
34
+ });
35
+ }
36
+
37
+ module.exports = AsyncIteratorPrototype;
@@ -3,7 +3,7 @@ var $ = require('./export');
3
3
  var global = require('../internals/global');
4
4
  var InternalMetadataModule = require('../internals/internal-metadata');
5
5
  var fails = require('../internals/fails');
6
- var hide = require('../internals/hide');
6
+ var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
7
7
  var iterate = require('../internals/iterate');
8
8
  var anInstance = require('../internals/an-instance');
9
9
  var isObject = require('../internals/is-object');
@@ -42,12 +42,14 @@ module.exports = function (CONSTRUCTOR_NAME, wrapper, common, IS_MAP, IS_WEAK) {
42
42
 
43
43
  forEach(['add', 'clear', 'delete', 'forEach', 'get', 'has', 'set', 'keys', 'values', 'entries'], function (KEY) {
44
44
  var IS_ADDER = KEY == 'add' || KEY == 'set';
45
- if (KEY in NativePrototype && !(IS_WEAK && KEY == 'clear')) hide(Constructor.prototype, KEY, function (a, b) {
46
- var collection = getInternalState(this).collection;
47
- if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
48
- var result = collection[KEY](a === 0 ? 0 : a, b);
49
- return IS_ADDER ? this : result;
50
- });
45
+ if (KEY in NativePrototype && !(IS_WEAK && KEY == 'clear')) {
46
+ createNonEnumerableProperty(Constructor.prototype, KEY, function (a, b) {
47
+ var collection = getInternalState(this).collection;
48
+ if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
49
+ var result = collection[KEY](a === 0 ? 0 : a, b);
50
+ return IS_ADDER ? this : result;
51
+ });
52
+ }
51
53
  });
52
54
 
53
55
  IS_WEAK || defineProperty(Constructor.prototype, 'size', {
@@ -0,0 +1,61 @@
1
+ 'use strict';
2
+ var path = require('../internals/path');
3
+ var aFunction = require('../internals/a-function');
4
+ var anObject = require('../internals/an-object');
5
+ var create = require('../internals/object-create');
6
+ var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
7
+ var redefineAll = require('../internals/redefine-all');
8
+ var wellKnownSymbol = require('../internals/well-known-symbol');
9
+ var InternalStateModule = require('../internals/internal-state');
10
+ var getBuiltIn = require('../internals/get-built-in');
11
+
12
+ var Promise = getBuiltIn('Promise');
13
+
14
+ var setInternalState = InternalStateModule.set;
15
+ var getInternalState = InternalStateModule.get;
16
+
17
+ var TO_STRING_TAG = wellKnownSymbol('toStringTag');
18
+
19
+ var $return = function (value) {
20
+ var iterator = getInternalState(this).iterator;
21
+ var $$return = iterator['return'];
22
+ return $$return === undefined
23
+ ? Promise.resolve({ done: true, value: value })
24
+ : anObject($$return.call(iterator, value));
25
+ };
26
+
27
+ var $throw = function (value) {
28
+ var iterator = getInternalState(this).iterator;
29
+ var $$throw = iterator['throw'];
30
+ return $$throw === undefined
31
+ ? Promise.reject(value)
32
+ : $$throw.call(iterator, value);
33
+ };
34
+
35
+ module.exports = function (nextHandler, IS_ITERATOR) {
36
+ var AsyncIteratorProxy = function AsyncIterator(state) {
37
+ state.next = aFunction(state.iterator.next);
38
+ state.done = false;
39
+ setInternalState(this, state);
40
+ };
41
+
42
+ AsyncIteratorProxy.prototype = redefineAll(create(path.AsyncIterator.prototype), {
43
+ next: function next(arg) {
44
+ var state = getInternalState(this);
45
+ if (state.done) return Promise.resolve({ done: true, value: undefined });
46
+ try {
47
+ return Promise.resolve(anObject(nextHandler.call(state, arg, Promise)));
48
+ } catch (error) {
49
+ return Promise.reject(error);
50
+ }
51
+ },
52
+ 'return': $return,
53
+ 'throw': $throw
54
+ });
55
+
56
+ if (!IS_ITERATOR) {
57
+ createNonEnumerableProperty(AsyncIteratorProxy.prototype, TO_STRING_TAG, 'Generator');
58
+ }
59
+
60
+ return AsyncIteratorProxy;
61
+ };