Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v5.4.0 propose #4547

Merged
merged 99 commits into from
Jan 6, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
699bf2c
doc: fix link in addons.markdown
secretfader Dec 17, 2015
5ce6e99
doc: Typo in buffer.markdown referencing buf.write()
chrisJohn404 Dec 17, 2015
04dd861
doc: fix, modernize examples in docs
jasnell Dec 14, 2015
b841967
http: Remove an unnecessary assignment
gigabo Dec 17, 2015
a5094a3
debugger: guard against call from non-node context
bnoordhuis Dec 17, 2015
96501e5
test: try other ipv6 localhost alternatives
mscdex Dec 17, 2015
8464667
node: fix erroneously named function call
trevnorris Nov 10, 2015
b8366e7
http_parser: use pushValueToArray for headers
trevnorris Nov 10, 2015
e742422
fs: use pushValueToArray for readdir(Sync)
trevnorris Nov 10, 2015
c8fc217
node: improve GetActiveHandles performance
trevnorris Nov 11, 2015
89f056b
node: improve performance of hrtime()
trevnorris Nov 11, 2015
ecef817
node: improve accessor perf of process.env
trevnorris Nov 11, 2015
fcf632b
crypto: load PFX chain the same way as regular one
indutny Dec 5, 2015
82f74ca
test: fix flaky test-net-error-twice
mscdex Dec 18, 2015
d11930d
repl: use String#repeat instead of Array#join
evanlucas Nov 18, 2015
d265fc8
assert: typed array deepequal performance fix
claudiorodriguez Dec 17, 2015
8f7af9a
http: remove excess calls to removeSocket
Dec 6, 2015
3d41a44
repl: Fixed node repl history edge case.
zeusdeux Dec 1, 2015
ca97e72
https: use `servername` in agent key
indutny Dec 22, 2015
6d14b65
test: use platformTimeout() in more places
mscdex Dec 22, 2015
00b37de
test: fix domain-top-level-error-handler-throw
santigimeno Dec 20, 2015
57684d6
doc: improve addons.markdown copy
jasnell Dec 17, 2015
474a0f0
doc: improvements to buffer.markdown copy
jasnell Dec 20, 2015
8781c59
buffer: refactor create buffer
JacksonTian Dec 18, 2015
6d8053a
buffer: faster case for create Buffer from new Buffer(0)
JacksonTian Dec 17, 2015
6450d86
doc: improve grammar in tls docs
AdriVanHoudt Dec 16, 2015
c77fd68
http: 451 status code "Unavailable For Legal Reasons"
mbarinov Dec 21, 2015
71b79bc
test: test each block in addon.md contains js & cc
rvagg Dec 24, 2015
e79eda7
doc: copyedit releases.md
Trott Dec 21, 2015
8742090
test: fix http-response-multiheaders
santigimeno Nov 21, 2015
8c9d0c1
test: refactor test-net-connect-options-ipv6
Trott Dec 23, 2015
b5aaccc
lib: remove unused modules
Trott Dec 23, 2015
3710028
test: remove unused `util` imports
Trott Dec 23, 2015
65c40d7
repl: remove unused function
Trott Dec 23, 2015
0799a9a
test: remove unused var from test-assert.js
Trott Dec 23, 2015
cd79ec2
test: remove unnecessary assignments
Trott Dec 24, 2015
2526282
child_process: guard against race condition
Trott Dec 24, 2015
c639d0f
test: mark test-debug-no-context is flaky
Trott Dec 25, 2015
c835ba3
doc: improve assert.markdown copy
jasnell Dec 20, 2015
bc1c0dc
doc: catch the WORKING_GROUPS.md bootstrap docs up to date
jasnell Dec 20, 2015
c36ca37
test: remove unused variables form http tests
Trott Dec 25, 2015
585c01f
test: remove unused variables from TLS tests
Trott Dec 26, 2015
684eb32
test: remove unused variables from HTTPS tests
Trott Dec 26, 2015
03c4bc7
test: fix flaky child-process-fork-regr-gh-2847
mscdex Dec 27, 2015
715afc9
test: fix flaky cluster-net-send
mscdex Dec 28, 2015
e72112f
test: fix flaky cluster-disconnect-race
mscdex Dec 28, 2015
54004f0
test: remove unused vars in ChildProcess tests
Trott Dec 26, 2015
c6a99dd
test: remove unused variables from net tests
Trott Dec 26, 2015
14a947f
tools: run tick processor without forking
Dec 9, 2015
9e66735
doc: fix formatting in process.markdown
Trott Dec 27, 2015
b19d19e
test: extend timeout in Debug mode
Trott Dec 26, 2015
150f628
doc: copyedit setTimeout() documentation
Trott Dec 27, 2015
55c6946
test: make temp path customizable
jbergstroem Oct 12, 2015
5110e4d
test: don't assume a certain folder structure
jbergstroem Dec 30, 2015
ba24450
test: don't use cwd for relative path
jbergstroem Dec 30, 2015
ffb4a6e
http: fix non-string header value concatenation
mscdex Dec 28, 2015
c1bc9a1
doc: improve child_process.markdown copy
jasnell Dec 21, 2015
e177cc9
doc: improvements to console.markdown copy
jasnell Dec 26, 2015
ed15962
doc: improvements to dns.markdown copy
jasnell Dec 27, 2015
ccd75fe
doc: improvements to events.markdown copy
jasnell Dec 29, 2015
083ae16
http: use `self.keepAlive` instead of `self.options.keepAlive`
dschenkelman Dec 23, 2015
e8bbeec
doc: improvements to debugger.markdown copy
jasnell Dec 27, 2015
ec0b636
test: remove unused assert module imports
Trott Dec 27, 2015
f68f86c
test: fix race condition in test-http-client-onerror
dnakamura Dec 18, 2015
5a223d6
doc: add anchors for _transform _flush _writev in stream.markdown
iamchenxin Dec 28, 2015
8039ca0
util: faster arrayToHash
JacksonTian Nov 22, 2015
40076bf
doc: fix spelling error in lib/url.js comment
nikolas Dec 22, 2015
c745b4d
doc: explain ClientRequest#setTimeout time unit
bripkens Dec 28, 2015
eee5082
doc: mention that http.Server inherits from net.Server
ryansobol Dec 28, 2015
d46d850
test: shorten path for bogus socket
Trott Dec 30, 2015
921fb54
node: improve performance of process.hrtime()
evanlucas Dec 30, 2015
3bfc187
test: improve assert message
Trott Dec 29, 2015
08a3490
test: inherit JOBS from environment
jbergstroem Dec 31, 2015
f1a66bc
test: clarify role of domains in test
Trott Dec 31, 2015
06043fd
test: remove unused modules
Trott Dec 30, 2015
ab3e5c1
test: write to tmp dir rather than fixture dir
Trott Dec 30, 2015
02b3a5b
test: refactor test-fs-empty-readStream
Trott Dec 30, 2015
a703b1b
test: remove time check
Trott Dec 31, 2015
6c7bcd5
doc: fix website wg mislink
Dec 19, 2015
e57fd51
os: fix crash in GetInterfaceAddresses
martinbark Dec 14, 2015
69343d6
tls_wrap: clear errors on return
indutny Jan 3, 2016
6cdfa38
doc: improvements to errors.markdown copy
jasnell Dec 28, 2015
982f322
doc: improvements to dgram.markdown copy
jasnell Dec 27, 2015
e04a840
test: remove flaky designations for tests
Trott Jan 3, 2016
46fefbc
test: fix flaky test-http-agent-keepalive
Trott Jan 4, 2016
30b0d75
test: fix flaky streams test
Trott Jan 3, 2016
1dd2d01
http: handle errors on idle sockets
jfromaniello Dec 31, 2015
984db93
test: fix flaky test-cluster-shared-leak
Trott Jan 1, 2016
ae02466
test: remove unused vars from parallel tests
Trott Jan 2, 2016
2a69ab3
test: add test-domain-exit-dispose-again back
Dec 12, 2015
35aec4c
doc: fix numbering in stream.markdown
richardsun29 Jan 5, 2016
5be0259
doc: close backtick in process.title description
Jan 5, 2016
4b14f1c
test: remove unused vars
Trott Dec 27, 2015
386030b
tools: implement no-unused-vars for eslint
Trott Dec 23, 2015
334e739
doc: fix heading level error in Buffer doc
Jan 5, 2016
ca9812c
tools: fix warning in doc parsing
Jan 5, 2016
4220d25
test: fix linting for the v5.x branch
Fishrock123 Jan 6, 2016
af591d4
2016-01-06, Version 5.4.0 (Stable)
Fishrock123 Jan 6, 2016
138e1e5
Working on v5.4.1
Fishrock123 Jan 6, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
lib/internal/v8_prof_polyfill.js
lib/internal/v8_prof_processor.js
lib/punycode.js
test/addons/doc-*/
test/fixtures
Expand Down
2 changes: 2 additions & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,8 @@ rules:
# list: https://github.com/eslint/eslint/tree/master/docs/rules#variables
## disallow use of undefined variables (globals)
no-undef: 2
## disallow declaration of variables that are not used in the code
no-unused-vars: [2, {"args": "none"}]

