core-js-pure 3.16.4 → 3.17.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 (63) hide show
  1. package/es/array/at.js +4 -0
  2. package/es/array/index.js +1 -0
  3. package/es/array/virtual/at.js +4 -0
  4. package/es/array/virtual/index.js +1 -0
  5. package/es/index.js +4 -0
  6. package/es/instance/at.js +13 -0
  7. package/es/object/has-own.js +4 -0
  8. package/es/object/index.js +1 -0
  9. package/es/string/at.js +4 -0
  10. package/es/string/index.js +1 -0
  11. package/es/string/virtual/at.js +4 -0
  12. package/es/string/virtual/index.js +1 -0
  13. package/es/typed-array/at.js +1 -0
  14. package/es/typed-array/methods.js +1 -0
  15. package/features/array/at.js +4 -2
  16. package/features/array/index.js +1 -0
  17. package/features/array/virtual/at.js +4 -2
  18. package/features/array/virtual/index.js +1 -0
  19. package/features/index.js +4 -0
  20. package/features/object/has-own.js +4 -2
  21. package/features/object/index.js +1 -0
  22. package/features/string/at.js +3 -2
  23. package/features/string/virtual/at.js +2 -0
  24. package/features/string/virtual/index.js +1 -2
  25. package/features/typed-array/at.js +5 -0
  26. package/features/typed-array/index.js +1 -0
  27. package/features/typed-array/methods.js +1 -0
  28. package/internals/async-from-sync-iterator.js +2 -2
  29. package/internals/async-iterator-create-proxy.js +8 -4
  30. package/internals/async-iterator-prototype.js +13 -14
  31. package/internals/define-iterator.js +1 -1
  32. package/internals/dom-token-list-prototype.js +7 -0
  33. package/internals/iterate.js +1 -1
  34. package/internals/iterator-create-proxy.js +8 -4
  35. package/internals/iterators-core.js +6 -5
  36. package/internals/shared.js +1 -1
  37. package/internals/this-number-value.js +2 -5
  38. package/modules/es.array.at.js +20 -0
  39. package/modules/es.object.has-own.js +8 -0
  40. package/modules/es.string.at-alternative.js +23 -0
  41. package/modules/es.typed-array.at.js +1 -0
  42. package/modules/esnext.array.at.js +2 -20
  43. package/modules/esnext.async-iterator.constructor.js +1 -1
  44. package/modules/esnext.async-iterator.from.js +3 -3
  45. package/modules/esnext.iterator.constructor.js +0 -8
  46. package/modules/esnext.iterator.from.js +3 -3
  47. package/modules/esnext.iterator.take.js +1 -1
  48. package/modules/esnext.object.has-own.js +2 -8
  49. package/modules/esnext.string.at-alternative.js +2 -24
  50. package/modules/web.url.js +82 -82
  51. package/package.json +2 -2
  52. package/proposals/accessible-object-hasownproperty.js +1 -0
  53. package/proposals/relative-indexing-method.js +2 -2
  54. package/stable/array/at.js +3 -0
  55. package/stable/array/virtual/at.js +3 -0
  56. package/stable/index.js +4 -0
  57. package/stable/instance/at.js +3 -0
  58. package/stable/object/has-own.js +3 -0
  59. package/stable/string/at.js +3 -0
  60. package/stable/string/virtual/at.js +3 -0
  61. package/stable/typed-array/at.js +3 -0
  62. package/stage/3.js +0 -2
  63. package/stage/4.js +2 -0
package/es/array/at.js ADDED
@@ -0,0 +1,4 @@
1
+ require('../../modules/es.array.at');
2
+ var entryUnbind = require('../../internals/entry-unbind');
3
+
4
+ module.exports = entryUnbind('Array', 'at');
package/es/array/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  require('../../modules/es.array.from');
2
2
  require('../../modules/es.array.is-array');
3
3
  require('../../modules/es.array.of');
