summaryrefslogtreecommitdiff
path: root/tools/eslint/node_modules/escope/node_modules/es6-map/node_modules/es6-set/primitive/index.js
diff options
context:
space:
mode:
authorYosuke Furukawa <yosuke.furukawa@gmail.com>2015-04-29 02:03:05 +0900
committerYosuke Furukawa <yosuke.furukawa@gmail.com>2015-05-09 12:09:52 +0900
commitf9dd34d301ab385ae316769b85ef916f9b70b6f6 (patch)
tree9ce5db7bdff46e587535de5549eef7e02656f5d8 /tools/eslint/node_modules/escope/node_modules/es6-map/node_modules/es6-set/primitive/index.js
parent5883a59b21a97e8b7339f435c977155a2c29ba8d (diff)
downloadandroid-node-v8-f9dd34d301ab385ae316769b85ef916f9b70b6f6.tar.gz
android-node-v8-f9dd34d301ab385ae316769b85ef916f9b70b6f6.tar.bz2
android-node-v8-f9dd34d301ab385ae316769b85ef916f9b70b6f6.zip
tools: replace closure-linter with eslint
PR-URL: https://github.com/iojs/io.js/pull/1539 Fixes: https://github.com/iojs/io.js/issues/1253 Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com> Reviewed-By: Trevor Norris <trev.norris@gmail.com> Reviewed-By: Roman Reiss <me@silverwind.io> Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com> Reviewed-By: Johan Bergström <bugs@bergstroem.nu> Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
Diffstat (limited to 'tools/eslint/node_modules/escope/node_modules/es6-map/node_modules/es6-set/primitive/index.js')
-rw-r--r--tools/eslint/node_modules/escope/node_modules/es6-map/node_modules/es6-set/primitive/index.js88
1 files changed, 88 insertions, 0 deletions
diff --git a/tools/eslint/node_modules/escope/node_modules/es6-map/node_modules/es6-set/primitive/index.js b/tools/eslint/node_modules/escope/node_modules/es6-map/node_modules/es6-set/primitive/index.js
new file mode 100644
index 0000000000..4565887d41
--- /dev/null
+++ b/tools/eslint/node_modules/escope/node_modules/es6-map/node_modules/es6-set/primitive/index.js
@@ -0,0 +1,88 @@
+'use strict';
+
+var callable = require('es5-ext/object/valid-callable')
+ , clear = require('es5-ext/object/clear')
+ , setPrototypeOf = require('es5-ext/object/set-prototype-of')
+ , d = require('d')
+ , iterator = require('es6-iterator/valid-iterable')
+ , forOf = require('es6-iterator/for-of')
+ , Set = require('../polyfill')
+ , Iterator = require('../lib/primitive-iterator')
+
+ , create = Object.create, defineProperties = Object.defineProperties
+ , defineProperty = Object.defineProperty
+ , hasOwnProperty = Object.prototype.hasOwnProperty
+ , PrimitiveSet;
+
+module.exports = PrimitiveSet = function (/*iterable, serialize*/) {
+ var iterable = arguments[0], serialize = arguments[1];
+ if (!(this instanceof PrimitiveSet)) {
+ return new PrimitiveSet(iterable, serialize);
+ }
+ if (this.__setData__ !== undefined) {
+ throw new TypeError(this + " cannot be reinitialized");
+ }
+ if (iterable != null) iterator(iterable);
+ if (serialize !== undefined) {
+ callable(serialize);
+ defineProperty(this, '_serialize', d('', serialize));
+ }
+ defineProperties(this, {
+ __setData__: d('c', create(null)),
+ __size__: d('w', 0)
+ });
+ if (!iterable) return;
+ forOf(iterable, function (value) {
+ var key = this._serialize(value);
+ if (key == null) throw new TypeError(value + " cannot be serialized");
+ if (hasOwnProperty.call(this.__setData__, key)) return;
+ this.__setData__[key] = value;
+ ++this.__size__;
+ }, this);
+};
+if (setPrototypeOf) setPrototypeOf(PrimitiveSet, Set);
+
+PrimitiveSet.prototype = create(Set.prototype, {
+ constructor: d(PrimitiveSet),
+ _serialize: d(function (value) {
+ if (value && (typeof value.toString !== 'function')) return null;
+ return String(value);
+ }),
+ add: d(function (value) {
+ var key = this._serialize(value);
+ if (key == null) throw new TypeError(value + " cannot be serialized");
+ if (hasOwnProperty.call(this.__setData__, key)) return this;
+ this.__setData__[key] = value;
+ ++this.__size__;
+ this.emit('_add', key);
+ return this;
+ }),
+ clear: d(function () {
+ if (!this.__size__) return;
+ clear(this.__setData__);
+ this.__size__ = 0;
+ this.emit('_clear');
+ }),
+ delete: d(function (value) {
+ var key = this._serialize(value);
+ if (key == null) return false;
+ if (!hasOwnProperty.call(this.__setData__, key)) return false;
+ delete this.__setData__[key];
+ --this.__size__;
+ this.emit('_delete', key);
+ return true;
+ }),
+ entries: d(function () { return new Iterator(this, 'key+value'); }),
+ get: d(function (key) {
+ key = this._serialize(key);
+ if (key == null) return;
+ return this.__setData__[key];
+ }),
+ has: d(function (value) {
+ var key = this._serialize(value);
+ if (key == null) return false;
+ return hasOwnProperty.call(this.__setData__, key);
+ }),
+ size: d.gs(function () { return this.__size__; }),
+ values: d(function () { return new Iterator(this); })
+});