core-js-pure 3.6.2 → 3.7.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 (108) hide show
  1. package/es/aggregate-error.js +6 -0
  2. package/es/index.js +33 -29
  3. package/es/object/index.js +2 -1
  4. package/es/object/to-string.js +3 -2
  5. package/es/promise/any.js +12 -0
  6. package/es/promise/index.js +4 -2
  7. package/es/reflect/index.js +1 -0
  8. package/es/reflect/to-string-tag.js +3 -0
  9. package/es/string/index.js +1 -0
  10. package/es/string/replace-all.js +4 -0
  11. package/es/string/virtual/index.js +1 -0
  12. package/es/string/virtual/replace-all.js +4 -0
  13. package/es/symbol/index.js +2 -1
  14. package/es/symbol/to-string-tag.js +2 -1
  15. package/features/aggregate-error.js +4 -4
  16. package/features/map/emplace.js +5 -0
  17. package/features/map/index.js +2 -0
  18. package/features/promise/any.js +4 -9
  19. package/features/reflect/to-string-tag.js +3 -0
  20. package/features/string/replace-all.js +4 -2
  21. package/features/string/virtual/replace-all.js +4 -2
  22. package/features/weak-map/emplace.js +5 -0
  23. package/features/weak-map/index.js +2 -0
  24. package/internals/array-last-index-of.js +2 -1
  25. package/internals/array-method-uses-to-length.js +5 -8
  26. package/internals/async-iterator-iteration.js +25 -6
  27. package/internals/call-with-safe-iteration-closing.js +2 -2
  28. package/internals/collection-from.js +5 -5
  29. package/internals/collection-strong.js +1 -1
  30. package/internals/collection-weak.js +1 -1
  31. package/internals/collection.js +1 -1
  32. package/internals/correct-is-regexp-logic.js +2 -2
  33. package/internals/engine-is-node.js +4 -0
  34. package/internals/global.js +1 -1
  35. package/internals/internal-state.js +4 -1
  36. package/internals/iterate.js +26 -11
  37. package/internals/iterator-close.js +8 -0
  38. package/internals/map-emplace.js +13 -0
  39. package/internals/microtask.js +8 -8
  40. package/internals/shared.js +1 -1
  41. package/internals/task.js +9 -3
  42. package/modules/es.aggregate-error.js +31 -0
  43. package/modules/es.array.reduce-right.js +8 -2
  44. package/modules/es.array.reduce.js +6 -1
  45. package/modules/es.math.to-string-tag.js +1 -5
  46. package/modules/es.object.from-entries.js +1 -1
  47. package/modules/es.promise.all-settled.js +2 -2
  48. package/modules/es.promise.any.js +46 -0
  49. package/modules/es.promise.js +27 -25
  50. package/modules/es.reflect.set.js +3 -2
  51. package/modules/es.reflect.to-string-tag.js +1 -0
  52. package/modules/es.string.replace-all.js +50 -0
  53. package/modules/esnext.aggregate-error.js +2 -45
  54. package/modules/esnext.async-iterator.take.js +12 -3
  55. package/modules/esnext.iterator.every.js +3 -3
  56. package/modules/esnext.iterator.find.js +3 -3
  57. package/modules/esnext.iterator.flat-map.js +21 -15
  58. package/modules/esnext.iterator.for-each.js +1 -1
  59. package/modules/esnext.iterator.reduce.js +1 -1
  60. package/modules/esnext.iterator.some.js +3 -3
  61. package/modules/esnext.iterator.take.js +4 -2
  62. package/modules/esnext.iterator.to-array.js +1 -1
  63. package/modules/esnext.map.emplace.js +10 -0
  64. package/modules/esnext.map.every.js +3 -3
  65. package/modules/esnext.map.filter.js +1 -1
  66. package/modules/esnext.map.find-key.js +3 -3
  67. package/modules/esnext.map.find.js +3 -3
  68. package/modules/esnext.map.includes.js +3 -3
  69. package/modules/esnext.map.key-of.js +3 -3
  70. package/modules/esnext.map.map-keys.js +1 -1
  71. package/modules/esnext.map.map-values.js +1 -1
  72. package/modules/esnext.map.merge.js +1 -1
  73. package/modules/esnext.map.reduce.js +1 -1
  74. package/modules/esnext.map.some.js +3 -3
  75. package/modules/esnext.map.update-or-insert.js +1 -1
  76. package/modules/esnext.map.upsert.js +2 -1
  77. package/modules/esnext.observable.js +3 -3
  78. package/modules/esnext.promise.any.js +2 -46
  79. package/modules/esnext.reflect.get-metadata-keys.js +1 -1
  80. package/modules/esnext.set.every.js +3 -3
  81. package/modules/esnext.set.filter.js +1 -1
  82. package/modules/esnext.set.find.js +3 -3
  83. package/modules/esnext.set.is-disjoint-from.js +3 -3
  84. package/modules/esnext.set.is-subset-of.js +3 -3
  85. package/modules/esnext.set.is-superset-of.js +3 -3
  86. package/modules/esnext.set.join.js +1 -1
  87. package/modules/esnext.set.map.js +1 -1
  88. package/modules/esnext.set.reduce.js +1 -1
  89. package/modules/esnext.set.some.js +3 -3
  90. package/modules/esnext.set.union.js +1 -1
  91. package/modules/esnext.string.replace-all.js +2 -50
  92. package/modules/esnext.weak-map.emplace.js +10 -0
  93. package/modules/esnext.weak-map.upsert.js +3 -2
  94. package/modules/web.queue-microtask.js +2 -3
  95. package/modules/web.url-search-params.js +1 -1
  96. package/modules/web.url.js +1 -1
  97. package/package.json +1 -1
  98. package/postinstall.js +3 -1
  99. package/proposals/efficient-64-bit-arithmetic.js +1 -0
  100. package/proposals/map-upsert.js +4 -0
  101. package/proposals/object-iteration.js +1 -0
  102. package/stable/aggregate-error.js +6 -0
  103. package/stable/promise/any.js +3 -0
  104. package/stable/reflect/to-string-tag.js +3 -0
  105. package/stable/string/replace-all.js +3 -0
  106. package/stable/string/virtual/replace-all.js +3 -0
  107. package/stage/3.js +0 -2
  108. package/stage/4.js +2 -0
