aboutsummaryrefslogtreecommitdiff
path: root/node_modules/es5-ext/test/array/#
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/es5-ext/test/array/#')
-rw-r--r--node_modules/es5-ext/test/array/#/@@iterator/implement.js7
-rw-r--r--node_modules/es5-ext/test/array/#/@@iterator/index.js3
-rw-r--r--node_modules/es5-ext/test/array/#/@@iterator/is-implemented.js5
-rw-r--r--node_modules/es5-ext/test/array/#/@@iterator/shim.js9
-rw-r--r--node_modules/es5-ext/test/array/#/_compare-by-length.js7
-rw-r--r--node_modules/es5-ext/test/array/#/binary-search.js17
-rw-r--r--node_modules/es5-ext/test/array/#/clear.js7
-rw-r--r--node_modules/es5-ext/test/array/#/compact.js17
-rw-r--r--node_modules/es5-ext/test/array/#/concat/implement.js7
-rw-r--r--node_modules/es5-ext/test/array/#/concat/index.js3
-rw-r--r--node_modules/es5-ext/test/array/#/concat/is-implemented.js5
-rw-r--r--node_modules/es5-ext/test/array/#/concat/shim.js26
-rw-r--r--node_modules/es5-ext/test/array/#/contains.js21
-rw-r--r--node_modules/es5-ext/test/array/#/copy-within/implement.js7
-rw-r--r--node_modules/es5-ext/test/array/#/copy-within/index.js3
-rw-r--r--node_modules/es5-ext/test/array/#/copy-within/is-implemented.js5
-rw-r--r--node_modules/es5-ext/test/array/#/copy-within/shim.js29
-rw-r--r--node_modules/es5-ext/test/array/#/diff.js17
-rw-r--r--node_modules/es5-ext/test/array/#/e-index-of.js13
-rw-r--r--node_modules/es5-ext/test/array/#/e-last-index-of.js12
-rw-r--r--node_modules/es5-ext/test/array/#/entries/implement.js7
-rw-r--r--node_modules/es5-ext/test/array/#/entries/index.js3
-rw-r--r--node_modules/es5-ext/test/array/#/entries/is-implemented.js5
-rw-r--r--node_modules/es5-ext/test/array/#/entries/shim.js9
-rw-r--r--node_modules/es5-ext/test/array/#/exclusion.js15
-rw-r--r--node_modules/es5-ext/test/array/#/fill/implement.js7
-rw-r--r--node_modules/es5-ext/test/array/#/fill/index.js3
-rw-r--r--node_modules/es5-ext/test/array/#/fill/is-implemented.js5
-rw-r--r--node_modules/es5-ext/test/array/#/fill/shim.js18
-rw-r--r--node_modules/es5-ext/test/array/#/filter/implement.js7
-rw-r--r--node_modules/es5-ext/test/array/#/filter/index.js3
-rw-r--r--node_modules/es5-ext/test/array/#/filter/is-implemented.js5
-rw-r--r--node_modules/es5-ext/test/array/#/filter/shim.js17
-rw-r--r--node_modules/es5-ext/test/array/#/find-index/implement.js7
-rw-r--r--node_modules/es5-ext/test/array/#/find-index/index.js3
-rw-r--r--node_modules/es5-ext/test/array/#/find-index/is-implemented.js5
-rw-r--r--node_modules/es5-ext/test/array/#/find-index/shim.js17
-rw-r--r--node_modules/es5-ext/test/array/#/find/implement.js7
-rw-r--r--node_modules/es5-ext/test/array/#/find/index.js3
-rw-r--r--node_modules/es5-ext/test/array/#/find/is-implemented.js5
-rw-r--r--node_modules/es5-ext/test/array/#/find/shim.js17
-rw-r--r--node_modules/es5-ext/test/array/#/first-index.js17
-rw-r--r--node_modules/es5-ext/test/array/#/first.js13
-rw-r--r--node_modules/es5-ext/test/array/#/flatten.js14
-rw-r--r--node_modules/es5-ext/test/array/#/for-each-right.js47
-rw-r--r--node_modules/es5-ext/test/array/#/group.js24
-rw-r--r--node_modules/es5-ext/test/array/#/indexes-of.js14
-rw-r--r--node_modules/es5-ext/test/array/#/intersection.js24
-rw-r--r--node_modules/es5-ext/test/array/#/is-copy.js13
-rw-r--r--node_modules/es5-ext/test/array/#/is-uniq.js11
-rw-r--r--node_modules/es5-ext/test/array/#/keys/implement.js7
-rw-r--r--node_modules/es5-ext/test/array/#/keys/index.js3
-rw-r--r--node_modules/es5-ext/test/array/#/keys/is-implemented.js5
-rw-r--r--node_modules/es5-ext/test/array/#/keys/shim.js9
-rw-r--r--node_modules/es5-ext/test/array/#/last-index.js17
-rw-r--r--node_modules/es5-ext/test/array/#/last.js15
-rw-r--r--node_modules/es5-ext/test/array/#/map/implement.js7
-rw-r--r--node_modules/es5-ext/test/array/#/map/index.js3
-rw-r--r--node_modules/es5-ext/test/array/#/map/is-implemented.js5
-rw-r--r--node_modules/es5-ext/test/array/#/map/shim.js19
-rw-r--r--node_modules/es5-ext/test/array/#/remove.js14
-rw-r--r--node_modules/es5-ext/test/array/#/separate.js15
-rw-r--r--node_modules/es5-ext/test/array/#/slice/implement.js7
-rw-r--r--node_modules/es5-ext/test/array/#/slice/index.js3
-rw-r--r--node_modules/es5-ext/test/array/#/slice/is-implemented.js5
-rw-r--r--node_modules/es5-ext/test/array/#/slice/shim.js17
-rw-r--r--node_modules/es5-ext/test/array/#/some-right.js62
-rw-r--r--node_modules/es5-ext/test/array/#/splice/implement.js7
-rw-r--r--node_modules/es5-ext/test/array/#/splice/index.js3
-rw-r--r--node_modules/es5-ext/test/array/#/splice/is-implemented.js5
-rw-r--r--node_modules/es5-ext/test/array/#/splice/shim.js19
-rw-r--r--node_modules/es5-ext/test/array/#/uniq.js14
-rw-r--r--node_modules/es5-ext/test/array/#/values/implement.js7
-rw-r--r--node_modules/es5-ext/test/array/#/values/index.js3
-rw-r--r--node_modules/es5-ext/test/array/#/values/is-implemented.js5
-rw-r--r--node_modules/es5-ext/test/array/#/values/shim.js9
76 files changed, 850 insertions, 0 deletions
diff --git a/node_modules/es5-ext/test/array/#/@@iterator/implement.js b/node_modules/es5-ext/test/array/#/@@iterator/implement.js
new file mode 100644
index 000000000..1a20aa82e
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/@@iterator/implement.js
@@ -0,0 +1,7 @@
+"use strict";
+
+var isImplemented = require("../../../../array/#/@@iterator/is-implemented");
+
+module.exports = function (a) {
+ a(isImplemented(), true);
+};
diff --git a/node_modules/es5-ext/test/array/#/@@iterator/index.js b/node_modules/es5-ext/test/array/#/@@iterator/index.js
new file mode 100644
index 000000000..10bb8f65d
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/@@iterator/index.js
@@ -0,0 +1,3 @@
+"use strict";
+
+module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/array/#/@@iterator/is-implemented.js b/node_modules/es5-ext/test/array/#/@@iterator/is-implemented.js
new file mode 100644
index 000000000..5003e7e93
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/@@iterator/is-implemented.js
@@ -0,0 +1,5 @@
+"use strict";
+
+module.exports = function (t, a) {
+ a(typeof t(), "boolean");
+};
diff --git a/node_modules/es5-ext/test/array/#/@@iterator/shim.js b/node_modules/es5-ext/test/array/#/@@iterator/shim.js
new file mode 100644
index 000000000..71b71d58a
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/@@iterator/shim.js
@@ -0,0 +1,9 @@
+"use strict";
+
+exports.__generic = function (t, a) {
+ var iterator = t.call(this);
+ a.deep(iterator.next(), { value: "1", done: false });
+ a.deep(iterator.next(), { value: "2", done: false });
+ a.deep(iterator.next(), { value: "3", done: false });
+ a.deep(iterator.next(), { value: undefined, done: true });
+};
diff --git a/node_modules/es5-ext/test/array/#/_compare-by-length.js b/node_modules/es5-ext/test/array/#/_compare-by-length.js
new file mode 100644
index 000000000..a53d8470f
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/_compare-by-length.js
@@ -0,0 +1,7 @@
+"use strict";
+
+module.exports = function (t, a) {
+ var arr = [4, 5, 6], obj1 = { length: 8 }, obj2 = {}, obj3 = { length: 1 };
+
+ a.deep([arr, obj1, obj2, obj3].sort(t), [obj2, obj3, arr, obj1]);
+};
diff --git a/node_modules/es5-ext/test/array/#/binary-search.js b/node_modules/es5-ext/test/array/#/binary-search.js
new file mode 100644
index 000000000..04dfaefa4
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/binary-search.js
@@ -0,0 +1,17 @@
+"use strict";
+
+var compare = function (value) {
+ return this - value;
+};
+
+module.exports = function (t, a) {
+ var arr;
+ arr = [2, 5, 5, 8, 34, 67, 98, 345, 678];
+
+ // Highest, equal match
+ a(t.call(arr, compare.bind(1)), 0, "All higher");
+ a(t.call(arr, compare.bind(679)), arr.length - 1, "All lower");
+ a(t.call(arr, compare.bind(4)), 0, "Mid");
+ a(t.call(arr, compare.bind(5)), 2, "Match");
+ a(t.call(arr, compare.bind(6)), 2, "Above");
+};
diff --git a/node_modules/es5-ext/test/array/#/clear.js b/node_modules/es5-ext/test/array/#/clear.js
new file mode 100644
index 000000000..640cc1926
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/clear.js
@@ -0,0 +1,7 @@
+"use strict";
+
+module.exports = function (t, a) {
+ var arr = [1, 2, {}, 4];
+ a(t.call(arr), arr, "Returns same array");
+ a.deep(arr, [], "Empties array");
+};
diff --git a/node_modules/es5-ext/test/array/#/compact.js b/node_modules/es5-ext/test/array/#/compact.js
new file mode 100644
index 000000000..05160844e
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/compact.js
@@ -0,0 +1,17 @@
+"use strict";
+
+module.exports = {
+ "__generic": function (t, a) {
+ a(t.call(this).length, 3);
+ },
+ "": function (t, a) {
+ var o, x, y, z;
+ o = {};
+ x = [0, 1, "", null, o, false, undefined, true];
+ y = x.slice(0);
+
+ a.not(z = t.call(x), x, "Returns different object");
+ a.deep(x, y, "Origin not changed");
+ a.deep(z, [0, 1, "", o, false, true], "Result");
+ }
+};
diff --git a/node_modules/es5-ext/test/array/#/concat/implement.js b/node_modules/es5-ext/test/array/#/concat/implement.js
new file mode 100644
index 000000000..c4dc41fa7
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/concat/implement.js
@@ -0,0 +1,7 @@
+"use strict";
+
+var isImplemented = require("../../../../array/#/concat/is-implemented");
+
+module.exports = function (a) {
+ a(isImplemented(), true);
+};
diff --git a/node_modules/es5-ext/test/array/#/concat/index.js b/node_modules/es5-ext/test/array/#/concat/index.js
new file mode 100644
index 000000000..10bb8f65d
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/concat/index.js
@@ -0,0 +1,3 @@
+"use strict";
+
+module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/array/#/concat/is-implemented.js b/node_modules/es5-ext/test/array/#/concat/is-implemented.js
new file mode 100644
index 000000000..5003e7e93
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/concat/is-implemented.js
@@ -0,0 +1,5 @@
+"use strict";
+
+module.exports = function (t, a) {
+ a(typeof t(), "boolean");
+};
diff --git a/node_modules/es5-ext/test/array/#/concat/shim.js b/node_modules/es5-ext/test/array/#/concat/shim.js
new file mode 100644
index 000000000..30a9b0c62
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/concat/shim.js
@@ -0,0 +1,26 @@
+"use strict";
+
+var isConcatSpreadable = require("es6-symbol").isConcatSpreadable
+ , SubArray = require("../../../../array/_sub-array-dummy-safe");
+
+module.exports = function (t, a) {
+ var arr = [1, 3, 45], x = {}, subArr, subArr2, result;
+
+ a.deep(t.call(arr, "2d", x, ["ere", "fe", x], false, null),
+ [1, 3, 45, "2d", x, "ere", "fe", x, false, null], "Plain array");
+
+ subArr = new SubArray("lol", "miszko");
+ subArr2 = new SubArray("elo", "fol");
+
+ result = t.call(subArr, "df", arr, "fef", subArr2, null);
+ a(result instanceof SubArray, true, "Instance of subclass");
+ a.deep(result, ["lol", "miszko", "df", 1, 3, 45, "fef", "elo", "fol", null],
+ "Spreable by default");
+
+ SubArray.prototype[isConcatSpreadable] = false;
+
+ result = t.call(subArr, "df", arr, "fef", subArr2, null);
+ a.deep(result, [subArr, "df", 1, 3, 45, "fef", subArr2, null], "Non spreadable");
+
+ delete SubArray.prototype[isConcatSpreadable];
+};
diff --git a/node_modules/es5-ext/test/array/#/contains.js b/node_modules/es5-ext/test/array/#/contains.js
new file mode 100644
index 000000000..fb0f96ce8
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/contains.js
@@ -0,0 +1,21 @@
+"use strict";
+
+module.exports = {
+ "__generic": function (t, a) {
+ a(t.call(this, this[1]), true, "Contains");
+ a(t.call(this, {}), false, "Does Not contain");
+ },
+ "": function (t, a) {
+ var o, x = {}, y = {};
+
+ o = [1, "raz", x];
+
+ a(t.call(o, 1), true, "First");
+ a(t.call(o, "1"), false, "Type coercion");
+ a(t.call(o, "raz"), true, "Primitive");
+ a(t.call(o, "foo"), false, "Primitive not found");
+ a(t.call(o, x), true, "Object found");
+ a(t.call(o, y), false, "Object not found");
+ a(t.call(o, 1, 1), false, "Position");
+ }
+};
diff --git a/node_modules/es5-ext/test/array/#/copy-within/implement.js b/node_modules/es5-ext/test/array/#/copy-within/implement.js
new file mode 100644
index 000000000..87272ac0f
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/copy-within/implement.js
@@ -0,0 +1,7 @@
+"use strict";
+
+var isImplemented = require("../../../../array/#/copy-within/is-implemented");
+
+module.exports = function (a) {
+ a(isImplemented(), true);
+};
diff --git a/node_modules/es5-ext/test/array/#/copy-within/index.js b/node_modules/es5-ext/test/array/#/copy-within/index.js
new file mode 100644
index 000000000..10bb8f65d
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/copy-within/index.js
@@ -0,0 +1,3 @@
+"use strict";
+
+module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/array/#/copy-within/is-implemented.js b/node_modules/es5-ext/test/array/#/copy-within/is-implemented.js
new file mode 100644
index 000000000..5003e7e93
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/copy-within/is-implemented.js
@@ -0,0 +1,5 @@
+"use strict";
+
+module.exports = function (t, a) {
+ a(typeof t(), "boolean");
+};
diff --git a/node_modules/es5-ext/test/array/#/copy-within/shim.js b/node_modules/es5-ext/test/array/#/copy-within/shim.js
new file mode 100644
index 000000000..03a631fe2
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/copy-within/shim.js
@@ -0,0 +1,29 @@
+"use strict";
+
+module.exports = function (t, a) {
+ var args, x;
+
+ a.h1("2 args");
+ x = [1, 2, 3, 4, 5];
+ t.call(x, 0, 3);
+ a.deep(x, [4, 5, 3, 4, 5]);
+ a.deep(t.call([1, 2, 3, 4, 5], 1, 3), [1, 4, 5, 4, 5]);
+ a.deep(t.call([1, 2, 3, 4, 5], 1, 2), [1, 3, 4, 5, 5]);
+ a.deep(t.call([1, 2, 3, 4, 5], 2, 2), [1, 2, 3, 4, 5]);
+
+ a.h1("3 args");
+ a.deep(t.call([1, 2, 3, 4, 5], 0, 3, 4), [4, 2, 3, 4, 5]);
+ a.deep(t.call([1, 2, 3, 4, 5], 1, 3, 4), [1, 4, 3, 4, 5]);
+ a.deep(t.call([1, 2, 3, 4, 5], 1, 2, 4), [1, 3, 4, 4, 5]);
+
+ a.h1("Negative args");
+ a.deep(t.call([1, 2, 3, 4, 5], 0, -2), [4, 5, 3, 4, 5]);
+ a.deep(t.call([1, 2, 3, 4, 5], 0, -2, -1), [4, 2, 3, 4, 5]);
+ a.deep(t.call([1, 2, 3, 4, 5], -4, -3, -2), [1, 3, 3, 4, 5]);
+ a.deep(t.call([1, 2, 3, 4, 5], -4, -3, -1), [1, 3, 4, 4, 5]);
+ a.deep(t.call([1, 2, 3, 4, 5], -4, -3), [1, 3, 4, 5, 5]);
+
+ a.h1("Array-likes");
+ args = { 0: 1, 1: 2, 2: 3, length: 3 };
+ a.deep(t.call(args, -2, 0), { 0: 1, 1: 1, 2: 2, length: 3 });
+};
diff --git a/node_modules/es5-ext/test/array/#/diff.js b/node_modules/es5-ext/test/array/#/diff.js
new file mode 100644
index 000000000..397c5ddfe
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/diff.js
@@ -0,0 +1,17 @@
+"use strict";
+
+module.exports = {
+ "__generic": function (t, a) {
+ a.deep(t.call(this, this), []);
+ },
+ "": function (t, a) {
+ var x = {}, y = {};
+
+ a.deep(t.call([1, "raz", x, 2, "trzy", y], [x, 2, "trzy"]), [1, "raz", y],
+ "Scope longer");
+ a.deep(t.call([1, "raz", x], [x, 2, "trzy", 1, y]), ["raz"],
+ "Arg longer");
+ a.deep(t.call([1, "raz", x], []), [1, "raz", x], "Empty arg");
+ a.deep(t.call([], [1, y, "sdfs"]), [], "Empty scope");
+ }
+};
diff --git a/node_modules/es5-ext/test/array/#/e-index-of.js b/node_modules/es5-ext/test/array/#/e-index-of.js
new file mode 100644
index 000000000..1e42cbd73
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/e-index-of.js
@@ -0,0 +1,13 @@
+"use strict";
+
+module.exports = function (t, a) {
+ var x = {};
+ a(t.call([3, "raz", {}, x, {}], x), 3, "Regular");
+ a(t.call([3, "raz", NaN, {}, NaN], NaN), 2, "NaN");
+ a(t.call([3, "raz", 0, {}, -0], -0), 2, "-0");
+ a(t.call([3, "raz", -0, {}, 0], +0), 2, "+0");
+ a(t.call([3, "raz", NaN, {}, NaN], NaN, 3), 4, "fromIndex");
+ a(t.call([3, "raz", NaN, {}, NaN], NaN, -1), 4, "fromIndex negative #1");
+ a(t.call([3, "raz", NaN, {}, NaN], NaN, -2), 4, "fromIndex negative #2");
+ a(t.call([3, "raz", NaN, {}, NaN], NaN, -3), 2, "fromIndex negative #3");
+};
diff --git a/node_modules/es5-ext/test/array/#/e-last-index-of.js b/node_modules/es5-ext/test/array/#/e-last-index-of.js
new file mode 100644
index 000000000..2c7fff9fc
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/e-last-index-of.js
@@ -0,0 +1,12 @@
+"use strict";
+
+module.exports = function (t, a) {
+ var x = {};
+ a(t.call([3, "raz", {}, x, {}, x], x), 5, "Regular");
+ a(t.call([3, "raz", NaN, {}, x], NaN), 2, "NaN");
+ a(t.call([3, "raz", 0, {}, -0], -0), 4, "-0");
+ a(t.call([3, "raz", -0, {}, 0], +0), 4, "+0");
+ a(t.call([3, "raz", NaN, {}, NaN], NaN, 3), 2, "fromIndex");
+ a(t.call([3, "raz", NaN, 2, NaN], NaN, -1), 4, "Negative fromIndex #1");
+ a(t.call([3, "raz", NaN, 2, NaN], NaN, -2), 2, "Negative fromIndex #2");
+};
diff --git a/node_modules/es5-ext/test/array/#/entries/implement.js b/node_modules/es5-ext/test/array/#/entries/implement.js
new file mode 100644
index 000000000..fa16930c3
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/entries/implement.js
@@ -0,0 +1,7 @@
+"use strict";
+
+var isImplemented = require("../../../../array/#/entries/is-implemented");
+
+module.exports = function (a) {
+ a(isImplemented(), true);
+};
diff --git a/node_modules/es5-ext/test/array/#/entries/index.js b/node_modules/es5-ext/test/array/#/entries/index.js
new file mode 100644
index 000000000..10bb8f65d
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/entries/index.js
@@ -0,0 +1,3 @@
+"use strict";
+
+module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/array/#/entries/is-implemented.js b/node_modules/es5-ext/test/array/#/entries/is-implemented.js
new file mode 100644
index 000000000..5003e7e93
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/entries/is-implemented.js
@@ -0,0 +1,5 @@
+"use strict";
+
+module.exports = function (t, a) {
+ a(typeof t(), "boolean");
+};
diff --git a/node_modules/es5-ext/test/array/#/entries/shim.js b/node_modules/es5-ext/test/array/#/entries/shim.js
new file mode 100644
index 000000000..87ac25a98
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/entries/shim.js
@@ -0,0 +1,9 @@
+"use strict";
+
+exports.__generic = function (t, a) {
+ var iterator = t.call(this);
+ a.deep(iterator.next(), { value: [0, "1"], done: false });
+ a.deep(iterator.next(), { value: [1, "2"], done: false });
+ a.deep(iterator.next(), { value: [2, "3"], done: false });
+ a.deep(iterator.next(), { value: undefined, done: true });
+};
diff --git a/node_modules/es5-ext/test/array/#/exclusion.js b/node_modules/es5-ext/test/array/#/exclusion.js
new file mode 100644
index 000000000..827c037a3
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/exclusion.js
@@ -0,0 +1,15 @@
+"use strict";
+
+module.exports = {
+ "__generic": function (t, a) {
+ var x = {};
+ a.deep(t.call(this, this, [this[0], this[2], x]), [x]);
+ },
+ "": function (t, a) {
+ var x = {}, y = {};
+
+ a.deep(t.call([x, y]), [x, y], "No arguments");
+ a.deep(t.call([x, 1], [], []), [x, 1], "Empty arguments");
+ a.deep(t.call([1, "raz", x], [2, "raz", y], [2, "raz", x]), [1, y]);
+ }
+};
diff --git a/node_modules/es5-ext/test/array/#/fill/implement.js b/node_modules/es5-ext/test/array/#/fill/implement.js
new file mode 100644
index 000000000..fe806a6bf
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/fill/implement.js
@@ -0,0 +1,7 @@
+"use strict";
+
+var isImplemented = require("../../../../array/#/fill/is-implemented");
+
+module.exports = function (a) {
+ a(isImplemented(), true);
+};
diff --git a/node_modules/es5-ext/test/array/#/fill/index.js b/node_modules/es5-ext/test/array/#/fill/index.js
new file mode 100644
index 000000000..10bb8f65d
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/fill/index.js
@@ -0,0 +1,3 @@
+"use strict";
+
+module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/array/#/fill/is-implemented.js b/node_modules/es5-ext/test/array/#/fill/is-implemented.js
new file mode 100644
index 000000000..5003e7e93
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/fill/is-implemented.js
@@ -0,0 +1,5 @@
+"use strict";
+
+module.exports = function (t, a) {
+ a(typeof t(), "boolean");
+};
diff --git a/node_modules/es5-ext/test/array/#/fill/shim.js b/node_modules/es5-ext/test/array/#/fill/shim.js
new file mode 100644
index 000000000..c752e10b8
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/fill/shim.js
@@ -0,0 +1,18 @@
+// Taken from https://github.com/paulmillr/es6-shim/blob/master/test/array.js
+
+"use strict";
+
+module.exports = function (t, a) {
+ var x;
+
+ x = [1, 2, 3, 4, 5, 6];
+ a(t.call(x, -1), x, "Returns self object");
+ a.deep(x, [-1, -1, -1, -1, -1, -1], "Value");
+
+ a.deep(t.call([1, 2, 3, 4, 5, 6], -1, 3), [1, 2, 3, -1, -1, -1],
+ "Positive start");
+ a.deep(t.call([1, 2, 3, 4, 5, 6], -1, -3), [1, 2, 3, -1, -1, -1],
+ "Negative start");
+ a.deep(t.call([1, 2, 3, 4, 5, 6], -1, 9), [1, 2, 3, 4, 5, 6],
+ "Large start");
+};
diff --git a/node_modules/es5-ext/test/array/#/filter/implement.js b/node_modules/es5-ext/test/array/#/filter/implement.js
new file mode 100644
index 000000000..cac92c83a
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/filter/implement.js
@@ -0,0 +1,7 @@
+"use strict";
+
+var isImplemented = require("../../../../array/#/filter/is-implemented");
+
+module.exports = function (a) {
+ a(isImplemented(), true);
+};
diff --git a/node_modules/es5-ext/test/array/#/filter/index.js b/node_modules/es5-ext/test/array/#/filter/index.js
new file mode 100644
index 000000000..10bb8f65d
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/filter/index.js
@@ -0,0 +1,3 @@
+"use strict";
+
+module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/array/#/filter/is-implemented.js b/node_modules/es5-ext/test/array/#/filter/is-implemented.js
new file mode 100644
index 000000000..5003e7e93
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/filter/is-implemented.js
@@ -0,0 +1,5 @@
+"use strict";
+
+module.exports = function (t, a) {
+ a(typeof t(), "boolean");
+};
diff --git a/node_modules/es5-ext/test/array/#/filter/shim.js b/node_modules/es5-ext/test/array/#/filter/shim.js
new file mode 100644
index 000000000..e20a6511f
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/filter/shim.js
@@ -0,0 +1,17 @@
+"use strict";
+
+var SubArray = require("../../../../array/_sub-array-dummy-safe");
+
+module.exports = function (t, a) {
+ var arr, x = {}, subArr, result;
+
+ arr = ["foo", undefined, 0, "2d", false, x, null];
+
+ a.deep(t.call(arr, Boolean), ["foo", "2d", x], "Plain array");
+
+ subArr = new SubArray("foo", undefined, 0, "2d", false, x, null);
+
+ result = t.call(subArr, Boolean);
+ a(result instanceof SubArray, true, "Instance of subclass");
+ a.deep(result, ["foo", "2d", x], "Result of subclass");
+};
diff --git a/node_modules/es5-ext/test/array/#/find-index/implement.js b/node_modules/es5-ext/test/array/#/find-index/implement.js
new file mode 100644
index 000000000..341bedef4
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/find-index/implement.js
@@ -0,0 +1,7 @@
+"use strict";
+
+var isImplemented = require("../../../../array/#/find-index/is-implemented");
+
+module.exports = function (a) {
+ a(isImplemented(), true);
+};
diff --git a/node_modules/es5-ext/test/array/#/find-index/index.js b/node_modules/es5-ext/test/array/#/find-index/index.js
new file mode 100644
index 000000000..10bb8f65d
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/find-index/index.js
@@ -0,0 +1,3 @@
+"use strict";
+
+module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/array/#/find-index/is-implemented.js b/node_modules/es5-ext/test/array/#/find-index/is-implemented.js
new file mode 100644
index 000000000..5003e7e93
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/find-index/is-implemented.js
@@ -0,0 +1,5 @@
+"use strict";
+
+module.exports = function (t, a) {
+ a(typeof t(), "boolean");
+};
diff --git a/node_modules/es5-ext/test/array/#/find-index/shim.js b/node_modules/es5-ext/test/array/#/find-index/shim.js
new file mode 100644
index 000000000..0a6fe1135
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/find-index/shim.js
@@ -0,0 +1,17 @@
+"use strict";
+
+exports.__generic = function (t, a) {
+ var count = 0, o = {}, self = Object(this);
+ a(t.call(self, function (value, i, scope) {
+ a(value, this[i], "Value");
+ a(i, count++, "Index");
+ a(scope, this, "Scope");
+ }, self), -1, "Falsy result");
+ a(count, 3);
+
+ count = -1;
+ a(t.call(this, function () {
+ return ++count ? o : null;
+ }, this), 1, "Truthy result");
+ a(count, 1);
+};
diff --git a/node_modules/es5-ext/test/array/#/find/implement.js b/node_modules/es5-ext/test/array/#/find/implement.js
new file mode 100644
index 000000000..9333b25fb
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/find/implement.js
@@ -0,0 +1,7 @@
+"use strict";
+
+var isImplemented = require("../../../../array/#/find/is-implemented");
+
+module.exports = function (a) {
+ a(isImplemented(), true);
+};
diff --git a/node_modules/es5-ext/test/array/#/find/index.js b/node_modules/es5-ext/test/array/#/find/index.js
new file mode 100644
index 000000000..10bb8f65d
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/find/index.js
@@ -0,0 +1,3 @@
+"use strict";
+
+module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/array/#/find/is-implemented.js b/node_modules/es5-ext/test/array/#/find/is-implemented.js
new file mode 100644
index 000000000..5003e7e93
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/find/is-implemented.js
@@ -0,0 +1,5 @@
+"use strict";
+
+module.exports = function (t, a) {
+ a(typeof t(), "boolean");
+};
diff --git a/node_modules/es5-ext/test/array/#/find/shim.js b/node_modules/es5-ext/test/array/#/find/shim.js
new file mode 100644
index 000000000..b8fd9f060
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/find/shim.js
@@ -0,0 +1,17 @@
+"use strict";
+
+exports.__generic = function (t, a) {
+ var count = 0, o = {}, self = Object(this);
+ a(t.call(self, function (value, i, scope) {
+ a(value, this[i], "Value");
+ a(i, count++, "Index");
+ a(scope, this, "Scope");
+ }, self), undefined, "Falsy result");
+ a(count, 3);
+
+ count = -1;
+ a(t.call(this, function () {
+ return ++count ? o : null;
+ }, this), this[1], "Truthy result");
+ a(count, 1);
+};
diff --git a/node_modules/es5-ext/test/array/#/first-index.js b/node_modules/es5-ext/test/array/#/first-index.js
new file mode 100644
index 000000000..af3388b55
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/first-index.js
@@ -0,0 +1,17 @@
+"use strict";
+
+module.exports = function (t, a) {
+ var x;
+ a(t.call([]), null, "Empty");
+ a(t.call([null]), 0, "One value");
+ a(t.call([1, 2, 3]), 0, "Many values");
+ a(t.call(new Array(1000)), null, "Sparse empty");
+ x = [];
+ x[883] = undefined;
+ x[890] = null;
+ a(t.call(x), 883, "Manual sparse, distant value");
+ x = new Array(1000);
+ x[657] = undefined;
+ x[700] = null;
+ a(t.call(x), 657, "Sparse, distant value");
+};
diff --git a/node_modules/es5-ext/test/array/#/first.js b/node_modules/es5-ext/test/array/#/first.js
new file mode 100644
index 000000000..5e9c1ae84
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/first.js
@@ -0,0 +1,13 @@
+"use strict";
+
+exports.__generic = function (t, a) {
+ a(t.call(this), this[0]);
+};
+exports[""] = function (t, a) {
+ var x;
+ a(t.call([]), undefined, "Empty");
+ a(t.call(new Array(234), undefined, "Sparse empty"));
+ x = new Array(2342);
+ x[434] = {};
+ a(t.call(x), x[434], "Sparse");
+};
diff --git a/node_modules/es5-ext/test/array/#/flatten.js b/node_modules/es5-ext/test/array/#/flatten.js
new file mode 100644
index 000000000..c1234c3ab
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/flatten.js
@@ -0,0 +1,14 @@
+"use strict";
+
+var o = [1, 2, [3, 4, [5, 6], 7, 8], 9, 10, [11, 12, [13, 14]], 15];
+
+module.exports = {
+ "__generic": function (t, a) {
+ a(t.call(this).length, 3);
+ },
+ "Nested Arrays": function (t, a) {
+ var result = t.call(o);
+ a.not(o, result);
+ a.deep(result, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]);
+ }
+};
diff --git a/node_modules/es5-ext/test/array/#/for-each-right.js b/node_modules/es5-ext/test/array/#/for-each-right.js
new file mode 100644
index 000000000..109101f8b
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/for-each-right.js
@@ -0,0 +1,47 @@
+"use strict";
+
+module.exports = {
+ "__generic": function (t, a) {
+ var count = 0, first, last, x, icount = this.length;
+ t.call(this, function (item, index, col) {
+ ++count;
+ if (!first) {
+ first = item;
+ }
+ last = item;
+ x = col;
+ a(index, --icount, "Index");
+ });
+ a(count, this.length, "Iterated");
+ a(first, this[this.length - 1], "First is last");
+ a(last, this[0], "Last is first");
+ a.deep(x, Object(this), "Collection as third argument"); // Jslint: skip
+ },
+ "": function (t, a) {
+ var x = {}, y, count;
+ t.call(
+ [1],
+ function () {
+ y = this;
+ },
+ x
+ );
+ a(y, x, "Scope");
+ y = 0;
+ t.call([3, 4, 4], function (a, i) {
+ y += i;
+ });
+ a(y, 3, "Indexes");
+
+ x = [1, 3];
+ x[5] = "x";
+ y = 0;
+ count = 0;
+ t.call(x, function (a, i) {
+ ++count;
+ y += i;
+ });
+ a(y, 6, "Misssing Indexes");
+ a(count, 3, "Misssing Indexes, count");
+ }
+};
diff --git a/node_modules/es5-ext/test/array/#/group.js b/node_modules/es5-ext/test/array/#/group.js
new file mode 100644
index 000000000..12667de98
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/group.js
@@ -0,0 +1,24 @@
+"use strict";
+
+module.exports = {
+ "__generic": function (t, a) {
+ var count = 0, self;
+
+ self = Object(this);
+ a.deep(t.call(self, function (v, i, scope) {
+ a(v, this[i], "Value");
+ a(i, count++, "Index");
+ a(scope, this, "Scope");
+ return i;
+ }, self), { 0: [this[0]], 1: [this[1]], 2: [this[2]] });
+ },
+ "": function (t, a) {
+ var r;
+ r = t.call([2, 3, 3, 4, 5, 6, 7, 7, 23, 45, 34, 56],
+ function (v) {
+ return v % 2 ? "odd" : "even";
+ });
+ a.deep(r.odd, [3, 3, 5, 7, 7, 23, 45]);
+ a.deep(r.even, [2, 4, 6, 34, 56]);
+ }
+};
diff --git a/node_modules/es5-ext/test/array/#/indexes-of.js b/node_modules/es5-ext/test/array/#/indexes-of.js
new file mode 100644
index 000000000..1463417d4
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/indexes-of.js
@@ -0,0 +1,14 @@
+"use strict";
+
+module.exports = {
+ "__generic": function (t, a) {
+ a.deep(t.call(this, this[1]), [1]);
+ },
+ "": function (t, a) {
+ var x = {};
+ a.deep(t.call([1, 3, 5, 3, 5], 6), [], "No result");
+ a.deep(t.call([1, 3, 5, 1, 3, 5, 1], 1), [0, 3, 6], "Some results");
+ a.deep(t.call([], x), [], "Empty array");
+ a.deep(t.call([x, 3, {}, x, 3, 5, x], x), [0, 3, 6], "Search for object");
+ }
+};
diff --git a/node_modules/es5-ext/test/array/#/intersection.js b/node_modules/es5-ext/test/array/#/intersection.js
new file mode 100644
index 000000000..bb1097d1e
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/intersection.js
@@ -0,0 +1,24 @@
+"use strict";
+
+var toArray = require("../../../array/to-array");
+
+module.exports = {
+ "__generic": function (t, a) {
+ a.deep(t.call(this, this, this), toArray(this));
+ },
+ "": function (t, a) {
+ var x = {}, y = {}, p, r;
+ a.deep(t.call([], [2, 3, 4]), [], "Empty #1");
+ a.deep(t.call([2, 3, 4], []), [], "Empty #2");
+ a.deep(t.call([2, 3, x], [y, 5, 7]), [], "Different");
+ p = t.call([3, 5, "raz", {}, "dwa", x], [1, 3, "raz", "dwa", "trzy", x, {}],
+ [3, "raz", x, 65]);
+ r = [3, "raz", x];
+ p.sort();
+ r.sort();
+ a.deep(p, r, "Same parts");
+ a.deep(t.call(r, r), r, "Same");
+ a.deep(t.call([1, 2, x, 4, 5, y, 7], [7, y, 5, 4, x, 2, 1]),
+ [1, 2, x, 4, 5, y, 7], "Long reverse same");
+ }
+};
diff --git a/node_modules/es5-ext/test/array/#/is-copy.js b/node_modules/es5-ext/test/array/#/is-copy.js
new file mode 100644
index 000000000..b090c2acd
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/is-copy.js
@@ -0,0 +1,13 @@
+"use strict";
+
+module.exports = function (t, a) {
+ var x = {};
+ a(t.call([], []), true, "Empty");
+ a(t.call([], {}), true, "Empty lists");
+ a(t.call([1, x, "raz"], [1, x, "raz"]), true, "Same");
+ a(t.call([1, x, "raz"], { 0: 1, 1: x, 2: "raz", length: 3 }), true,
+ "Same lists");
+ a(t.call([1, x, "raz"], [x, 1, "raz"]), false, "Diff order");
+ a(t.call([1, x], [1, x, "raz"]), false, "Diff length #1");
+ a(t.call([1, x, "raz"], [1, x]), false, "Diff length #2");
+};
diff --git a/node_modules/es5-ext/test/array/#/is-uniq.js b/node_modules/es5-ext/test/array/#/is-uniq.js
new file mode 100644
index 000000000..ab531ac51
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/is-uniq.js
@@ -0,0 +1,11 @@
+"use strict";
+
+module.exports = function (t, a) {
+ var x = {};
+ a(t.call([]), true, "Empty");
+ a(t.call({}), true, "Empty lists");
+ a(t.call([1, x, "raz"]), true, "Uniq");
+ a(t.call([1, x, 1, "raz"]), false, "Not Uniq: primitive");
+ a(t.call([1, x, "1", "raz"]), true, "Uniq: primitive");
+ a(t.call([1, x, 1, {}, "raz"]), false, "Not Uniq: Obj");
+};
diff --git a/node_modules/es5-ext/test/array/#/keys/implement.js b/node_modules/es5-ext/test/array/#/keys/implement.js
new file mode 100644
index 000000000..cc1f9316a
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/keys/implement.js
@@ -0,0 +1,7 @@
+"use strict";
+
+var isImplemented = require("../../../../array/#/keys/is-implemented");
+
+module.exports = function (a) {
+ a(isImplemented(), true);
+};
diff --git a/node_modules/es5-ext/test/array/#/keys/index.js b/node_modules/es5-ext/test/array/#/keys/index.js
new file mode 100644
index 000000000..10bb8f65d
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/keys/index.js
@@ -0,0 +1,3 @@
+"use strict";
+
+module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/array/#/keys/is-implemented.js b/node_modules/es5-ext/test/array/#/keys/is-implemented.js
new file mode 100644
index 000000000..5003e7e93
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/keys/is-implemented.js
@@ -0,0 +1,5 @@
+"use strict";
+
+module.exports = function (t, a) {
+ a(typeof t(), "boolean");
+};
diff --git a/node_modules/es5-ext/test/array/#/keys/shim.js b/node_modules/es5-ext/test/array/#/keys/shim.js
new file mode 100644
index 000000000..9be9a8f09
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/keys/shim.js
@@ -0,0 +1,9 @@
+"use strict";
+
+exports.__generic = function (t, a) {
+ var iterator = t.call(this);
+ a.deep(iterator.next(), { value: 0, done: false });
+ a.deep(iterator.next(), { value: 1, done: false });
+ a.deep(iterator.next(), { value: 2, done: false });
+ a.deep(iterator.next(), { value: undefined, done: true });
+};
diff --git a/node_modules/es5-ext/test/array/#/last-index.js b/node_modules/es5-ext/test/array/#/last-index.js
new file mode 100644
index 000000000..e66d16f14
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/last-index.js
@@ -0,0 +1,17 @@
+"use strict";
+
+module.exports = function (t, a) {
+ var x;
+ a(t.call([]), null, "Empty");
+ a(t.call([null]), 0, "One value");
+ a(t.call([1, 2, 3]), 2, "Many values");
+ a(t.call(new Array(1000)), null, "Sparse empty");
+ x = [];
+ x[883] = null;
+ x[890] = undefined;
+ a(t.call(x), 890, "Manual sparse, distant value");
+ x = new Array(1000);
+ x[657] = null;
+ x[700] = undefined;
+ a(t.call(x), 700, "Sparse, distant value");
+};
diff --git a/node_modules/es5-ext/test/array/#/last.js b/node_modules/es5-ext/test/array/#/last.js
new file mode 100644
index 000000000..6ca5d0539
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/last.js
@@ -0,0 +1,15 @@
+"use strict";
+
+exports.__generic = function (t, a) {
+ a(t.call(this), this[this.length - 1]);
+};
+
+exports[""] = function (t, a) {
+ var x;
+ a(t.call([]), undefined, "Empty");
+ a(t.call(new Array(234), undefined, "Sparse empty"));
+ x = new Array(2342);
+ x[434] = {};
+ x[450] = {};
+ a(t.call(x), x[450], "Sparse");
+};
diff --git a/node_modules/es5-ext/test/array/#/map/implement.js b/node_modules/es5-ext/test/array/#/map/implement.js
new file mode 100644
index 000000000..26bb41158
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/map/implement.js
@@ -0,0 +1,7 @@
+"use strict";
+
+var isImplemented = require("../../../../array/#/map/is-implemented");
+
+module.exports = function (a) {
+ a(isImplemented(), true);
+};
diff --git a/node_modules/es5-ext/test/array/#/map/index.js b/node_modules/es5-ext/test/array/#/map/index.js
new file mode 100644
index 000000000..10bb8f65d
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/map/index.js
@@ -0,0 +1,3 @@
+"use strict";
+
+module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/array/#/map/is-implemented.js b/node_modules/es5-ext/test/array/#/map/is-implemented.js
new file mode 100644
index 000000000..5003e7e93
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/map/is-implemented.js
@@ -0,0 +1,5 @@
+"use strict";
+
+module.exports = function (t, a) {
+ a(typeof t(), "boolean");
+};
diff --git a/node_modules/es5-ext/test/array/#/map/shim.js b/node_modules/es5-ext/test/array/#/map/shim.js
new file mode 100644
index 000000000..02a5af250
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/map/shim.js
@@ -0,0 +1,19 @@
+"use strict";
+
+var SubArray = require("../../../../array/_sub-array-dummy-safe");
+
+module.exports = function (t, a) {
+ var arr, x = {}, subArr, result;
+
+ arr = ["foo", undefined, 0, "2d", false, x, null];
+
+ a.deep(t.call(arr, Boolean), [true, false, false, true, false, true, false],
+ "Plain array");
+
+ subArr = new SubArray("foo", undefined, 0, "2d", false, x, null);
+
+ result = t.call(subArr, Boolean);
+ a(result instanceof SubArray, true, "Instance of subclass");
+ a.deep(result, [true, false, false, true, false, true, false],
+ "Result of subclass");
+};
diff --git a/node_modules/es5-ext/test/array/#/remove.js b/node_modules/es5-ext/test/array/#/remove.js
new file mode 100644
index 000000000..d67457ea9
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/remove.js
@@ -0,0 +1,14 @@
+"use strict";
+
+module.exports = function (t, a) {
+ var y = {}, z = {}, x = [9, z, 5, y, "foo"];
+ t.call(x, y);
+ a.deep(x, [9, z, 5, "foo"]);
+ t.call(x, {});
+ a.deep(x, [9, z, 5, "foo"], "Not existing");
+ t.call(x, 5);
+ a.deep(x, [9, z, "foo"], "Primitive");
+ x = [9, z, 5, y, "foo"];
+ t.call(x, z, 5, "foo");
+ a.deep(x, [9, y], "More than one argument");
+};
diff --git a/node_modules/es5-ext/test/array/#/separate.js b/node_modules/es5-ext/test/array/#/separate.js
new file mode 100644
index 000000000..9792637f3
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/separate.js
@@ -0,0 +1,15 @@
+"use strict";
+
+module.exports = function (t, a) {
+ var x = [], y = {}, z = {};
+ a.deep(t.call(x, y), [], "Empty");
+ a.not(t.call(x), x, "Returns copy");
+ a.deep(t.call([1], y), [1], "One");
+ a.deep(t.call([1, "raz"], y), [1, y, "raz"], "One");
+ a.deep(t.call([1, "raz", x], y), [1, y, "raz", y, x], "More");
+ x = new Array(1000);
+ x[23] = 2;
+ x[3453] = "raz";
+ x[500] = z;
+ a.deep(t.call(x, y), [2, y, z, y, "raz"], "Sparse");
+};
diff --git a/node_modules/es5-ext/test/array/#/slice/implement.js b/node_modules/es5-ext/test/array/#/slice/implement.js
new file mode 100644
index 000000000..8c9b9be63
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/slice/implement.js
@@ -0,0 +1,7 @@
+"use strict";
+
+var isImplemented = require("../../../../array/#/slice/is-implemented");
+
+module.exports = function (a) {
+ a(isImplemented(), true);
+};
diff --git a/node_modules/es5-ext/test/array/#/slice/index.js b/node_modules/es5-ext/test/array/#/slice/index.js
new file mode 100644
index 000000000..10bb8f65d
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/slice/index.js
@@ -0,0 +1,3 @@
+"use strict";
+
+module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/array/#/slice/is-implemented.js b/node_modules/es5-ext/test/array/#/slice/is-implemented.js
new file mode 100644
index 000000000..5003e7e93
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/slice/is-implemented.js
@@ -0,0 +1,5 @@
+"use strict";
+
+module.exports = function (t, a) {
+ a(typeof t(), "boolean");
+};
diff --git a/node_modules/es5-ext/test/array/#/slice/shim.js b/node_modules/es5-ext/test/array/#/slice/shim.js
new file mode 100644
index 000000000..f09ad13cf
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/slice/shim.js
@@ -0,0 +1,17 @@
+"use strict";
+
+var SubArray = require("../../../../array/_sub-array-dummy-safe");
+
+module.exports = function (t, a) {
+ var arr, x = {}, subArr, result;
+
+ arr = ["foo", undefined, 0, "2d", false, x, null];
+
+ a.deep(t.call(arr, 2, 4), [0, "2d"], "Plain array: result");
+
+ subArr = new SubArray("foo", undefined, 0, "2d", false, x, null);
+
+ result = t.call(subArr, 2, 4);
+ a(result instanceof SubArray, true, "Instance of subclass");
+ a.deep(result, [0, "2d"], "Subclass: result");
+};
diff --git a/node_modules/es5-ext/test/array/#/some-right.js b/node_modules/es5-ext/test/array/#/some-right.js
new file mode 100644
index 000000000..1e0f407e6
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/some-right.js
@@ -0,0 +1,62 @@
+"use strict";
+
+module.exports = {
+ "__generic": function (t, a) {
+ var count = 0, first, last, x, icount = this.length;
+ t.call(this, function (item, index, col) {
+ ++count;
+ if (!first) {
+ first = item;
+ }
+ last = item;
+ x = col;
+ a(index, --icount, "Index");
+ });
+ a(count, this.length, "Iterated");
+ a(first, this[this.length - 1], "First is last");
+ a(last, this[0], "Last is first");
+ a.deep(x, Object(this), "Collection as third argument"); // Jslint: skip
+ },
+ "": function (t, a) {
+ var x = {}, y, count;
+ t.call(
+ [1],
+ function () {
+ y = this;
+ },
+ x
+ );
+ a(y, x, "Scope");
+ y = 0;
+ t.call([3, 4, 4], function (a, i) {
+ y += i;
+ });
+ a(y, 3, "Indexes");
+
+ x = [1, 3];
+ x[5] = "x";
+ y = 0;
+ count = 0;
+ a(
+ t.call(x, function (a, i) {
+ ++count;
+ y += i;
+ }),
+ false,
+ "Return"
+ );
+ a(y, 6, "Misssing Indexes");
+ a(count, 3, "Misssing Indexes, count");
+
+ count = 0;
+ a(
+ t.call([-2, -3, -4, 2, -5], function (item) {
+ ++count;
+ return item > 0;
+ }),
+ true,
+ "Return"
+ );
+ a(count, 2, "Break after true is returned");
+ }
+};
diff --git a/node_modules/es5-ext/test/array/#/splice/implement.js b/node_modules/es5-ext/test/array/#/splice/implement.js
new file mode 100644
index 000000000..f09257a43
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/splice/implement.js
@@ -0,0 +1,7 @@
+"use strict";
+
+var isImplemented = require("../../../../array/#/splice/is-implemented");
+
+module.exports = function (a) {
+ a(isImplemented(), true);
+};
diff --git a/node_modules/es5-ext/test/array/#/splice/index.js b/node_modules/es5-ext/test/array/#/splice/index.js
new file mode 100644
index 000000000..10bb8f65d
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/splice/index.js
@@ -0,0 +1,3 @@
+"use strict";
+
+module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/array/#/splice/is-implemented.js b/node_modules/es5-ext/test/array/#/splice/is-implemented.js
new file mode 100644
index 000000000..5003e7e93
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/splice/is-implemented.js
@@ -0,0 +1,5 @@
+"use strict";
+
+module.exports = function (t, a) {
+ a(typeof t(), "boolean");
+};
diff --git a/node_modules/es5-ext/test/array/#/splice/shim.js b/node_modules/es5-ext/test/array/#/splice/shim.js
new file mode 100644
index 000000000..480200784
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/splice/shim.js
@@ -0,0 +1,19 @@
+"use strict";
+
+var SubArray = require("../../../../array/_sub-array-dummy-safe");
+
+module.exports = function (t, a) {
+ var arr, x = {}, subArr, result;
+
+ arr = ["foo", undefined, 0, "2d", false, x, null];
+
+ a.deep(t.call(arr, 2, 2, "bar"), [0, "2d"], "Plain array: result");
+ a.deep(arr, ["foo", undefined, "bar", false, x, null], "Plain array: change");
+
+ subArr = new SubArray("foo", undefined, 0, "2d", false, x, null);
+
+ result = t.call(subArr, 2, 2, "bar");
+ a(result instanceof SubArray, true, "Instance of subclass");
+ a.deep(result, [0, "2d"], "Subclass: result");
+ a.deep(subArr, ["foo", undefined, "bar", false, x, null], "Subclass: change");
+};
diff --git a/node_modules/es5-ext/test/array/#/uniq.js b/node_modules/es5-ext/test/array/#/uniq.js
new file mode 100644
index 000000000..c7223b26e
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/uniq.js
@@ -0,0 +1,14 @@
+"use strict";
+
+module.exports = {
+ "__generic": function (t, a) {
+ a(t.call(this).length, 3);
+ },
+ "": function (t, a) {
+ var o, x = {}, y = {}, z = {}, w;
+ o = [1, 2, x, 3, 1, "raz", "1", y, x, "trzy", z, "raz"];
+
+ a.not(w = t.call(o), o, "Returns different object");
+ a.deep(w, [1, 2, x, 3, "raz", "1", y, "trzy", z], "Result");
+ }
+};
diff --git a/node_modules/es5-ext/test/array/#/values/implement.js b/node_modules/es5-ext/test/array/#/values/implement.js
new file mode 100644
index 000000000..4ba7613af
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/values/implement.js
@@ -0,0 +1,7 @@
+"use strict";
+
+var isImplemented = require("../../../../array/#/values/is-implemented");
+
+module.exports = function (a) {
+ a(isImplemented(), true);
+};
diff --git a/node_modules/es5-ext/test/array/#/values/index.js b/node_modules/es5-ext/test/array/#/values/index.js
new file mode 100644
index 000000000..10bb8f65d
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/values/index.js
@@ -0,0 +1,3 @@
+"use strict";
+
+module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/array/#/values/is-implemented.js b/node_modules/es5-ext/test/array/#/values/is-implemented.js
new file mode 100644
index 000000000..5003e7e93
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/values/is-implemented.js
@@ -0,0 +1,5 @@
+"use strict";
+
+module.exports = function (t, a) {
+ a(typeof t(), "boolean");
+};
diff --git a/node_modules/es5-ext/test/array/#/values/shim.js b/node_modules/es5-ext/test/array/#/values/shim.js
new file mode 100644
index 000000000..71b71d58a
--- /dev/null
+++ b/node_modules/es5-ext/test/array/#/values/shim.js
@@ -0,0 +1,9 @@
+"use strict";
+
+exports.__generic = function (t, a) {
+ var iterator = t.call(this);
+ a.deep(iterator.next(), { value: "1", done: false });
+ a.deep(iterator.next(), { value: "2", done: false });
+ a.deep(iterator.next(), { value: "3", done: false });
+ a.deep(iterator.next(), { value: undefined, done: true });
+};