summaryrefslogtreecommitdiff
path: root/tools/eslint/node_modules/escope/node_modules/es6-map/node_modules/es5-ext/array/#/intersection.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/eslint/node_modules/escope/node_modules/es6-map/node_modules/es5-ext/array/#/intersection.js')
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-map/node_modules/es5-ext/array/#/intersection.js19
1 files changed, 19 insertions, 0 deletions
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-map/node_modules/es5-ext/array/#/intersection.js b/tools/eslint/node_modules/escope/node_modules/es6-map/node_modules/es5-ext/array/#/intersection.js
new file mode 100644
index 0000000000..fadcb52530
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-map/node_modules/es5-ext/array/#/intersection.js
@@ -0,0 +1,19 @@
+'use strict';
+
+var value = require('../../object/valid-value')
+ , contains = require('./contains')
+ , byLength = require('./_compare-by-length')
+
+ , filter = Array.prototype.filter, push = Array.prototype.push
+ , slice = Array.prototype.slice;
+
+module.exports = function (/*…list*/) {
+ var lists;
+ if (!arguments.length) slice.call(this);
+ push.apply(lists = [this], arguments);
+ lists.forEach(value);
+ lists.sort(byLength);
+ return lists.reduce(function (a, b) {
+ return filter.call(a, function (x) { return contains.call(b, x); });
+ });
+};