28 lines
		
	
	
		
			698 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			698 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
"use strict";
 | 
						|
 | 
						|
var iteratorSymbol = require("es6-symbol").iterator
 | 
						|
  , Iterator       = require("../");
 | 
						|
 | 
						|
module.exports = function (t, a) {
 | 
						|
	var iterator;
 | 
						|
	a.throws(function () {
 | 
						|
 t();
 | 
						|
}, TypeError, "Null");
 | 
						|
	a.throws(function () {
 | 
						|
 t({});
 | 
						|
}, TypeError, "Plain object");
 | 
						|
	a.throws(function () {
 | 
						|
 t({ length: 0 });
 | 
						|
}, TypeError, "Array-like");
 | 
						|
	iterator = {};
 | 
						|
	iterator[iteratorSymbol] = function () {
 | 
						|
 return new Iterator([]);
 | 
						|
};
 | 
						|
	a(t(iterator) instanceof Iterator, true, "Iterator");
 | 
						|
	a(String(t([])), "[object Array Iterator]", " Array");
 | 
						|
	a(String(t(function () {
 | 
						|
 return arguments;
 | 
						|
}())), "[object Array Iterator]", " Arguments");
 | 
						|
	a(String(t("foo")), "[object String Iterator]", "String");
 | 
						|
};
 |