4
+ require('../../modules/es.array.at');
4
5
  require('../../modules/es.array.concat');
5
6
  require('../../modules/es.array.copy-within');
6
7
  require('../../modules/es.array.every');
@@ -0,0 +1,4 @@
1
+ require('../../../modules/es.array.at');
2
+ var entryVirtual = require('../../../internals/entry-virtual');
3
+
4
+ module.exports = entryVirtual('Array').at;
@@ -1,3 +1,4 @@
1
+ require('../../../modules/es.array.at');
1
2
  require('../../../modules/es.array.concat');
2
3
  require('../../../modules/es.array.copy-within');
3
4
  require('../../../modules/es.array.every');
package/es/index.js CHANGED
@@ -14,6 +14,7 @@ require('../modules/es.symbol.to-primitive');
14
14
  require('../modules/es.symbol.to-string-tag');
15
15
  require('../modules/es.symbol.unscopables');
16
16
  require('../modules/es.aggregate-error');
17
+ require('../modules/es.array.at');
17
18
  require('../modules/es.array.concat');
18
19
  require('../modules/es.array.copy-within');
19
20
  require('../modules/es.array.every');
@@ -106,6 +107,7 @@ require('../modules/es.object.get-own-property-descriptor');
106
107
  require('../modules/es.object.get-own-property-descriptors');
107
108
  require('../modules/es.object.get-own-property-names');
108
109
  require('../modules/es.object.get-prototype-of');
110
+ require('../modules/es.object.has-own');
109
111
  require('../modules/es.object.is');
110
112
  require('../modules/es.object.is-extensible');
111
113
  require('../modules/es.object.is-frozen');
@@ -146,6 +148,7 @@ require('../modules/es.regexp.sticky');
146
148
  require('../modules/es.regexp.test');
147
149
  require('../modules/es.regexp.to-string');
148
150
  require('../modules/es.set');
151
+ require('../modules/es.string.at-alternative');
149
152
  require('../modules/es.string.code-point-at');
150
153
  require('../modules/es.string.ends-with');
151
154
  require('../modules/es.string.from-code-point');
@@ -188,6 +191,7 @@ require('../modules/es.typed-array.uint8-array');
188
191
  require('../modules/es.typed-array.uint8-clamped-array');
189
192
  require('../modules/es.typed-array.uint16-array');
190
193
  require('../modules/es.typed-array.uint32-array');
194
+ require('../modules/es.typed-array.at');
191
195
  require('../modules/es.typed-array.copy-within');
192
196
  require('../modules/es.typed-array.every');
193
197
  require('../modules/es.typed-array.fill');
@@ -0,0 +1,13 @@
1
+ var arrayAt = require('../array/virtual/at');
2
+ var stringAt = require('../string/virtual/at');
3
+
4
+ var ArrayPrototype = Array.prototype;
5
+ var StringPrototype = String.prototype;
6
+
7
+ module.exports = function (it) {
8
+ var own = it.at;
9
+ if (it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.at)) return arrayAt;
10
+ if (typeof it === 'string' || it === StringPrototype || (it instanceof String && own === StringPrototype.at)) {
11
+ return stringAt;
12
+ } return own;
13
+ };
@@ -0,0 +1,4 @@
1
+ require('../../modules/es.object.has-own');
2
+ var path = require('../../internals/path');
3
+
4
+ module.exports = path.Object.hasOwn;
@@ -10,6 +10,7 @@ require('../../modules/es.object.get-own-property-descriptor');
10
10
  require('../../modules/es.object.get-own-property-descriptors');
11
11
  require('../../modules/es.object.get-own-property-names');
12
12
  require('../../modules/es.object.get-prototype-of');
13
+ require('../../modules/es.object.has-own');
13
14
  require('../../modules/es.object.is');
14
15
  require('../../modules/es.object.is-extensible');
15
16
  require('../../modules/es.object.is-frozen');
