| 'use strict'; | 
| var classof = require('../internals/classof'); | 
| var getMethod = require('../internals/get-method'); | 
| var isNullOrUndefined = require('../internals/is-null-or-undefined'); | 
| var Iterators = require('../internals/iterators'); | 
| var wellKnownSymbol = require('../internals/well-known-symbol'); | 
|   | 
| var ITERATOR = wellKnownSymbol('iterator'); | 
|   | 
| module.exports = function (it) { | 
|   if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR) | 
|     || getMethod(it, '@@iterator') | 
|     || Iterators[classof(it)]; | 
| }; |