aboutsummaryrefslogtreecommitdiff
path: root/node_modules/es5-ext/test/iterable
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/es5-ext/test/iterable')
-rw-r--r--node_modules/es5-ext/test/iterable/for-each.js42
-rw-r--r--node_modules/es5-ext/test/iterable/is.js22
-rw-r--r--node_modules/es5-ext/test/iterable/validate-object.js34
-rw-r--r--node_modules/es5-ext/test/iterable/validate.js32
4 files changed, 130 insertions, 0 deletions
diff --git a/node_modules/es5-ext/test/iterable/for-each.js b/node_modules/es5-ext/test/iterable/for-each.js
new file mode 100644
index 000000000..d6c3872aa
--- /dev/null
+++ b/node_modules/es5-ext/test/iterable/for-each.js
@@ -0,0 +1,42 @@
+"use strict";
+
+var ArrayIterator = require("es6-iterator/array")
+
+ , slice = Array.prototype.slice;
+
+module.exports = function (t, a) {
+ var i = 0, x = ["raz", "dwa", "trzy"], y = {};
+ t(x, function () {
+ a.deep(slice.call(arguments, 0, 1), [x[i]], "Array " + i + "#");
+ a(this, y, "Array: context: " + i++ + "#");
+ }, y);
+ i = 0;
+ t((function () {
+ return arguments;
+}("raz", "dwa", "trzy")), function () {
+ a.deep(slice.call(arguments, 0, 1), [x[i]], "Arguments" + i + "#");
+ a(this, y, "Arguments: context: " + i++ + "#");
+ }, y);
+ i = 0;
+ t({ 0: "raz", 1: "dwa", 2: "trzy", length: 3 }, function () {
+ a.deep(slice.call(arguments, 0, 1), [x[i]], "Array-like" + i + "#");
+ a(this, y, "Array-like: context: " + i++ + "#");
+ }, y);
+ i = 0;
+ t(x = "foo", function () {
+ a.deep(slice.call(arguments, 0, 1), [x[i]], "String " + i + "#");
+ a(this, y, "Regular String: context: " + i++ + "#");
+ }, y);
+ i = 0;
+ x = ["r", "💩", "z"];
+ t("r💩z", function () {
+ a.deep(slice.call(arguments, 0, 1), [x[i]], "String " + i + "#");
+ a(this, y, "Unicode String: context: " + i++ + "#");
+ }, y);
+ i = 0;
+ t(new ArrayIterator(x), function () {
+ a.deep(slice.call(arguments, 0, 1), [x[i]], "Iterator " + i + "#");
+ a(this, y, "Iterator: context: " + i++ + "#");
+ }, y);
+
+};
diff --git a/node_modules/es5-ext/test/iterable/is.js b/node_modules/es5-ext/test/iterable/is.js
new file mode 100644
index 000000000..8c3158b22
--- /dev/null
+++ b/node_modules/es5-ext/test/iterable/is.js
@@ -0,0 +1,22 @@
+"use strict";
+
+var iteratorSymbol = require("es6-symbol").iterator;
+
+module.exports = function (t, a) {
+ var x;
+ a(t([]), true, "Array");
+ a(t(""), true, "String");
+ a(t((function () {
+ return arguments;
+}())), true, "Arguments");
+ a(t({ length: 0 }), true, "List object");
+ a(t(function () {}), false, "Function");
+ a(t({}), false, "Plain object");
+ a(t(/raz/), false, "Regexp");
+ a(t(), false, "No argument");
+ a(t(null), false, "Null");
+ a(t(undefined), false, "Undefined");
+ x = {};
+ x[iteratorSymbol] = function () {};
+ a(t(x), true, "Iterable");
+};
diff --git a/node_modules/es5-ext/test/iterable/validate-object.js b/node_modules/es5-ext/test/iterable/validate-object.js
new file mode 100644
index 000000000..83a9ca15e
--- /dev/null
+++ b/node_modules/es5-ext/test/iterable/validate-object.js
@@ -0,0 +1,34 @@
+"use strict";
+
+var iteratorSymbol = require("es6-symbol").iterator;
+
+module.exports = function (t, a) {
+ var x;
+ a.throws(function () {
+ t(0);
+}, TypeError, "0");
+ a.throws(function () {
+ t(false);
+}, TypeError, "false");
+ a.throws(function () {
+ t("");
+}, TypeError, "String");
+ a.throws(function () {
+ t({});
+}, TypeError, "Plain Object");
+ a.throws(function () {
+ t(function () {});
+}, TypeError, "Function");
+ a(t(x = new String("raz")), x, "String object"); // Jslint: ignore
+
+ a(t(x = { length: 1 }), x, "Array like");
+ a.throws(function () {
+ t();
+}, TypeError, "Undefined");
+ a.throws(function () {
+ t(null);
+}, TypeError, "null");
+ x = {};
+ x[iteratorSymbol] = function () {};
+ a(t(x), x, "Iterable");
+};
diff --git a/node_modules/es5-ext/test/iterable/validate.js b/node_modules/es5-ext/test/iterable/validate.js
new file mode 100644
index 000000000..61cab5d38
--- /dev/null
+++ b/node_modules/es5-ext/test/iterable/validate.js
@@ -0,0 +1,32 @@
+"use strict";
+
+var iteratorSymbol = require("es6-symbol").iterator;
+
+module.exports = function (t, a) {
+ var x;
+ a.throws(function () {
+ t(0);
+}, TypeError, "0");
+ a.throws(function () {
+ t(false);
+}, TypeError, "false");
+ a(t(""), "", "''");
+ a.throws(function () {
+ t({});
+}, TypeError, "Plain Object");
+ a.throws(function () {
+ t(function () {});
+}, TypeError, "Function");
+ a(t(x = new String("raz")), x, "String object"); // Jslint: ignore
+
+ a(t(x = { length: 1 }), x, "Array like");
+ a.throws(function () {
+ t();
+}, TypeError, "Undefined");
+ a.throws(function () {
+ t(null);
+}, TypeError, "null");
+ x = {};
+ x[iteratorSymbol] = function () {};
+ a(t(x), x, "Iterable");
+};