Skip to content

Commit 6daebdb

Browse files
JacksonTianMyles Borins
authored andcommitted
lib: simplify code with String.prototype.repeat()
use String.prototype.repeat() to simplify code, less code, more semantically. PR-URL: #5359 Reviewed-By: Michaël Zasso <mic.besace@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
1 parent 108fc90 commit 6daebdb

14 files changed

+19
-70
lines changed

benchmark/http_simple.js

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ var http = require('http');
44

55
var port = parseInt(process.env.PORT || 8000);
66

7-
var fixed = makeString(20 * 1024, 'C'),
7+
var fixed = 'C'.repeat(20 * 1024),
88
storedBytes = {},
99
storedBuffer = {},
1010
storedUnicode = {};
@@ -42,7 +42,7 @@ var server = module.exports = http.createServer(function(req, res) {
4242
if (n <= 0)
4343
throw new Error('bytes called with n <= 0');
4444
if (storedBytes[n] === undefined) {
45-
storedBytes[n] = makeString(n, 'C');
45+
storedBytes[n] = 'C'.repeat(n);
4646
}
4747
body = storedBytes[n];
4848

@@ -63,7 +63,7 @@ var server = module.exports = http.createServer(function(req, res) {
6363
if (n <= 0)
6464
throw new Error('unicode called with n <= 0');
6565
if (storedUnicode[n] === undefined) {
66-
storedUnicode[n] = makeString(n, '\u263A');
66+
storedUnicode[n] = '\u263A'.repeat(n);
6767
}
6868
body = storedUnicode[n];
6969

@@ -107,14 +107,6 @@ var server = module.exports = http.createServer(function(req, res) {
107107
}
108108
});
109109

110-
function makeString(size, c) {
111-
var s = '';
112-
while (s.length < size) {
113-
s += c;
114-
}
115-
return s;
116-
}
117-
118110
server.listen(port, function() {
119111
if (module === require.main)
120112
console.error('Listening at http://127.0.0.1:' + port + '/');

benchmark/http_simple_auto.js

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,7 @@ var spawn = require('child_process').spawn;
1313

1414
var port = parseInt(process.env.PORT || 8000);
1515

16-
var fixed = '';
17-
var i;
18-
for (i = 0; i < 20 * 1024; i++) {
19-
fixed += 'C';
20-
}
16+
var fixed = 'C'.repeat(20 * 1024);
2117

2218
var stored = {};
2319
var storedBuffer = {};
@@ -30,16 +26,14 @@ var server = http.createServer(function(req, res) {
3026
var n_chunks = parseInt(commands[3], 10);
3127
var status = 200;
3228
var n;
29+
var i;
3330

3431
if (command == 'bytes') {
3532
n = parseInt(arg, 10);
3633
if (n <= 0)
3734
throw new Error('bytes called with n <= 0');
3835
if (stored[n] === undefined) {
39-
stored[n] = '';
40-
for (i = 0; i < n; i++) {
41-
stored[n] += 'C';
42-
}
36+
stored[n] = 'C'.repeat(n);
4337
}
4438
body = stored[n];
4539
} else if (command == 'buffer') {

benchmark/static_http_server.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,7 @@ var bytes = 1024 * 5;
99
var requests = 0;
1010
var responses = 0;
1111

12-
var body = '';
13-
for (var i = 0; i < bytes; i++) {
14-
body += 'C';
15-
}
12+
var body = 'C'.repeat(bytes);
1613

1714
var server = http.createServer(function(req, res) {
1815
res.writeHead(200, {

lib/_debugger.js

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1008,11 +1008,7 @@ function leftPad(n, prefix, maxN) {
10081008
const nchars = Math.max(2, String(maxN).length) + 1;
10091009
const nspaces = nchars - s.length - 1;
10101010

1011-
for (var i = 0; i < nspaces; i++) {
1012-
prefix += ' ';
1013-
}
1014-
1015-
return prefix + s;
1011+
return prefix + ' '.repeat(nspaces) + s;
10161012
}
10171013

10181014

test/fixtures/print-chars.js

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,4 @@ var assert = require('assert');
22

33
var n = parseInt(process.argv[2]);
44

5-
var s = '';
6-
for (var i = 0; i < n; i++) {
7-
s += 'c';
8-
}
9-
10-
process.stdout.write(s);
5+
process.stdout.write('c'.repeat(n));

test/parallel/test-buffer.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -612,10 +612,7 @@ assert.equal(Buffer('=bad'.repeat(1e4), 'base64').length, 0);
612612
{
613613
// Creating buffers larger than pool size.
614614
const l = Buffer.poolSize + 5;
615-
let s = '';
616-
for (let i = 0; i < l; i++) {
617-
s += 'h';
618-
}
615+
const s = 'h'.repeat(l);
619616

620617
const b = new Buffer(s);
621618

test/parallel/test-fs-realpath.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ function test_cyclic_link_overprotection(callback) {
219219
var folder = cycles + '/folder';
220220
var link = folder + '/cycles';
221221
var testPath = cycles;
222-
for (var i = 0; i < 10; i++) testPath += '/folder/cycles';
222+
testPath += '/folder/cycles'.repeat(10);
223223
try {fs.unlinkSync(link);} catch (ex) {}
224224
fs.symlinkSync(cycles, link, 'dir');
225225
unlink.push(link);

test/parallel/test-http-full-response.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,7 @@ var exec = require('child_process').exec;
77

88
var bodyLength = 12345;
99

10-
var body = '';
11-
for (var i = 0; i < bodyLength; i++) {
12-
body += 'c';
13-
}
10+
var body = 'c'.repeat(bodyLength);
1411

1512
var server = http.createServer(function(req, res) {
1613
res.writeHead(200, {

test/parallel/test-http-pipeline-regr-2639.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,8 @@ var server = http.createServer(function(req, res) {
2222
}).listen(common.PORT, function() {
2323
const s = net.connect(common.PORT);
2424

25-
var big = '';
26-
for (var i = 0; i < COUNT; i++)
27-
big += 'GET / HTTP/1.0\r\n\r\n';
25+
var big = 'GET / HTTP/1.0\r\n\r\n'.repeat(COUNT);
26+
2827
s.write(big);
2928
s.resume();
3029
});

test/parallel/test-net-large-string.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,7 @@ var assert = require('assert');
44
var net = require('net');
55

66
var kPoolSize = 40 * 1024;
7-
var data = '';
8-
for (var i = 0; i < kPoolSize; ++i) {
9-
data += 'あ'; // 3bytes
10-
}
7+
var data = 'あ'.repeat(kPoolSize);
118
var receivedSize = 0;
129
var encoding = 'UTF-8';
1310

0 commit comments

Comments
 (0)