@@ -0,0 +1,6 @@
1
+ require('../modules/es.aggregate-error');
2
+ require('../modules/es.string.iterator');
3
+ require('../modules/web.dom-collections.iterator');
4
+ var path = require('../internals/path');
5
+
6
+ module.exports = path.AggregateError;
package/es/index.js CHANGED
@@ -13,35 +13,7 @@ require('../modules/es.symbol.split');
13
13
  require('../modules/es.symbol.to-primitive');
14
14
  require('../modules/es.symbol.to-string-tag');
15
15
  require('../modules/es.symbol.unscopables');
16
- require('../modules/es.object.assign');
17
- require('../modules/es.object.create');
18
- require('../modules/es.object.define-property');
19
- require('../modules/es.object.define-properties');
20
- require('../modules/es.object.entries');
21
- require('../modules/es.object.freeze');
22
- require('../modules/es.object.from-entries');
23
- require('../modules/es.object.get-own-property-descriptor');
24
- require('../modules/es.object.get-own-property-descriptors');
25
- require('../modules/es.object.get-own-property-names');
26
- require('../modules/es.object.get-prototype-of');
27
- require('../modules/es.object.is');
28
- require('../modules/es.object.is-extensible');
29
- require('../modules/es.object.is-frozen');
30
- require('../modules/es.object.is-sealed');
31
- require('../modules/es.object.keys');
32
- require('../modules/es.object.prevent-extensions');
33
- require('../modules/es.object.seal');
34
- require('../modules/es.object.set-prototype-of');
35
- require('../modules/es.object.values');
36
- require('../modules/es.object.to-string');
37
- require('../modules/es.object.define-getter');
38
- require('../modules/es.object.define-setter');
39
- require('../modules/es.object.lookup-getter');
40
- require('../modules/es.object.lookup-setter');
41
- require('../modules/es.function.bind');
42
- require('../modules/es.function.name');
43
- require('../modules/es.function.has-instance');
44
- require('../modules/es.global-this');
16
+ require('../modules/es.aggregate-error');
45
17
  require('../modules/es.array.from');
