From 8090ce7a6c286060a995020b8d14649c33fe15f4 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Sun, 9 Jan 2022 07:57:37 -0800 Subject: [PATCH] tools: enable ESLint no-sparse-arrays rule MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/41463 Reviewed-By: Tobias Nießen Reviewed-By: Michaël Zasso Reviewed-By: Luigi Pinca Reviewed-By: Colin Ihrig Reviewed-By: Geoffrey Booth --- .eslintrc.js | 1 + lib/internal/modules/esm/get_format.js | 2 +- test/parallel/test-assert-deep.js | 2 ++ test/parallel/test-util-inspect.js | 3 ++- test/parallel/test-util-isDeepStrictEqual.js | 2 ++ 5 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 589993a9396627..e36e428d931e7d 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -275,6 +275,7 @@ module.exports = { 'no-self-compare': 'error', 'no-setter-return': 'error', 'no-shadow-restricted-names': 'error', + 'no-sparse-arrays': 'error', 'no-tabs': 'error', 'no-template-curly-in-string': 'error', 'no-this-before-super': 'error', diff --git a/lib/internal/modules/esm/get_format.js b/lib/internal/modules/esm/get_format.js index 175988b17446d8..9712890139596d 100644 --- a/lib/internal/modules/esm/get_format.js +++ b/lib/internal/modules/esm/get_format.js @@ -45,7 +45,7 @@ const protocolHandlers = ObjectAssign(ObjectCreate(null), { const { 1: mime } = RegExpPrototypeExec( /^([^/]+\/[^;,]+)(?:[^,]*?)(;base64)?,/, parsed.pathname, - ) || [, null]; + ) || [, null]; // eslint-disable-line no-sparse-arrays const format = ({ '__proto__': null, 'text/javascript': 'module', diff --git a/test/parallel/test-assert-deep.js b/test/parallel/test-assert-deep.js index bdc634fb5f6ab0..a8f37804400bf6 100644 --- a/test/parallel/test-assert-deep.js +++ b/test/parallel/test-assert-deep.js @@ -567,8 +567,10 @@ assertNotDeepOrStrict( // Handle sparse arrays. { + /* eslint-disable no-sparse-arrays */ assertDeepAndStrictEqual([1, , , 3], [1, , , 3]); assertNotDeepOrStrict([1, , , 3], [1, , , 3, , , ]); + /* eslint-enable no-sparse-arrays */ const a = new Array(3); const b = new Array(3); a[2] = true; diff --git a/test/parallel/test-util-inspect.js b/test/parallel/test-util-inspect.js index 26b21c4a8854fe..029b7cde8a06f8 100644 --- a/test/parallel/test-util-inspect.js +++ b/test/parallel/test-util-inspect.js @@ -434,7 +434,7 @@ assert.strictEqual( // Array with extra properties. { - const arr = [1, 2, 3, , ]; + const arr = [1, 2, 3, , ]; // eslint-disable-line no-sparse-arrays arr.foo = 'bar'; assert.strictEqual(util.inspect(arr), "[ 1, 2, 3, <1 empty item>, foo: 'bar' ]"); @@ -2142,6 +2142,7 @@ assert.strictEqual(util.inspect('"\'${a}'), "'\"\\'${a}'"); [function() {}, '[Function (anonymous)]'], [() => {}, '[Function (anonymous)]'], [[1, 2], '[ 1, 2 ]'], + // eslint-disable-next-line no-sparse-arrays [[, , 5, , , , ], '[ <2 empty items>, 5, <3 empty items> ]'], [{ a: 5 }, '{ a: 5 }'], [new Set([1, 2]), 'Set(2) { 1, 2 }'], diff --git a/test/parallel/test-util-isDeepStrictEqual.js b/test/parallel/test-util-isDeepStrictEqual.js index 1ad64c2ff81a57..da266fc84ce0bb 100644 --- a/test/parallel/test-util-isDeepStrictEqual.js +++ b/test/parallel/test-util-isDeepStrictEqual.js @@ -409,8 +409,10 @@ notUtilIsDeepStrict( } // Handle sparse arrays +/* eslint-disable no-sparse-arrays */ utilIsDeepStrict([1, , , 3], [1, , , 3]); notUtilIsDeepStrict([1, , , 3], [1, , , 3, , , ]); +/* eslint-enable no-sparse-arrays */ // Handle different error messages {