Socket
Socket
Sign inDemoInstall

es-iterator-helpers

Package Overview
Dependencies
Maintainers
1
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

es-iterator-helpers - npm Package Compare versions

Comparing version 1.0.1 to 1.0.2

aos/IteratorClose.js

4

aos/GeneratorResumeAbrupt.js

@@ -36,2 +36,6 @@ 'use strict';

}
if (abruptCompletion.type() === 'return') {
// due to representing `GeneratorContext` as a function, we can't safely re-invoke it, so we can't support sending it a return completion
return CreateIterResultObject(value, true);
}

@@ -38,0 +42,0 @@ var genContext = SLOT.get(generator, '[[GeneratorContext]]'); // step 5

@@ -8,2 +8,11 @@ # Changelog

## [v1.0.2](https://github.com/es-shims/iterator-helpers/compare/v1.0.1...v1.0.2) - 2023-02-09
### Commits
- [Refactor] inline 2023 impls of Iterator AOs until es-abstract is published with them [`b9c80c5`](https://github.com/es-shims/iterator-helpers/commit/b9c80c5aba0deaaabef7e650fe7ec231fdc695e3)
- [Fix] ensure calling `.return` does not invoke the next iteration [`9e28ed5`](https://github.com/es-shims/iterator-helpers/commit/9e28ed5af44a660a0d2e80684cb9a4bf3d86e09a)
- [Fix] `map`: pass the proper index argument to the mapper [`125e3ca`](https://github.com/es-shims/iterator-helpers/commit/125e3cac192ef650a88f774a5a2dd9afe395a5b8)
- [Deps] update `internal-slot` [`43351b6`](https://github.com/es-shims/iterator-helpers/commit/43351b63545e3698f54daf5dc0652a7b2fb7cb28)
## [v1.0.1](https://github.com/es-shims/iterator-helpers/compare/v1.0.0...v1.0.1) - 2023-02-07

@@ -10,0 +19,0 @@

10

Iterator.prototype.drop/implementation.js

@@ -7,4 +7,4 @@ 'use strict';

var IteratorClose = require('es-abstract/2022/IteratorClose');
var IteratorStep = require('es-abstract/2022/IteratorStep');
var IteratorClose = require('../aos/IteratorClose');
var IteratorStep = require('../aos/IteratorStep');
var IteratorValue = require('es-abstract/2022/IteratorValue');

@@ -45,3 +45,3 @@ var ToIntegerOrInfinity = require('es-abstract/2022/ToIntegerOrInfinity');

next = IteratorStep(iterated['[[Iterator]]']); // step 6.b.ii
next = IteratorStep(iterated); // step 6.b.ii
if (!next) {

@@ -53,3 +53,3 @@ // return void undefined; // step 6.b.iii

// while (true) { // step 6.c
next = IteratorStep(iterated['[[Iterator]]']); // step 6.c.i
next = IteratorStep(iterated); // step 6.c.i
if (!next) {

@@ -65,3 +65,3 @@ // return void undefined; // step 6.c.ii

IteratorClose(
iterated['[[Iterator]]'],
iterated,
function () { throw e; }

@@ -68,0 +68,0 @@ );

@@ -9,4 +9,4 @@ 'use strict';

var IsCallable = require('es-abstract/2022/IsCallable');
var IteratorClose = require('es-abstract/2022/IteratorClose');
var IteratorStep = require('es-abstract/2022/IteratorStep');
var IteratorClose = require('../aos/IteratorClose');
var IteratorStep = require('../aos/IteratorStep');
var IteratorValue = require('es-abstract/2022/IteratorValue');

@@ -28,3 +28,3 @@ var ToBoolean = require('es-abstract/2022/ToBoolean');

while (true) { // step 4
var next = IteratorStep(iterated['[[Iterator]]']); // step 4.a
var next = IteratorStep(iterated); // step 4.a
if (!next) {

@@ -40,3 +40,3 @@ return true; // step 4.b

IteratorClose(
iterated['[[Iterator]]'],
iterated,
function () { throw e; }

@@ -49,3 +49,3 @@ );

return IteratorClose(
iterated['[[Iterator]]'],
iterated,
function () { return false; }

@@ -52,0 +52,0 @@ ); // step 4.f

@@ -9,4 +9,4 @@ 'use strict';

var IsCallable = require('es-abstract/2022/IsCallable');
var IteratorClose = require('es-abstract/2022/IteratorClose');
var IteratorStep = require('es-abstract/2022/IteratorStep');
var IteratorClose = require('../aos/IteratorClose');
var IteratorStep = require('../aos/IteratorStep');
var IteratorValue = require('es-abstract/2022/IteratorValue');

@@ -34,3 +34,3 @@ var ToBoolean = require('es-abstract/2022/ToBoolean');

while (true) { // step 3.b
var next = IteratorStep(iterated['[[Iterator]]']); // step 3.b.i
var next = IteratorStep(iterated); // step 3.b.i
if (!next) {

@@ -50,3 +50,3 @@ // return void undefined; // step 3.b.ii

// close iterator // step 3.b.v, 3.b.vii
IteratorClose(iterated['[[Iterator]]'], true);
IteratorClose(iterated, true);
throw e;

@@ -53,0 +53,0 @@ } finally {

@@ -9,4 +9,4 @@ 'use strict';

var IsCallable = require('es-abstract/2022/IsCallable');
var IteratorClose = require('es-abstract/2022/IteratorClose');
var IteratorStep = require('es-abstract/2022/IteratorStep');
var IteratorClose = require('../aos/IteratorClose');
var IteratorStep = require('../aos/IteratorStep');
var IteratorValue = require('es-abstract/2022/IteratorValue');

@@ -28,3 +28,3 @@ var ToBoolean = require('es-abstract/2022/ToBoolean');

while (true) { // step 4
var next = IteratorStep(iterated['[[Iterator]]']); // step 4.a
var next = IteratorStep(iterated); // step 4.a
if (!next) {

@@ -40,3 +40,3 @@ return void undefined; // step 4.b

IteratorClose(
iterated['[[Iterator]]'],
iterated,
function () { throw e; }

@@ -49,3 +49,3 @@ );

return IteratorClose(
iterated['[[Iterator]]'],
iterated,
function () { return value; } // eslint-disable-line no-loop-func

@@ -52,0 +52,0 @@ ); // step 4.f

@@ -9,4 +9,4 @@ 'use strict';

var IsCallable = require('es-abstract/2022/IsCallable');
var IteratorClose = require('es-abstract/2022/IteratorClose');
var IteratorStep = require('es-abstract/2022/IteratorStep');
var IteratorClose = require('../aos/IteratorClose');
var IteratorStep = require('../aos/IteratorStep');
var IteratorValue = require('es-abstract/2022/IteratorValue');

@@ -33,3 +33,3 @@

// while (true) { // step 3.b
var next = IteratorStep(iterated['[[Iterator]]']); // step 3.b.i
var next = IteratorStep(iterated); // step 3.b.i
if (!next) {

@@ -49,3 +49,3 @@ // return void undefined; // step 3.b.ii

IteratorClose(
iterated['[[Iterator]]'],
iterated,
function () { throw e; }

@@ -57,6 +57,6 @@ ); // steps 3.b.v, 3.b.vii

try {
var innerNext = IteratorStep(innerIterator['[[Iterator]]']); // step 3.b.ix.1
var innerNext = IteratorStep(innerIterator); // step 3.b.ix.1
} catch (e) {
IteratorClose(
iterated['[[Iterator]]'],
iterated,
function () { throw e; }

@@ -73,3 +73,3 @@ ); // step 3.b.ix.2

IteratorClose(
iterated['[[Iterator]]'],
iterated,
function () { throw e; }

@@ -76,0 +76,0 @@ ); // step 3.b.ix.4.b

@@ -9,4 +9,4 @@ 'use strict';

var IsCallable = require('es-abstract/2022/IsCallable');
var IteratorClose = require('es-abstract/2022/IteratorClose');
var IteratorStep = require('es-abstract/2022/IteratorStep');
var IteratorClose = require('../aos/IteratorClose');
var IteratorStep = require('../aos/IteratorStep');
var IteratorValue = require('es-abstract/2022/IteratorValue');

@@ -27,3 +27,3 @@

while (true) { // step 4
var next = IteratorStep(iterated['[[Iterator]]']); // step 4.a
var next = IteratorStep(iterated); // step 4.a
if (!next) {

@@ -37,3 +37,3 @@ return void undefined; // step 4.b

IteratorClose(
iterated['[[Iterator]]'],
iterated,
function () { throw e; }

@@ -40,0 +40,0 @@ ); // steps 4.e

@@ -9,4 +9,4 @@ 'use strict';

var IsCallable = require('es-abstract/2022/IsCallable');
var IteratorClose = require('es-abstract/2022/IteratorClose');
var IteratorStep = require('es-abstract/2022/IteratorStep');
var IteratorClose = require('../aos/IteratorClose');
var IteratorStep = require('../aos/IteratorStep');
var IteratorValue = require('es-abstract/2022/IteratorValue');

@@ -29,6 +29,8 @@

var sentinel = {};
var counter = 0; // step 3.a
var closure = function () {
var counter = 0; // step 3.a
// while (true) { // step 3.b
var next = IteratorStep(iterated['[[Iterator]]']); // step 3.b.i
var next = IteratorStep(iterated); // step 3.b.i
// console.log({counter, next})
if (!next) {

@@ -47,3 +49,3 @@ // return void undefined; // step 3.b.ii

IteratorClose(
iterated['[[Iterator]]'],
iterated,
function () { throw e; }

@@ -50,0 +52,0 @@ );

@@ -9,4 +9,4 @@ 'use strict';

var IsCallable = require('es-abstract/2022/IsCallable');
var IteratorClose = require('es-abstract/2022/IteratorClose');
var IteratorStep = require('es-abstract/2022/IteratorStep');
var IteratorClose = require('../aos/IteratorClose');
var IteratorStep = require('../aos/IteratorStep');
var IteratorValue = require('es-abstract/2022/IteratorValue');

@@ -27,3 +27,3 @@

if (arguments.length < 2) { // step 3
next = IteratorStep(iterated['[[Iterator]]']); // step 3.a
next = IteratorStep(iterated); // step 3.a
if (!next) {

@@ -41,3 +41,3 @@ throw new $TypeError('Reduce of empty iterator with no initial value'); // step 3.b

while (true) { // step 5
next = IteratorStep(iterated['[[Iterator]]']); // step 5.a
next = IteratorStep(iterated); // step 5.a
if (!next) {

@@ -53,3 +53,3 @@ return accumulator; // step 5.b

IteratorClose(
iterated['[[Iterator]]'],
iterated,
function () { throw e; }

@@ -56,0 +56,0 @@ );

@@ -9,4 +9,4 @@ 'use strict';

var IsCallable = require('es-abstract/2022/IsCallable');
var IteratorClose = require('es-abstract/2022/IteratorClose');
var IteratorStep = require('es-abstract/2022/IteratorStep');
var IteratorClose = require('../aos/IteratorClose');
var IteratorStep = require('../aos/IteratorStep');
var IteratorValue = require('es-abstract/2022/IteratorValue');

@@ -28,3 +28,3 @@ var ToBoolean = require('es-abstract/2022/ToBoolean');

while (true) { // step 4
var next = IteratorStep(iterated['[[Iterator]]']); // step 4.a
var next = IteratorStep(iterated); // step 4.a
if (!next) {

@@ -40,3 +40,3 @@ return false; // step 4.b

IteratorClose(
iterated['[[Iterator]]'],
iterated,
function () { throw e; }

@@ -49,3 +49,3 @@ );

return IteratorClose(
iterated['[[Iterator]]'],
iterated,
function () { return true; }

@@ -52,0 +52,0 @@ ); // step 4.f

@@ -7,4 +7,4 @@ 'use strict';

var IteratorClose = require('es-abstract/2022/IteratorClose');
var IteratorStep = require('es-abstract/2022/IteratorStep');
var IteratorClose = require('../aos/IteratorClose');
var IteratorStep = require('../aos/IteratorStep');
var IteratorValue = require('es-abstract/2022/IteratorValue');

@@ -50,3 +50,3 @@ var ToIntegerOrInfinity = require('es-abstract/2022/ToIntegerOrInfinity');

var next = IteratorStep(iterated['[[Iterator]]']); // step 6.b.iii
var next = IteratorStep(iterated); // step 6.b.iii
if (!next) {

@@ -53,0 +53,0 @@ // return void undefined; // step 6.b.iv

'use strict';
var IteratorStep = require('es-abstract/2022/IteratorStep');
var IteratorStep = require('../aos/IteratorStep');
var IteratorValue = require('es-abstract/2022/IteratorValue');

@@ -19,3 +19,3 @@

while (true) { // step 3
var next = IteratorStep(iterated['[[Iterator]]']); // step 3.a
var next = IteratorStep(iterated); // step 3.a
if (!next) {

@@ -22,0 +22,0 @@ return items; // step 3.b

{
"name": "es-iterator-helpers",
"version": "1.0.1",
"version": "1.0.2",
"description": "An ESnext spec-compliant iterator helpers shim/polyfill/replacement that works as far down as ES3.",

@@ -136,3 +136,3 @@ "main": "index.json",

"has-symbols": "^1.0.3",
"internal-slot": "^1.0.4",
"internal-slot": "^1.0.5",
"iterator.prototype": "^1.1.0"

@@ -139,0 +139,0 @@ },

@@ -53,7 +53,7 @@ 'use strict';

return {
done: done,
done: !!done,
value: sentinel
};
} finally {
done = true;
done = done === false ? null : true;
}

@@ -71,3 +71,3 @@ }

}),
[fakeIterator],
[fakeIterator, fakeIterator],
t,

@@ -78,3 +78,3 @@ 'fake iterator, mapped, runs as expected'

result,
{ value: sentinel, counter: 0, receiver: undefined, args: 2 },
{ value: sentinel, counter: 1, receiver: undefined, args: 2 },
'callback is called with the correct arguments'

@@ -81,0 +81,0 @@ );

@@ -21,1 +21,51 @@ 'use strict';

});
test('integration', function (t) {
var seenMapEveryMap = [];
var seenMapEveryEvery = [];
var mapEveryResult = Iterator.from([1, 2, 3, 4, 5]).map(function (x) {
seenMapEveryMap.push(x);
return x * x;
}).every(function (x) {
seenMapEveryEvery.push(x);
return x < 10;
});
t.equal(mapEveryResult, false, 'map + every: every predicate returned false nonzero times');
t.deepEqual(seenMapEveryMap, [1, 2, 3, 4], 'map + every, map: all values are seen until after the first one that is > 10 when squared');
t.deepEqual(seenMapEveryEvery, [1, 4, 9, 16], 'map + every, every: all values are seen until after the first one that is > 10 when squared');
var seenMapSomeMap = [];
var seenMapSomeSome = [];
var mapSomeResult = Iterator.from([1, 2, 3, 4, 5]).map(function (x) {
seenMapSomeMap.push(x);
return x * x;
}).some(function (x) {
seenMapSomeSome.push(x);
return x > 10;
});
t.equal(mapSomeResult, true, 'map + some: some predicate returned true nonzero times');
t.deepEqual(seenMapSomeMap, [1, 2, 3, 4], 'map + some, map: all values are seen until after the first one that is > 10 when squared');
t.deepEqual(seenMapSomeSome, [1, 4, 9, 16], 'map + some, some: all values are seen until after the first one that is > 10 when squared');
var seenMapFind = [];
var mapFindResult = Iterator.from([1, 2, 3, 4, 5]).map(function (x) {
seenMapFind.push(x);
return x * x;
}).find(function (x) {
return x > 10;
});
t.equal(mapFindResult, 16, 'map + find: find found the first mapped value over 10');
t.deepEqual(seenMapFind, [1, 2, 3, 4], 'map + find: all values are seen until after the first one that is > 10 when squared');
var seenFilterEvery = [];
var filterEveryResult = Iterator.from([1, 2, 3, 4, 5]).filter(function (x) {
seenFilterEvery.push(x);
return x;
}).every(function (x) {
return x <= 3;
});
t.equal(filterEveryResult, false, 'filter + every: every predicate returned false nonzero times');
t.deepEqual(seenMapFind, [1, 2, 3, 4], 'filter + every: all values are seen until after the first one that is > 10 when squared');
t.end();
});
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc