You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							36 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							36 lines
						
					
					
						
							1.2 KiB
						
					
					
				| 'use strict'; | |
| var $ = require('../internals/export'); | |
| var call = require('../internals/function-call'); | |
| var anObject = require('../internals/an-object'); | |
| var getIteratorDirect = require('../internals/get-iterator-direct'); | |
| var notANaN = require('../internals/not-a-nan'); | |
| var toPositiveInteger = require('../internals/to-positive-integer'); | |
| var createIteratorProxy = require('../internals/iterator-create-proxy'); | |
| var IS_PURE = require('../internals/is-pure'); | |
| 
 | |
| var IteratorProxy = createIteratorProxy(function () { | |
|   var iterator = this.iterator; | |
|   var next = this.next; | |
|   var result, done; | |
|   while (this.remaining) { | |
|     this.remaining--; | |
|     result = anObject(call(next, iterator)); | |
|     done = this.done = !!result.done; | |
|     if (done) return; | |
|   } | |
|   result = anObject(call(next, iterator)); | |
|   done = this.done = !!result.done; | |
|   if (!done) return result.value; | |
| }); | |
| 
 | |
| // `Iterator.prototype.drop` method | |
| // https://github.com/tc39/proposal-iterator-helpers | |
| $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, { | |
|   drop: function drop(limit) { | |
|     anObject(this); | |
|     var remaining = toPositiveInteger(notANaN(+limit)); | |
|     return new IteratorProxy(getIteratorDirect(this), { | |
|       remaining: remaining | |
|     }); | |
|   } | |
| });
 |