24 lines
		
	
	
		
			421 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			421 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
"use strict";
 | 
						|
 | 
						|
exports.__generic = function (t, a) {
 | 
						|
	var count = 0, o = {}, self = Object(this);
 | 
						|
	a(
 | 
						|
		t.call(
 | 
						|
			self,
 | 
						|
			function (value, i, scope) {
 | 
						|
				a(value, this[i], "Value");
 | 
						|
				a(i, count++, "Index");
 | 
						|
				a(scope, this, "Scope");
 | 
						|
			},
 | 
						|
			self
 | 
						|
		),
 | 
						|
		-1,
 | 
						|
		"Falsy result"
 | 
						|
	);
 | 
						|
	a(count, 3);
 | 
						|
 | 
						|
	count = -1;
 | 
						|
	a(t.call(this, function () { return ++count ? o : null; }, this), 1, "Truthy result");
 | 
						|
	a(count, 1);
 | 
						|
};
 |