├── benchmark ├── fixtures │ ├── 10.js │ ├── 200.js │ └── 1000.js ├── code │ ├── slice.js │ ├── last.js │ └── length.js ├── index.js ├── check.js └── last.md ├── .verb.md ├── .gitattributes ├── .travis.yml ├── .editorconfig ├── .gitignore ├── index.js ├── LICENSE ├── test.js ├── package.json ├── README.md └── .eslintrc.json /benchmark/fixtures/10.js: -------------------------------------------------------------------------------- 1 | module.exports = [[ '1', '2', '3', '4', '5', '6', '7', '8', '9', '10' ]]; 2 | -------------------------------------------------------------------------------- /benchmark/code/slice.js: -------------------------------------------------------------------------------- 1 | module.exports = function (arr) { 2 | return last(arr, 5); 3 | }; 4 | 5 | function last(arr, n) { 6 | return arr.slice(-n); 7 | } -------------------------------------------------------------------------------- /benchmark/code/last.js: -------------------------------------------------------------------------------- 1 | var slice = require('array-slice'); 2 | 3 | module.exports = function (arr) { 4 | return last(arr, 5); 5 | } 6 | 7 | function last(arr, n) { 8 | return slice(arr, -n); 9 | }; 10 | -------------------------------------------------------------------------------- /benchmark/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Suite = require('benchmarked'); 4 | var suite = new Suite({ 5 | result: false, 6 | fixtures: 'fixtures/*.js', 7 | add: 'code/*.js', 8 | cwd: __dirname 9 | }); 10 | 11 | suite.run(); 12 | -------------------------------------------------------------------------------- /benchmark/code/length.js: -------------------------------------------------------------------------------- 1 | module.exports = function (arr) { 2 | return last(arr, 5); 3 | }; 4 | 5 | 6 | function last(arr, n) { 7 | var len = arr.length; 8 | var res = new Array(n); 9 | while (n--) { 10 | res[n] = arr[--len]; 11 | } 12 | return res; 13 | } 14 | -------------------------------------------------------------------------------- /.verb.md: -------------------------------------------------------------------------------- 1 | ## Usage 2 | 3 | ```js 4 | var last = require('array-last'); 5 | 6 | last(['a', 'b', 'c', 'd', 'e', 'f']); 7 | //=> 'f' 8 | 9 | last(['a', 'b', 'c', 'd', 'e', 'f'], 1); 10 | //=> 'f' 11 | 12 | last(['a', 'b', 'c', 'd', 'e', 'f'], 3); 13 | //=> ['d', 'e', 'f'] 14 | ``` 15 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Enforce Unix newlines 2 | *.* text eol=lf 3 | *.css text eol=lf 4 | *.html text eol=lf 5 | *.js text eol=lf 6 | *.json text eol=lf 7 | *.less text eol=lf 8 | *.md text eol=lf 9 | *.yml text eol=lf 10 | 11 | *.jpg binary 12 | *.gif binary 13 | *.png binary 14 | *.jpeg binary -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | os: 3 | - linux 4 | - osx 5 | language: node_js 6 | node_js: 7 | - node 8 | - '9' 9 | - '8' 10 | - '7' 11 | - '6' 12 | - '5' 13 | - '4' 14 | - '0.12' 15 | - '0.10' 16 | matrix: 17 | fast_finish: true 18 | allow_failures: 19 | - node_js: '0.8' 20 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org/ 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | end_of_line = lf 7 | indent_size = 2 8 | indent_style = space 9 | insert_final_newline = true 10 | trim_trailing_whitespace = true 11 | 12 | [{**/{actual,fixtures,expected,templates}/**,*.md}] 13 | trim_trailing_whitespace = false 14 | insert_final_newline = false 15 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # always ignore files 2 | *.DS_Store 3 | .idea 4 | *.sublime-* 5 | 6 | # test related, or directories generated by tests 7 | test/actual 8 | actual 9 | coverage 10 | .nyc* 11 | 12 | # npm 13 | node_modules 14 | npm-debug.log 15 | 16 | # yarn 17 | yarn.lock 18 | yarn-error.log 19 | 20 | # misc 21 | _gh_pages 22 | _draft 23 | _drafts 24 | bower_components 25 | vendor 26 | temp 27 | tmp 28 | TODO.md 29 | package-lock.json -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * array-last 3 | * 4 | * Copyright (c) 2014-2017, Jon Schlinkert. 5 | * Released under the MIT License. 6 | */ 7 | 8 | var isNumber = require('is-number'); 9 | 10 | module.exports = function last(arr, n) { 11 | if (!Array.isArray(arr)) { 12 | throw new Error('expected the first argument to be an array'); 13 | } 14 | 15 | var len = arr.length; 16 | if (len === 0) { 17 | return null; 18 | } 19 | 20 | n = isNumber(n) ? +n : 1; 21 | if (n === 1) { 22 | return arr[len - 1]; 23 | } 24 | 25 | var res = new Array(n); 26 | while (n--) { 27 | res[n] = arr[--len]; 28 | } 29 | return res; 30 | }; 31 | -------------------------------------------------------------------------------- /benchmark/check.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var fs = require('fs'); 4 | var path = require('path'); 5 | var bold = require('ansi-bold'); 6 | var glob = require('matched'); 7 | 8 | var fixtures = __dirname + '/fixtures'; 9 | var code = __dirname + '/code'; 10 | 11 | glob.sync('*.js', {cwd: code}).forEach(function (fp) { 12 | var fn = require(path.resolve(code, fp)); 13 | var name = path.basename(fp, path.extname(fp)); 14 | 15 | glob.sync('*.js', {cwd: fixtures}).forEach(function (fixture) { 16 | fixture = path.resolve(fixtures, fixture); 17 | var base = path.basename(fixture, path.extname(fixture)); 18 | console.log(bold(name + ' [' + base + ']') + ':', fn.apply(fn, require(fixture))); 19 | }); 20 | }); 21 | 22 | // var braces = require('braces'); 23 | 24 | // function range(a, b, step) { 25 | // var arr = [], i = a, max = b; 26 | // step = step || 1; 27 | 28 | // while ((i = (step + i)) < max) { 29 | // arr.push(String(i)); 30 | // } 31 | // return arr; 32 | // }; 33 | 34 | // console.log(range(0, 1000000)); 35 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014-2015, Jon Schlinkert. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /benchmark/last.md: -------------------------------------------------------------------------------- 1 | #1: 10 2 | last x 12,920,534 ops/sec ±0.81% (92 runs sampled) 3 | length x 18,823,522 ops/sec ±1.01% (96 runs sampled) 4 | slice x 6,758,821 ops/sec ±0.84% (95 runs sampled) 5 | 6 | fastest is length 7 | #2: 200 8 | last x 11,584,195 ops/sec ±0.79% (94 runs sampled) 9 | length x 16,563,612 ops/sec ±0.99% (96 runs sampled) 10 | slice x 6,550,712 ops/sec ±0.84% (94 runs sampled) 11 | 12 | fastest is length 13 | #3: 1000 14 | last x 12,169,165 ops/sec ±0.92% (91 runs sampled) 15 | length x 19,077,664 ops/sec ±0.85% (95 runs sampled) 16 | slice x 5,932,595 ops/sec ±0.71% (96 runs sampled) 17 | 18 | fastest is length 19 | #4: 100000 20 | last x 11,412,307 ops/sec ±0.82% (93 runs sampled) 21 | length x 19,089,178 ops/sec ±0.88% (95 runs sampled) 22 | slice x 6,345,079 ops/sec ±0.87% (96 runs sampled) 23 | 24 | fastest is length 25 | #5: 1000000 26 | last x 11,873,191 ops/sec ±0.76% (94 runs sampled) 27 | length x 18,934,005 ops/sec ±0.84% (92 runs sampled) 28 | slice x 5,942,823 ops/sec ±0.72% (97 runs sampled) 29 | 30 | fastest is length 31 | -------------------------------------------------------------------------------- /test.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * array-last 3 | * 4 | * Copyright (c) 2014-2017, Jon Schlinkert. 5 | * Released under the MIT License. 6 | */ 7 | 8 | 'use strict'; 9 | 10 | require('mocha'); 11 | var assert = require('assert'); 12 | var last = require('./'); 13 | 14 | describe('last', function() { 15 | it('should throw an error if invalid arguments are passed', function() { 16 | assert.throws(function() { 17 | last(); 18 | }, /expected/i); 19 | 20 | assert.throws(function() { 21 | last('foo'); 22 | }, /expected/i); 23 | 24 | assert.throws(function() { 25 | last({ foo: 'bar' }); 26 | }, /expected/i); 27 | }); 28 | 29 | it('should return the last element in the array:', function() { 30 | assert.strictEqual(last(['a', 'b', 'c', 'd', 'e', 'f']), 'f'); 31 | assert.strictEqual(last(['a', 'b', 'c', 'd', 'e', 'f'], 1), 'f'); 32 | }); 33 | 34 | it('should the last n elements of the array:', function() { 35 | assert.deepEqual(last(['a', 'b', 'c', 'd', 'e', 'f'], 3), ['d', 'e', 'f']); 36 | }); 37 | 38 | it('should return null if the array has no elements', function() { 39 | assert.strictEqual(last([]), null); 40 | assert.strictEqual(last([], 3), null); 41 | }); 42 | }); 43 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "array-last", 3 | "description": "Get the last or last n elements in an array.", 4 | "version": "1.3.0", 5 | "homepage": "https://github.com/jonschlinkert/array-last", 6 | "author": "Jon Schlinkert (https://github.com/jonschlinkert)", 7 | "contributors": [ 8 | "Ben Drucker (http://www.bendrucker.me)", 9 | "Blaine Bublitz (https://twitter.com/BlaineBublitz)", 10 | "Jon Schlinkert (http://twitter.com/jonschlinkert)", 11 | "Stephen A. Wilson (https://github.com/SpyMaster356)" 12 | ], 13 | "repository": "jonschlinkert/array-last", 14 | "bugs": { 15 | "url": "https://github.com/jonschlinkert/array-last/issues" 16 | }, 17 | "license": "MIT", 18 | "files": [ 19 | "index.js" 20 | ], 21 | "main": "index.js", 22 | "engines": { 23 | "node": ">=0.10.0" 24 | }, 25 | "scripts": { 26 | "test": "mocha" 27 | }, 28 | "dependencies": { 29 | "is-number": "^4.0.0" 30 | }, 31 | "devDependencies": { 32 | "ansi-bold": "^0.1.1", 33 | "array-slice": "^1.0.0", 34 | "benchmarked": "^1.1.1", 35 | "gulp-format-md": "^1.0.0", 36 | "matched": "^1.0.2", 37 | "mocha": "^3.5.0" 38 | }, 39 | "keywords": [ 40 | "array", 41 | "fast", 42 | "first", 43 | "initial", 44 | "javascript", 45 | "js", 46 | "last", 47 | "rest", 48 | "util", 49 | "utility", 50 | "utils" 51 | ], 52 | "verb": { 53 | "run": true, 54 | "toc": false, 55 | "layout": "default", 56 | "tasks": [ 57 | "readme" 58 | ], 59 | "plugins": [ 60 | "gulp-format-md" 61 | ], 62 | "related": { 63 | "list": [ 64 | "arr-union", 65 | "array-unique", 66 | "array-xor" 67 | ] 68 | }, 69 | "reflinks": [ 70 | "verb" 71 | ], 72 | "lint": { 73 | "reflinks": true 74 | } 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /benchmark/fixtures/200.js: -------------------------------------------------------------------------------- 1 | module.exports = [[ 2 | '1', 3 | '2', 4 | '3', 5 | '4', 6 | '5', 7 | '6', 8 | '7', 9 | '8', 10 | '9', 11 | '10', 12 | '11', 13 | '12', 14 | '13', 15 | '14', 16 | '15', 17 | '16', 18 | '17', 19 | '18', 20 | '19', 21 | '20', 22 | '21', 23 | '22', 24 | '23', 25 | '24', 26 | '25', 27 | '26', 28 | '27', 29 | '28', 30 | '29', 31 | '30', 32 | '31', 33 | '32', 34 | '33', 35 | '34', 36 | '35', 37 | '36', 38 | '37', 39 | '38', 40 | '39', 41 | '40', 42 | '41', 43 | '42', 44 | '43', 45 | '44', 46 | '45', 47 | '46', 48 | '47', 49 | '48', 50 | '49', 51 | '50', 52 | '51', 53 | '52', 54 | '53', 55 | '54', 56 | '55', 57 | '56', 58 | '57', 59 | '58', 60 | '59', 61 | '60', 62 | '61', 63 | '62', 64 | '63', 65 | '64', 66 | '65', 67 | '66', 68 | '67', 69 | '68', 70 | '69', 71 | '70', 72 | '71', 73 | '72', 74 | '73', 75 | '74', 76 | '75', 77 | '76', 78 | '77', 79 | '78', 80 | '79', 81 | '80', 82 | '81', 83 | '82', 84 | '83', 85 | '84', 86 | '85', 87 | '86', 88 | '87', 89 | '88', 90 | '89', 91 | '90', 92 | '91', 93 | '92', 94 | '93', 95 | '94', 96 | '95', 97 | '96', 98 | '97', 99 | '98', 100 | '99', 101 | '100', 102 | '101', 103 | '102', 104 | '103', 105 | '104', 106 | '105', 107 | '106', 108 | '107', 109 | '108', 110 | '109', 111 | '110', 112 | '111', 113 | '112', 114 | '113', 115 | '114', 116 | '115', 117 | '116', 118 | '117', 119 | '118', 120 | '119', 121 | '120', 122 | '121', 123 | '122', 124 | '123', 125 | '124', 126 | '125', 127 | '126', 128 | '127', 129 | '128', 130 | '129', 131 | '130', 132 | '131', 133 | '132', 134 | '133', 135 | '134', 136 | '135', 137 | '136', 138 | '137', 139 | '138', 140 | '139', 141 | '140', 142 | '141', 143 | '142', 144 | '143', 145 | '144', 146 | '145', 147 | '146', 148 | '147', 149 | '148', 150 | '149', 151 | '150', 152 | '151', 153 | '152', 154 | '153', 155 | '154', 156 | '155', 157 | '156', 158 | '157', 159 | '158', 160 | '159', 161 | '160', 162 | '161', 163 | '162', 164 | '163', 165 | '164', 166 | '165', 167 | '166', 168 | '167', 169 | '168', 170 | '169', 171 | '170', 172 | '171', 173 | '172', 174 | '173', 175 | '174', 176 | '175', 177 | '176', 178 | '177', 179 | '178', 180 | '179', 181 | '180', 182 | '181', 183 | '182', 184 | '183', 185 | '184', 186 | '185', 187 | '186', 188 | '187', 189 | '188', 190 | '189', 191 | '190', 192 | '191', 193 | '192', 194 | '193', 195 | '194', 196 | '195', 197 | '196', 198 | '197', 199 | '198', 200 | '199', 201 | '200' ]]; -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # array-last [![NPM version](https://img.shields.io/npm/v/array-last.svg?style=flat)](https://www.npmjs.com/package/array-last) [![NPM monthly downloads](https://img.shields.io/npm/dm/array-last.svg?style=flat)](https://npmjs.org/package/array-last) [![NPM total downloads](https://img.shields.io/npm/dt/array-last.svg?style=flat)](https://npmjs.org/package/array-last) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/array-last.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/array-last) 2 | 3 | > Get the last or last n elements in an array. 4 | 5 | Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. 6 | 7 | ## Install 8 | 9 | Install with [npm](https://www.npmjs.com/): 10 | 11 | ```sh 12 | $ npm install --save array-last 13 | ``` 14 | 15 | ## Usage 16 | 17 | ```js 18 | var last = require('array-last'); 19 | 20 | last(['a', 'b', 'c', 'd', 'e', 'f']); 21 | //=> 'f' 22 | 23 | last(['a', 'b', 'c', 'd', 'e', 'f'], 1); 24 | //=> 'f' 25 | 26 | last(['a', 'b', 'c', 'd', 'e', 'f'], 3); 27 | //=> ['d', 'e', 'f'] 28 | ``` 29 | 30 | ## About 31 | 32 |
33 | Contributing 34 | 35 | Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). 36 | 37 |
38 | 39 |
40 | Running Tests 41 | 42 | Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: 43 | 44 | ```sh 45 | $ npm install && npm test 46 | ``` 47 | 48 |
49 | 50 |
51 | Building docs 52 | 53 | _(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ 54 | 55 | To generate the readme, run the following command: 56 | 57 | ```sh 58 | $ npm install -g verbose/verb#dev verb-generate-readme && verb 59 | ``` 60 | 61 |
62 | 63 | ### Related projects 64 | 65 | You might also be interested in these projects: 66 | 67 | * [arr-union](https://www.npmjs.com/package/arr-union): Combines a list of arrays, returning a single array with unique values, using strict equality… [more](https://github.com/jonschlinkert/arr-union) | [homepage](https://github.com/jonschlinkert/arr-union) 68 | * [array-unique](https://www.npmjs.com/package/array-unique): Remove duplicate values from an array. Fastest ES5 implementation. | [homepage](https://github.com/jonschlinkert/array-unique) 69 | * [array-xor](https://www.npmjs.com/package/array-xor): Returns the symmetric difference (exclusive-or) of an array of elements (elements that are present in… [more](https://github.com/jonschlinkert/array-xor) | [homepage](https://github.com/jonschlinkert/array-xor) 70 | 71 | ### Contributors 72 | 73 | | **Commits** | **Contributor** | 74 | | --- | --- | 75 | | 19 | [jonschlinkert](https://github.com/jonschlinkert) | 76 | | 3 | [SpyMaster356](https://github.com/SpyMaster356) | 77 | | 2 | [bendrucker](https://github.com/bendrucker) | 78 | | 2 | [phated](https://github.com/phated) | 79 | 80 | ### Author 81 | 82 | **Jon Schlinkert** 83 | 84 | * [github/jonschlinkert](https://github.com/jonschlinkert) 85 | * [twitter/jonschlinkert](https://twitter.com/jonschlinkert) 86 | 87 | ### License 88 | 89 | Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert). 90 | Released under the [MIT License](LICENSE). 91 | 92 | *** 93 | 94 | _This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on November 30, 2017._ -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": false, 4 | "es6": true, 5 | "node": true, 6 | "mocha": true 7 | }, 8 | 9 | "globals": { 10 | "document": false, 11 | "navigator": false, 12 | "window": false 13 | }, 14 | 15 | "rules": { 16 | "accessor-pairs": 2, 17 | "arrow-spacing": [2, { "before": true, "after": true }], 18 | "block-spacing": [2, "always"], 19 | "brace-style": [2, "1tbs", { "allowSingleLine": true }], 20 | "comma-dangle": [2, "never"], 21 | "comma-spacing": [2, { "before": false, "after": true }], 22 | "comma-style": [2, "last"], 23 | "constructor-super": 2, 24 | "curly": [2, "multi-line"], 25 | "dot-location": [2, "property"], 26 | "eol-last": 2, 27 | "eqeqeq": [2, "allow-null"], 28 | "generator-star-spacing": [2, { "before": true, "after": true }], 29 | "handle-callback-err": [2, "^(err|error)$" ], 30 | "indent": [2, 2, { "SwitchCase": 1 }], 31 | "key-spacing": [2, { "beforeColon": false, "afterColon": true }], 32 | "keyword-spacing": [2, { "before": true, "after": true }], 33 | "new-cap": [2, { "newIsCap": true, "capIsNew": false }], 34 | "new-parens": 2, 35 | "no-array-constructor": 2, 36 | "no-caller": 2, 37 | "no-class-assign": 2, 38 | "no-cond-assign": 2, 39 | "no-const-assign": 2, 40 | "no-control-regex": 2, 41 | "no-debugger": 2, 42 | "no-delete-var": 2, 43 | "no-dupe-args": 2, 44 | "no-dupe-class-members": 2, 45 | "no-dupe-keys": 2, 46 | "no-duplicate-case": 2, 47 | "no-empty-character-class": 2, 48 | "no-eval": 2, 49 | "no-ex-assign": 2, 50 | "no-extend-native": 2, 51 | "no-extra-bind": 2, 52 | "no-extra-boolean-cast": 2, 53 | "no-extra-parens": [2, "functions"], 54 | "no-fallthrough": 2, 55 | "no-floating-decimal": 2, 56 | "no-func-assign": 2, 57 | "no-implied-eval": 2, 58 | "no-inner-declarations": [2, "functions"], 59 | "no-invalid-regexp": 2, 60 | "no-irregular-whitespace": 2, 61 | "no-iterator": 2, 62 | "no-label-var": 2, 63 | "no-labels": 2, 64 | "no-lone-blocks": 2, 65 | "no-mixed-spaces-and-tabs": 2, 66 | "no-multi-spaces": 2, 67 | "no-multi-str": 2, 68 | "no-multiple-empty-lines": [2, { "max": 1 }], 69 | "no-native-reassign": 0, 70 | "no-negated-in-lhs": 2, 71 | "no-new": 2, 72 | "no-new-func": 2, 73 | "no-new-object": 2, 74 | "no-new-require": 2, 75 | "no-new-wrappers": 2, 76 | "no-obj-calls": 2, 77 | "no-octal": 2, 78 | "no-octal-escape": 2, 79 | "no-proto": 0, 80 | "no-redeclare": 2, 81 | "no-regex-spaces": 2, 82 | "no-return-assign": 2, 83 | "no-self-compare": 2, 84 | "no-sequences": 2, 85 | "no-shadow-restricted-names": 2, 86 | "no-spaced-func": 2, 87 | "no-sparse-arrays": 2, 88 | "no-this-before-super": 2, 89 | "no-throw-literal": 2, 90 | "no-trailing-spaces": 0, 91 | "no-undef": 2, 92 | "no-undef-init": 2, 93 | "no-unexpected-multiline": 2, 94 | "no-unneeded-ternary": [2, { "defaultAssignment": false }], 95 | "no-unreachable": 2, 96 | "no-unused-vars": [2, { "vars": "all", "args": "none" }], 97 | "no-useless-call": 0, 98 | "no-with": 2, 99 | "one-var": [0, { "initialized": "never" }], 100 | "operator-linebreak": [0, "after", { "overrides": { "?": "before", ":": "before" } }], 101 | "padded-blocks": [0, "never"], 102 | "quotes": [2, "single", "avoid-escape"], 103 | "radix": 2, 104 | "semi": [2, "always"], 105 | "semi-spacing": [2, { "before": false, "after": true }], 106 | "space-before-blocks": [2, "always"], 107 | "space-before-function-paren": [2, "never"], 108 | "space-in-parens": [2, "never"], 109 | "space-infix-ops": 2, 110 | "space-unary-ops": [2, { "words": true, "nonwords": false }], 111 | "spaced-comment": [0, "always", { "markers": ["global", "globals", "eslint", "eslint-disable", "*package", "!", ","] }], 112 | "use-isnan": 2, 113 | "valid-typeof": 2, 114 | "wrap-iife": [2, "any"], 115 | "yoda": [2, "never"] 116 | } 117 | } 118 | -------------------------------------------------------------------------------- /benchmark/fixtures/1000.js: -------------------------------------------------------------------------------- 1 | module.exports = [[ '1', 2 | '2', 3 | '3', 4 | '4', 5 | '5', 6 | '6', 7 | '7', 8 | '8', 9 | '9', 10 | '10', 11 | '11', 12 | '12', 13 | '13', 14 | '14', 15 | '15', 16 | '16', 17 | '17', 18 | '18', 19 | '19', 20 | '20', 21 | '21', 22 | '22', 23 | '23', 24 | '24', 25 | '25', 26 | '26', 27 | '27', 28 | '28', 29 | '29', 30 | '30', 31 | '31', 32 | '32', 33 | '33', 34 | '34', 35 | '35', 36 | '36', 37 | '37', 38 | '38', 39 | '39', 40 | '40', 41 | '41', 42 | '42', 43 | '43', 44 | '44', 45 | '45', 46 | '46', 47 | '47', 48 | '48', 49 | '49', 50 | '50', 51 | '51', 52 | '52', 53 | '53', 54 | '54', 55 | '55', 56 | '56', 57 | '57', 58 | '58', 59 | '59', 60 | '60', 61 | '61', 62 | '62', 63 | '63', 64 | '64', 65 | '65', 66 | '66', 67 | '67', 68 | '68', 69 | '69', 70 | '70', 71 | '71', 72 | '72', 73 | '73', 74 | '74', 75 | '75', 76 | '76', 77 | '77', 78 | '78', 79 | '79', 80 | '80', 81 | '81', 82 | '82', 83 | '83', 84 | '84', 85 | '85', 86 | '86', 87 | '87', 88 | '88', 89 | '89', 90 | '90', 91 | '91', 92 | '92', 93 | '93', 94 | '94', 95 | '95', 96 | '96', 97 | '97', 98 | '98', 99 | '99', 100 | '100', 101 | '101', 102 | '102', 103 | '103', 104 | '104', 105 | '105', 106 | '106', 107 | '107', 108 | '108', 109 | '109', 110 | '110', 111 | '111', 112 | '112', 113 | '113', 114 | '114', 115 | '115', 116 | '116', 117 | '117', 118 | '118', 119 | '119', 120 | '120', 121 | '121', 122 | '122', 123 | '123', 124 | '124', 125 | '125', 126 | '126', 127 | '127', 128 | '128', 129 | '129', 130 | '130', 131 | '131', 132 | '132', 133 | '133', 134 | '134', 135 | '135', 136 | '136', 137 | '137', 138 | '138', 139 | '139', 140 | '140', 141 | '141', 142 | '142', 143 | '143', 144 | '144', 145 | '145', 146 | '146', 147 | '147', 148 | '148', 149 | '149', 150 | '150', 151 | '151', 152 | '152', 153 | '153', 154 | '154', 155 | '155', 156 | '156', 157 | '157', 158 | '158', 159 | '159', 160 | '160', 161 | '161', 162 | '162', 163 | '163', 164 | '164', 165 | '165', 166 | '166', 167 | '167', 168 | '168', 169 | '169', 170 | '170', 171 | '171', 172 | '172', 173 | '173', 174 | '174', 175 | '175', 176 | '176', 177 | '177', 178 | '178', 179 | '179', 180 | '180', 181 | '181', 182 | '182', 183 | '183', 184 | '184', 185 | '185', 186 | '186', 187 | '187', 188 | '188', 189 | '189', 190 | '190', 191 | '191', 192 | '192', 193 | '193', 194 | '194', 195 | '195', 196 | '196', 197 | '197', 198 | '198', 199 | '199', 200 | '200', 201 | '201', 202 | '202', 203 | '203', 204 | '204', 205 | '205', 206 | '206', 207 | '207', 208 | '208', 209 | '209', 210 | '210', 211 | '211', 212 | '212', 213 | '213', 214 | '214', 215 | '215', 216 | '216', 217 | '217', 218 | '218', 219 | '219', 220 | '220', 221 | '221', 222 | '222', 223 | '223', 224 | '224', 225 | '225', 226 | '226', 227 | '227', 228 | '228', 229 | '229', 230 | '230', 231 | '231', 232 | '232', 233 | '233', 234 | '234', 235 | '235', 236 | '236', 237 | '237', 238 | '238', 239 | '239', 240 | '240', 241 | '241', 242 | '242', 243 | '243', 244 | '244', 245 | '245', 246 | '246', 247 | '247', 248 | '248', 249 | '249', 250 | '250', 251 | '251', 252 | '252', 253 | '253', 254 | '254', 255 | '255', 256 | '256', 257 | '257', 258 | '258', 259 | '259', 260 | '260', 261 | '261', 262 | '262', 263 | '263', 264 | '264', 265 | '265', 266 | '266', 267 | '267', 268 | '268', 269 | '269', 270 | '270', 271 | '271', 272 | '272', 273 | '273', 274 | '274', 275 | '275', 276 | '276', 277 | '277', 278 | '278', 279 | '279', 280 | '280', 281 | '281', 282 | '282', 283 | '283', 284 | '284', 285 | '285', 286 | '286', 287 | '287', 288 | '288', 289 | '289', 290 | '290', 291 | '291', 292 | '292', 293 | '293', 294 | '294', 295 | '295', 296 | '296', 297 | '297', 298 | '298', 299 | '299', 300 | '300', 301 | '301', 302 | '302', 303 | '303', 304 | '304', 305 | '305', 306 | '306', 307 | '307', 308 | '308', 309 | '309', 310 | '310', 311 | '311', 312 | '312', 313 | '313', 314 | '314', 315 | '315', 316 | '316', 317 | '317', 318 | '318', 319 | '319', 320 | '320', 321 | '321', 322 | '322', 323 | '323', 324 | '324', 325 | '325', 326 | '326', 327 | '327', 328 | '328', 329 | '329', 330 | '330', 331 | '331', 332 | '332', 333 | '333', 334 | '334', 335 | '335', 336 | '336', 337 | '337', 338 | '338', 339 | '339', 340 | '340', 341 | '341', 342 | '342', 343 | '343', 344 | '344', 345 | '345', 346 | '346', 347 | '347', 348 | '348', 349 | '349', 350 | '350', 351 | '351', 352 | '352', 353 | '353', 354 | '354', 355 | '355', 356 | '356', 357 | '357', 358 | '358', 359 | '359', 360 | '360', 361 | '361', 362 | '362', 363 | '363', 364 | '364', 365 | '365', 366 | '366', 367 | '367', 368 | '368', 369 | '369', 370 | '370', 371 | '371', 372 | '372', 373 | '373', 374 | '374', 375 | '375', 376 | '376', 377 | '377', 378 | '378', 379 | '379', 380 | '380', 381 | '381', 382 | '382', 383 | '383', 384 | '384', 385 | '385', 386 | '386', 387 | '387', 388 | '388', 389 | '389', 390 | '390', 391 | '391', 392 | '392', 393 | '393', 394 | '394', 395 | '395', 396 | '396', 397 | '397', 398 | '398', 399 | '399', 400 | '400', 401 | '401', 402 | '402', 403 | '403', 404 | '404', 405 | '405', 406 | '406', 407 | '407', 408 | '408', 409 | '409', 410 | '410', 411 | '411', 412 | '412', 413 | '413', 414 | '414', 415 | '415', 416 | '416', 417 | '417', 418 | '418', 419 | '419', 420 | '420', 421 | '421', 422 | '422', 423 | '423', 424 | '424', 425 | '425', 426 | '426', 427 | '427', 428 | '428', 429 | '429', 430 | '430', 431 | '431', 432 | '432', 433 | '433', 434 | '434', 435 | '435', 436 | '436', 437 | '437', 438 | '438', 439 | '439', 440 | '440', 441 | '441', 442 | '442', 443 | '443', 444 | '444', 445 | '445', 446 | '446', 447 | '447', 448 | '448', 449 | '449', 450 | '450', 451 | '451', 452 | '452', 453 | '453', 454 | '454', 455 | '455', 456 | '456', 457 | '457', 458 | '458', 459 | '459', 460 | '460', 461 | '461', 462 | '462', 463 | '463', 464 | '464', 465 | '465', 466 | '466', 467 | '467', 468 | '468', 469 | '469', 470 | '470', 471 | '471', 472 | '472', 473 | '473', 474 | '474', 475 | '475', 476 | '476', 477 | '477', 478 | '478', 479 | '479', 480 | '480', 481 | '481', 482 | '482', 483 | '483', 484 | '484', 485 | '485', 486 | '486', 487 | '487', 488 | '488', 489 | '489', 490 | '490', 491 | '491', 492 | '492', 493 | '493', 494 | '494', 495 | '495', 496 | '496', 497 | '497', 498 | '498', 499 | '499', 500 | '500', 501 | '501', 502 | '502', 503 | '503', 504 | '504', 505 | '505', 506 | '506', 507 | '507', 508 | '508', 509 | '509', 510 | '510', 511 | '511', 512 | '512', 513 | '513', 514 | '514', 515 | '515', 516 | '516', 517 | '517', 518 | '518', 519 | '519', 520 | '520', 521 | '521', 522 | '522', 523 | '523', 524 | '524', 525 | '525', 526 | '526', 527 | '527', 528 | '528', 529 | '529', 530 | '530', 531 | '531', 532 | '532', 533 | '533', 534 | '534', 535 | '535', 536 | '536', 537 | '537', 538 | '538', 539 | '539', 540 | '540', 541 | '541', 542 | '542', 543 | '543', 544 | '544', 545 | '545', 546 | '546', 547 | '547', 548 | '548', 549 | '549', 550 | '550', 551 | '551', 552 | '552', 553 | '553', 554 | '554', 555 | '555', 556 | '556', 557 | '557', 558 | '558', 559 | '559', 560 | '560', 561 | '561', 562 | '562', 563 | '563', 564 | '564', 565 | '565', 566 | '566', 567 | '567', 568 | '568', 569 | '569', 570 | '570', 571 | '571', 572 | '572', 573 | '573', 574 | '574', 575 | '575', 576 | '576', 577 | '577', 578 | '578', 579 | '579', 580 | '580', 581 | '581', 582 | '582', 583 | '583', 584 | '584', 585 | '585', 586 | '586', 587 | '587', 588 | '588', 589 | '589', 590 | '590', 591 | '591', 592 | '592', 593 | '593', 594 | '594', 595 | '595', 596 | '596', 597 | '597', 598 | '598', 599 | '599', 600 | '600', 601 | '601', 602 | '602', 603 | '603', 604 | '604', 605 | '605', 606 | '606', 607 | '607', 608 | '608', 609 | '609', 610 | '610', 611 | '611', 612 | '612', 613 | '613', 614 | '614', 615 | '615', 616 | '616', 617 | '617', 618 | '618', 619 | '619', 620 | '620', 621 | '621', 622 | '622', 623 | '623', 624 | '624', 625 | '625', 626 | '626', 627 | '627', 628 | '628', 629 | '629', 630 | '630', 631 | '631', 632 | '632', 633 | '633', 634 | '634', 635 | '635', 636 | '636', 637 | '637', 638 | '638', 639 | '639', 640 | '640', 641 | '641', 642 | '642', 643 | '643', 644 | '644', 645 | '645', 646 | '646', 647 | '647', 648 | '648', 649 | '649', 650 | '650', 651 | '651', 652 | '652', 653 | '653', 654 | '654', 655 | '655', 656 | '656', 657 | '657', 658 | '658', 659 | '659', 660 | '660', 661 | '661', 662 | '662', 663 | '663', 664 | '664', 665 | '665', 666 | '666', 667 | '667', 668 | '668', 669 | '669', 670 | '670', 671 | '671', 672 | '672', 673 | '673', 674 | '674', 675 | '675', 676 | '676', 677 | '677', 678 | '678', 679 | '679', 680 | '680', 681 | '681', 682 | '682', 683 | '683', 684 | '684', 685 | '685', 686 | '686', 687 | '687', 688 | '688', 689 | '689', 690 | '690', 691 | '691', 692 | '692', 693 | '693', 694 | '694', 695 | '695', 696 | '696', 697 | '697', 698 | '698', 699 | '699', 700 | '700', 701 | '701', 702 | '702', 703 | '703', 704 | '704', 705 | '705', 706 | '706', 707 | '707', 708 | '708', 709 | '709', 710 | '710', 711 | '711', 712 | '712', 713 | '713', 714 | '714', 715 | '715', 716 | '716', 717 | '717', 718 | '718', 719 | '719', 720 | '720', 721 | '721', 722 | '722', 723 | '723', 724 | '724', 725 | '725', 726 | '726', 727 | '727', 728 | '728', 729 | '729', 730 | '730', 731 | '731', 732 | '732', 733 | '733', 734 | '734', 735 | '735', 736 | '736', 737 | '737', 738 | '738', 739 | '739', 740 | '740', 741 | '741', 742 | '742', 743 | '743', 744 | '744', 745 | '745', 746 | '746', 747 | '747', 748 | '748', 749 | '749', 750 | '750', 751 | '751', 752 | '752', 753 | '753', 754 | '754', 755 | '755', 756 | '756', 757 | '757', 758 | '758', 759 | '759', 760 | '760', 761 | '761', 762 | '762', 763 | '763', 764 | '764', 765 | '765', 766 | '766', 767 | '767', 768 | '768', 769 | '769', 770 | '770', 771 | '771', 772 | '772', 773 | '773', 774 | '774', 775 | '775', 776 | '776', 777 | '777', 778 | '778', 779 | '779', 780 | '780', 781 | '781', 782 | '782', 783 | '783', 784 | '784', 785 | '785', 786 | '786', 787 | '787', 788 | '788', 789 | '789', 790 | '790', 791 | '791', 792 | '792', 793 | '793', 794 | '794', 795 | '795', 796 | '796', 797 | '797', 798 | '798', 799 | '799', 800 | '800', 801 | '801', 802 | '802', 803 | '803', 804 | '804', 805 | '805', 806 | '806', 807 | '807', 808 | '808', 809 | '809', 810 | '810', 811 | '811', 812 | '812', 813 | '813', 814 | '814', 815 | '815', 816 | '816', 817 | '817', 818 | '818', 819 | '819', 820 | '820', 821 | '821', 822 | '822', 823 | '823', 824 | '824', 825 | '825', 826 | '826', 827 | '827', 828 | '828', 829 | '829', 830 | '830', 831 | '831', 832 | '832', 833 | '833', 834 | '834', 835 | '835', 836 | '836', 837 | '837', 838 | '838', 839 | '839', 840 | '840', 841 | '841', 842 | '842', 843 | '843', 844 | '844', 845 | '845', 846 | '846', 847 | '847', 848 | '848', 849 | '849', 850 | '850', 851 | '851', 852 | '852', 853 | '853', 854 | '854', 855 | '855', 856 | '856', 857 | '857', 858 | '858', 859 | '859', 860 | '860', 861 | '861', 862 | '862', 863 | '863', 864 | '864', 865 | '865', 866 | '866', 867 | '867', 868 | '868', 869 | '869', 870 | '870', 871 | '871', 872 | '872', 873 | '873', 874 | '874', 875 | '875', 876 | '876', 877 | '877', 878 | '878', 879 | '879', 880 | '880', 881 | '881', 882 | '882', 883 | '883', 884 | '884', 885 | '885', 886 | '886', 887 | '887', 888 | '888', 889 | '889', 890 | '890', 891 | '891', 892 | '892', 893 | '893', 894 | '894', 895 | '895', 896 | '896', 897 | '897', 898 | '898', 899 | '899', 900 | '900', 901 | '901', 902 | '902', 903 | '903', 904 | '904', 905 | '905', 906 | '906', 907 | '907', 908 | '908', 909 | '909', 910 | '910', 911 | '911', 912 | '912', 913 | '913', 914 | '914', 915 | '915', 916 | '916', 917 | '917', 918 | '918', 919 | '919', 920 | '920', 921 | '921', 922 | '922', 923 | '923', 924 | '924', 925 | '925', 926 | '926', 927 | '927', 928 | '928', 929 | '929', 930 | '930', 931 | '931', 932 | '932', 933 | '933', 934 | '934', 935 | '935', 936 | '936', 937 | '937', 938 | '938', 939 | '939', 940 | '940', 941 | '941', 942 | '942', 943 | '943', 944 | '944', 945 | '945', 946 | '946', 947 | '947', 948 | '948', 949 | '949', 950 | '950', 951 | '951', 952 | '952', 953 | '953', 954 | '954', 955 | '955', 956 | '956', 957 | '957', 958 | '958', 959 | '959', 960 | '960', 961 | '961', 962 | '962', 963 | '963', 964 | '964', 965 | '965', 966 | '966', 967 | '967', 968 | '968', 969 | '969', 970 | '970', 971 | '971', 972 | '972', 973 | '973', 974 | '974', 975 | '975', 976 | '976', 977 | '977', 978 | '978', 979 | '979', 980 | '980', 981 | '981', 982 | '982', 983 | '983', 984 | '984', 985 | '985', 986 | '986', 987 | '987', 988 | '988', 989 | '989', 990 | '990', 991 | '991', 992 | '992', 993 | '993', 994 | '994', 995 | '995', 996 | '996', 997 | '997', 998 | '998', 999 | '999' ]]; --------------------------------------------------------------------------------