46
18
  require('../modules/es.array.is-array');
47
19
  require('../modules/es.array.of');
@@ -71,6 +43,35 @@ require('../modules/es.array.species');
71
43
  require('../modules/es.array.unscopables.flat');
72
44
  require('../modules/es.array.unscopables.flat-map');
73
45
  require('../modules/es.array.iterator');
46
+ require('../modules/es.function.bind');
47
+ require('../modules/es.function.name');
48
+ require('../modules/es.function.has-instance');
49
+ require('../modules/es.global-this');
50
+ require('../modules/es.object.assign');
51
+ require('../modules/es.object.create');
52
+ require('../modules/es.object.define-property');
53
+ require('../modules/es.object.define-properties');
54
+ require('../modules/es.object.entries');
55
+ require('../modules/es.object.freeze');
56
+ require('../modules/es.object.from-entries');
57
+ require('../modules/es.object.get-own-property-descriptor');
58
+ require('../modules/es.object.get-own-property-descriptors');
59
+ require('../modules/es.object.get-own-property-names');
60
+ require('../modules/es.object.get-prototype-of');
61
+ require('../modules/es.object.is');
62
+ require('../modules/es.object.is-extensible');
63
+ require('../modules/es.object.is-frozen');
64
+ require('../modules/es.object.is-sealed');
65
+ require('../modules/es.object.keys');
66
+ require('../modules/es.object.prevent-extensions');
67
+ require('../modules/es.object.seal');
68
+ require('../modules/es.object.set-prototype-of');
69
+ require('../modules/es.object.values');
70
+ require('../modules/es.object.to-string');
71
+ require('../modules/es.object.define-getter');
72
+ require('../modules/es.object.define-setter');
73
+ require('../modules/es.object.lookup-getter');
74
+ require('../modules/es.object.lookup-setter');
74
75
  require('../modules/es.string.from-code-point');
75
76
  require('../modules/es.string.raw');
76
77
  require('../modules/es.string.code-point-at');
@@ -102,6 +103,7 @@ require('../modules/es.string.small');
102
103
  require('../modules/es.string.strike');
103
104
  require('../modules/es.string.sub');
104
105
  require('../modules/es.string.sup');
106
+ require('../modules/es.string.replace-all');
105
107
  require('../modules/es.regexp.constructor');
106
108
  require('../modules/es.regexp.exec');
107
109
  require('../modules/es.regexp.flags');
@@ -149,6 +151,7 @@ require('../modules/es.json.stringify');
149
151
  require('../modules/es.json.to-string-tag');
150
152
  require('../modules/es.promise');
151
153
  require('../modules/es.promise.all-settled');
154
+ require('../modules/es.promise.any');
152
155
  require('../modules/es.promise.finally');
153
156
  require('../modules/es.map');
154
157
  require('../modules/es.set');
@@ -205,6 +208,7 @@ require('../modules/es.reflect.own-keys');
205
208
  require('../modules/es.reflect.prevent-extensions');
206
209
  require('../modules/es.reflect.set');
207
210
  require('../modules/es.reflect.set-prototype-of');
211
+ require('../modules/es.reflect.to-string-tag');
208
212
  var path = require('../internals/path');
209
213
 
210
214
  module.exports = path;
@@ -24,8 +24,9 @@ require('../../modules/es.object.define-getter');
24
24
  require('../../modules/es.object.define-setter');
25
25
  require('../../modules/es.object.lookup-getter');
26
26
  require('../../modules/es.object.lookup-setter');
27
- require('../../modules/es.math.to-string-tag');
28
27
  require('../../modules/es.json.to-string-tag');
28
+ require('../../modules/es.math.to-string-tag');
29
+ require('../../modules/es.reflect.to-string-tag');
29
30
  var path = require('../../internals/path');
30
31
 
31
32
  module.exports = path.Object;
@@ -1,6 +1,7 @@
1
- require('../../modules/es.object.to-string');
2
- require('../../modules/es.math.to-string-tag');
3
1
  require('../../modules/es.json.to-string-tag');
