nl_tokens: ES6 section 22 . 1 . 5 . 2 . 1 %ArrayIteratorPrototype% . next ( )
pl_tokens: function ArrayIteratorNext ( ) { var iterator = this ; var value = UNDEFINED ; var done = true ; if ( ! IS_RECEIVER ( iterator ) || ! HAS_DEFINED_PRIVATE ( iterator , arrayIteratorNextIndexSymbol ) ) { throw MakeTypeError ( kIncompatibleMethodReceiver , 'Array Iterator.prototype.next' , this ) ; } var array = GET_PRIVATE ( iterator , arrayIteratorObjectSymbol ) ; if ( ! IS_UNDEFINED ( array ) ) { var index = GET_PRIVATE ( iterator , arrayIteratorNextIndexSymbol ) ; var itemKind = GET_PRIVATE ( iterator , arrayIterationKindSymbol ) ; var length = TO_UINT32 ( <mask> . length ) ; // "sparse" is never used. if ( index >= length ) { SET_PRIVATE ( iterator , arrayIteratorObjectSymbol , UNDEFINED ) ; } else { SET_PRIVATE ( iterator , arrayIteratorNextIndexSymbol , index + 1 ) ; if ( itemKind == ITERATOR_KIND_VALUES ) { value = array [ index ] ; } else if ( itemKind == ITERATOR_KIND_ENTRIES ) { value = [ index , array [ index ] ] ; } else { value = index ; } done = false ; } } return % _CreateIterResultObject ( value , done ) ; }