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 iterator;
|
2017-12-10 21:51:33 +01:00
|
|
|
a.throws(function () {
|
|
|
|
t();
|
|
|
|
}, TypeError, "Null");
|
|
|
|
a.throws(function () {
|
|
|
|
t({});
|
|
|
|
}, TypeError, "Plain object");
|
|
|
|
a.throws(function () {
|
|
|
|
t({ length: 0 });
|
|
|
|
}, TypeError, "Array-like");
|
2017-08-14 05:01:11 +02:00
|
|
|
iterator = {};
|
2017-12-10 21:51:33 +01:00
|
|
|
iterator[iteratorSymbol] = function () {
|
|
|
|
return new Iterator([]);
|
|
|
|
};
|
2017-08-14 05:01:11 +02:00
|
|
|
a(t(iterator) instanceof Iterator, true, "Iterator");
|
2017-12-10 21:51:33 +01:00
|
|
|
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");
|
2017-08-14 05:01:11 +02:00
|
|
|
};
|