Skip to content

Commit 22083a0

Browse files
Trottdanielleadams
authored andcommitted
tools,benchmark,lib,test: enable no-case-declarations lint rule
PR-URL: #41385 Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Antoine du Hamel <[email protected]> Reviewed-By: Tobias Nießen <[email protected]> Reviewed-By: Tierney Cyren <[email protected]> Reviewed-By: Ricky Zhou <[email protected]> Reviewed-By: Colin Ihrig <[email protected]>
1 parent 4110b3f commit 22083a0

26 files changed

+95
-51
lines changed

.eslintrc.js

+1
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ module.exports = {
173173
}],
174174
'new-parens': 'error',
175175
'no-async-promise-executor': 'error',
176+
'no-case-declarations': 'error',
176177
'no-class-assign': 'error',
177178
'no-confusing-arrow': 'error',
178179
'no-const-assign': 'error',

benchmark/zlib/inflate.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ function main({ n, method, inputLen }) {
1616
let i = 0;
1717
switch (method) {
1818
// Performs `n` single inflate operations
19-
case 'inflate':
19+
case 'inflate': {
2020
const inflate = zlib.inflate;
2121
bench.start();
2222
(function next(err, result) {
@@ -25,14 +25,16 @@ function main({ n, method, inputLen }) {
2525
inflate(chunk, next);
2626
})();
2727
break;
28+
}
2829
// Performs `n` single inflateSync operations
29-
case 'inflateSync':
30+
case 'inflateSync': {
3031
const inflateSync = zlib.inflateSync;
3132
bench.start();
3233
for (; i < n; ++i)
3334
inflateSync(chunk);
3435
bench.end(n);
3536
break;
37+
}
3638
default:
3739
throw new Error('Unsupported inflate method');
3840
}

lib/_http_server.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@ Server.prototype.setTimeout = function setTimeout(msecs, callback) {
413413

414414
Server.prototype[EE.captureRejectionSymbol] = function(err, event, ...args) {
415415
switch (event) {
416-
case 'request':
416+
case 'request': {
417417
const { 1: res } = args;
418418
if (!res.headersSent && !res.writableEnded) {
419419
// Don't leak headers.
@@ -427,6 +427,7 @@ Server.prototype[EE.captureRejectionSymbol] = function(err, event, ...args) {
427427
res.destroy();
428428
}
429429
break;
430+
}
430431
default:
431432
net.Server.prototype[SymbolFor('nodejs.rejection')]
432433
.apply(this, arguments);

lib/internal/bootstrap/switches/is_main_thread.js

+16-8
Original file line numberDiff line numberDiff line change
@@ -42,20 +42,22 @@ function createWritableStdioStream(fd) {
4242
let stream;
4343
// Note stream._type is used for test-module-load-list.js
4444
switch (guessHandleType(fd)) {
45-
case 'TTY':
45+
case 'TTY': {
4646
const tty = require('tty');
4747
stream = new tty.WriteStream(fd);
4848
stream._type = 'tty';
4949
break;
50+
}
5051

51-
case 'FILE':
52+
case 'FILE': {
5253
const SyncWriteStream = require('internal/fs/sync_write_stream');
5354
stream = new SyncWriteStream(fd, { autoClose: false });
5455
stream._type = 'fs';
5556
break;
57+
}
5658

5759
case 'PIPE':
58-
case 'TCP':
60+
case 'TCP': {
5961
const net = require('net');
6062

6163
// If fd is already being used for the IPC channel, libuv will return
@@ -78,8 +80,9 @@ function createWritableStdioStream(fd) {
7880

7981
stream._type = 'pipe';
8082
break;
83+
}
8184

82-
default:
85+
default: {
8386
// Provide a dummy black-hole output for e.g. non-console
8487
// Windows applications.
8588
const { Writable } = require('stream');
@@ -88,6 +91,7 @@ function createWritableStdioStream(fd) {
8891
cb();
8992
}
9093
});
94+
}
9195
}
9296

9397
// For supporting legacy API we put the FD here.
@@ -147,22 +151,24 @@ function getStdin() {
147151
const fd = 0;
148152

149153
switch (guessHandleType(fd)) {
150-
case 'TTY':
154+
case 'TTY': {
151155
const tty = require('tty');
152156
stdin = new tty.ReadStream(fd, {
153157
highWaterMark: 0,
154158
readable: true,
155159
writable: false
156160
});
157161
break;
162+
}
158163

159-
case 'FILE':
164+
case 'FILE': {
160165
const fs = require('fs');
161166
stdin = new fs.ReadStream(null, { fd: fd, autoClose: false });
162167
break;
168+
}
163169

164170
case 'PIPE':
165-
case 'TCP':
171+
case 'TCP': {
166172
const net = require('net');
167173

168174
// It could be that process has been started with an IPC channel
@@ -187,13 +193,15 @@ function getStdin() {
187193
// Make sure the stdin can't be `.end()`-ed
188194
stdin._writableState.ended = true;
189195
break;
196+
}
190197

191-
default:
198+
default: {
192199
// Provide a dummy contentless input for e.g. non-console
193200
// Windows applications.
194201
const { Readable } = require('stream');
195202
stdin = new Readable({ read() {} });
196203
stdin.push(null);
204+
}
197205
}
198206

199207
// For supporting legacy API we put the FD here.

lib/internal/crypto/aes.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ function asyncAesGcmCipher(
189189
const tagByteLength = MathFloor(tagLength / 8);
190190
let tag;
191191
switch (mode) {
192-
case kWebCryptoCipherDecrypt:
192+
case kWebCryptoCipherDecrypt: {
193193
const slice = ArrayBufferIsView(data) ?
194194
TypedArrayPrototypeSlice : ArrayBufferPrototypeSlice;
195195
tag = slice(data, -tagByteLength);
@@ -206,6 +206,7 @@ function asyncAesGcmCipher(
206206

207207
data = slice(data, 0, -tagByteLength);
208208
break;
209+
}
209210
case kWebCryptoCipherEncrypt:
210211
tag = tagByteLength;
211212
break;

lib/internal/crypto/webcrypto.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -427,7 +427,7 @@ async function importGenericSecretKey(
427427

428428
break;
429429
}
430-
case 'raw':
430+
case 'raw': {
431431
if (hasAnyNotIn(usagesSet, ['deriveKey', 'deriveBits'])) {
432432
throw lazyDOMException(
433433
`Unsupported key usage for a ${name} key`,
@@ -449,6 +449,7 @@ async function importGenericSecretKey(
449449

450450
const keyObject = createSecretKey(keyData);
451451
return new InternalCryptoKey(keyObject, { name }, keyUsages, false);
452+
}
452453
}
453454

454455
throw lazyDOMException(

lib/internal/error_serdes.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -120,21 +120,23 @@ let deserialize;
120120
function deserializeError(error) {
121121
if (!deserialize) deserialize = require('v8').deserialize;
122122
switch (error[0]) {
123-
case kSerializedError:
123+
case kSerializedError: {
124124
const { constructor, properties } = deserialize(error.subarray(1));
125125
const ctor = errors[constructor];
126126
ObjectDefineProperty(properties, SymbolToStringTag, {
127127
value: { value: 'Error', configurable: true },
128128
enumerable: true
129129
});
130130
return ObjectCreate(ctor.prototype, properties);
131+
}
131132
case kSerializedObject:
132133
return deserialize(error.subarray(1));
133-
case kInspectedError:
134+
case kInspectedError: {
134135
const buf = Buffer.from(error.buffer,
135136
error.byteOffset + 1,
136137
error.byteLength - 1);
137138
return buf.toString('utf8');
139+
}
138140
}
139141
require('assert').fail('This should not happen');
140142
}

lib/internal/http2/compat.js

+10-5
Original file line numberDiff line numberDiff line change
@@ -217,28 +217,31 @@ const proxySocketHandler = {
217217
case 'writable':
218218
case 'destroyed':
219219
return stream[prop];
220-
case 'readable':
220+
case 'readable': {
221221
if (stream.destroyed)
222222
return false;
223223
const request = stream[kRequest];
224224
return request ? request.readable : stream.readable;
225-
case 'setTimeout':
225+
}
226+
case 'setTimeout': {
226227
const session = stream.session;
227228
if (session !== undefined)
228229
return FunctionPrototypeBind(session.setTimeout, session);
229230
return FunctionPrototypeBind(stream.setTimeout, stream);
231+
}
230232
case 'write':
231233
case 'read':
232234
case 'pause':
233235
case 'resume':
234236
throw new ERR_HTTP2_NO_SOCKET_MANIPULATION();
235-
default:
237+
default: {
236238
const ref = stream.session !== undefined ?
237239
stream.session[kSocket] : stream;
238240
const value = ref[prop];
239241
return typeof value === 'function' ?
240242
FunctionPrototypeBind(value, ref) :
241243
value;
244+
}
242245
}
243246
},
244247
getPrototypeOf(stream) {
@@ -258,23 +261,25 @@ const proxySocketHandler = {
258261
case 'destroy':
259262
stream[prop] = value;
260263
return true;
261-
case 'setTimeout':
264+
case 'setTimeout': {
262265
const session = stream.session;
263266
if (session !== undefined)
264267
session.setTimeout = value;
265268
else
266269
stream.setTimeout = value;
267270
return true;
271+
}
268272
case 'write':
269273
case 'read':
270274
case 'pause':
271275
case 'resume':
272276
throw new ERR_HTTP2_NO_SOCKET_MANIPULATION();
273-
default:
277+
default: {
274278
const ref = stream.session !== undefined ?
275279
stream.session[kSocket] : stream;
276280
ref[prop] = value;
277281
return true;
282+
}
278283
}
279284
}
280285
};

lib/internal/http2/core.js

+10-5
Original file line numberDiff line numberDiff line change
@@ -862,14 +862,15 @@ const proxySocketHandler = {
862862
case 'setKeepAlive':
863863
case 'setNoDelay':
864864
throw new ERR_HTTP2_NO_SOCKET_MANIPULATION();
865-
default:
865+
default: {
866866
const socket = session[kSocket];
867867
if (socket === undefined)
868868
throw new ERR_HTTP2_SOCKET_UNBOUND();
869869
const value = socket[prop];
870870
return typeof value === 'function' ?
871871
FunctionPrototypeBind(value, socket) :
872872
value;
873+
}
873874
}
874875
},
875876
getPrototypeOf(session) {
@@ -896,12 +897,13 @@ const proxySocketHandler = {
896897
case 'setKeepAlive':
897898
case 'setNoDelay':
898899
throw new ERR_HTTP2_NO_SOCKET_MANIPULATION();
899-
default:
900+
default: {
900901
const socket = session[kSocket];
901902
if (socket === undefined)
902903
throw new ERR_HTTP2_SOCKET_UNBOUND();
903904
socket[prop] = value;
904905
return true;
906+
}
905907
}
906908
}
907909
};
@@ -1553,10 +1555,11 @@ class Http2Session extends EventEmitter {
15531555

15541556
[EventEmitter.captureRejectionSymbol](err, event, ...args) {
15551557
switch (event) {
1556-
case 'stream':
1558+
case 'stream': {
15571559
const stream = args[0];
15581560
stream.destroy(err);
15591561
break;
1562+
}
15601563
default:
15611564
this.destroy(err);
15621565
}
@@ -3176,7 +3179,7 @@ Http2Server.prototype[EventEmitter.captureRejectionSymbol] = function(
31763179
err, event, ...args) {
31773180

31783181
switch (event) {
3179-
case 'stream':
3182+
case 'stream': {
31803183
// TODO(mcollina): we might want to match this with what we do on
31813184
// the compat side.
31823185
const { 0: stream } = args;
@@ -3187,7 +3190,8 @@ Http2Server.prototype[EventEmitter.captureRejectionSymbol] = function(
31873190
stream.end();
31883191
}
31893192
break;
3190-
case 'request':
3193+
}
3194+
case 'request': {
31913195
const { 1: res } = args;
31923196
if (!res.headersSent && !res.finished) {
31933197
// Don't leak headers.
@@ -3200,6 +3204,7 @@ Http2Server.prototype[EventEmitter.captureRejectionSymbol] = function(
32003204
res.destroy();
32013205
}
32023206
break;
3207+
}
32033208
default:
32043209
ArrayPrototypeUnshift(args, err, event);
32053210
ReflectApply(net.Server.prototype[EventEmitter.captureRejectionSymbol],

lib/internal/repl/utils.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -110,14 +110,15 @@ function isRecoverableError(e, code) {
110110
recoverable = true;
111111
break;
112112

113-
case 'Unterminated string constant':
113+
case 'Unterminated string constant': {
114114
const token = StringPrototypeSlice(this.input,
115115
this.lastTokStart, this.pos);
116116
// See https://www.ecma-international.org/ecma-262/#sec-line-terminators
117117
if (RegExpPrototypeTest(/\\(?:\r\n?|\n|\u2028|\u2029)$/,
118118
token)) {
119119
recoverable = true;
120120
}
121+
}
121122
}
122123
super.raise(pos, message);
123124
}

0 commit comments

Comments
 (0)