@@ -0,0 +1,4 @@
1
+ require('../../modules/es.string.at-alternative');
2
+ var entryUnbind = require('../../internals/entry-unbind');
3
+
4
+ module.exports = entryUnbind('String', 'at');
@@ -3,6 +3,7 @@ require('../../modules/es.regexp.exec');
3
3
  require('../../modules/es.string.from-code-point');
4
4
  require('../../modules/es.string.raw');
5
5
  require('../../modules/es.string.code-point-at');
6
+ require('../../modules/es.string.at-alternative');
6
7
  require('../../modules/es.string.ends-with');
7
8
  require('../../modules/es.string.includes');
8
9
  require('../../modules/es.string.match');
@@ -0,0 +1,4 @@
1
+ require('../../../modules/es.string.at-alternative');
2
+ var entryVirtual = require('../../../internals/entry-virtual');
3
+
4
+ module.exports = entryVirtual('String').at;
@@ -1,5 +1,6 @@
1
1
  require('../../../modules/es.object.to-string');
2
2
  require('../../../modules/es.regexp.exec');
3
+ require('../../../modules/es.string.at-alternative');
3
4
  require('../../../modules/es.string.code-point-at');
4
5
  require('../../../modules/es.string.ends-with');
5
6
  require('../../../modules/es.string.includes');
@@ -0,0 +1 @@
1
+ require('../../modules/es.typed-array.at');
@@ -2,6 +2,7 @@ require('../../modules/es.object.to-string');
2
2
  require('../../modules/es.string.iterator');
3
3
  require('../../modules/es.typed-array.from');
4
4
  require('../../modules/es.typed-array.of');
5
+ require('../../modules/es.typed-array.at');
5
6
  require('../../modules/es.typed-array.copy-within');
6
7
  require('../../modules/es.typed-array.every');
7
8
  require('../../modules/es.typed-array.fill');
@@ -1,4 +1,6 @@
1
+ var parent = require('../../stable/array/at');
2
+
3
+ // TODO: Remove from `core-js@4`
1
4
  require('../../modules/esnext.array.at');
2
- var entryUnbind = require('../../internals/entry-unbind');
3
5
 
4
- module.exports = entryUnbind('Array', 'at');
6
+ module.exports = parent;
@@ -1,5 +1,6 @@
1
1
  var parent = require('../../stable/array');
2
2
  require('../../modules/es.map');
3
+ // TODO: Remove from `core-js@4`
3
4
  require('../../modules/esnext.array.at');
4
5
  // TODO: Remove from `core-js@4`
5
6
  require('../../modules/esnext.array.filter-out');
@@ -1,4 +1,6 @@
1
+ var parent = require('../../../stable/array/virtual/at');
2
+
3
+ // TODO: Remove from `core-js@4`
1
4
  require('../../../modules/esnext.array.at');
2
- var entryVirtual = require('../../../internals/entry-virtual');
3
5
 
4
- module.exports = entryVirtual('Array').at;
6
+ module.exports = parent;
@@ -1,5 +1,6 @@
1
1
  var parent = require('../../../stable/array/virtual');
2
2
  require('../../../modules/es.map');
3
+ // TODO: Remove from `core-js@4`
3
4
  require('../../../modules/esnext.array.at');
4
5
  // TODO: Remove from `core-js@4`
5
6
  require('../../../modules/esnext.array.filter-out');
package/features/index.js CHANGED
@@ -14,6 +14,7 @@ require('../modules/es.symbol.to-primitive');
14
14
  require('../modules/es.symbol.to-string-tag');
15
15
  require('../modules/es.symbol.unscopables');
16
16
  require('../modules/es.aggregate-error');
17
+ require('../modules/es.array.at');
17
18
  require('../modules/es.array.concat');
18
19
  require('../modules/es.array.copy-within');
19
20
  require('../modules/es.array.every');
@@ -106,6 +107,7 @@ require('../modules/es.object.get-own-property-descriptor');
106
107
  require('../modules/es.object.get-own-property-descriptors');
