core-js-pure 3.16.3 → 3.16.4

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 (32) hide show
  1. package/features/bigint/index.js +1 -0
  2. package/features/bigint/range.js +1 -0
  3. package/features/number/index.js +1 -0
  4. package/internals/array-from.js +2 -1
  5. package/internals/async-from-sync-iterator.js +60 -0
  6. package/internals/async-iterator-create-proxy.js +30 -26
  7. package/internals/call-with-safe-iteration-closing.js +1 -2
  8. package/internals/get-async-iterator.js +15 -0
  9. package/internals/get-iterator.js +2 -2
  10. package/internals/get-method.js +7 -0
  11. package/internals/iterate.js +4 -4
  12. package/internals/iterator-close.js +17 -4
  13. package/internals/iterator-create-proxy.js +16 -17
  14. package/internals/shared.js +1 -1
  15. package/modules/esnext.async-iterator.as-indexed-pairs.js +2 -2
  16. package/modules/esnext.async-iterator.drop.js +2 -2
  17. package/modules/esnext.async-iterator.filter.js +2 -2
  18. package/modules/esnext.async-iterator.flat-map.js +7 -10
  19. package/modules/esnext.async-iterator.from.js +20 -15
  20. package/modules/esnext.async-iterator.map.js +2 -2
  21. package/modules/esnext.async-iterator.take.js +2 -2
  22. package/modules/esnext.iterator.as-indexed-pairs.js +2 -2
  23. package/modules/esnext.iterator.drop.js +2 -2
  24. package/modules/esnext.iterator.filter.js +2 -2
  25. package/modules/esnext.iterator.flat-map.js +3 -4
  26. package/modules/esnext.iterator.from.js +4 -4
  27. package/modules/esnext.iterator.map.js +2 -2
  28. package/modules/esnext.iterator.take.js +3 -3
  29. package/modules/esnext.observable.js +1 -4
  30. package/modules/web.url-search-params.js +1 -1
  31. package/package.json +2 -2
  32. package/internals/get-async-iterator-method.js +0 -9
@@ -1,3 +1,4 @@
1
+ require('../../modules/es.object.to-string');
1
2
  require('../../modules/esnext.bigint.range');
2
3
  var BigInt = require('../../internals/path').BigInt;
3
4
 
@@ -1,3 +1,4 @@
1
+ require('../../modules/es.object.to-string');
1
2
  require('../../modules/esnext.bigint.range');
2
3
  var BigInt = require('../../internals/path').BigInt;
3
4
 
@@ -2,5 +2,6 @@ var parent = require('../../stable/number');
2
2
 
3
3
  module.exports = parent;
4
4
 
5
+ require('../../modules/es.object.to-string');
5
6
  require('../../modules/esnext.number.from-string');
6
7
  require('../../modules/esnext.number.range');
@@ -5,6 +5,7 @@ var callWithSafeIterationClosing = require('../internals/call-with-safe-iteratio
5
5
  var isArrayIteratorMethod = require('../internals/is-array-iterator-method');
6
6
  var toLength = require('../internals/to-length');
7
7
  var createProperty = require('../internals/create-property');
8
+ var getIterator = require('../internals/get-iterator');
8
9
  var getIteratorMethod = require('../internals/get-iterator-method');
9
10
 
10
11
  // `Array.from` method implementation
@@ -21,7 +22,7 @@ module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undef
21
22
  if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);
22
23
  // if the target is not iterable or it's an array with the default iterator - use a simple case