2
+ require('../../modules/es.math.to-string-tag');
3
+ require('../../modules/es.object.to-string');
4
+ require('../../modules/es.reflect.to-string-tag');
4
5
  var classof = require('../../internals/classof');
5
6
 
6
7
  module.exports = function (it) {
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+ require('../../modules/es.aggregate-error');
3
+ require('../../modules/es.promise');
4
+ require('../../modules/es.promise.any');
5
+ var path = require('../../internals/path');
6
+
7
+ var Promise = path.Promise;
8
+ var $any = Promise.any;
9
+
10
+ module.exports = function any(iterable) {
11
+ return $any.call(typeof this === 'function' ? this : Promise, iterable);
12
+ };
@@ -1,9 +1,11 @@
1
+ require('../../modules/es.aggregate-error');
1
2
  require('../../modules/es.object.to-string');
2
- require('../../modules/es.string.iterator');
3
- require('../../modules/web.dom-collections.iterator');
4
3
  require('../../modules/es.promise');
5
4
  require('../../modules/es.promise.all-settled');
5
+ require('../../modules/es.promise.any');
6
6
  require('../../modules/es.promise.finally');
7
+ require('../../modules/es.string.iterator');
8
+ require('../../modules/web.dom-collections.iterator');
7
9
  var path = require('../../internals/path');
8
10
 
9
11
  module.exports = path.Promise;
@@ -11,6 +11,7 @@ require('../../modules/es.reflect.own-keys');
11
11
  require('../../modules/es.reflect.prevent-extensions');
12
12
  require('../../modules/es.reflect.set');
13
13
  require('../../modules/es.reflect.set-prototype-of');
14
+ require('../../modules/es.reflect.to-string-tag');
14
15
  var path = require('../../internals/path');
15
16
 
16
17
  module.exports = path.Reflect;
@@ -0,0 +1,3 @@
1
+ require('../../modules/es.reflect.to-string-tag');
2
+
3
+ module.exports = 'Reflect';
@@ -10,6 +10,7 @@ require('../../modules/es.string.pad-end');
10
10
  require('../../modules/es.string.pad-start');
11
11
  require('../../modules/es.string.repeat');
12
12
  require('../../modules/es.string.replace');
13
+ require('../../modules/es.string.replace-all');
13
14
  require('../../modules/es.string.search');
14
15
  require('../../modules/es.string.split');
15
16
  require('../../modules/es.string.starts-with');
@@ -0,0 +1,4 @@
1
+ require('../../modules/es.string.replace-all');
2
+ var entryUnbind = require('../../internals/entry-unbind');
3
+
4
+ module.exports = entryUnbind('String', 'replaceAll');
@@ -7,6 +7,7 @@ require('../../../modules/es.string.pad-end');
7
7
  require('../../../modules/es.string.pad-start');
8
8
  require('../../../modules/es.string.repeat');
9
9
  require('../../../modules/es.string.replace');
10
+ require('../../../modules/es.string.replace-all');
10
11
  require('../../../modules/es.string.search');
11
12
  require('../../../modules/es.string.split');
12
13
  require('../../../modules/es.string.starts-with');
@@ -0,0 +1,4 @@
1
+ require('../../../modules/es.string.replace-all');
2
+ var entryVirtual = require('../../../internals/entry-virtual');
3
+
4
+ module.exports = entryVirtual('String').replaceAll;
@@ -15,8 +15,9 @@ require('../../modules/es.symbol.split');
15
15
  require('../../modules/es.symbol.to-primitive');
16
16
  require('../../modules/es.symbol.to-string-tag');
17
17
  require('../../modules/es.symbol.unscopables');
18
- require('../../modules/es.math.to-string-tag');
19
18
  require('../../modules/es.json.to-string-tag');
19
+ require('../../modules/es.math.to-string-tag');
20
+ require('../../modules/es.reflect.to-string-tag');
20
21
  var path = require('../../internals/path');
21
22
 
22
23
  module.exports = path.Symbol;
@@ -1,7 +1,8 @@
1
1
  require('../../modules/es.symbol.to-string-tag');
2
2
  require('../../modules/es.object.to-string');
3
- require('../../modules/es.math.to-string-tag');
4
3
  require('../../modules/es.json.to-string-tag');
4
+ require('../../modules/es.math.to-string-tag');
5
+ require('../../modules/es.reflect.to-string-tag');
5
6
  var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
6
7
 
7
8
  module.exports = WrappedWellKnownSymbolModule.f('toStringTag');
@@ -1,6 +1,6 @@
1
- require('../modules/web.dom-collections.iterator');
2
- require('../modules/es.string.iterator');
1
+ // TODO: remove from `core-js@4`
3
2
  require('../modules/esnext.aggregate-error');
4
- var path = require('../internals/path');
5
3
 
6
- module.exports = path.AggregateError;
4
+ var parent = require('../stable/aggregate-error');
5
+
6
+ module.exports = parent;
@@ -0,0 +1,5 @@
1
+ require('../../modules/es.map');
2
+ require('../../modules/esnext.map.emplace');
3
+ var entryUnbind = require('../../internals/entry-unbind');
4
+
5
+ module.exports = entryUnbind('Map', 'emplace');
@@ -2,6 +2,7 @@ var parent = require('../../es/map');
2
2
  require('../../modules/esnext.map.from');
3
3
  require('../../modules/esnext.map.of');
4
4
  require('../../modules/esnext.map.delete-all');
5
+ require('../../modules/esnext.map.emplace');
5
6
  require('../../modules/esnext.map.every');
6
7
  require('../../modules/esnext.map.filter');
7
8
  require('../../modules/esnext.map.find');
@@ -16,6 +17,7 @@ require('../../modules/esnext.map.merge');
16
17
  require('../../modules/esnext.map.reduce');
17
18
  require('../../modules/esnext.map.some');
18
19
  require('../../modules/esnext.map.update');
20
+ // TODO: remove from `core-js@4`
19
21
  require('../../modules/esnext.map.upsert');
20
22
  // TODO: remove from `core-js@4`
21
23
  require('../../modules/esnext.map.update-or-insert');
@@ -1,12 +1,7 @@
1
- 'use strict';
2
- require('../../modules/es.promise');
1
+ var parent = require('../../es/promise/any');
2
+
3
+ // TODO: Remove from `core-js@4`
3
4
  require('../../modules/esnext.aggregate-error');
4
5
  require('../../modules/esnext.promise.any');
5
- var path = require('../../internals/path');
6
-
7
- var Promise = path.Promise;
8
- var $any = Promise.any;
9
6
 
10
- module.exports = function any(iterable) {
11
- return $any.call(typeof this === 'function' ? this : Promise, iterable);
12
- };
7
+ module.exports = parent;
@@ -0,0 +1,3 @@
1
+ require('../../modules/es.reflect.to-string-tag');
2
+
3
+ module.exports = 'Reflect';
@@ -1,4 +1,6 @@
1
+ // TODO: remove from `core-js@4`
1
2
  require('../../modules/esnext.string.replace-all');
2
- var entryUnbind = require('../../internals/entry-unbind');
3
3
 
4
- module.exports = entryUnbind('String', 'replaceAll');
4
+ var parent = require('../../es/string/replace-all');
5
+
6
+ module.exports = parent;
@@ -1,4 +1,6 @@
1
+ // TODO: remove from `core-js@4`
1
2
  require('../../../modules/esnext.string.replace-all');
2
- var entryVirtual = require('../../../internals/entry-virtual');
3
3
 
4
- module.exports = entryVirtual('String').replaceAll;
4
+ var parent = require('../../../es/string/virtual/replace-all');
5
+
6
+ module.exports = parent;
@@ -0,0 +1,5 @@
1
+ require('../../modules/es.weak-map');
2
+ require('../../modules/esnext.weak-map.emplace');
3
+ var entryUnbind = require('../../internals/entry-unbind');
4
+
5
+ module.exports = entryUnbind('WeakMap', 'emplace');
@@ -1,7 +1,9 @@
1
1
  var parent = require('../../es/weak-map');
2
+ require('../../modules/esnext.weak-map.emplace');
2
3
  require('../../modules/esnext.weak-map.from');
3
4
  require('../../modules/esnext.weak-map.of');
4
5
  require('../../modules/esnext.weak-map.delete-all');
6
+ // TODO: remove from `core-js@4`
5
7
  require('../../modules/esnext.weak-map.upsert');
6
8
 
7
9
  module.exports = parent;
@@ -9,7 +9,8 @@ var min = Math.min;
9
9
  var nativeLastIndexOf = [].lastIndexOf;
10
10
  var NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;
11
11
  var STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');
12
- var USES_TO_LENGTH = arrayMethodUsesToLength('lastIndexOf', { ACCESSORS: true, 1: 2147483647 });
12
+ // For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method
13
+ var USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });
13
14
  var FORCED = NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH;