107
108
  require('../modules/es.object.get-own-property-names');
108
109
  require('../modules/es.object.get-prototype-of');
110
+ require('../modules/es.object.has-own');
109
111
  require('../modules/es.object.is');
110
112
  require('../modules/es.object.is-extensible');
111
113
  require('../modules/es.object.is-frozen');
@@ -146,6 +148,7 @@ require('../modules/es.regexp.sticky');
146
148
  require('../modules/es.regexp.test');
147
149
  require('../modules/es.regexp.to-string');
148
150
  require('../modules/es.set');
151
+ require('../modules/es.string.at-alternative');
149
152
  require('../modules/es.string.code-point-at');
150
153
  require('../modules/es.string.ends-with');
151
154
  require('../modules/es.string.from-code-point');
@@ -188,6 +191,7 @@ require('../modules/es.typed-array.uint8-array');
188
191
  require('../modules/es.typed-array.uint8-clamped-array');
189
192
  require('../modules/es.typed-array.uint16-array');
190
193
  require('../modules/es.typed-array.uint32-array');
194
+ require('../modules/es.typed-array.at');
191
195
  require('../modules/es.typed-array.copy-within');
192
196
  require('../modules/es.typed-array.every');
193
197
  require('../modules/es.typed-array.fill');
@@ -1,4 +1,6 @@
1
+ var parent = require('../../stable/object/has-own');
2
+
3
+ // TODO: Remove from `core-js@4`
1
4
  require('../../modules/esnext.object.has-own');
2
- var path = require('../../internals/path');
3
5
 
4
- module.exports = path.Object.hasOwn;
6
+ module.exports = parent;
@@ -1,4 +1,5 @@
1
1
  var parent = require('../../stable/object');
2
+ // TODO: Remove from `core-js@4`
2
3
  require('../../modules/esnext.object.has-own');
3
4
  require('../../modules/esnext.object.iterate-entries');
4
5
  require('../../modules/esnext.object.iterate-keys');
@@ -1,4 +1,5 @@
1
+ require('../../stable/string/at');
2
+ // TODO: Remove from `core-js@4`
1
3
  require('../../modules/esnext.string.at');
2
- var entryUnbind = require('../../internals/entry-unbind');
3
4
 
4
- module.exports = entryUnbind('String', 'at');
5
+ module.exports = require('../../internals/entry-unbind')('String', 'at');
@@ -1,3 +1,5 @@
1
+ require('../../../stable/string/virtual/at');
2
+ // TODO: Remove from `core-js@4`
1
3
  require('../../../modules/esnext.string.at');
2
4
  var entryVirtual = require('../../../internals/entry-virtual');
3
5
 
@@ -1,7 +1,6 @@
1
1
  var parent = require('../../../stable/string/virtual');
2
+ // TODO: remove from `core-js@4`
2
3
  require('../../../modules/esnext.string.at');
3
- // TODO: disabled by default because of the conflict with another proposal
4
- // require('../../../modules/esnext.string.at-alternative');
5
4
  require('../../../modules/esnext.string.code-points');
6
5
  // TODO: remove from `core-js@4`
7
6
  require('../../../modules/esnext.string.match-all');
@@ -1 +1,6 @@
1
+ var parent = require('../../stable/typed-array/every');
2
+
3
+ // TODO: Remove from `core-js@4`
1
4
  require('../../modules/esnext.typed-array.at');
5
+
6
+ module.exports = parent;
@@ -1,5 +1,6 @@
1
1
  var parent = require('../../stable/typed-array');
2
2
  require('../../modules/es.map');
3
+ // TODO: Remove from `core-js@4`
3
4
  require('../../modules/esnext.typed-array.at');
4
5
  // TODO: Remove from `core-js@4`
5
6
  require('../../modules/esnext.typed-array.filter-out');
@@ -1,5 +1,6 @@
1
1
  var parent = require('../../stable/typed-array/methods');
2
2
  require('../../modules/es.map');
