core-js 3.16.3 → 3.17.2

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 (83) 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/bigint/index.js +1 -0
  20. package/features/bigint/range.js +1 -0
  21. package/features/index.js +4 -0
  22. package/features/number/index.js +1 -0
  23. package/features/object/has-own.js +4 -2
  24. package/features/object/index.js +1 -0
  25. package/features/string/at.js +3 -2
  26. package/features/string/virtual/at.js +2 -0
  27. package/features/string/virtual/index.js +1 -2
  28. package/features/typed-array/at.js +5 -0
  29. package/features/typed-array/index.js +1 -0
  30. package/features/typed-array/methods.js +1 -0
  31. package/internals/array-from.js +2 -1
  32. package/internals/async-from-sync-iterator.js +60 -0
  33. package/internals/async-iterator-create-proxy.js +34 -26
  34. package/internals/call-with-safe-iteration-closing.js +1 -2
  35. package/internals/get-async-iterator.js +15 -0
  36. package/internals/get-iterator.js +2 -2
  37. package/internals/get-method.js +7 -0
  38. package/internals/iterate.js +4 -4
  39. package/internals/iterator-close.js +17 -4
  40. package/internals/iterator-create-proxy.js +20 -17
  41. package/internals/shared.js +1 -1
  42. package/internals/this-number-value.js +2 -5
  43. package/internals/typed-array-from.js +2 -1
  44. package/modules/es.array.at.js +20 -0
  45. package/modules/es.object.has-own.js +8 -0
  46. package/modules/es.string.at-alternative.js +23 -0
  47. package/modules/es.symbol.description.js +2 -2
  48. package/modules/es.typed-array.at.js +17 -0
  49. package/modules/esnext.array.at.js +2 -20
  50. package/modules/esnext.async-iterator.as-indexed-pairs.js +2 -2
  51. package/modules/esnext.async-iterator.drop.js +2 -2
  52. package/modules/esnext.async-iterator.filter.js +2 -2
  53. package/modules/esnext.async-iterator.flat-map.js +7 -10
  54. package/modules/esnext.async-iterator.from.js +20 -15
  55. package/modules/esnext.async-iterator.map.js +2 -2
  56. package/modules/esnext.async-iterator.take.js +2 -2
  57. package/modules/esnext.iterator.as-indexed-pairs.js +2 -2
  58. package/modules/esnext.iterator.drop.js +2 -2
  59. package/modules/esnext.iterator.filter.js +2 -2
  60. package/modules/esnext.iterator.flat-map.js +3 -4
  61. package/modules/esnext.iterator.from.js +4 -4
  62. package/modules/esnext.iterator.map.js +2 -2
  63. package/modules/esnext.iterator.take.js +3 -3
  64. package/modules/esnext.object.has-own.js +2 -8
  65. package/modules/esnext.observable.js +1 -4
  66. package/modules/esnext.string.at-alternative.js +2 -24
  67. package/modules/esnext.typed-array.at.js +2 -17
  68. package/modules/web.url-search-params.js +1 -1
  69. package/modules/web.url.js +82 -82
  70. package/package.json +2 -2
  71. package/proposals/accessible-object-hasownproperty.js +1 -0
  72. package/proposals/relative-indexing-method.js +2 -2
  73. package/stable/array/at.js +3 -0
  74. package/stable/array/virtual/at.js +3 -0
  75. package/stable/index.js +4 -0
  76. package/stable/instance/at.js +3 -0
  77. package/stable/object/has-own.js +3 -0
  78. package/stable/string/at.js +3 -0
  79. package/stable/string/virtual/at.js +3 -0
  80. package/stable/typed-array/at.js +3 -0
  81. package/stage/3.js +0 -2
  82. package/stage/4.js +2 -0
  83. package/internals/get-async-iterator-method.js +0 -9
@@ -1,5 +1,6 @@
1
1
  var toObject = require('../internals/to-object');
2
2
  var toLength = require('../internals/to-length');