14
15
 
15
16
  // `Array.prototype.lastIndexOf` method implementation
@@ -3,28 +3,25 @@ var fails = require('../internals/fails');
3
3
  var has = require('../internals/has');
4
4
 
5
5
  var defineProperty = Object.defineProperty;
6
+ var cache = {};
6
7
 
7
8
  var thrower = function (it) { throw it; };
8
9
 
9
10
  module.exports = function (METHOD_NAME, options) {
11
+ if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];
10
12
  if (!options) options = {};
11
13
  var method = [][METHOD_NAME];
12
14
  var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;
13
15
  var argument0 = has(options, 0) ? options[0] : thrower;
14
16
  var argument1 = has(options, 1) ? options[1] : undefined;
15
17
 
16
- return !!method && !fails(function () {
18
+ return cache[METHOD_NAME] = !!method && !fails(function () {
17
19
  if (ACCESSORS && !DESCRIPTORS) return true;
18
20
  var O = { length: -1 };
19
21
 
20
- var addTrap = function (key) {
21
- if (ACCESSORS) defineProperty(O, key, { enumerable: true, get: thrower });
22
- else O[key] = 1;
23
- };
22
+ if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });
23
+ else O[1] = 1;
24
24
 
25
- addTrap(1);
26
- addTrap(2147483646);
27
- addTrap(4294967294);
28
25
  method.call(O, argument0, argument1);
29
26
  });
