Skip to content

Commit 4d78121

Browse files
JacksonTianjasnell
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 bac6c85 commit 4d78121

14 files changed

+18
-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: 2 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 = {};
@@ -36,10 +32,7 @@ var server = http.createServer(function(req, res) {
3632
if (n <= 0)
3733
throw new Error('bytes called with n <= 0');
3834
if (stored[n] === undefined) {
39-
stored[n] = '';
40-
for (i = 0; i < n; i++) {
41-
stored[n] += 'C';
42-
}
35+
stored[n] = "C".repeat(n);
4336
}
4437
body = stored[n];
4538

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
@@ -1016,11 +1016,7 @@ function leftPad(n, prefix, maxN) {
10161016
const nchars = Math.max(2, String(maxN).length) + 1;
10171017
const nspaces = nchars - s.length - 1;
10181018

1019-
for (var i = 0; i < nspaces; i++) {
1020-
prefix += ' ';
1021-
}
1022-
1023-
return prefix + s;
1019+
return prefix + ' '.repeat(nspaces) + s;
10241020
}
10251021

10261022

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
@@ -681,10 +681,7 @@ assert.equal(Buffer('=bad'.repeat(1e4), 'base64').length, 0);
681681
{
682682
// Creating buffers larger than pool size.
683683
const l = Buffer.poolSize + 5;
684-
let s = '';
685-
for (let i = 0; i < l; i++) {
686-
s += 'h';
687-
}
684+
const s = 'h'.repeat(l);
688685

689686
const b = new Buffer(s);
690687

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

test/pummel/test-https-large-response.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,9 @@ var options = {
1616
};
1717

1818
var reqCount = 0;
19-
var body = '';
2019

2120
process.stdout.write('build body...');
22-
for (var i = 0; i < 1024 * 1024; i++) {
23-
body += 'hello world\n';
24-
}
21+
var body = 'hello world\n'.repeat(1024 * 1024);
2522
process.stdout.write('done\n');
2623

2724
var server = https.createServer(options, function(req, res) {

test/pummel/test-net-many-clients.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,7 @@ var connections_per_client = 5;
1111
// measured
1212
var total_connections = 0;
1313

14-
var body = '';
15-
for (var i = 0; i < bytes; i++) {
16-
body += 'C';
17-
}
14+
var body = 'C'.repeat(bytes);
1815

1916
var server = net.createServer(function(c) {
2017
console.log('connected');

test/pummel/test-net-throttle.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,7 @@ var chars_recved = 0;
99
var npauses = 0;
1010

1111
console.log('build big string');
12-
var body = '';
13-
for (var i = 0; i < N; i++) {
14-
body += 'C';
15-
}
12+
body = 'C'.repeat(N);
1613

1714
console.log('start server on port ' + common.PORT);
1815

test/pummel/test-tls-throttle.js

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,10 @@ if (!common.hasCrypto) {
1212
var tls = require('tls');
1313
var fs = require('fs');
1414

15-
16-
var body = '';
17-
1815
process.stdout.write('build body...');
19-
for (var i = 0; i < 1024 * 1024; i++) {
20-
body += 'hello world\n';
21-
}
16+
var body = 'hello world\n'.repeat(1024 * 1024);
2217
process.stdout.write('done\n');
2318

24-
2519
var options = {
2620
key: fs.readFileSync(common.fixturesDir + '/keys/agent2-key.pem'),
2721
cert: fs.readFileSync(common.fixturesDir + '/keys/agent2-cert.pem')

0 commit comments

Comments
 (0)