2017-12-10 21:51:33 +01:00
|
|
|
"use strict";
|
2017-08-14 05:01:11 +02:00
|
|
|
|
2017-12-10 21:51:33 +01:00
|
|
|
var iteratorSymbol = require("es6-symbol").iterator
|
|
|
|
, Iterator = require("../");
|
2017-08-14 05:01:11 +02:00
|
|
|
|
|
|
|
module.exports = function (t, a) {
|
|
|
|
var obj;
|
2017-12-10 21:51:33 +01:00
|
|
|
a.throws(function () {
|
|
|
|
t();
|
|
|
|
}, TypeError, "Undefined");
|
|
|
|
a.throws(function () {
|
|
|
|
t({});
|
|
|
|
}, TypeError, "Plain object");
|
|
|
|
a.throws(function () {
|
|
|
|
t({ length: 0 });
|
|
|
|
}, TypeError, "Array-like");
|
2017-08-14 05:01:11 +02:00
|
|
|
obj = {};
|
2017-12-10 21:51:33 +01:00
|
|
|
obj[iteratorSymbol] = function () {
|
|
|
|
return new Iterator([]);
|
|
|
|
};
|
2017-08-14 05:01:11 +02:00
|
|
|
a(t(obj), obj, "Iterator");
|
|
|
|
obj = [];
|
2017-12-10 21:51:33 +01:00
|
|
|
a(t(obj), obj, "Array");
|
|
|
|
obj = (function () {
|
|
|
|
return arguments;
|
|
|
|
}());
|
2017-08-14 05:01:11 +02:00
|
|
|
a(t(obj), obj, "Arguments");
|
|
|
|
};
|