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