diff options
Diffstat (limited to 'tools/eslint/lib/code-path-analysis/id-generator.js')
-rw-r--r-- | tools/eslint/lib/code-path-analysis/id-generator.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tools/eslint/lib/code-path-analysis/id-generator.js b/tools/eslint/lib/code-path-analysis/id-generator.js new file mode 100644 index 0000000000..c37e7d7e5b --- /dev/null +++ b/tools/eslint/lib/code-path-analysis/id-generator.js @@ -0,0 +1,43 @@ +/** + * @fileoverview A class of identifiers generator for code path segments. + * + * Each rule uses the identifier of code path segments to store additional + * information of the code path. + * + * @author Toru Nagashima + * @copyright 2015 Toru Nagashima. All rights reserved. + * See LICENSE file in root directory for full license. + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** + * A generator for unique ids. + * + * @constructor + * @param {string} prefix - Optional. A prefix of generated ids. + */ +function IdGenerator(prefix) { + this.prefix = String(prefix); + this.n = 0; +} + +/** + * Generates id. + * + * @returns {string} A generated id. + */ +IdGenerator.prototype.next = function() { + this.n = 1 + this.n | 0; + /* istanbul ignore if */ + if (this.n < 0) { + this.n = 1; + } + return this.prefix + this.n; +}; + +module.exports = IdGenerator; |