Please enable JavaScript to use RhodeCode Enterprise
Commit Description:
submission report
Commit Description:
submission report
'use strict' ;
var hasSymbols = require ( 'has-symbols' )();
var GetIntrinsic = require ( '../GetIntrinsic' );
var callBound = require ( './callBound' );
var $iterator = GetIntrinsic ( '%Symbol.iterator%' , true );
var $stringSlice = callBound ( 'String.prototype.slice' );
module . exports = function getIteratorMethod ( ES , iterable ) {
var usingIterator ;
if ( hasSymbols ) {
usingIterator = ES . GetMethod ( iterable , $iterator );
} else if ( ES . IsArray ( iterable )) {
usingIterator = function () {
var i = - 1 ;
var arr = this ; // eslint-disable-line no-invalid-this
return {
next : function () {
i += 1 ;
return {
done : i >= arr . length ,
value : arr [ i ]
};
}
};
};
} else if ( ES . Type ( iterable ) === 'String' ) {
usingIterator = function () {
var i = 0 ;
return {
next : function () {
var nextIndex = ES . AdvanceStringIndex ( iterable , i , true );
var value = $stringSlice ( iterable , i , nextIndex );
i = nextIndex ;
return {
done : nextIndex > iterable . length ,
value : value
};
}
};
};
}
return usingIterator ;
};
Site-wide shortcuts
/
Use quick search box
g h
Goto home page
g g
Goto my private gists page
g G
Goto my public gists page
n r
New repository page
n g
New gist page
Repositories
g s
Goto summary page
g c
Goto changelog page
g f
Goto files page
g F
Goto files page with file search activated
g p
Goto pull requests page
g o
Goto repository settings
g O
Goto repository permissions settings