@@ -9,10 +9,8 @@ var $Set = require('es-set/polyfill')();
99var Call = require ( 'es-abstract/2024/Call' ) ;
1010var GetIteratorFromMethod = require ( 'es-abstract/2024/GetIteratorFromMethod' ) ;
1111var GetSetRecord = require ( './aos/GetSetRecord' ) ;
12- var IteratorStep = require ( 'es-abstract/2024/IteratorStep' ) ;
13- var IteratorValue = require ( 'es-abstract/2024/IteratorValue' ) ;
12+ var IteratorStepValue = require ( 'es-abstract/2024/IteratorStepValue' ) ;
1413var SetDataHas = require ( './aos/SetDataHas' ) ;
15- var SetDataSize = require ( './aos/SetDataSize' ) ;
1614var ToBoolean = require ( 'es-abstract/2024/ToBoolean' ) ;
1715
1816var forEach = require ( 'es-abstract/helpers/forEach' ) ;
@@ -24,6 +22,7 @@ var isSet = require('is-set');
2422var tools = require ( 'es-set/tools' ) ;
2523var $setForEach = tools . forEach ;
2624var $setAdd = tools . add ;
25+ var $setSize = tools . size ;
2726
2827var $push = callBound ( 'Array.prototype.push' ) ;
2928var $setHas = callBind ( $Set . prototype . has ) ;
@@ -40,7 +39,7 @@ module.exports = function intersection(other) {
4039
4140 var resultSetData = [ ] ; // step 4
4241
43- var thisSize = SetDataSize ( O ) ; // step 5.a
42+ var thisSize = $setSize ( O ) ; // SetDataSize(O.[[SetData]] ); // step 5.a
4443 if ( thisSize <= otherRec [ '[[Size]]' ] ) { // step 5
4544 var index = 0 ; // step 5.b
4645 $setForEach ( O , function ( e ) {
@@ -58,19 +57,17 @@ module.exports = function intersection(other) {
5857 } ) ;
5958 } else { // step 6
6059 var keysIter = GetIteratorFromMethod ( otherRec [ '[[Set]]' ] , otherRec [ '[[Keys]]' ] ) ; // step 6.a
61- var next = true ; // step 6.b
62- while ( next ) { // step 6.c
63- next = IteratorStep ( keysIter ) ; // step 6.c.i
64- if ( next ) { // step 6.c.ii
65- var nextValue = IteratorValue ( next ) ; // step 6.c.ii.1
66-
67- if ( nextValue === 0 ) { // step 6.c.ii.2
68- nextValue = + 0 ;
60+ var next ; // step 6.b
61+ while ( ! keysIter [ '[[Done]]' ] ) { // step 6.c
62+ next = IteratorStepValue ( keysIter ) ; // step 6.c.i
63+ if ( ! keysIter [ '[[Done]]' ] ) { // step 6.c.ii
64+ if ( next === 0 ) { // step 6.c.ii.1
65+ next = + 0 ;
6966 }
70- var alreadyInResult = SetDataHas ( resultSetData , nextValue ) ; // step 6.c.ii.4
71- var inThis = $setHas ( O , nextValue ) ; // step 6.c.ii.5
72- if ( ! alreadyInResult && inThis ) { // step 6.c.ii.6
73- $push ( resultSetData , nextValue ) ; // step 6.c.ii.6 .a
67+ var alreadyInResult = SetDataHas ( resultSetData , next ) ; // step 6.c.ii.3
68+ var inThis = $setHas ( O , next ) ; // step 6.c.ii.4
69+ if ( ! alreadyInResult && inThis ) { // step 6.c.ii.5
70+ $push ( resultSetData , next ) ; // step 6.c.ii.5 .a
7471 }
7572 }
7673 }
0 commit comments