diff options
Diffstat (limited to 'node_modules/core-js/modules/$.for-of.js')
-rw-r--r-- | node_modules/core-js/modules/$.for-of.js | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/node_modules/core-js/modules/$.for-of.js b/node_modules/core-js/modules/$.for-of.js new file mode 100644 index 000000000..0f2d8e974 --- /dev/null +++ b/node_modules/core-js/modules/$.for-of.js @@ -0,0 +1,19 @@ +var ctx = require('./$.ctx') + , call = require('./$.iter-call') + , isArrayIter = require('./$.is-array-iter') + , anObject = require('./$.an-object') + , toLength = require('./$.to-length') + , getIterFn = require('./core.get-iterator-method'); +module.exports = function(iterable, entries, fn, that){ + var iterFn = getIterFn(iterable) + , f = ctx(fn, that, entries ? 2 : 1) + , index = 0 + , length, step, iterator; + if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!'); + // fast case for arrays with default iterator + if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){ + entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); + } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){ + call(iterator, f, step.value, entries); + } +};
\ No newline at end of file |