3
+ // TODO: Remove from `core-js@4`
3
4
  require('../../modules/esnext.typed-array.at');
4
5
  // TODO: Remove from `core-js@4`
5
6
  require('../../modules/esnext.typed-array.filter-out');
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
- var path = require('../internals/path');
3
2
  var anObject = require('../internals/an-object');
4
3
  var create = require('../internals/object-create');
5
4
  var getMethod = require('../internals/get-method');
6
5
  var redefineAll = require('../internals/redefine-all');
7
6
  var InternalStateModule = require('../internals/internal-state');
8
7
  var getBuiltIn = require('../internals/get-built-in');
8
+ var AsyncIteratorPrototype = require('../internals/async-iterator-prototype');
9
9
 
10
10
  var Promise = getBuiltIn('Promise');
11
11
 
@@ -26,7 +26,7 @@ var AsyncFromSyncIterator = function AsyncIterator(iterator) {
26
26
  });
27
27
  };
28
28
 
29
- AsyncFromSyncIterator.prototype = redefineAll(create(path.AsyncIterator.prototype), {
29
+ AsyncFromSyncIterator.prototype = redefineAll(create(AsyncIteratorPrototype), {
30
30
  next: function next(arg) {
31
31
  var state = getInternalState(this);
32
32
  var hasArg = !!arguments.length;
@@ -1,5 +1,4 @@
1
1
  'use strict';
2
- var path = require('../internals/path');
3
2
  var aFunction = require('../internals/a-function');
4
3
  var anObject = require('../internals/an-object');
5
4
  var create = require('../internals/object-create');
@@ -8,6 +7,7 @@ var redefineAll = require('../internals/redefine-all');
8
7
  var wellKnownSymbol = require('../internals/well-known-symbol');
9
8
  var InternalStateModule = require('../internals/internal-state');
10
9
  var getBuiltIn = require('../internals/get-built-in');
10
+ var AsyncIteratorPrototype = require('../internals/async-iterator-prototype');
11
11
 
12
12
  var Promise = getBuiltIn('Promise');
13
13
 
@@ -24,7 +24,7 @@ module.exports = function (nextHandler, IS_ITERATOR) {
24
24
  setInternalState(this, state);
25
25
  };
26
26
 
27
- AsyncIteratorProxy.prototype = redefineAll(create(path.AsyncIterator.prototype), {
27
+ AsyncIteratorProxy.prototype = redefineAll(create(AsyncIteratorPrototype), {
28
28
  next: function next(arg) {
29
29
  var that = this;
30
30
  var hasArgument = !!arguments.length;
@@ -38,7 +38,9 @@ module.exports = function (nextHandler, IS_ITERATOR) {
38
38
  'return': function (value) {
39
39
  var that = this;
40
40
  return new Promise(function (resolve, reject) {
41
- var iterator = getInternalState(that).iterator;
41
+ var state = getInternalState(that);
42
+ var iterator = state.iterator;
43
+ state.done = true;
42
44
  var $$return = iterator['return'];
43
45
  if ($$return === undefined) return resolve({ done: true, value: value });
44
46
  Promise.resolve($$return.call(iterator, value)).then(function (result) {
@@ -50,7 +52,9 @@ module.exports = function (nextHandler, IS_ITERATOR) {
50
52
  'throw': function (value) {
51
53
  var that = this;
52
54
  return new Promise(function (resolve, reject) {
53
- var iterator = getInternalState(that).iterator;
55
+ var state = getInternalState(that);
56
+ var iterator = state.iterator;
57
+ state.done = true;
54
58
  var $$throw = iterator['throw'];
55
59
  if ($$throw === undefined) return reject(value);
56
60
  resolve($$throw.call(iterator, value));
@@ -1,7 +1,7 @@
1
1
  var global = require('../internals/global');
2
2
  var shared = require('../internals/shared-store');
3
+ var create = require('../internals/object-create');
3
4
  var getPrototypeOf = require('../internals/object-get-prototype-of');
4
- var has = require('../internals/has');
5
5
  var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
6
6
  var wellKnownSymbol = require('../internals/well-known-symbol');
7
7
  var IS_PURE = require('../internals/is-pure');
@@ -12,23 +12,22 @@ var AsyncIterator = global.AsyncIterator;
12
12
  var PassedAsyncIteratorPrototype = shared.AsyncIteratorPrototype;
13
13
  var AsyncIteratorPrototype, prototype;
14
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 -- we have no alternatives without usage of modern syntax
23
- prototype = getPrototypeOf(getPrototypeOf(getPrototypeOf(Function('return async function*(){}()')())));
24
- if (getPrototypeOf(prototype) === Object.prototype) AsyncIteratorPrototype = prototype;
25
- } catch (error) { /* empty */ }
26
- }
15
+ if (PassedAsyncIteratorPrototype) {
16
+ AsyncIteratorPrototype = PassedAsyncIteratorPrototype;
17
+ } else if (typeof AsyncIterator == 'function') {
18
+ AsyncIteratorPrototype = AsyncIterator.prototype;
19
+ } else if (shared[USE_FUNCTION_CONSTRUCTOR] || global[USE_FUNCTION_CONSTRUCTOR]) {
20
+ try {
21
+ // eslint-disable-next-line no-new-func -- we have no alternatives without usage of modern syntax
22
+ prototype = getPrototypeOf(getPrototypeOf(getPrototypeOf(Function('return async function*(){}()')())));
23
+ if (getPrototypeOf(prototype) === Object.prototype) AsyncIteratorPrototype = prototype;
24
+ } catch (error) { /* empty */ }
27
25
  }
28
26
 
29
27
  if (!AsyncIteratorPrototype) AsyncIteratorPrototype = {};
28
+ else if (IS_PURE) AsyncIteratorPrototype = create(AsyncIteratorPrototype);
30
29
 
31
- if (!has(AsyncIteratorPrototype, ASYNC_ITERATOR)) {
30
+ if (typeof AsyncIteratorPrototype[ASYNC_ITERATOR] !== 'function') {
32
31
  createNonEnumerableProperty(AsyncIteratorPrototype, ASYNC_ITERATOR, function () {
33
32
  return this;
34
33
  });
@@ -46,7 +46,7 @@ module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, I
46
46
  // fix native
47
47
  if (anyNativeIterator) {
48
48
  CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));
49
- if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {
49
+ if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {
50
50
  if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {
51
51
  if (setPrototypeOf) {
52
52
  setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);
@@ -0,0 +1,7 @@
1
+ // in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`
2
+ var documentCreateElement = require('../internals/document-create-element');
3
+
4
+ var classList = documentCreateElement('span').classList;
5
+ var DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;
6
+
7
+ module.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;
@@ -20,7 +20,7 @@ module.exports = function (iterable, unboundFunction, options) {
20
20
  var iterator, iterFn, index, length, result, next, step;
21
21
 
22
22
  var stop = function (condition) {
23
- if (iterator) iteratorClose(iterator, 'return', condition);
23
+ if (iterator) iteratorClose(iterator, 'normal', condition);
24
24
  return new Result(true, condition);
25
25
  };
26
26
 
@@ -1,5 +1,4 @@
1
1
  'use strict';
2
- var path = require('../internals/path');
3
2
  var aFunction = require('../internals/a-function');
4
3
  var anObject = require('../internals/an-object');
5
4
  var create = require('../internals/object-create');
@@ -7,6 +6,7 @@ var createNonEnumerableProperty = require('../internals/create-non-enumerable-pr
7
6
  var redefineAll = require('../internals/redefine-all');
8
7
  var wellKnownSymbol = require('../internals/well-known-symbol');
9
8
  var InternalStateModule = require('../internals/internal-state');
9
+ var IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;
10
10
 
11
11
  var setInternalState = InternalStateModule.set;
12
12
  var getInternalState = InternalStateModule.get;
@@ -21,7 +21,7 @@ module.exports = function (nextHandler, IS_ITERATOR) {
21
21
  setInternalState(this, state);
22
22
  };
23
23
 
24
- IteratorProxy.prototype = redefineAll(create(path.Iterator.prototype), {
24
+ IteratorProxy.prototype = redefineAll(create(IteratorPrototype), {
25
25
  next: function next(arg) {
26
26
  var state = getInternalState(this);
27
27
  var args = arguments.length ? [state.ignoreArg ? undefined : arg] : IS_ITERATOR ? [] : [undefined];
@@ -30,12 +30,16 @@ module.exports = function (nextHandler, IS_ITERATOR) {
30
30
  return { done: state.done, value: result };
31
31
  },
32
32
  'return': function (value) {
33
- var iterator = getInternalState(this).iterator;
33
+ var state = getInternalState(this);
34
+ var iterator = state.iterator;
35
+ state.done = true;
34
36
  var $$return = iterator['return'];
35
37
  return { done: true, value: $$return === undefined ? value : anObject($$return.call(iterator, value)).value };
36
38
  },
37
39
  'throw': function (value) {
38
- var iterator = getInternalState(this).iterator;
40
+ var state = getInternalState(this);
41
+ var iterator = state.iterator;
42
+ state.done = true;
39
43
  var $$throw = iterator['throw'];
40
44
  if ($$throw === undefined) throw value;
41
45
  return $$throw.call(iterator, value);
@@ -1,16 +1,14 @@
1
1
  'use strict';
2
2
  var fails = require('../internals/fails');
3
+ var create = require('../internals/object-create');
3
4
  var getPrototypeOf = require('../internals/object-get-prototype-of');
4
5
  var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
5
- var has = require('../internals/has');
6
6
  var wellKnownSymbol = require('../internals/well-known-symbol');
7
7
  var IS_PURE = require('../internals/is-pure');
8
8
 
9
9
  var ITERATOR = wellKnownSymbol('iterator');
10
10
  var BUGGY_SAFARI_ITERATORS = false;
11
11
 
12
- var returnThis = function () { return this; };
13
-
14
12
  // `%IteratorPrototype%` object
15
13
  // https://tc39.es/ecma262/#sec-%iteratorprototype%-object
16
14
  var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;
@@ -33,11 +31,14 @@ var NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function ()
33
31
  });
34
32
 
35
33
  if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};
34
+ else if (IS_PURE) IteratorPrototype = create(IteratorPrototype);
36
35
 
37
36
  // `%IteratorPrototype%[@@iterator]()` method
38
37
  // https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator
39
- if ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {
40
- createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);
38
+ if (typeof IteratorPrototype[ITERATOR] !== 'function') {
39
+ createNonEnumerableProperty(IteratorPrototype, ITERATOR, function () {
40
+ return this;
41
+ });
41
42
  }
42
43
 
43
44
  module.exports = {
@@ -4,7 +4,7 @@ var store = require('../internals/shared-store');
4
4
  (module.exports = function (key, value) {
5
5
  return store[key] || (store[key] = value !== undefined ? value : {});
6
6
  })('versions', []).push({
7
- version: '3.16.4',
7
+ version: '3.17.3',
8
8
  mode: IS_PURE ? 'pure' : 'global',
9
9
  copyright: '© 2021 Denis Pushkarev (zloirock.ru)'
10
10
  });
@@ -1,10 +1,7 @@
1
- var classof = require('../internals/classof-raw');
1
+ var valueOf = 1.0.valueOf;
2
2
 
3
3
  // `thisNumberValue` abstract operation
4
4
  // https://tc39.es/ecma262/#sec-thisnumbervalue
5
5
  module.exports = function (value) {
6
- if (typeof value != 'number' && classof(value) != 'Number') {
7
- throw TypeError('Incorrect invocation');
8
- }
9
- return +value;
6
+ return valueOf.call(value);
10
7
  };
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+ var $ = require('../internals/export');
3
+ var toObject = require('../internals/to-object');
4
+ var toLength = require('../internals/to-length');
5
+ var toInteger = require('../internals/to-integer');
6
+ var addToUnscopables = require('../internals/add-to-unscopables');
7
+
8
+ // `Array.prototype.at` method
9
+ // https://github.com/tc39/proposal-relative-indexing-method
10
+ $({ target: 'Array', proto: true }, {
11
+ at: function at(index) {
12
+ var O = toObject(this);
13
+ var len = toLength(O.length);
14
+ var relativeIndex = toInteger(index);
15
+ var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;
16
+ return (k < 0 || k >= len) ? undefined : O[k];
17
+ }
18
+ });
19
+
20
+ addToUnscopables('at');
@@ -0,0 +1,8 @@
1
+ var $ = require('../internals/export');
2
+ var hasOwn = require('../internals/has');
3
+
4
+ // `Object.hasOwn` method
5
+ // https://github.com/tc39/proposal-accessible-object-hasownproperty
6
+ $({ target: 'Object', stat: true }, {
7
+ hasOwn: hasOwn
8
+ });
@@ -0,0 +1,23 @@
1
+ 'use strict';
2
+ var $ = require('../internals/export');
3
+ var requireObjectCoercible = require('../internals/require-object-coercible');
4
+ var toInteger = require('../internals/to-integer');
5
+ var toLength = require('../internals/to-length');
6
+ var toString = require('../internals/to-string');
7
+ var fails = require('../internals/fails');
8
+
9
+ var FORCED = fails(function () {
10
+ return '𠮷'.at(0) !== '\uD842';
11
+ });
12
+
13
+ // `String.prototype.at` method
14
+ // https://github.com/tc39/proposal-relative-indexing-method
15
+ $({ target: 'String', proto: true, forced: FORCED }, {
16
+ at: function at(index) {
17
+ var S = toString(requireObjectCoercible(this));
18
+ var len = toLength(S.length);
19
+ var relativeIndex = toInteger(index);
20
+ var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;
21
+ return (k < 0 || k >= len) ? undefined : S.charAt(k);
22
+ }
23
+ });
@@ -0,0 +1 @@
1
+ // empty
@@ -1,20 +1,2 @@
1
- 'use strict';
2
- var $ = require('../internals/export');
3
- var toObject = require('../internals/to-object');
4
- var toLength = require('../internals/to-length');
5
- var toInteger = require('../internals/to-integer');
6
- var addToUnscopables = require('../internals/add-to-unscopables');
7
-
8
- // `Array.prototype.at` method
9
- // https://github.com/tc39/proposal-relative-indexing-method
10
- $({ target: 'Array', proto: true }, {
11
- at: function at(index) {
12
- var O = toObject(this);
13
- var len = toLength(O.length);
14
- var relativeIndex = toInteger(index);
15
- var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;
16
- return (k < 0 || k >= len) ? undefined : O[k];
17
- }
18
- });
19
-
20
- addToUnscopables('at');
1
+ // TODO: Remove from `core-js@4`
2
+ require('../modules/es.array.at');
@@ -20,7 +20,7 @@ if (!has(AsyncIteratorPrototype, TO_STRING_TAG)) {
20
20
  createNonEnumerableProperty(AsyncIteratorPrototype, TO_STRING_TAG, 'AsyncIterator');
21
21
  }
22
22
 
23
- if (!has(AsyncIteratorPrototype, 'constructor') || AsyncIteratorPrototype.constructor === Object) {
23
+ if (IS_PURE || !has(AsyncIteratorPrototype, 'constructor') || AsyncIteratorPrototype.constructor === Object) {
24
24
  createNonEnumerableProperty(AsyncIteratorPrototype, 'constructor', AsyncIteratorConstructor);
25
25
  }
26
26