es-iterator-helpers
Advanced tools
Comparing version 1.0.5 to 1.0.6
@@ -15,6 +15,5 @@ 'use strict'; | ||
var callBound = require('call-bind/callBound'); | ||
var SLOT = require('internal-slot'); | ||
var $concat = callBound('Array.prototype.concat'); | ||
var safeConcat = require('safe-array-concat'); | ||
@@ -38,3 +37,3 @@ var isString = function isString(slot) { | ||
} | ||
var internalSlotsList = $concat(extraSlots, ['[[GeneratorContext]]', '[[GeneratorBrand]]', '[[GeneratorState]]']); // step 3 | ||
var internalSlotsList = safeConcat(extraSlots, ['[[GeneratorContext]]', '[[GeneratorBrand]]', '[[GeneratorState]]']); // step 3 | ||
var generator = OrdinaryObjectCreate(proto, internalSlotsList); // steps 4, 6 | ||
@@ -41,0 +40,0 @@ SLOT.set(generator, '[[GeneratorBrand]]', generatorBrand); // step 5 |
@@ -8,11 +8,8 @@ 'use strict'; | ||
var Call = require('es-abstract/2022/Call'); | ||
// var CreateAsyncFromSyncIterator = require('es-abstract/2022/CreateAsyncFromSyncIterator'); | ||
var Get = require('es-abstract/2022/Get'); | ||
var GetIterator = require('es-abstract/2022/GetIterator'); | ||
var GetIteratorDirect = require('./GetIteratorDirect'); | ||
var IsCallable = require('es-abstract/2022/IsCallable'); | ||
var Type = require('es-abstract/2022/Type'); | ||
var hasSymbols = require('has-symbols/shams')(); | ||
module.exports = function GetIteratorFlattenable(obj, hint) { | ||
module.exports = function GetIteratorFlattenable(obj) { | ||
if (Type(obj) !== 'Object') { | ||
@@ -22,43 +19,20 @@ throw new $TypeError('obj must be an Object'); // step 1 | ||
var alreadyAsync = false; // step 2 | ||
var method = void undefined; // step 2 | ||
var method = void undefined; // step 3 | ||
// method = Get(obj, Symbol.iterator); // step 5.a | ||
method = function () { | ||
return GetIterator(obj); | ||
}; | ||
if (hint === 'async') { // step 4 | ||
method = hasSymbols && Symbol.asyncIterator && obj[Symbol.asyncIterator]; // step 4.a | ||
alreadyAsync = true; // step 4.b | ||
} | ||
if (!IsCallable(method)) { // step 5 | ||
// method = Get(obj, Symbol.iterator); // step 5.a | ||
method = function () { | ||
return GetIterator(obj); | ||
}; | ||
alreadyAsync = false; // step 5.b | ||
} | ||
var iterator; | ||
if (!IsCallable(method)) { // step 6 | ||
iterator = obj; // step 6.a | ||
alreadyAsync = true; // step 6.b | ||
} else { // step 7 | ||
iterator = Call(method, obj); // step 7.a | ||
if (!IsCallable(method)) { // step 3 | ||
iterator = obj; // step 3.a | ||
} else { // step 4 | ||
iterator = Call(method, obj); // step 4.a | ||
} | ||
if (Type(iterator) !== 'Object') { | ||
throw new $TypeError('iterator must be an Object'); // step 8 | ||
throw new $TypeError('iterator must be an Object'); // step 5 | ||
} | ||
var nextMethod = Get(iterator, 'next'); // step 9 | ||
if (!IsCallable(nextMethod)) { | ||
throw new $TypeError('nextMethod must be a function'); // step 10 | ||
} | ||
var iteratorRecord = { '[[Iterator]]': iterator, '[[NextMethod]]': nextMethod, '[[Done]]': false }; // step 11 | ||
if (hint === 'async' && !alreadyAsync) { // step 12 | ||
// return CreateAsyncFromSyncIterator(iteratorRecord); // step 12.a | ||
} | ||
return iteratorRecord; | ||
return GetIteratorDirect(iterator); // step 6 | ||
}; |
@@ -8,2 +8,10 @@ # Changelog | ||
## [v1.0.6](https://github.com/es-shims/iterator-helpers/compare/v1.0.5...v1.0.6) - 2023-04-20 | ||
### Commits | ||
- [Refactor] `GetIteratorFlattenable`: remove hint [`781fc7c`](https://github.com/es-shims/iterator-helpers/commit/781fc7c28615aaaef139cbcd9e6ade513419bea1) | ||
- [Refactor] `GetIteratorFlattenable`: use `GetIteratorDirect` [`026118b`](https://github.com/es-shims/iterator-helpers/commit/026118b8c884adaee5ab0eb12de838ef9abdbb6f) | ||
- [Refactor] use `safe-array-concat` [`1d985a4`](https://github.com/es-shims/iterator-helpers/commit/1d985a449be212523f05ba4a359a162931ddf3d3) | ||
## [v1.0.5](https://github.com/es-shims/iterator-helpers/compare/v1.0.4...v1.0.5) - 2023-03-22 | ||
@@ -10,0 +18,0 @@ |
@@ -21,3 +21,3 @@ 'use strict'; | ||
var iteratorRecord = GetIteratorFlattenable(O, 'sync'); // step 2 | ||
var iteratorRecord = GetIteratorFlattenable(O); // step 2 | ||
@@ -24,0 +24,0 @@ var hasInstance = OrdinaryHasInstance($Iterator, iteratorRecord['[[Iterator]]']); // step 3 |
@@ -61,3 +61,3 @@ 'use strict'; | ||
// yield mapped // step 6.b.vi | ||
innerIterator = GetIteratorFlattenable(mapped, 'sync'); // step 6.b.vi | ||
innerIterator = GetIteratorFlattenable(mapped); // step 6.b.vi | ||
} catch (e) { | ||
@@ -64,0 +64,0 @@ closeIfAbrupt(ThrowCompletion(e)); // steps 6.b.v, 6.b.vii |
{ | ||
"name": "es-iterator-helpers", | ||
"version": "1.0.5", | ||
"version": "1.0.6", | ||
"description": "An ESnext spec-compliant iterator helpers shim/polyfill/replacement that works as far down as ES3.", | ||
@@ -137,3 +137,4 @@ "main": "index.json", | ||
"internal-slot": "^1.0.5", | ||
"iterator.prototype": "^1.1.0" | ||
"iterator.prototype": "^1.1.0", | ||
"safe-array-concat": "^1.0.0" | ||
}, | ||
@@ -140,0 +141,0 @@ "devDependencies": { |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
135607
10
3232
+ Addedsafe-array-concat@^1.0.0