23
24
  if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {
24
- iterator = iteratorMethod.call(O);
25
+ iterator = getIterator(O, iteratorMethod);
25
26
  next = iterator.next;
26
27
  result = new C();
27
28
  for (;!(step = next.call(iterator)).done; index++) {
@@ -0,0 +1,60 @@
1
+ 'use strict';
2
+ var path = require('../internals/path');
3
+ var anObject = require('../internals/an-object');
4
+ var create = require('../internals/object-create');
5
+ var getMethod = require('../internals/get-method');
6
+ var redefineAll = require('../internals/redefine-all');
7
+ var InternalStateModule = require('../internals/internal-state');
8
+ var getBuiltIn = require('../internals/get-built-in');
9
+
10
+ var Promise = getBuiltIn('Promise');
11
+
12
+ var setInternalState = InternalStateModule.set;
13
+ var getInternalState = InternalStateModule.get;
14
+
15
+ var asyncFromSyncIteratorContinuation = function (result, resolve, reject) {
16
+ var done = result.done;
17
+ Promise.resolve(result.value).then(function (value) {
18
+ resolve({ done: done, value: value });
19
+ }, reject);
20
+ };
21
+
22
+ var AsyncFromSyncIterator = function AsyncIterator(iterator) {
23
+ setInternalState(this, {
24
+ iterator: anObject(iterator),
25
+ next: iterator.next
26
+ });
27
+ };
28
+
29
+ AsyncFromSyncIterator.prototype = redefineAll(create(path.AsyncIterator.prototype), {
30
+ next: function next(arg) {
31
+ var state = getInternalState(this);
32
+ var hasArg = !!arguments.length;
33
+ return new Promise(function (resolve, reject) {
34
+ var result = anObject(state.next.apply(state.iterator, hasArg ? [arg] : []));
35
+ asyncFromSyncIteratorContinuation(result, resolve, reject);
36
+ });
37
+ },
38
+ 'return': function (arg) {
39
+ var iterator = getInternalState(this).iterator;
40
+ var hasArg = !!arguments.length;
41
+ return new Promise(function (resolve, reject) {
42
+ var $return = getMethod(iterator['return']);
43
+ if ($return === undefined) return resolve({ done: true, value: arg });
44
+ var result = anObject($return.apply(iterator, hasArg ? [arg] : []));
45
+ asyncFromSyncIteratorContinuation(result, resolve, reject);
46
+ });
47
+ },
48
+ 'throw': function (arg) {
49
+ var iterator = getInternalState(this).iterator;
50
+ var hasArg = !!arguments.length;
51
+ return new Promise(function (resolve, reject) {
52
+ var $throw = getMethod(iterator['throw']);
53
+ if ($throw === undefined) return reject(arg);
54
+ var result = anObject($throw.apply(iterator, hasArg ? [arg] : []));
55
+ asyncFromSyncIteratorContinuation(result, resolve, reject);
56
+ });
57
+ }
58
+ });
59
+
60
+ module.exports = AsyncFromSyncIterator;
@@ -16,42 +16,46 @@ var getInternalState = InternalStateModule.get;
16
16
 
17
17
  var TO_STRING_TAG = wellKnownSymbol('toStringTag');
18
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
19
  module.exports = function (nextHandler, IS_ITERATOR) {
36
20
  var AsyncIteratorProxy = function AsyncIterator(state) {
37
21
  state.next = aFunction(state.iterator.next);
38
22
  state.done = false;
23
+ state.ignoreArgument = !IS_ITERATOR;
39
24
  setInternalState(this, state);
40
25
  };
41
26
 
42
27
  AsyncIteratorProxy.prototype = redefineAll(create(path.AsyncIterator.prototype), {
43
28
  next: function next(arg) {
44
- var state = getInternalState(this);
45
- var hasArg = !!arguments.length;
46
- if (state.done) return Promise.resolve({ done: true, value: undefined });
47
- try {
48
- return Promise.resolve(anObject(nextHandler.call(state, Promise, hasArg ? arg : undefined, hasArg)));
49
- } catch (error) {
50
- return Promise.reject(error);
51
- }
29
+ var that = this;
30
+ var hasArgument = !!arguments.length;
31
+ return new Promise(function (resolve) {
32
+ var state = getInternalState(that);
33
+ var args = hasArgument ? [state.ignoreArgument ? undefined : arg] : IS_ITERATOR ? [] : [undefined];
34
+ state.ignoreArgument = false;
35
+ resolve(state.done ? { done: true, value: undefined } : anObject(nextHandler.call(state, Promise, args)));
36
+ });
37
+ },
38
+ 'return': function (value) {
39
+ var that = this;
40
+ return new Promise(function (resolve, reject) {
41
+ var iterator = getInternalState(that).iterator;
42
+ var $$return = iterator['return'];
43
+ if ($$return === undefined) return resolve({ done: true, value: value });
44
+ Promise.resolve($$return.call(iterator, value)).then(function (result) {
45
+ anObject(result);
46
+ resolve({ done: true, value: value });
47
+ }, reject);
48
+ });
52
49
  },
53
- 'return': $return,
54
- 'throw': $throw
50
+ 'throw': function (value) {
51
+ var that = this;
52
+ return new Promise(function (resolve, reject) {
53
+ var iterator = getInternalState(that).iterator;
54
+ var $$throw = iterator['throw'];
55
+ if ($$throw === undefined) return reject(value);
56
+ resolve($$throw.call(iterator, value));
57
+ });
58
+ }
55
59
  });
56
60
 
57
61
  if (!IS_ITERATOR) {
@@ -6,7 +6,6 @@ module.exports = function (iterator, fn, value, ENTRIES) {
6
6
  try {
7
7
  return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);
8
8
  } catch (error) {
9
- iteratorClose(iterator);
10
- throw error;
9
+ iteratorClose(iterator, 'throw', error);
11
10
  }
12
11
  };
@@ -0,0 +1,15 @@
1
+ var AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');
2
+ var aFunction = require('../internals/a-function');
3
+ var anObject = require('../internals/an-object');
4
+ var getIterator = require('../internals/get-iterator');
5
+ var getMethod = require('../internals/get-method');
6
+ var wellKnownSymbol = require('../internals/well-known-symbol');
7
+
8
+ var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');
9
+
10
+ module.exports = function (it, usingIterator) {
11
+ var method = arguments.length < 2 ? getMethod(it[ASYNC_ITERATOR]) : usingIterator;
12
+ if (method === undefined) {
13
+ return new AsyncFromSyncIterator(getIterator(it));
14
+ } return anObject(aFunction(method).call(it));
15
+ };
@@ -1,8 +1,8 @@
1
1
  var anObject = require('../internals/an-object');
2
2
  var getIteratorMethod = require('../internals/get-iterator-method');
3
3
 
4
- module.exports = function (it) {
5
- var iteratorMethod = getIteratorMethod(it);
4
+ module.exports = function (it, usingIterator) {
5
+ var iteratorMethod = arguments.length < 2 ? getIteratorMethod(it) : usingIterator;
6
6
  if (typeof iteratorMethod != 'function') {
7
7
  throw TypeError(String(it) + ' is not iterable');
8
8
  } return anObject(iteratorMethod.call(it));
@@ -0,0 +1,7 @@
1
+ var aFunction = require('../internals/a-function');
2
+
3
+ // `GetMethod` abstract operation
4
+ // https://tc39.es/ecma262/#sec-getmethod
5
+ module.exports = function (fn) {
6
+ return fn == null ? undefined : aFunction(fn);
7
+ };
@@ -2,6 +2,7 @@ var anObject = require('../internals/an-object');
2
2
  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
+ var getIterator = require('../internals/get-iterator');
5
6
  var getIteratorMethod = require('../internals/get-iterator-method');
6
7
  var iteratorClose = require('../internals/iterator-close');
7
8
 
@@ -19,7 +20,7 @@ module.exports = function (iterable, unboundFunction, options) {
19
20
  var iterator, iterFn, index, length, result, next, step;
20
21
 
21
22
  var stop = function (condition) {
22
- if (iterator) iteratorClose(iterator);
23
+ if (iterator) iteratorClose(iterator, 'return', condition);
23
24
  return new Result(true, condition);
24
25
  };
25
26
 
@@ -42,7 +43,7 @@ module.exports = function (iterable, unboundFunction, options) {
42
43
  if (result && result instanceof Result) return result;
43
44
  } return new Result(false);
44
45
  }
45
- iterator = iterFn.call(iterable);
46
+ iterator = getIterator(iterable, iterFn);
46
47
  }
47
48
 
48
49
  next = iterator.next;
@@ -50,8 +51,7 @@ module.exports = function (iterable, unboundFunction, options) {
50
51
  try {
51
52
  result = callFn(step.value);
52
53
  } catch (error) {
53
- iteratorClose(iterator);
54
- throw error;
54
+ iteratorClose(iterator, 'throw', error);
55
55
  }
56
56
  if (typeof result == 'object' && result && result instanceof Result) return result;
57
57
  } return new Result(false);
@@ -1,8 +1,21 @@
1
1
  var anObject = require('../internals/an-object');
2
2
 
3
- module.exports = function (iterator) {
4
- var returnMethod = iterator['return'];
5
- if (returnMethod !== undefined) {
6
- return anObject(returnMethod.call(iterator)).value;
3
+ module.exports = function (iterator, kind, value) {
4
+ var innerResult, innerError;
5
+ anObject(iterator);
6
+ try {
7
+ innerResult = iterator['return'];
8
+ if (innerResult === undefined) {
9
+ if (kind === 'throw') throw value;
10
+ return value;
11
+ }
12
+ innerResult = innerResult.call(iterator);
13
+ } catch (error) {
14
+ innerError = true;
15
+ innerResult = error;
7
16
  }
17
+ if (kind === 'throw') throw value;
18
+ if (innerError) throw innerResult;
19
+ anObject(innerResult);
20
+ return value;
8
21
  };
@@ -13,34 +13,33 @@ var getInternalState = InternalStateModule.get;
13
13
 
14
14
  var TO_STRING_TAG = wellKnownSymbol('toStringTag');
15
15
 
16
- var $return = function (value) {
17
- var iterator = getInternalState(this).iterator;
18
- var $$return = iterator['return'];
19
- return $$return === undefined ? { done: true, value: value } : anObject($$return.call(iterator, value));
20
- };
21
-
22
- var $throw = function (value) {
23
- var iterator = getInternalState(this).iterator;
24
- var $$throw = iterator['throw'];
25
- if ($$throw === undefined) throw value;
26
- return $$throw.call(iterator, value);
27
- };
28
-
29
16
  module.exports = function (nextHandler, IS_ITERATOR) {
30
17
  var IteratorProxy = function Iterator(state) {
31
18
  state.next = aFunction(state.iterator.next);
32
19
  state.done = false;
20
+ state.ignoreArg = !IS_ITERATOR;
33
21
  setInternalState(this, state);
34
22
  };
35
23
 
36
24
  IteratorProxy.prototype = redefineAll(create(path.Iterator.prototype), {
37
- next: function next() {
25
+ next: function next(arg) {
38
26
  var state = getInternalState(this);
39
- var result = state.done ? undefined : nextHandler.apply(state, arguments);
27
+ var args = arguments.length ? [state.ignoreArg ? undefined : arg] : IS_ITERATOR ? [] : [undefined];
28
+ state.ignoreArg = false;
29
+ var result = state.done ? undefined : nextHandler.call(state, args);
40
30
  return { done: state.done, value: result };
41
31
  },
42
- 'return': $return,
43
- 'throw': $throw
32
+ 'return': function (value) {
33
+ var iterator = getInternalState(this).iterator;
34
+ var $$return = iterator['return'];
35
+ return { done: true, value: $$return === undefined ? value : anObject($$return.call(iterator, value)).value };
36
+ },
37
+ 'throw': function (value) {
38
+ var iterator = getInternalState(this).iterator;
39
+ var $$throw = iterator['throw'];
40
+ if ($$throw === undefined) throw value;
41
+ return $$throw.call(iterator, value);
42
+ }
44
43
  });
45
44
 
46
45
  if (!IS_ITERATOR) {
@@ -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.3',
7
+ version: '3.16.4',
8
8
  mode: IS_PURE ? 'pure' : 'global',
9
9
  copyright: '© 2021 Denis Pushkarev (zloirock.ru)'
10
10
  });
@@ -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, 'return', 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
  });
@@ -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) {
@@ -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));
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "core-js-pure",
3
3
  "description": "Standard library",
4
- "version": "3.16.3",
4
+ "version": "3.16.4",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/zloirock/core-js.git"
@@ -54,5 +54,5 @@
54
54
  "scripts": {
55
55
  "postinstall": "node -e \"try{require('./postinstall')}catch(e){}\""
56
56
  },
57
- "gitHead": "390238278109a4517e438c339a22bcbadd87362d"
57
+ "gitHead": "eaf15afc85003c336f71c113b886aaf6ecb2a807"
58
58
  }
@@ -1,9 +0,0 @@
1
- var getIteratorMethod = require('../internals/get-iterator-method');
2
- var wellKnownSymbol = require('../internals/well-known-symbol');
3
-
4
- var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');
5
-
6
- module.exports = function (it) {
7
- var method = it[ASYNC_ITERATOR];
8
- return method === undefined ? getIteratorMethod(it) : method;
9
- };