(Constructor, NAME, value, DEFAULT)
| 496 | setToStringTag(Constructor, NAME + ' Iterator'); |
| 497 | } |
| 498 | function defineIterator(Constructor, NAME, value, DEFAULT){ |
| 499 | var proto = Constructor[PROTOTYPE] |
| 500 | , iter = get(proto, SYMBOL_ITERATOR) || get(proto, FF_ITERATOR) || (DEFAULT && get(proto, DEFAULT)) || value; |
| 501 | if(framework){ |
| 502 | // Define iterator |
| 503 | setIterator(proto, iter); |
| 504 | if(iter !== value){ |
| 505 | var iterProto = getPrototypeOf(iter.call(new Constructor)); |
| 506 | // Set @@toStringTag to native iterators |
| 507 | setToStringTag(iterProto, NAME + ' Iterator', true); |
| 508 | // FF fix |
| 509 | has(proto, FF_ITERATOR) && setIterator(iterProto, returnThis); |
| 510 | } |
| 511 | } |
| 512 | // Plug for library |
| 513 | Iterators[NAME] = iter; |
| 514 | // FF & v8 fix |
| 515 | Iterators[NAME + ' Iterator'] = returnThis; |
| 516 | return iter; |
| 517 | } |
| 518 | function defineStdIterators(Base, NAME, Constructor, next, DEFAULT, IS_SET){ |
| 519 | function createIter(kind){ |
| 520 | return function(){ |
no test coverage detected