30
27
  };
@@ -19,6 +19,25 @@ var createMethod = function (TYPE) {
19
19
  if (!IS_TO_ARRAY) aFunction(fn);
20
20
 
21
21
  return new Promise(function (resolve, reject) {
22
+ var closeIteration = function (method, argument) {
23
+ try {
24
+ var returnMethod = iterator['return'];
25
+ if (returnMethod !== undefined) {
26
+ return Promise.resolve(returnMethod.call(iterator)).then(function () {
27
+ method(argument);
28
+ }, function (error) {
29
+ reject(error);
30
+ });
31
+ }
32
+ } catch (error2) {
33
+ return reject(error2);
34
+ } method(argument);
35
+ };
36
+
37
+ var onError = function (error) {
38
+ closeIteration(reject, error);
39
+ };
40
+
22
41
  var loop = function () {
23
42
  try {
24
43
  Promise.resolve(anObject(next.call(iterator))).then(function (step) {
@@ -35,16 +54,16 @@ var createMethod = function (TYPE) {
35
54
  if (IS_FOR_EACH) {
36
55
  loop();
37
56
  } else if (IS_EVERY) {
38
- result ? loop() : resolve(false);
57
+ result ? loop() : closeIteration(resolve, false);
39
58
  } else {
40
- result ? resolve(IS_SOME || value) : loop();
59
+ result ? closeIteration(resolve, IS_SOME || value) : loop();
41
60
  }
42
- }, reject);
61
+ }, onError);
43
62
  }
44
63
  }
45
- } catch (err) { reject(err); }
46
- }, reject);
47
- } catch (error) { reject(error); }
64
+ } catch (error) { onError(error); }
65
+ }, onError);
66
+ } catch (error2) { onError(error2); }
48
67
  };
49
68
 
50
69
  loop();
@@ -1,4 +1,5 @@
1
1
  var anObject = require('../internals/an-object');
2
+ var iteratorClose = require('../internals/iterator-close');
2
3
 
3
4
  // call something on iterator step with safe closing on error
