summaryrefslogtreecommitdiff
path: root/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object
diff options
context:
space:
mode:
Diffstat (limited to 'tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object')
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/_iterate.js30
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign/implement.js5
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign/index.js3
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign/is-implemented.js3
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign/shim.js11
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/clear.js13
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/compact.js14
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/compare.js13
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/copy-deep.js24
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/copy.js19
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/count.js11
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/create.js22
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/eq.js12
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/every.js21
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/filter.js6
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/first-key.js13
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/flatten.js6
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/for-each.js10
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/get-property-names.js18
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-array-like.js14
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-callable.js8
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-copy-deep.js46
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-copy.js18
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-empty.js6
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-object.js13
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-plain-object.js18
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is.js12
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/key-of.js12
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys/implement.js5
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys/index.js3
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys/is-implemented.js3
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys/shim.js8
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/map-keys.js7
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/map.js9
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/mixin-prototypes.js67
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/mixin.js69
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/normalize-options.js32
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/primitive-set.js15
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/safe-traverse.js15
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/serialize.js25
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of/implement.js6
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of/index.js23
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of/is-implemented.js3
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of/shim.js23
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/some.js23
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/to-array.js15
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/unserialize.js24
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/valid-callable.js9
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/valid-object.js15
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/valid-value.js19
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/validate-array-like-object.js15
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/validate-array-like.js15
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/validate-stringifiable-value.js16
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/validate-stringifiable.js16
54 files changed, 881 insertions, 0 deletions
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/_iterate.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/_iterate.js
new file mode 100644
index 0000000000..179afed88e
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/_iterate.js
@@ -0,0 +1,30 @@
+'use strict';
+
+module.exports = function (t, a) {
+ var o = { raz: 1, dwa: 2, trzy: 3 }
+ , o2 = {}, o3 = {}, arr, i = -1;
+
+ t = t('forEach');
+ t(o, function (value, name, self, index) {
+ o2[name] = value;
+ a(index, ++i, "Index");
+ a(self, o, "Self");
+ a(this, o3, "Scope");
+ }, o3);
+ a.deep(o2, o);
+
+ arr = [];
+ o2 = {};
+ i = -1;
+ t(o, function (value, name, self, index) {
+ arr.push(value);
+ o2[name] = value;
+ a(index, ++i, "Index");
+ a(self, o, "Self");
+ a(this, o3, "Scope");
+ }, o3, function (a, b) {
+ return o[b] - o[a];
+ });
+ a.deep(o2, o, "Sort by Values: Content");
+ a.deep(arr, [3, 2, 1], "Sort by Values: Order");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign/implement.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign/implement.js
new file mode 100644
index 0000000000..4006559418
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign/implement.js
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../object/assign/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign/index.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign/index.js
new file mode 100644
index 0000000000..2e0bfa3249
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign/index.js
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign/is-implemented.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign/is-implemented.js
new file mode 100644
index 0000000000..1a8832889b
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign/is-implemented.js
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign/shim.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign/shim.js
new file mode 100644
index 0000000000..9afe5f658c
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/assign/shim.js
@@ -0,0 +1,11 @@
+'use strict';
+
+module.exports = function (t, a) {
+ var o1 = { a: 1, b: 2 }
+ , o2 = { b: 3, c: 4 };
+
+ a(t(o1, o2), o1, "Returns self");
+ a.deep(o1, { a: 1, b: 3, c: 4 }, "Single: content");
+
+ a.deep(t({}, o1, o2), { a: 1, b: 3, c: 4 }, "Multi argument");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/clear.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/clear.js
new file mode 100644
index 0000000000..bfc08cc208
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/clear.js
@@ -0,0 +1,13 @@
+'use strict';
+
+var isEmpty = require('../../object/is-empty');
+
+module.exports = function (t, a) {
+ var x = {};
+ a(t(x), x, "Empty: Returns same object");
+ a(isEmpty(x), true, "Empty: Not changed");
+ x.foo = 'raz';
+ x.bar = 'dwa';
+ a(t(x), x, "Same object");
+ a(isEmpty(x), true, "Emptied");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/compact.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/compact.js
new file mode 100644
index 0000000000..9c9064c788
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/compact.js
@@ -0,0 +1,14 @@
+'use strict';
+
+module.exports = function (t, a) {
+ var x = {}, y = {}, z;
+ z = t(x);
+ a.not(z, x, "Returns different object");
+ a.deep(z, {}, "Empty on empty");
+
+ x = { foo: 'bar', a: 0, b: false, c: '', d: '0', e: null, bar: y,
+ elo: undefined };
+ z = t(x);
+ a.deep(z, { foo: 'bar', a: 0, b: false, c: '', d: '0', bar: y },
+ "Cleared null values");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/compare.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/compare.js
new file mode 100644
index 0000000000..cb9424109c
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/compare.js
@@ -0,0 +1,13 @@
+'use strict';
+
+module.exports = function (t, a) {
+ var d = new Date();
+
+ a.ok(t(12, 3) > 0, "Numbers");
+ a.ok(t(2, 13) < 0, "Numbers #2");
+ a.ok(t("aaa", "aa") > 0, "Strings");
+ a.ok(t("aa", "ab") < 0, "Strings #2");
+ a(t("aa", "aa"), 0, "Strings same");
+ a(t(d, new Date(d.getTime())), 0, "Same date");
+ a.ok(t(d, new Date(d.getTime() + 1)) < 0, "Different date");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/copy-deep.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/copy-deep.js
new file mode 100644
index 0000000000..a4023bc8ac
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/copy-deep.js
@@ -0,0 +1,24 @@
+'use strict';
+
+var stringify = JSON.stringify;
+
+module.exports = function (t, a) {
+ var o = { 1: 'raz', 2: 'dwa', 3: 'trzy' }
+ , no = t(o);
+
+ a.not(no, o, "Return different object");
+ a(stringify(no), stringify(o), "Match properties and values");
+
+ o = { foo: 'bar', raz: { dwa: 'dwa',
+ trzy: { cztery: 'pięć', 'sześć': 'siedem' }, osiem: {},
+ 'dziewięć': function () { } }, 'dziesięć': 10 };
+ o.raz.rec = o;
+
+ no = t(o);
+ a.not(o.raz, no.raz, "Deep");
+ a.not(o.raz.trzy, no.raz.trzy, "Deep #2");
+ a(stringify(o.raz.trzy), stringify(no.raz.trzy), "Deep content");
+ a(no.raz.rec, no, "Recursive");
+ a.not(o.raz.osiem, no.raz.osiem, "Empty object");
+ a(o.raz['dziewięć'], no.raz['dziewięć'], "Function");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/copy.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/copy.js
new file mode 100644
index 0000000000..2f222ef809
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/copy.js
@@ -0,0 +1,19 @@
+'use strict';
+
+var stringify = JSON.stringify;
+
+module.exports = function (t, a) {
+ var o = { 1: 'raz', 2: 'dwa', 3: 'trzy' }
+ , no = t(o);
+
+ a.not(no, o, "Return different object");
+ a(stringify(no), stringify(o), "Match properties and values");
+
+ o = { foo: 'bar', raz: { dwa: 'dwa',
+ trzy: { cztery: 'pięć', 'sześć': 'siedem' }, osiem: {},
+ 'dziewięć': function () { } }, 'dziesięć': 10 };
+ o.raz.rec = o;
+
+ no = t(o);
+ a(o.raz, no.raz, "Shallow");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/count.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/count.js
new file mode 100644
index 0000000000..494f4f1635
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/count.js
@@ -0,0 +1,11 @@
+'use strict';
+
+module.exports = function (t, a) {
+ a(t({}), 0, "Empty");
+ a(t({ raz: 1, dwa: null, trzy: undefined, cztery: 0 }), 4,
+ "Some properties");
+ a(t(Object.defineProperties({}, {
+ raz: { value: 'raz' },
+ dwa: { value: 'dwa', enumerable: true }
+ })), 1, "Some properties hidden");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/create.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/create.js
new file mode 100644
index 0000000000..8b7be21413
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/create.js
@@ -0,0 +1,22 @@
+'use strict';
+
+var setPrototypeOf = require('../../object/set-prototype-of')
+
+ , getPrototypeOf = Object.getPrototypeOf;
+
+module.exports = function (t, a) {
+ var x = {}, obj;
+
+ a(getPrototypeOf(t(x)), x, "Normal object");
+ a(getPrototypeOf(t(null)),
+ (setPrototypeOf && setPrototypeOf.nullPolyfill) || null, "Null");
+
+ a.h1("Properties");
+ a.h2("Normal object");
+ a(getPrototypeOf(obj = t(x, { foo: { value: 'bar' } })), x, "Prototype");
+ a(obj.foo, 'bar', "Property");
+ a.h2("Null");
+ a(getPrototypeOf(obj = t(null, { foo: { value: 'bar2' } })),
+ (setPrototypeOf && setPrototypeOf.nullPolyfill) || null, "Prototype");
+ a(obj.foo, 'bar2', "Property");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/eq.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/eq.js
new file mode 100644
index 0000000000..02b3f0027c
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/eq.js
@@ -0,0 +1,12 @@
+'use strict';
+
+module.exports = function (t, a) {
+ var o = {};
+ a(t(o, {}), false, "Different objects");
+ a(t(o, o), true, "Same objects");
+ a(t('1', '1'), true, "Same primitive");
+ a(t('1', 1), false, "Different primitive types");
+ a(t(NaN, NaN), true, "NaN");
+ a(t(0, 0), true, "0,0");
+ a(t(0, -0), true, "0,-0");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/every.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/every.js
new file mode 100644
index 0000000000..07d5bbbd61
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/every.js
@@ -0,0 +1,21 @@
+'use strict';
+
+var o = { 1: 1, 2: 2, 3: 3 };
+
+module.exports = function (t, a) {
+ var o2 = {};
+ t(o, function (value, name) {
+ o2[name] = value;
+ return true;
+ });
+ a(JSON.stringify(o2), JSON.stringify(o), "Iterates");
+
+ a(t(o, function () {
+ return true;
+ }), true, "Succeeds");
+
+ a(t(o, function () {
+ return false;
+ }), false, "Fails");
+
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/filter.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/filter.js
new file mode 100644
index 0000000000..7307da8640
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/filter.js
@@ -0,0 +1,6 @@
+'use strict';
+
+module.exports = function (t, a) {
+ a.deep(t({ 1: 1, 2: 2, 3: 3, 4: 4 },
+ function (value) { return Boolean(value % 2); }), { 1: 1, 3: 3 });
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/first-key.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/first-key.js
new file mode 100644
index 0000000000..8169cd2353
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/first-key.js
@@ -0,0 +1,13 @@
+'use strict';
+
+module.exports = function (t, a) {
+ var x = {}, y = Object.create(null);
+ a(t(x), null, "Normal: Empty");
+ a(t(y), null, "Null extension: Empty");
+ x.foo = 'raz';
+ x.bar = 343;
+ a(['foo', 'bar'].indexOf(t(x)) !== -1, true, "Normal");
+ y.elo = 'foo';
+ y.mar = 'wew';
+ a(['elo', 'mar'].indexOf(t(y)) !== -1, true, "Null extension");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/flatten.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/flatten.js
new file mode 100644
index 0000000000..ca342eab9c
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/flatten.js
@@ -0,0 +1,6 @@
+'use strict';
+
+module.exports = function (t, a) {
+ a.deep(t({ a: { aa: 1, ab: 2 }, b: { ba: 3, bb: 4 } }),
+ { aa: 1, ab: 2, ba: 3, bb: 4 });
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/for-each.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/for-each.js
new file mode 100644
index 0000000000..8690d1e821
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/for-each.js
@@ -0,0 +1,10 @@
+'use strict';
+
+module.exports = function (t, a) {
+ var o = { raz: 1, dwa: 2, trzy: 3 }
+ , o2 = {};
+ a(t(o, function (value, name) {
+ o2[name] = value;
+ }), undefined, "Return");
+ a.deep(o2, o);
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/get-property-names.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/get-property-names.js
new file mode 100644
index 0000000000..b91c3dd50e
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/get-property-names.js
@@ -0,0 +1,18 @@
+'use strict';
+
+module.exports = function (t, a) {
+ var o = { first: 1, second: 4 }, r1, r2;
+ o = Object.create(o, {
+ third: { value: null }
+ });
+ o.first = 2;
+ o = Object.create(o);
+ o.fourth = 3;
+
+ r1 = t(o);
+ r1.sort();
+ r2 = ['first', 'second', 'third', 'fourth']
+ .concat(Object.getOwnPropertyNames(Object.prototype));
+ r2.sort();
+ a.deep(r1, r2);
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-array-like.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-array-like.js
new file mode 100644
index 0000000000..6295973ca8
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-array-like.js
@@ -0,0 +1,14 @@
+'use strict';
+
+module.exports = function (t, a) {
+ 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");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-callable.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-callable.js
new file mode 100644
index 0000000000..625e221d2c
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-callable.js
@@ -0,0 +1,8 @@
+'use strict';
+
+module.exports = function (t, a) {
+ a(t(function () {}), true, "Function");
+ a(t({}), false, "Object");
+ a(t(), false, "Undefined");
+ a(t(null), false, "Null");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-copy-deep.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-copy-deep.js
new file mode 100644
index 0000000000..4f14cbbe81
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-copy-deep.js
@@ -0,0 +1,46 @@
+'use strict';
+
+module.exports = function (t, a) {
+ var x, y;
+
+ a(t({ 1: 1, 2: 2, 3: 3 }, { 1: 1, 2: 2, 3: 3 }), true, "Same");
+ a(t({ 1: 1, 2: 2, 3: 3 }, { 1: 1, 2: 2, 3: 4 }), false,
+ "Different property value");
+ a(t({ 1: 1, 2: 2, 3: 3 }, { 1: 1, 2: 2 }), false,
+ "Property only in source");
+ a(t({ 1: 1, 2: 2 }, { 1: 1, 2: 2, 3: 4 }), false,
+ "Property only in target");
+
+ a(t("raz", "dwa"), false, "String: diff");
+ a(t("raz", "raz"), true, "String: same");
+ a(t("32", 32), false, "String & Number");
+
+ a(t([1, 'raz', true], [1, 'raz', true]), true, "Array: same");
+ a(t([1, 'raz', undefined], [1, 'raz']), false, "Array: diff");
+ a(t(['foo'], ['one']), false, "Array: One value comparision");
+
+ x = { foo: { bar: { mar: {} } } };
+ y = { foo: { bar: { mar: {} } } };
+ a(t(x, y), true, "Deep");
+
+ a(t({ foo: { bar: { mar: 'foo' } } }, { foo: { bar: { mar: {} } } }),
+ false, "Deep: false");
+
+ x = { foo: { bar: { mar: {} } } };
+ x.rec = { foo: x };
+
+ y = { foo: { bar: { mar: {} } } };
+ y.rec = { foo: x };
+
+ a(t(x, y), true, "Object: Infinite Recursion: Same #1");
+
+ x.rec.foo = y;
+ a(t(x, y), true, "Object: Infinite Recursion: Same #2");
+
+ x.rec.foo = x;
+ y.rec.foo = y;
+ a(t(x, y), true, "Object: Infinite Recursion: Same #3");
+
+ y.foo.bar.mar = 'raz';
+ a(t(x, y), false, "Object: Infinite Recursion: Diff");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-copy.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-copy.js
new file mode 100644
index 0000000000..394e2ed94c
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-copy.js
@@ -0,0 +1,18 @@
+'use strict';
+
+module.exports = function (t, a) {
+ a(t({ 1: 1, 2: 2, 3: 3 }, { 1: 1, 2: 2, 3: 3 }), true, "Same");
+ a(t({ 1: 1, 2: 2, 3: 3 }, { 1: 1, 2: 2, 3: 4 }), false,
+ "Different property value");
+ a(t({ 1: 1, 2: 2, 3: 3 }, { 1: 1, 2: 2 }), false,
+ "Property only in source");
+ a(t({ 1: 1, 2: 2 }, { 1: 1, 2: 2, 3: 4 }), false,
+ "Property only in target");
+
+ a(t("raz", "dwa"), false, "String: diff");
+ a(t("raz", "raz"), true, "String: same");
+ a(t("32", 32), false, "String & Number");
+
+ a(t([1, 'raz', true], [1, 'raz', true]), true, "Array: same");
+ a(t([1, 'raz', undefined], [1, 'raz']), false, "Array: diff");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-empty.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-empty.js
new file mode 100644
index 0000000000..b560c2c36b
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-empty.js
@@ -0,0 +1,6 @@
+'use strict';
+
+module.exports = function (t, a) {
+ a(t({}), true, "Empty");
+ a(t({ 1: 1 }), false, "Not empty");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-object.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-object.js
new file mode 100644
index 0000000000..72c8aa6daf
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-object.js
@@ -0,0 +1,13 @@
+'use strict';
+
+module.exports = function (t, a) {
+ a(t('arar'), false, "String");
+ a(t(12), false, "Number");
+ a(t(true), false, "Boolean");
+ a(t(null), false, "Null");
+ a(t(new Date()), true, "Date");
+ a(t(new String('raz')), true, "String object");
+ a(t({}), true, "Plain object");
+ a(t(/a/), true, "Regular expression");
+ a(t(function () {}), true, "Function");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-plain-object.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-plain-object.js
new file mode 100644
index 0000000000..e988829d55
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is-plain-object.js
@@ -0,0 +1,18 @@
+'use strict';
+
+module.exports = function (t, a) {
+ a(t({}), true, "Empty {} is plain object");
+ a(t({ a: true }), true, "{} with property is plain object");
+ a(t({ prototype: 1, constructor: 2, __proto__: 3 }), true,
+ "{} with any property keys is plain object");
+ a(t(null), false, "Null is not plain object");
+ a(t('string'), false, "Primitive is not plain object");
+ a(t(function () {}), false, "Function is not plain object");
+ a(t(Object.create({})), false,
+ "Object whose prototype is not Object.prototype is not plain object");
+ a(t(Object.create(Object.prototype)), true,
+ "Object whose prototype is Object.prototype is plain object");
+ a(t(Object.create(null)), true,
+ "Object whose prototype is null is plain object");
+ a(t(Object.prototype), false, "Object.prototype");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is.js
new file mode 100644
index 0000000000..4f8948cbf3
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/is.js
@@ -0,0 +1,12 @@
+'use strict';
+
+module.exports = function (t, a) {
+ var o = {};
+ a(t(o, {}), false, "Different objects");
+ a(t(o, o), true, "Same objects");
+ a(t('1', '1'), true, "Same primitive");
+ a(t('1', 1), false, "Different primitive types");
+ a(t(NaN, NaN), true, "NaN");
+ a(t(0, 0), true, "0,0");
+ a(t(0, -0), false, "0,-0");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/key-of.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/key-of.js
new file mode 100644
index 0000000000..a9225a048c
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/key-of.js
@@ -0,0 +1,12 @@
+'use strict';
+
+module.exports = function (t, a) {
+ var x = {}, y = {}
+ , o = { foo: 'bar', raz: x, trzy: 'cztery', five: '6' };
+
+ a(t(o, 'bar'), 'foo', "First property");
+ a(t(o, 6), null, "Primitive that's not there");
+ a(t(o, x), 'raz', "Object");
+ a(t(o, y), null, "Object that's not there");
+ a(t(o, '6'), 'five', "Last property");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys/implement.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys/implement.js
new file mode 100644
index 0000000000..179e1e5612
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys/implement.js
@@ -0,0 +1,5 @@
+'use strict';
+
+var isImplemented = require('../../../object/keys/is-implemented');
+
+module.exports = function (a) { a(isImplemented(), true); };
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys/index.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys/index.js
new file mode 100644
index 0000000000..2e0bfa3249
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys/index.js
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./shim');
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys/is-implemented.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys/is-implemented.js
new file mode 100644
index 0000000000..1a8832889b
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys/is-implemented.js
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys/shim.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys/shim.js
new file mode 100644
index 0000000000..ed29eebcd7
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/keys/shim.js
@@ -0,0 +1,8 @@
+'use strict';
+
+module.exports = function (t, a) {
+ a.deep(t({ foo: 'bar' }), ['foo'], "Object");
+ a.deep(t('raz'), ['0', '1', '2'], "Primitive");
+ a.throws(function () { t(); }, TypeError, "Undefined");
+ a.throws(function () { t(null); }, TypeError, "Undefined");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/map-keys.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/map-keys.js
new file mode 100644
index 0000000000..be84825b1b
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/map-keys.js
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = function (t, a) {
+ a.deep(t({ 1: 1, 2: 2, 3: 3 }, function (key, value) {
+ return 'x' + (key + value);
+ }), { x11: 1, x22: 2, x33: 3 });
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/map.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/map.js
new file mode 100644
index 0000000000..f9cc09c01b
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/map.js
@@ -0,0 +1,9 @@
+'use strict';
+
+module.exports = function (t, a) {
+ var obj = { 1: 1, 2: 2, 3: 3 };
+ a.deep(t(obj, function (value, key, context) {
+ a(context, obj, "Context argument");
+ return (value + 1) + key;
+ }), { 1: '21', 2: '32', 3: '43' });
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/mixin-prototypes.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/mixin-prototypes.js
new file mode 100644
index 0000000000..d1c727a95a
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/mixin-prototypes.js
@@ -0,0 +1,67 @@
+'use strict';
+
+module.exports = function (t, a) {
+ var o, o1, o2, x, y = {}, z = {};
+ o = { inherited: true, visible: 23 };
+ o1 = Object.create(o);
+ o1.visible = z;
+ o1.nonremovable = 'raz';
+ Object.defineProperty(o1, 'hidden', { value: 'hidden' });
+
+ o2 = Object.defineProperties({}, { nonremovable: { value: y } });
+ o2.other = 'other';
+
+ try { t(o2, o1); } catch (ignore) {}
+
+ a(o2.visible, z, "Enumerable");
+ a(o1.hidden, 'hidden', "Not Enumerable");
+ a(o2.propertyIsEnumerable('visible'), true, "Enumerable is enumerable");
+ a(o2.propertyIsEnumerable('hidden'), false,
+ "Not enumerable is not enumerable");
+
+ a(o2.inherited, true, "Extend deep");
+
+ a(o2.nonremovable, y, "Do not overwrite non configurable");
+ a(o2.other, 'other', "Own kept");
+
+ x = {};
+ t(x, o2);
+ try { t(x, o1); } catch (ignore) {}
+
+ a(x.visible, z, "Enumerable");
+ a(x.hidden, 'hidden', "Not Enumerable");
+ a(x.propertyIsEnumerable('visible'), true, "Enumerable is enumerable");
+ a(x.propertyIsEnumerable('hidden'), false,
+ "Not enumerable is not enumerable");
+
+ a(x.inherited, true, "Extend deep");
+
+ a(x.nonremovable, y, "Ignored non configurable");
+ a(x.other, 'other', "Other");
+
+ x.visible = 3;
+ a(x.visible, 3, "Writable is writable");
+
+ x = {};
+ t(x, o1);
+ a.throws(function () {
+ x.hidden = 3;
+ }, "Not writable is not writable");
+
+ x = {};
+ t(x, o1);
+ delete x.visible;
+ a.ok(!x.hasOwnProperty('visible'), "Configurable is configurable");
+
+ x = {};
+ t(x, o1);
+ a.throws(function () {
+ delete x.hidden;
+ }, "Not configurable is not configurable");
+
+ x = Object.defineProperty({}, 'foo',
+ { configurable: false, writable: true, enumerable: false, value: 'bar' });
+
+ try { t(x, { foo: 'lorem' }); } catch (ignore) {}
+ a(x.foo, 'bar', "Writable, not enumerable");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/mixin.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/mixin.js
new file mode 100644
index 0000000000..866005b03d
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/mixin.js
@@ -0,0 +1,69 @@
+'use strict';
+
+module.exports = function (t, a) {
+ var o, o1, o2, x, y = {}, z = {};
+ o = { inherited: true };
+ o1 = Object.create(o);
+ o1.visible = z;
+ o1.nonremovable = 'raz';
+ Object.defineProperty(o1, 'hidden', { value: 'hidden' });
+
+ o2 = Object.defineProperties({}, { nonremovable: { value: y } });
+ o2.other = 'other';
+
+ try { t(o2, o1); } catch (ignore) {}
+
+ a(o2.visible, z, "Enumerable");
+ a(o1.hidden, 'hidden', "Not Enumerable");
+ a(o2.propertyIsEnumerable('visible'), true, "Enumerable is enumerable");
+ a(o2.propertyIsEnumerable('hidden'), false,
+ "Not enumerable is not enumerable");
+
+ a(o2.hasOwnProperty('inherited'), false, "Extend only own");
+ a(o2.inherited, undefined, "Extend ony own: value");
+
+ a(o2.nonremovable, y, "Do not overwrite non configurable");
+ a(o2.other, 'other', "Own kept");
+
+ x = {};
+ t(x, o2);
+ try { t(x, o1); } catch (ignore) {}
+
+ a(x.visible, z, "Enumerable");
+ a(x.hidden, 'hidden', "Not Enumerable");
+ a(x.propertyIsEnumerable('visible'), true, "Enumerable is enumerable");
+ a(x.propertyIsEnumerable('hidden'), false,
+ "Not enumerable is not enumerable");
+
+ a(x.hasOwnProperty('inherited'), false, "Extend only own");
+ a(x.inherited, undefined, "Extend ony own: value");
+
+ a(x.nonremovable, y, "Ignored non configurable");
+ a(x.other, 'other', "Other");
+
+ x.visible = 3;
+ a(x.visible, 3, "Writable is writable");
+
+ x = {};
+ t(x, o1);
+ a.throws(function () {
+ x.hidden = 3;
+ }, "Not writable is not writable");
+
+ x = {};
+ t(x, o1);
+ delete x.visible;
+ a.ok(!x.hasOwnProperty('visible'), "Configurable is configurable");
+
+ x = {};
+ t(x, o1);
+ a.throws(function () {
+ delete x.hidden;
+ }, "Not configurable is not configurable");
+
+ x = Object.defineProperty({}, 'foo',
+ { configurable: false, writable: true, enumerable: false, value: 'bar' });
+
+ try { t(x, { foo: 'lorem' }); } catch (ignore) {}
+ a(x.foo, 'bar', "Writable, not enumerable");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/normalize-options.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/normalize-options.js
new file mode 100644
index 0000000000..0d2d4da04a
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/normalize-options.js
@@ -0,0 +1,32 @@
+'use strict';
+
+var create = Object.create, defineProperty = Object.defineProperty;
+
+module.exports = function (t, a) {
+ var x = { foo: 'raz', bar: 'dwa' }, y;
+ y = t(x);
+ a.not(y, x, "Returns copy");
+ a.deep(y, x, "Plain");
+
+ x = { raz: 'one', dwa: 'two' };
+ defineProperty(x, 'get', {
+ configurable: true,
+ enumerable: true,
+ get: function () { return this.dwa; }
+ });
+ x = create(x);
+ x.trzy = 'three';
+ x.cztery = 'four';
+ x = create(x);
+ x.dwa = 'two!';
+ x.trzy = 'three!';
+ x.piec = 'five';
+ x.szesc = 'six';
+
+ a.deep(t(x), { raz: 'one', dwa: 'two!', trzy: 'three!', cztery: 'four',
+ piec: 'five', szesc: 'six', get: 'two!' }, "Deep object");
+
+ a.deep(t({ marko: 'raz', raz: 'foo' }, x, { szesc: 'elo', siedem: 'bibg' }),
+ { marko: 'raz', raz: 'one', dwa: 'two!', trzy: 'three!', cztery: 'four',
+ piec: 'five', szesc: 'elo', siedem: 'bibg', get: 'two!' }, "Multiple options");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/primitive-set.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/primitive-set.js
new file mode 100644
index 0000000000..839857eab3
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/primitive-set.js
@@ -0,0 +1,15 @@
+'use strict';
+
+var getPropertyNames = require('../../object/get-property-names')
+ , isPlainObject = require('../../object/is-plain-object');
+
+module.exports = function (t, a) {
+ var x = t();
+ a(isPlainObject(x), true, "Plain object");
+ a.deep(getPropertyNames(x), [], "No properties");
+ x.foo = 'bar';
+ a.deep(getPropertyNames(x), ['foo'], "Extensible");
+
+ a.deep(t('raz', 'dwa', 3), { raz: true, dwa: true, 3: true },
+ "Arguments handling");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/safe-traverse.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/safe-traverse.js
new file mode 100644
index 0000000000..d30cdefe68
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/safe-traverse.js
@@ -0,0 +1,15 @@
+'use strict';
+
+module.exports = function (t, a) {
+ var obj = { foo: { bar: { lorem: 12 } } };
+ a(t(obj), obj, "No props");
+ a(t(obj, 'foo'), obj.foo, "One");
+ a(t(obj, 'raz'), undefined, "One: Fail");
+ a(t(obj, 'foo', 'bar'), obj.foo.bar, "Two");
+ a(t(obj, 'dsd', 'raz'), undefined, "Two: Fail #1");
+ a(t(obj, 'foo', 'raz'), undefined, "Two: Fail #2");
+ a(t(obj, 'foo', 'bar', 'lorem'), obj.foo.bar.lorem, "Three");
+ a(t(obj, 'dsd', 'raz', 'fef'), undefined, "Three: Fail #1");
+ a(t(obj, 'foo', 'raz', 'asdf'), undefined, "Three: Fail #2");
+ a(t(obj, 'foo', 'bar', 'asd'), undefined, "Three: Fail #3");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/serialize.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/serialize.js
new file mode 100644
index 0000000000..43eed6a861
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/serialize.js
@@ -0,0 +1,25 @@
+'use strict';
+
+module.exports = function (t, a) {
+ var fn = function (raz, dwa) { return raz + dwa; };
+ a(t(), 'undefined', "Undefined");
+ a(t(null), 'null', "Null");
+ a(t(null), 'null', "Null");
+ a(t('raz'), '"raz"', "String");
+ a(t('raz"ddwa\ntrzy'), '"raz\\"ddwa\\ntrzy"', "String with escape");
+ a(t(false), 'false', "Booelean");
+ a(t(fn), String(fn), "Function");
+
+ a(t(/raz-dwa/g), '/raz-dwa/g', "RegExp");
+ a(t(new Date(1234567)), 'new Date(1234567)', "Date");
+ a(t([]), '[]', "Empty array");
+ a(t([undefined, false, null, 'raz"ddwa\ntrzy', fn, /raz/g, new Date(1234567), ['foo']]),
+ '[undefined,false,null,"raz\\"ddwa\\ntrzy",' + String(fn) +
+ ',/raz/g,new Date(1234567),["foo"]]', "Rich Array");
+ a(t({}), '{}', "Empty object");
+ a(t({ raz: undefined, dwa: false, trzy: null, cztery: 'raz"ddwa\ntrzy', piec: fn, szesc: /raz/g,
+ siedem: new Date(1234567), osiem: ['foo', 32], dziewiec: { foo: 'bar', dwa: 343 } }),
+ '{"raz":undefined,"dwa":false,"trzy":null,"cztery":"raz\\"ddwa\\ntrzy","piec":' + String(fn) +
+ ',"szesc":/raz/g,"siedem":new Date(1234567),"osiem":["foo",32],' +
+ '"dziewiec":{"foo":"bar","dwa":343}}', "Rich object");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of/implement.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of/implement.js
new file mode 100644
index 0000000000..30b2ac4b96
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of/implement.js
@@ -0,0 +1,6 @@
+'use strict';
+
+var create = require('../../../object/create')
+ , isImplemented = require('../../../object/set-prototype-of/is-implemented');
+
+module.exports = function (a) { a(isImplemented(create), true); };
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of/index.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of/index.js
new file mode 100644
index 0000000000..aec2605cc2
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of/index.js
@@ -0,0 +1,23 @@
+'use strict';
+
+var create = require('../../../object/create')
+
+ , getPrototypeOf = Object.getPrototypeOf;
+
+module.exports = function (t, a) {
+ var x = {}, y = {};
+
+ if (t === null) return;
+ a(t(x, y), x, "Return self object");
+ a(getPrototypeOf(x), y, "Object");
+ a.throws(function () { t(x); }, TypeError, "Undefined");
+ a.throws(function () { t('foo'); }, TypeError, "Primitive");
+ a(getPrototypeOf(t(x, null)), t.nullPolyfill || null, "Null");
+ x = create(null);
+ a.h1("Change null prototype");
+ a(t(x, y), x, "Result");
+ a(getPrototypeOf(x), y, "Prototype");
+ a.h1("Set null prototype");
+ a(t(y, null), y, "Result");
+ a(getPrototypeOf(y), t.nullPolyfill || null, "Prototype");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of/is-implemented.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of/is-implemented.js
new file mode 100644
index 0000000000..1a8832889b
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of/is-implemented.js
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof t(), 'boolean'); };
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of/shim.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of/shim.js
new file mode 100644
index 0000000000..aec2605cc2
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/set-prototype-of/shim.js
@@ -0,0 +1,23 @@
+'use strict';
+
+var create = require('../../../object/create')
+
+ , getPrototypeOf = Object.getPrototypeOf;
+
+module.exports = function (t, a) {
+ var x = {}, y = {};
+
+ if (t === null) return;
+ a(t(x, y), x, "Return self object");
+ a(getPrototypeOf(x), y, "Object");
+ a.throws(function () { t(x); }, TypeError, "Undefined");
+ a.throws(function () { t('foo'); }, TypeError, "Primitive");
+ a(getPrototypeOf(t(x, null)), t.nullPolyfill || null, "Null");
+ x = create(null);
+ a.h1("Change null prototype");
+ a(t(x, y), x, "Result");
+ a(getPrototypeOf(x), y, "Prototype");
+ a.h1("Set null prototype");
+ a(t(y, null), y, "Result");
+ a(getPrototypeOf(y), t.nullPolyfill || null, "Prototype");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/some.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/some.js
new file mode 100644
index 0000000000..490431e7ac
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/some.js
@@ -0,0 +1,23 @@
+'use strict';
+
+var o = { 1: 1, 2: 2, 3: 3 };
+
+module.exports = function (t, a) {
+ var o2 = {}, i = 0;
+ t(o, function (value, name) {
+ o2[name] = value;
+ return false;
+ });
+ a(JSON.stringify(o2), JSON.stringify(o), "Iterates");
+
+ a(t(o, function () {
+ ++i;
+ return true;
+ }), true, "Succeeds");
+ a(i, 1, "Stops iteration after condition is met");
+
+ a(t(o, function () {
+ return false;
+ }), false, "Fails");
+
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/to-array.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/to-array.js
new file mode 100644
index 0000000000..1f4beef7ea
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/to-array.js
@@ -0,0 +1,15 @@
+'use strict';
+
+module.exports = function (t, a) {
+ var o = { 1: 1, 2: 2, 3: 3 }, o1 = {}
+ , o2 = t(o, function (value, name, self) {
+ a(self, o, "Self");
+ a(this, o1, "Scope");
+ return value + Number(name);
+ }, o1);
+ a.deep(o2, [2, 4, 6]);
+
+ t(o).sort().forEach(function (item) {
+ a.deep(item, [item[0], o[item[0]]], "Default");
+ });
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/unserialize.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/unserialize.js
new file mode 100644
index 0000000000..405eef112f
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/unserialize.js
@@ -0,0 +1,24 @@
+'use strict';
+
+module.exports = function (t, a) {
+ var fn = function (raz, dwa) { return raz + dwa; };
+ a(t('undefined'), undefined, "Undefined");
+ a(t('null'), null, "Null");
+ a(t('"raz"'), 'raz', "String");
+ a(t('"raz\\"ddwa\\ntrzy"'), 'raz"ddwa\ntrzy', "String with escape");
+ a(t('false'), false, "Booelean");
+ a(String(t(String(fn))), String(fn), "Function");
+
+ a.deep(t('/raz-dwa/g'), /raz-dwa/g, "RegExp");
+ a.deep(t('new Date(1234567)'), new Date(1234567), "Date");
+ a.deep(t('[]'), [], "Empty array");
+ a.deep(t('[undefined,false,null,"raz\\"ddwa\\ntrzy",/raz/g,new Date(1234567),["foo"]]'),
+ [undefined, false, null, 'raz"ddwa\ntrzy', /raz/g, new Date(1234567), ['foo']], "Rich Array");
+ a.deep(t('{}'), {}, "Empty object");
+ a.deep(t('{"raz":undefined,"dwa":false,"trzy":null,"cztery":"raz\\"ddwa\\ntrzy",' +
+ '"szesc":/raz/g,"siedem":new Date(1234567),"osiem":["foo",32],' +
+ '"dziewiec":{"foo":"bar","dwa":343}}'),
+ { raz: undefined, dwa: false, trzy: null, cztery: 'raz"ddwa\ntrzy', szesc: /raz/g,
+ siedem: new Date(1234567), osiem: ['foo', 32], dziewiec: { foo: 'bar', dwa: 343 } },
+ "Rich object");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/valid-callable.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/valid-callable.js
new file mode 100644
index 0000000000..b40540b6ba
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/valid-callable.js
@@ -0,0 +1,9 @@
+'use strict';
+
+module.exports = function (t, a) {
+ var f = function () {};
+ a(t(f), f, "Function");
+ a.throws(function () {
+ t({});
+ }, "Not Function");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/valid-object.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/valid-object.js
new file mode 100644
index 0000000000..eaa8e7bcb3
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/valid-object.js
@@ -0,0 +1,15 @@
+'use strict';
+
+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, "''");
+ a(t(x = {}), x, "Object");
+ a(t(x = function () {}), x, "Function");
+ a(t(x = new String('raz')), x, "String object"); //jslint: ignore
+ a(t(x = new Date()), x, "Date");
+
+ a.throws(function () { t(); }, TypeError, "Undefined");
+ a.throws(function () { t(null); }, TypeError, "null");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/valid-value.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/valid-value.js
new file mode 100644
index 0000000000..f1eeafa977
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/valid-value.js
@@ -0,0 +1,19 @@
+'use strict';
+
+var numIsNaN = require('../../number/is-nan');
+
+module.exports = function (t, a) {
+ var x;
+ a(t(0), 0, "0");
+ a(t(false), false, "false");
+ a(t(''), '', "''");
+ a(numIsNaN(t(NaN)), true, "NaN");
+ a(t(x = {}), x, "{}");
+
+ a.throws(function () {
+ t();
+ }, "Undefined");
+ a.throws(function () {
+ t(null);
+ }, "null");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/validate-array-like-object.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/validate-array-like-object.js
new file mode 100644
index 0000000000..2f3e31b442
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/validate-array-like-object.js
@@ -0,0 +1,15 @@
+'use strict';
+
+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");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/validate-array-like.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/validate-array-like.js
new file mode 100644
index 0000000000..53bd11249e
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/validate-array-like.js
@@ -0,0 +1,15 @@
+'use strict';
+
+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");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/validate-stringifiable-value.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/validate-stringifiable-value.js
new file mode 100644
index 0000000000..ae9bd17a59
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/validate-stringifiable-value.js
@@ -0,0 +1,16 @@
+'use strict';
+
+module.exports = function (t, a) {
+ var x;
+ a.throws(function () { t(); }, TypeError, "Undefined");
+ a.throws(function () { t(null); }, TypeError, "Null");
+ a(t(0), "0");
+ a(t(false), "false");
+ a(t(''), "");
+ a(t({}), String({}), "Object");
+ a(t(x = function () {}), String(x), "Function");
+ a(t(x = new String('raz')), String(x), "String object"); //jslint: ignore
+ a(t(x = new Date()), String(x), "Date");
+
+ a.throws(function () { t(Object.create(null)); }, TypeError, "Null prototype object");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/validate-stringifiable.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/validate-stringifiable.js
new file mode 100644
index 0000000000..4a46bb5219
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/test/object/validate-stringifiable.js
@@ -0,0 +1,16 @@
+'use strict';
+
+module.exports = function (t, a) {
+ var x;
+ a(t(), 'undefined', "Undefined");
+ a(t(null), 'null', "Null");
+ a(t(0), "0");
+ a(t(false), "false");
+ a(t(''), "");
+ a(t({}), String({}), "Object");
+ a(t(x = function () {}), String(x), "Function");
+ a(t(x = new String('raz')), String(x), "String object"); //jslint: ignore
+ a(t(x = new Date()), String(x), "Date");
+
+ a.throws(function () { t(Object.create(null)); }, TypeError, "Null prototype object");
+};