# Custom rules in tools/eslint-rules
require-buffer: 2
Expand Down
123 changes: 123 additions & 0 deletions CHANGELOG.md

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -493,6 +493,9 @@ bench-url: all
bench-events: all
@$(NODE) benchmark/common.js events

bench-util: all
@$(NODE) benchmark/common.js util

bench-all: bench bench-misc bench-array bench-buffer bench-url bench-events

bench: bench-net bench-http bench-fs bench-tls
Expand Down
43 changes: 8 additions & 35 deletions WORKING_GROUPS.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ back in to the TSC.
* [Starting a Working Group](#starting-a-wg)
* [Bootstrap Governance](#bootstrap-governance)

### [Website](https://github.com/nodejs/website)
### [Website](https://github.com/nodejs/nodejs.org)

The website working group's purpose is to build and maintain a public
website for the `Node.js` project.
Expand Down Expand Up @@ -452,40 +452,13 @@ By making a contribution to this project, I certify that:
* (c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified it.

### Moderation Policy

The [Node.js Moderation Policy] applies to this WG.

### Code of Conduct

This Code of Conduct is adapted from [Rust's wonderful
CoC](https://github.com/rust-lang/rust/wiki/Note-development-policy#conduct).

* We are committed to providing a friendly, safe and welcoming
environment for all, regardless of gender, sexual orientation,
disability, ethnicity, religion, or similar personal characteristic.
* Please avoid using overtly sexual nicknames or other nicknames that
might detract from a friendly, safe and welcoming environment for
all.
* Please be kind and courteous. There's no need to be mean or rude.
* Respect that people have differences of opinion and that every
design or implementation choice carries a trade-off and numerous
costs. There is seldom a right answer.
* Please keep unstructured critique to a minimum. If you have solid
ideas you want to experiment with, make a fork and see how it works.
* We will exclude you from interaction if you insult, demean or harass
anyone. That is not welcome behaviour. We interpret the term
"harassment" as including the definition in the [Citizen Code of
Conduct](http://citizencodeofconduct.org/); if you have any lack of
clarity about what might be included in that concept, please read
their definition. In particular, we don't tolerate behavior that
excludes people in socially marginalized groups.
* Private harassment is also unacceptable. No matter who you are, if
you feel you have been or are being harassed or made uncomfortable
by a community member, please contact one of the channel ops or any
of the TC members immediately with a capture (log, photo, email) of
the harassment if possible. Whether you're a regular contributor or
a newcomer, we care about making this community a safe place for you
and we've got your back.
* Likewise any spamming, trolling, flaming, baiting or other
attention-stealing behaviour is not welcome.
* Avoid the use of personal pronouns in code comments or
documentation. There is no need to address persons when explaining
code (e.g. "When the developer")
The [Node.js Code of Conduct][] applies to this WG.

[Node.js Code of Conduct]: https://github.com/nodejs/node/blob/master/CODE_OF_CONDUCT.md
[Node.js Moderation Policy]: https://github.com/nodejs/TSC/blob/master/Moderation-Policy.md
37 changes: 37 additions & 0 deletions benchmark/assert/deepequal-prims-and-objs-big-array.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
'use strict';
var common = require('../common.js');
var assert = require('assert');
var bench = common.createBenchmark(main, {
prim: [
null,
undefined,
'a',
1,
true,
{0: 'a'},
[1, 2, 3],
new Array([1, 2, 3])
],
n: [25]
});

function main(conf) {
var prim = conf.prim;
var n = +conf.n;
var primArray;
var primArrayCompare;
var x;

primArray = new Array();
primArrayCompare = new Array();
for (x = 0; x < (1e5); x++) {
primArray.push(prim);
primArrayCompare.push(prim);
}

bench.start();
for (x = 0; x < n; x++) {
assert.deepEqual(primArray, primArrayCompare);
}
bench.end(n);
}
30 changes: 30 additions & 0 deletions benchmark/assert/deepequal-prims-and-objs-big-loop.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
'use strict';
var common = require('../common.js');
var assert = require('assert');
var bench = common.createBenchmark(main, {
prim: [
null,
undefined,
'a',
1,
true,
{0: 'a'},
[1, 2, 3],
new Array([1, 2, 3])
],
n: [1e5]
});

function main(conf) {
var prim = conf.prim;
var n = +conf.n;
var x;

bench.start();

for (x = 0; x < n; x++) {
assert.deepEqual(new Array([prim]), new Array([prim]));
}

bench.end(n);
}
22 changes: 22 additions & 0 deletions benchmark/assert/deepequal-typedarrays.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
'use strict';
var common = require('../common.js');
var assert = require('assert');
var bench = common.createBenchmark(main, {
type: ('Int8Array Uint8Array Int16Array Uint16Array Int32Array Uint32Array ' +
'Float32Array Float64Array Uint8ClampedArray').split(' '),
n: [1]
});

function main(conf) {
var type = conf.type;
var clazz = global[type];
var n = +conf.n;

bench.start();
var actual = new clazz(n * 1e6);
var expected = new clazz(n * 1e6);

assert.deepEqual(actual, expected);

bench.end(n);
}
18 changes: 18 additions & 0 deletions benchmark/buffers/buffer_zero.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
'use strict';

const common = require('../common.js');

const bench = common.createBenchmark(main, {
n: [1024]
});

const zero = new Buffer(0);

function main(conf) {
var n = +conf.n;
bench.start();
for (let i = 0; i < n * 1024; i++) {
new Buffer(zero);
}
bench.end(n);
}
22 changes: 22 additions & 0 deletions benchmark/fs/bench-readdir.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
'use strict';

const common = require('../common');
const fs = require('fs');

const bench = common.createBenchmark(main, {
n: [1e4],
});


function main(conf) {
const n = conf.n >>> 0;

bench.start();
(function r(cntr) {
if (--cntr <= 0)
return bench.end(n);
fs.readdir(__dirname + '/../../lib/', function() {
r(cntr);
});
}(n));
}
19 changes: 19 additions & 0 deletions benchmark/fs/bench-readdirSync.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
'use strict';

const common = require('../common');
const fs = require('fs');

const bench = common.createBenchmark(main, {
n: [1e4],
});


function main(conf) {
const n = conf.n >>> 0;

bench.start();
for (var i = 0; i < n; i++) {
fs.readdirSync(__dirname + '/../../lib/');
}
bench.end(n);
}
55 changes: 55 additions & 0 deletions benchmark/http/bench-parser.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
'use strict';

const common = require('../common');
const HTTPParser = process.binding('http_parser').HTTPParser;
const REQUEST = HTTPParser.REQUEST;
const kOnHeaders = HTTPParser.kOnHeaders | 0;
const kOnHeadersComplete = HTTPParser.kOnHeadersComplete | 0;
const kOnBody = HTTPParser.kOnBody | 0;
const kOnMessageComplete = HTTPParser.kOnMessageComplete | 0;
const CRLF = '\r\n';

const bench = common.createBenchmark(main, {
fields: [4, 8, 16, 32],
n: [1e5],
});


function main(conf) {
const fields = conf.fields >>> 0;
const n = conf.n >>> 0;
var header = `GET /hello HTTP/1.1${CRLF}Content-Type: text/plain${CRLF}`;

for (var i = 0; i < fields; i++) {
header += `X-Filler${i}: ${Math.random().toString(36).substr(2)}${CRLF}`;
}
header += CRLF;

processHeader(new Buffer(header), n);
}


function processHeader(header, n) {
const parser = newParser(REQUEST);

bench.start();
for (var i = 0; i < n; i++) {
parser.execute(header, 0, header.length);
parser.reinitialize(REQUEST);
}
bench.end(n);
}


function newParser(type) {
const parser = new HTTPParser(type);

parser.headers = [];

parser[kOnHeaders] = function() { };
parser[kOnHeadersComplete] = function() { };
parser[kOnBody] = function() { };
parser[kOnMessageComplete] = function() { };

return parser;
}
18 changes: 18 additions & 0 deletions benchmark/misc/bench-env.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
'use strict';

const common = require('../common');

const bench = common.createBenchmark(main, {
n: [1e5],
});


function main(conf) {
const n = conf.n >>> 0;
bench.start();
for (var i = 0; i < n; i++) {
// Access every item in object to process values.
Object.keys(process.env);
}
bench.end(n);
}
18 changes: 18 additions & 0 deletions benchmark/misc/bench-hrtime.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
'use strict';

const common = require('../common');

const bench = common.createBenchmark(main, {
n: [1e6]
});


function main(conf) {
const n = conf.n >>> 0;

bench.start();
for (var i = 0; i < n; i++) {
process.hrtime();
}
bench.end(n);
}
15 changes: 15 additions & 0 deletions benchmark/util/inspect.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
var util = require('util');

var common = require('../common.js');

var bench = common.createBenchmark(main, {n: [5e6]});

function main(conf) {
var n = conf.n | 0;

bench.start();
for (var i = 0; i < n; i += 1) {
var r = util.inspect({a: 'a', b: 'b', c: 'c', d: 'd'});
}
bench.end(n);
}
Loading