3
+ var getIterator = require('../internals/get-iterator');
3
4
  var getIteratorMethod = require('../internals/get-iterator-method');
4
5
  var isArrayIteratorMethod = require('../internals/is-array-iterator-method');
5
6
  var bind = require('../internals/function-bind-context');
@@ -13,7 +14,7 @@ module.exports = function from(source /* , mapfn, thisArg */) {
13
14
  var iteratorMethod = getIteratorMethod(O);
14
15
  var i, length, result, step, iterator, next;
15
16
  if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) {
16
- iterator = iteratorMethod.call(O);
17
+ iterator = getIterator(O, iteratorMethod);
17
18
  next = iterator.next;
18
19
  O = [];
19
20
  while (!(step = next.call(iterator)).done) {
@@ -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
+ });
@@ -31,7 +31,7 @@ if (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in Nati
31
31
  symbolPrototype.constructor = SymbolWrapper;
32
32
 
33
33
  var symbolToString = symbolPrototype.toString;
34
- var native = String(NativeSymbol('test')) == 'Symbol(test)';
34
+ var nativeSymbol = String(NativeSymbol('test')) == 'Symbol(test)';
35
35
  var regexp = /^Symbol\((.*)\)[^)]+$/;
36
36
  defineProperty(symbolPrototype, 'description', {
37
37
  configurable: true,
@@ -39,7 +39,7 @@ if (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in Nati
39
39
  var symbol = isObject(this) ? this.valueOf() : this;
40
40
  var string = symbolToString.call(symbol);
41
41
  if (has(EmptyStringDescriptionStore, symbol)) return '';
42
- var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');
42
+ var desc = nativeSymbol ? string.slice(7, -1) : string.replace(regexp, '$1');
43
43
  return desc === '' ? undefined : desc;
44
44
  }
45
45
  });
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+ var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
3
+ var toLength = require('../internals/to-length');
4
+ var toInteger = require('../internals/to-integer');
5
+
6
+ var aTypedArray = ArrayBufferViewCore.aTypedArray;
7
+ var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
8
+
9
+ // `%TypedArray%.prototype.at` method
10
+ // https://github.com/tc39/proposal-relative-indexing-method
11
+ exportTypedArrayMethod('at', function at(index) {
12
+ var O = aTypedArray(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
+ });
@@ -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');
@@ -4,11 +4,11 @@ var $ = require('../internals/export');
4
4
  var anObject = require('../internals/an-object');
5
5
  var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
6
6
 
7
- var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, arg) {
7
+ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
8
8
  var state = this;
9
9
  var iterator = state.iterator;
10
10
 
11
- return Promise.resolve(anObject(state.next.call(iterator, arg))).then(function (step) {
11
+ return Promise.resolve(anObject(state.next.apply(iterator, args))).then(function (step) {
12
12
  if (anObject(step).done) {
13
13
  state.done = true;
14
14
  return { done: true, value: undefined };
@@ -5,14 +5,14 @@ var anObject = require('../internals/an-object');
5
5
  var toPositiveInteger = require('../internals/to-positive-integer');
6
6
  var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
7
7
 
8
- var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, arg) {
8
+ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
9
9
  var state = this;
10
10
 
11
11
  return new Promise(function (resolve, reject) {
12
12
  var loop = function () {
13
13
  try {
14
14
  Promise.resolve(
15
- anObject(state.next.call(state.iterator, state.remaining ? undefined : arg))
15
+ anObject(state.next.apply(state.iterator, state.remaining ? [] : args))
16
16
  ).then(function (step) {
17
17
  try {
18
18
  if (anObject(step).done) {
@@ -5,14 +5,14 @@ var aFunction = require('../internals/a-function');
5
5
  var anObject = require('../internals/an-object');
6
6
  var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
7
7
 
8
- var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, arg) {
8
+ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
9
9
  var state = this;
10
10
  var filterer = state.filterer;
11
11
 
12
12
  return new Promise(function (resolve, reject) {
13
13
  var loop = function () {
14
14
  try {
15
- Promise.resolve(anObject(state.next.call(state.iterator, arg))).then(function (step) {
15
+ Promise.resolve(anObject(state.next.apply(state.iterator, args))).then(function (step) {
16
16
  try {
17
17
  if (anObject(step).done) {
18
18
  state.done = true;
@@ -4,17 +4,17 @@ var $ = require('../internals/export');
4
4
  var aFunction = require('../internals/a-function');
5
5
  var anObject = require('../internals/an-object');
6
6
  var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
7
- var getAsyncIteratorMethod = require('../internals/get-async-iterator-method');
7
+ var getAsyncIterator = require('../internals/get-async-iterator');
8
8
 
9
- var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, arg) {
9
+ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {
10
10
  var state = this;
11
11
  var mapper = state.mapper;
12
- var innerIterator, iteratorMethod;
12
+ var innerIterator;
13
13
 
14
14
  return new Promise(function (resolve, reject) {
15
15
  var outerLoop = function () {
16
16
  try {
17
- Promise.resolve(anObject(state.next.call(state.iterator, arg))).then(function (step) {
17
+ Promise.resolve(anObject(state.next.call(state.iterator))).then(function (step) {
18
18
  try {
19
19
  if (anObject(step).done) {
20
20
  state.done = true;
@@ -22,12 +22,9 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, arg) {
22
22
  } else {
23
23
  Promise.resolve(mapper(step.value)).then(function (mapped) {
24
24
  try {
25
- iteratorMethod = getAsyncIteratorMethod(mapped);
26
- if (iteratorMethod !== undefined) {
27
- state.innerIterator = innerIterator = anObject(iteratorMethod.call(mapped));
28
- state.innerNext = aFunction(innerIterator.next);
29
- return innerLoop();
30
- } reject(TypeError('.flatMap callback should return an iterable object'));
25
+ state.innerIterator = innerIterator = getAsyncIterator(mapped);
26
+ state.innerNext = aFunction(innerIterator.next);
27
+ return innerLoop();
31
28
  } catch (error2) { reject(error2); }
32
29
  }, reject);
33
30
  }
@@ -1,34 +1,39 @@
1
1
  // https://github.com/tc39/proposal-iterator-helpers
2
2
  var $ = require('../internals/export');
3
3
  var path = require('../internals/path');
4
- var aFunction = require('../internals/a-function');
5
4
  var anObject = require('../internals/an-object');
6
5
  var toObject = require('../internals/to-object');
7
6
  var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
8
- var getAsyncIteratorMethod = require('../internals/get-async-iterator-method');
7
+ var getAsyncIterator = require('../internals/get-async-iterator');
8
+ var getIterator = require('../internals/get-iterator');
9
+ var getIteratorMethod = require('../internals/get-iterator-method');
10
+ var getMethod = require('../internals/get-method');
11
+ var wellKnownSymbol = require('../internals/well-known-symbol');
12
+ var AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');
13
+
14
+ var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');
9
15
 
10
16
  var AsyncIterator = path.AsyncIterator;
11
17
 
12
- var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, arg, hasArg) {
13
- var step = anObject(this.next.apply(this.iterator, hasArg ? [arg] : []));
14
- var done = step.done;
15
- return Promise.resolve(step.value).then(function (value) {
16
- return { done: done, value: value };
17
- });
18
+ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
19
+ return anObject(this.next.apply(this.iterator, args));
18
20
  }, true);
19
21
 
20
22
  $({ target: 'AsyncIterator', stat: true }, {
21
23
  from: function from(O) {
22
24
  var object = toObject(O);
23
- var usingIterator = getAsyncIteratorMethod(object);
25
+ var usingIterator = getMethod(object[ASYNC_ITERATOR]);
24
26
  var iterator;
25
- if (usingIterator != null) {
26
- iterator = aFunction(usingIterator).call(object);
27
+ if (usingIterator !== undefined) {
28
+ iterator = getAsyncIterator(object, usingIterator);
27
29
  if (iterator instanceof AsyncIterator) return iterator;
28
- } else {
29
- iterator = object;
30
- } return new AsyncIteratorProxy({
31
- iterator: iterator
30
+ }
31
+ if (iterator === undefined) {
32
+ usingIterator = getIteratorMethod(object);
33
+ if (usingIterator !== undefined) return new AsyncFromSyncIterator(getIterator(object, usingIterator));
34
+ }
35
+ return new AsyncIteratorProxy({
36
+ iterator: iterator !== undefined ? iterator : object
32
37
  });
33
38
  }
34
39
  });
@@ -5,11 +5,11 @@ var aFunction = require('../internals/a-function');
5
5
  var anObject = require('../internals/an-object');
6
6
  var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
7
7
 
8
- var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, arg) {
8
+ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
9
9
  var state = this;
10
10
  var mapper = state.mapper;
11
11
 
12
- return Promise.resolve(anObject(state.next.call(state.iterator, arg))).then(function (step) {
12
+ return Promise.resolve(anObject(state.next.apply(state.iterator, args))).then(function (step) {
13
13
  if (anObject(step).done) {
14
14
  state.done = true;
15
15
  return { done: true, value: undefined };
@@ -5,7 +5,7 @@ var anObject = require('../internals/an-object');
5
5
  var toPositiveInteger = require('../internals/to-positive-integer');
6
6
  var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
7
7
 
8
- var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, arg) {
8
+ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
9
9
  var iterator = this.iterator;
10
10
  var returnMethod, result;
11
11
  if (!this.remaining--) {
@@ -18,7 +18,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, arg) {
18
18
  });
19
19
  }
20
20
  return result;
21
- } return this.next.call(iterator, arg);
21
+ } return this.next.apply(iterator, args);
22
22
  });
23
23
 
24
24
  $({ target: 'AsyncIterator', proto: true, real: true }, {
@@ -4,8 +4,8 @@ var $ = require('../internals/export');
4
4
  var anObject = require('../internals/an-object');
5
5
  var createIteratorProxy = require('../internals/iterator-create-proxy');
6
6
 
7
- var IteratorProxy = createIteratorProxy(function (arg) {
8
- var result = anObject(this.next.call(this.iterator, arg));
7
+ var IteratorProxy = createIteratorProxy(function (args) {
8
+ var result = anObject(this.next.apply(this.iterator, args));
9
9
  var done = this.done = !!result.done;
10
10
  if (!done) return [this.index++, result.value];
11
11
  });
@@ -5,7 +5,7 @@ var anObject = require('../internals/an-object');
5
5
  var toPositiveInteger = require('../internals/to-positive-integer');
6
6
  var createIteratorProxy = require('../internals/iterator-create-proxy');
7
7
 
8
- var IteratorProxy = createIteratorProxy(function (arg) {
8
+ var IteratorProxy = createIteratorProxy(function (args) {
9
9
  var iterator = this.iterator;
10
10
  var next = this.next;
11
11
  var result, done;
@@ -15,7 +15,7 @@ var IteratorProxy = createIteratorProxy(function (arg) {
15
15
  done = this.done = !!result.done;
16
16
  if (done) return;
17
17
  }
18
- result = anObject(next.call(iterator, arg));
18
+ result = anObject(next.apply(iterator, args));
19
19
  done = this.done = !!result.done;
20
20
  if (!done) return result.value;
21
21
  });
@@ -6,13 +6,13 @@ var anObject = require('../internals/an-object');
6
6
  var createIteratorProxy = require('../internals/iterator-create-proxy');
7
7
  var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
8
8
 
9
- var IteratorProxy = createIteratorProxy(function (arg) {
9
+ var IteratorProxy = createIteratorProxy(function (args) {
10
10
  var iterator = this.iterator;
11
11
  var filterer = this.filterer;
12
12
  var next = this.next;
13
13
  var result, done, value;
14
14
  while (true) {
15
- result = anObject(next.call(iterator, arg));
15
+ result = anObject(next.apply(iterator, args));
16
16
  done = this.done = !!result.done;
17
17
  if (done) return;
18
18
  value = result.value;
@@ -7,7 +7,7 @@ var getIteratorMethod = require('../internals/get-iterator-method');
7
7
  var createIteratorProxy = require('../internals/iterator-create-proxy');
8
8
  var iteratorClose = require('../internals/iterator-close');
9
9
 
10
- var IteratorProxy = createIteratorProxy(function (arg) {
10
+ var IteratorProxy = createIteratorProxy(function () {
11
11
  var iterator = this.iterator;
12
12
  var mapper = this.mapper;
13
13
  var result, mapped, iteratorMethod, innerIterator;
@@ -20,7 +20,7 @@ var IteratorProxy = createIteratorProxy(function (arg) {
20
20
  this.innerIterator = this.innerNext = null;
21
21
  }
22
22
 
23
- result = anObject(this.next.call(iterator, arg));
23
+ result = anObject(this.next.call(iterator));
24
24
 
25
25
  if (this.done = !!result.done) return;
26
26
 
@@ -34,8 +34,7 @@ var IteratorProxy = createIteratorProxy(function (arg) {
34
34
  this.innerIterator = innerIterator = anObject(iteratorMethod.call(mapped));
35
35
  this.innerNext = aFunction(innerIterator.next);
36
36
  } catch (error) {
37
- iteratorClose(iterator);
38
- throw error;
37
+ iteratorClose(iterator, 'throw', error);
39
38
  }
40
39
  }
41
40
  });
@@ -1,16 +1,16 @@
1
1
  // https://github.com/tc39/proposal-iterator-helpers
2
2
  var $ = require('../internals/export');
3
3
  var path = require('../internals/path');
4
- var aFunction = require('../internals/a-function');
5
4
  var anObject = require('../internals/an-object');
6
5
  var toObject = require('../internals/to-object');
7
6
  var createIteratorProxy = require('../internals/iterator-create-proxy');
7
+ var getIterator = require('../internals/get-iterator');
8
8
  var getIteratorMethod = require('../internals/get-iterator-method');
9
9
 
10
10
  var Iterator = path.Iterator;
11
11
 
12
- var IteratorProxy = createIteratorProxy(function (arg) {
13
- var result = anObject(this.next.call(this.iterator, arg));
12
+ var IteratorProxy = createIteratorProxy(function (args) {
13
+ var result = anObject(this.next.apply(this.iterator, args));
14
14
  var done = this.done = !!result.done;
15
15
  if (!done) return result.value;
16
16
  }, true);
@@ -21,7 +21,7 @@ $({ target: 'Iterator', stat: true }, {
21
21
  var usingIterator = getIteratorMethod(object);
22
22
  var iterator;
23
23
  if (usingIterator != null) {
24
- iterator = aFunction(usingIterator).call(object);
24
+ iterator = getIterator(object, usingIterator);
25
25
  if (iterator instanceof Iterator) return iterator;
26
26
  } else {
27
27
  iterator = object;
@@ -6,9 +6,9 @@ var anObject = require('../internals/an-object');
6
6
  var createIteratorProxy = require('../internals/iterator-create-proxy');
7
7
  var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
8
8
 
9
- var IteratorProxy = createIteratorProxy(function (arg) {
9
+ var IteratorProxy = createIteratorProxy(function (args) {
10
10
  var iterator = this.iterator;
11
- var result = anObject(this.next.call(iterator, arg));
11
+ var result = anObject(this.next.apply(iterator, args));
12
12
  var done = this.done = !!result.done;
13
13
  if (!done) return callWithSafeIterationClosing(iterator, this.mapper, result.value);
14
14
  });
@@ -6,13 +6,13 @@ var toPositiveInteger = require('../internals/to-positive-integer');
6
6
  var createIteratorProxy = require('../internals/iterator-create-proxy');
7
7
  var iteratorClose = require('../internals/iterator-close');
8
8
 
9
- var IteratorProxy = createIteratorProxy(function (arg) {
9
+ var IteratorProxy = createIteratorProxy(function (args) {
10
10
  var iterator = this.iterator;
11
11
  if (!this.remaining--) {
12
12
  this.done = true;
13
- return iteratorClose(iterator);
13
+ return iteratorClose(iterator, 'normal', undefined);
14
14
  }
15
- var result = anObject(this.next.call(iterator, arg));
15
+ var result = anObject(this.next.apply(iterator, args));
16
16
  var done = this.done = !!result.done;
17
17
  if (!done) return result.value;
18
18
  });
@@ -1,8 +1,2 @@
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
- });
1
+ // TODO: Remove from `core-js@4`
2
+ require('../modules/es.object.has-own');
@@ -11,6 +11,7 @@ var defineProperty = require('../internals/object-define-property').f;
11
11
  var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
12
12
  var redefineAll = require('../internals/redefine-all');
13
13
  var getIterator = require('../internals/get-iterator');
14
+ var getMethod = require('../internals/get-method');
14
15
  var iterate = require('../internals/iterate');
15
16
  var hostReportErrors = require('../internals/host-report-errors');
16
17
  var wellKnownSymbol = require('../internals/well-known-symbol');
@@ -20,10 +21,6 @@ var OBSERVABLE = wellKnownSymbol('observable');
20
21
  var getInternalState = InternalStateModule.get;
21
22
  var setInternalState = InternalStateModule.set;
22
23
 
23
- var getMethod = function (fn) {
24
- return fn == null ? undefined : aFunction(fn);
25
- };
26
-
27
24
  var cleanupSubscription = function (subscriptionState) {
28
25
  var cleanup = subscriptionState.cleanup;
29
26
  if (cleanup) {
@@ -1,24 +1,2 @@
1
- // TODO: disabled by default because of the conflict with another proposal
2
- 'use strict';
3
- var $ = require('../internals/export');
4
- var requireObjectCoercible = require('../internals/require-object-coercible');
5
- var toInteger = require('../internals/to-integer');
6
- var toLength = require('../internals/to-length');
7
- var toString = require('../internals/to-string');
8
- var fails = require('../internals/fails');
9
-
10
- var FORCED = fails(function () {
11
- return '𠮷'.at(0) !== '\uD842';
12
- });
13
-
14
- // `String.prototype.at` method
15
- // https://github.com/tc39/proposal-relative-indexing-method
16
- $({ target: 'String', proto: true, forced: FORCED }, {
17
- at: function at(index) {
18
- var S = toString(requireObjectCoercible(this));
19
- var len = toLength(S.length);
20
- var relativeIndex = toInteger(index);
21
- var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;
22
- return (k < 0 || k >= len) ? undefined : S.charAt(k);
23
- }
24
- });
1
+ // TODO: Remove from `core-js@4`
2
+ require('../modules/es.string.at-alternative');
@@ -1,17 +1,2 @@
1
- 'use strict';
2
- var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
3
- var toLength = require('../internals/to-length');
4
- var toInteger = require('../internals/to-integer');
5
-
6
- var aTypedArray = ArrayBufferViewCore.aTypedArray;
7
- var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
8
-
9
- // `%TypedArray%.prototype.at` method
10
- // https://github.com/tc39/proposal-relative-indexing-method
11
- exportTypedArrayMethod('at', function at(index) {
12
- var O = aTypedArray(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
- });
1
+ // TODO: Remove from `core-js@4`
2
+ require('../modules/es.typed-array.at');
@@ -143,7 +143,7 @@ var URLSearchParamsConstructor = function URLSearchParams(/* init */) {
143
143
  if (isObject(init)) {
144
144
  iteratorMethod = getIteratorMethod(init);
145
145
  if (typeof iteratorMethod === 'function') {
146
- iterator = iteratorMethod.call(init);
146
+ iterator = getIterator(init, iteratorMethod);
147
147
  next = iterator.next;
148
148
  while (!(step = next.call(iterator)).done) {
149
149
  entryIterator = getIterator(anObject(step.value));