4
5
  module.exports = function (iterator, fn, value, ENTRIES) {
@@ -6,8 +7,7 @@ module.exports = function (iterator, fn, value, ENTRIES) {
6
7
  return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);
7
8
  // 7.4.6 IteratorClose(iterator, completion)
8
9
  } catch (error) {
9
- var returnMethod = iterator['return'];
10
- if (returnMethod !== undefined) anObject(returnMethod.call(iterator));
10
+ iteratorClose(iterator);
11
11
  throw error;
12
12
  }
13
13
  };
@@ -7,20 +7,20 @@ var iterate = require('../internals/iterate');
7
7
  module.exports = function from(source /* , mapFn, thisArg */) {
8
8
  var length = arguments.length;
9
9
  var mapFn = length > 1 ? arguments[1] : undefined;
10
- var mapping, A, n, boundFunction;
10
+ var mapping, array, n, boundFunction;
11
11
  aFunction(this);
12
12
  mapping = mapFn !== undefined;
13
13
  if (mapping) aFunction(mapFn);
14
14
  if (source == undefined) return new this();
15
- A = [];
15
+ array = [];
16
16
  if (mapping) {
17
17
  n = 0;
18
18
  boundFunction = bind(mapFn, length > 2 ? arguments[2] : undefined, 2);
19
19
  iterate(source, function (nextItem) {
20
- A.push(boundFunction(nextItem, n++));
20
+ array.push(boundFunction(nextItem, n++));
21
21
  });
22
22
  } else {
23
- iterate(source, A.push, A);
23
+ iterate(source, array.push, { that: array });
24
24
  }
25
- return new this(A);
25
+ return new this(array);
26
26
  };
@@ -26,7 +26,7 @@ module.exports = {
26
26
  size: 0
27
27
  });
28
28
  if (!DESCRIPTORS) that.size = 0;
29
- if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);
29
+ if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });
30
30
  });
31
31
 
32
32
  var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);
@@ -61,7 +61,7 @@ module.exports = {
61
61
  id: id++,
62
62
  frozen: undefined
63
63
  });
64
- if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);
64
+ if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });
65
65
  });
66
66
 
67
67
  var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);
@@ -37,7 +37,7 @@ module.exports = function (CONSTRUCTOR_NAME, wrapper, common) {
37
37
  type: CONSTRUCTOR_NAME,
38
38
  collection: new NativeConstructor()
39
39
  });
40
- if (iterable != undefined) iterate(iterable, target[ADDER], target, IS_MAP);
40
+ if (iterable != undefined) iterate(iterable, target[ADDER], { that: target, AS_ENTRIES: IS_MAP });
41
41
  });
42
42
 
43
43
  var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);
@@ -6,10 +6,10 @@ module.exports = function (METHOD_NAME) {
6
6
  var regexp = /./;
7
7
  try {
8
8
  '/./'[METHOD_NAME](regexp);
9
- } catch (e) {
9
+ } catch (error1) {
10
10
  try {
11
11
  regexp[MATCH] = false;
12
12
  return '/./'[METHOD_NAME](regexp);
13
- } catch (f) { /* empty */ }
13
+ } catch (error2) { /* empty */ }
14
14
  } return false;
15
15
  };
@@ -0,0 +1,4 @@
1
+ var classof = require('../internals/classof-raw');
2
+ var global = require('../internals/global');
3
+
4
+ module.exports = classof(global.process) == 'process';
@@ -10,4 +10,4 @@ module.exports =
10
10
  check(typeof self == 'object' && self) ||
11
11
  check(typeof global == 'object' && global) ||
12
12
  // eslint-disable-next-line no-new-func
13
- Function('return this')();
13
+ (function () { return this; })() || Function('return this')();
@@ -3,6 +3,7 @@ var global = require('../internals/global');
3
3
  var isObject = require('../internals/is-object');
4
4
  var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
5
5
  var objectHas = require('../internals/has');
6
+ var shared = require('../internals/shared-store');
6
7
  var sharedKey = require('../internals/shared-key');
7
8
  var hiddenKeys = require('../internals/hidden-keys');
8
9
 
@@ -23,11 +24,12 @@ var getterFor = function (TYPE) {
23
24
  };
24
25
 
