summaryrefslogtreecommitdiff
path: root/tools/eslint/node_modules/escope/node_modules/es6-weak-map/test
diff options
context:
space:
mode:
Diffstat (limited to 'tools/eslint/node_modules/escope/node_modules/es6-weak-map/test')
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/test/implement.js3
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/test/index.js6
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/test/is-implemented.js3
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/test/is-native-implemented.js3
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/test/is-weak-map.js16
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/test/polyfill.js22
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-weak-map/test/valid-weak-map.js19
7 files changed, 72 insertions, 0 deletions
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/test/implement.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/test/implement.js
new file mode 100644
index 0000000000..860027ed29
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/test/implement.js
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = function (t, a) { a(typeof WeakMap, 'function'); };
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/test/index.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/test/index.js
new file mode 100644
index 0000000000..9b26e4fa7e
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/test/index.js
@@ -0,0 +1,6 @@
+'use strict';
+
+module.exports = function (T, a) {
+ var x = {};
+ a((new T([[x, 'foo']])).get(x), 'foo');
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/test/is-implemented.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/test/is-implemented.js
new file mode 100644
index 0000000000..1a8832889b
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/test/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/test/is-native-implemented.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/test/is-native-implemented.js
new file mode 100644
index 0000000000..df8ba0323f
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/test/is-native-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/test/is-weak-map.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/test/is-weak-map.js
new file mode 100644
index 0000000000..ba8c04519c
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/test/is-weak-map.js
@@ -0,0 +1,16 @@
+'use strict';
+
+var WeakMapPoly = require('../polyfill');
+
+module.exports = function (t, a) {
+ a(t(undefined), false, "Undefined");
+ a(t(null), false, "Null");
+ a(t(true), false, "Primitive");
+ a(t('raz'), false, "String");
+ a(t({}), false, "Object");
+ a(t([]), false, "Array");
+ if (typeof WeakMap !== 'undefined') {
+ a(t(new WeakMap()), true, "Native");
+ }
+ a(t(new WeakMapPoly()), true, "Polyfill");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/test/polyfill.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/test/polyfill.js
new file mode 100644
index 0000000000..1a4885be83
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/test/polyfill.js
@@ -0,0 +1,22 @@
+'use strict';
+
+module.exports = function (T, a) {
+ var x = {}, y = {}, z = {}, arr = [[x, 'raz'], [y, 'dwa']], map = new T(arr);
+
+ a(map instanceof T, true, "WeakMap");
+ a(map.has(x), true, "Has: true");
+ a(map.get(x), 'raz', "Get: contains");
+ a(map.has(z), false, "Has: false");
+ a(map.get(z), undefined, "Get: doesn't contain");
+ a(map.set(z, 'trzy'), map, "Set: return");
+ a(map.has(z), true, "Add");
+ a(map.delete({}), false, "Delete: false");
+
+ a(map.delete(x), true, "Delete: true");
+ a(map.get(x), undefined, "Get: after delete");
+ a(map.has(x), false, "Has: after delete");
+
+ a(map.has(y), true, "Has: pre clear");
+ map.clear();
+ a(map.has(y), false, "Has: after clear");
+};
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-weak-map/test/valid-weak-map.js b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/test/valid-weak-map.js
new file mode 100644
index 0000000000..a7823421a7
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-weak-map/test/valid-weak-map.js
@@ -0,0 +1,19 @@
+'use strict';
+
+var WeakMapPoly = require('../polyfill');
+
+module.exports = function (t, a) {
+ var map;
+ a.throws(function () { t(undefined); }, TypeError, "Undefined");
+ a.throws(function () { t(null); }, TypeError, "Null");
+ a.throws(function () { t(true); }, TypeError, "Primitive");
+ a.throws(function () { t('raz'); }, TypeError, "String");
+ a.throws(function () { t({}); }, TypeError, "Object");
+ a.throws(function () { t([]); }, TypeError, "Array");
+ if (typeof WeakMap !== 'undefined') {
+ map = new WeakMap();
+ a(t(map), map, "Native");
+ }
+ map = new WeakMapPoly();
+ a(t(map), map, "Polyfill");
+};