mirror of
https://github.com/nodejs/node.git
synced 2025-05-02 22:31:35 +00:00

* Remove needless RegExp flag In fixed case, `/g` flag is needless in the boolean context. * Remove needless RegExp capturing Use non-capturing grouping or remove capturing completely when: * capturing is useless per se, e.g. in test() check; * captured groups are not used afterward at all; * some of the later captured groups are not used afterward. * Use test, not match/exec in boolean context match() and exec() return a complicated object, unneeded in a boolean context. * Do not needlessly repeat RegExp creation This commit takes RegExp creation out of cycles and other repetitions. As long as the RegExp does not use /g flag and match indices, we are safe here. In tests, this fix hardly gives a significant performance gain, but it increases clarity and maintainability, reassuring some RegExps to be identical. RegExp in functions are not taken out of their functions: while these functions are called many times and their RegExps are recreated with each call, the performance gain in test cases does not seem to be worth decreasing function self-dependency. PR-URL: https://github.com/nodejs/node/pull/13770 Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
39 lines
960 B
JavaScript
39 lines
960 B
JavaScript
'use strict';
|
|
const common = require('../common');
|
|
|
|
if (!common.hasCrypto) {
|
|
common.skip('missing crypto');
|
|
return;
|
|
}
|
|
const tls = require('tls');
|
|
const net = require('net');
|
|
const assert = require('assert');
|
|
|
|
const bonkers = Buffer.alloc(1024, 42);
|
|
|
|
const server = net.createServer(function(c) {
|
|
setTimeout(function() {
|
|
const s = new tls.TLSSocket(c, {
|
|
isServer: true,
|
|
server: server
|
|
});
|
|
|
|
s.on('error', common.mustCall(function(e) {
|
|
assert.ok(e instanceof Error,
|
|
'Instance of Error should be passed to error handler');
|
|
assert.ok(
|
|
/SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol/.test(e.message),
|
|
'Expecting SSL unknown protocol');
|
|
}));
|
|
|
|
s.on('close', function() {
|
|
server.close();
|
|
s.destroy();
|
|
});
|
|
}, common.platformTimeout(200));
|
|
}).listen(0, function() {
|
|
const c = net.connect({port: this.address().port}, function() {
|
|
c.write(bonkers);
|
|
});
|
|
});
|