25
26
  if (NATIVE_WEAK_MAP) {
26
- var store = new WeakMap();
27
+ var store = shared.state || (shared.state = new WeakMap());
27
28
  var wmget = store.get;
28
29
  var wmhas = store.has;
29
30
  var wmset = store.set;
30
31
  set = function (it, metadata) {
32
+ metadata.facade = it;
31
33
  wmset.call(store, it, metadata);
32
34
  return metadata;
33
35
  };
@@ -41,6 +43,7 @@ if (NATIVE_WEAK_MAP) {
41
43
  var STATE = sharedKey('state');
42
44
  hiddenKeys[STATE] = true;
43
45
  set = function (it, metadata) {
46
+ metadata.facade = it;
44
47
  createNonEnumerableProperty(it, STATE, metadata);
45
48
  return metadata;
46
49
  };
@@ -3,17 +3,33 @@ var isArrayIteratorMethod = require('../internals/is-array-iterator-method');
3
3
  var toLength = require('../internals/to-length');
4
4
  var bind = require('../internals/function-bind-context');
5
5
  var getIteratorMethod = require('../internals/get-iterator-method');
6
- var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
6
+ var iteratorClose = require('../internals/iterator-close');
7
7
 
8
8
  var Result = function (stopped, result) {
9
9
  this.stopped = stopped;
10
10
  this.result = result;
11
11
  };
12
12
 
13
- var iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {
14
- var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);
13
+ module.exports = function (iterable, unboundFunction, options) {
14
+ var that = options && options.that;
15
+ var AS_ENTRIES = !!(options && options.AS_ENTRIES);
16
+ var IS_ITERATOR = !!(options && options.IS_ITERATOR);
17
+ var INTERRUPTED = !!(options && options.INTERRUPTED);
18
+ var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);
15
19
  var iterator, iterFn, index, length, result, next, step;
16
20
 
21
+ var stop = function (condition) {
22
+ if (iterator) iteratorClose(iterator);
23
+ return new Result(true, condition);
24
+ };
25
+
26
+ var callFn = function (value) {
27
+ if (AS_ENTRIES) {
28
+ anObject(value);
29
+ return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);
30
+ } return INTERRUPTED ? fn(value, stop) : fn(value);
31
+ };
32
+
17
33
  if (IS_ITERATOR) {
18
34
  iterator = iterable;
19
35
  } else {
@@ -22,9 +38,7 @@ var iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITER
22
38
  // optimisation for array iterators
23
39
  if (isArrayIteratorMethod(iterFn)) {
24
40
  for (index = 0, length = toLength(iterable.length); length > index; index++) {
25
- result = AS_ENTRIES
26
- ? boundFunction(anObject(step = iterable[index])[0], step[1])
27
- : boundFunction(iterable[index]);
41
+ result = callFn(iterable[index]);
28
42
  if (result && result instanceof Result) return result;
29
43
  } return new Result(false);
30
44
  }
@@ -33,11 +47,12 @@ var iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITER
33
47
 
34
48
  next = iterator.next;
35
49
  while (!(step = next.call(iterator)).done) {
36
- result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);
50
+ try {
51
+ result = callFn(step.value);
52
+ } catch (error) {
53
+ iteratorClose(iterator);
54
+ throw error;
55
+ }
37
56
  if (typeof result == 'object' && result && result instanceof Result) return result;
38
57
  } return new Result(false);
39
58
  };
40
-
41
- iterate.stop = function (result) {
42
- return new Result(true, result);
43
- };
@@ -0,0 +1,8 @@
1
+ var anObject = require('../internals/an-object');
2
+
3
+ module.exports = function (iterator) {
4
+ var returnMethod = iterator['return'];
5
+ if (returnMethod !== undefined) {
6
+ return anObject(returnMethod.call(iterator)).value;
7
+ }
8
+ };
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+ var anObject = require('../internals/an-object');
3
+
4
+ // `Map.prototype.emplace` method
5
+ // https://github.com/thumbsupep/proposal-upsert
6
+ module.exports = function emplace(key, handler) {
7
+ var map = anObject(this);
8
+ var value = (map.has(key) && 'update' in handler)
9
+ ? handler.update(map.get(key), key, map)
10
+ : handler.insert(key, map);
11
+ map.set(key, value);
12
+ return value;
13
+ };