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

(v6.x backport) events: do not keep arrays with a single listener #13796

Closed
wants to merge 66 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
6c81b75
deps: add example of comparing OpenSSL changes
danbev May 26, 2017
d319015
deps: upgrade openssl sources to 1.0.2l
danbev May 26, 2017
b0b52bc
deps: copy all openssl header files to include dir
danbev May 26, 2017
22d74c4
deps: fix openssl assembly error on ia32 win32
indutny Jan 8, 2014
32bbf7a
deps: fix asm build error of openssl in x86_win32
Feb 13, 2015
b7a80dd
openssl: fix keypress requirement in apps on win32
Feb 17, 2015
f90919f
deps: add -no_rand_screen to openssl s_client
May 27, 2015
02a04cf
deps: update openssl config files
danbev May 26, 2017
99cadcb
deps: update openssl asm and asm_obsolete files
danbev Jun 1, 2017
e510003
doc: add missing make command to UPGRADING.md
danbev May 30, 2017
6602954
doc: consistent case for primitive types
silverwind Feb 4, 2017
40babf1
doc: linkify type[] syntax, support lowercase for primitives
silverwind Feb 14, 2017
e70cb6a
tools: fix lint issue in doctool
silverwind Mar 2, 2017
311ef42
doc/tools: fix more type inconsistencies
silverwind Mar 5, 2017
ae20511
test: enable setuid/setgid test
Trott Apr 13, 2017
4848862
test: introduce `common.crashOnUnhandledRejection`
addaleax Apr 19, 2017
dfcefd6
test,doc: document `crashOnUnhandledRejection()`
addaleax Apr 27, 2017
321c90f
zlib: fix node crashing on invalid options
aqrln May 22, 2017
04fb72f
crypto: clear err stack after ECDH::BufferToPoint
rfk May 29, 2017
11c7e01
v8: fix build errors with g++ 7
Jun 9, 2017
099694f
test: move test-debug-brk to sequential
gibfahn Jun 9, 2017
7a22964
test: move common.PORT debug tests to sequential
gibfahn Jun 10, 2017
7da19db
doc: update output examples in debugger.md
vsemozhetbyt Jun 17, 2017
b2d59b1
benchmark: add final clean-up to module-loader.js
vsemozhetbyt Mar 19, 2017
7af83ff
test: add internal/socket_list tests
DavidCai1111 Mar 29, 2017
beb1644
doc: argument types for https methods
ameliavoncat Mar 3, 2017
6f86285
doc: minor improvements in BUILDING.md
thefourtheye Apr 1, 2017
f7abf36
test: add basic cctest for base64.h
aqrln Apr 5, 2017
cde1e9d
tools: replace custom new-with-error rule
Trott Apr 6, 2017
ba51c18
test: remove disabled tls_server.js
Trott Apr 7, 2017
7093711
tools: replace custom assert.fail lint rule
Trott Apr 9, 2017
6d0c4ed
build: clear stalled jobs on POSIX CI hosts
Trott Feb 8, 2017
6d7795f
doc: update os.uptime() and process.uptime() info
vsemozhetbyt Apr 9, 2017
163b3cb
src: remove superfluous env_string string
bnoordhuis Oct 20, 2016
fa9d6ad
src: make cross-context MakeCallback() calls work
bnoordhuis Oct 21, 2016
e3dacbf
test: remove disabled test-dgram-send-error
Trott Apr 11, 2017
01cb518
build: avoid passing kill empty input in Makefile
gibfahn Apr 1, 2017
f359682
test: run the addon tests last
seppevs Mar 27, 2017
ff637f1
build: disable -O3 for C++ coverage
addaleax Apr 13, 2017
ef1afdc
benchmark,windows: TCP.readStart() meaningful only after completion
refack Apr 6, 2017
cff0043
test: replace [].join() with ''.repeat()
JacksonTian Apr 10, 2017
6578884
test: remove common.PORT from multiple tests
tarunbatra Apr 16, 2017
5a86259
test: fix coverity UNINIT_CTOR cctest warning
bnoordhuis Apr 13, 2017
8fdc978
test: dynamic port in cluster worker wait close
Apr 17, 2017
c2afcea
repl: support hidden history file on Windows
bzoz Apr 20, 2017
7714f97
repl: fix /dev/null history file regression
mscdex Apr 30, 2017
03f8ffe
doc: modernize and fix code examples in repl.md
vsemozhetbyt Apr 24, 2017
172cbfc
test: dynamic port in parallel regress tests
Apr 26, 2017
17cb9ca
test: replace indexOf with includes
gwer Apr 22, 2017
cdd5b52
tools: ignore node_trace.*.log
watilde May 2, 2017
2532fb4
stream: remove unnecessary parameter
Aug 17, 2016
f607d85
build: add static option to vcbuild.bat
Apr 30, 2017
5bb42d6
doc: document vm timeout option perf impact
addaleax Apr 29, 2017
90e1560
http: fix first body chunk fast case for UTF-16
addaleax Apr 29, 2017
8c891a2
test: increase readline coverage
addaleax Apr 27, 2017
faf237e
crypto: throw proper errors if out enc is UTF-16
addaleax Apr 29, 2017
fbe36a0
src: rename CryptoPemCallback -> PasswordCallback
danbev May 2, 2017
9937f5f
test: add callback to fs.close() in test-fs-chmod
vsemozhetbyt May 2, 2017
8321948
test: add callback to fs.close() in test-fs-stat
vsemozhetbyt May 3, 2017
c139b07
tools: remove unused code from test.py
Trott May 3, 2017
35f8abe
test: add regex check in test-vm-is-context
Jeyanthinath May 2, 2017
9084afb
test: make tests cwd-independent
vsemozhetbyt May 3, 2017
5b979a8
doc: update readFileSync in fs.md
thelostone-mc May 2, 2017
ae38adc
src: turn buffer type-CHECK into exception
addaleax Apr 29, 2017
41de99d
events: do not keep arrays with a single listener
lpinca Mar 25, 2017
c2fcb5f
events: remove unreachable code
cjihrig Apr 19, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions .eslintrc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -109,8 +109,14 @@ rules:
message: "setTimeout() must be invoked with at least two arguments."
}, {
selector: "CallExpression[callee.name='setInterval'][arguments.length<2]",
message: "setInterval() must be invoked with at least 2 arguments"
}]
message: "setInterval() must be invoked with at least 2 arguments."
}, {
selector: "ThrowStatement > CallExpression[callee.name=/Error$/]",
message: "Use new keyword when throwing an Error."
}, {
selector: "CallExpression[callee.object.name='assert'][callee.property.name='fail'][arguments.length=1]",
message: "assert.fail() message should be third argument"
}]
no-tabs: 2
no-trailing-spaces: 2
operator-linebreak: [2, after, {overrides: {'?': ignore, ':': ignore}}]
Expand Down Expand Up @@ -140,9 +146,7 @@ rules:

# Custom rules in tools/eslint-rules
align-multiline-assignment: 2
assert-fail-single-argument: 2
assert-throws-arguments: [2, { requireTwo: false }]
new-with-error: [2, Error, RangeError, TypeError, SyntaxError, ReferenceError]
no-useless-regex-char-class-escape: [2, { override: ['[', ']'] }]

# Global scoped method and vars
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ node_g
.benchmark_reports
icu_config.gypi
.eslintcache
node_trace.*.log

/out

Expand Down
23 changes: 11 additions & 12 deletions BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,10 @@ Support is divided into three tiers:
the broader community.
* **Tier 2**: Full test coverage but more limited maintenance,
often provided by the vendor of the platform.
* **Experimental**: Known to compile but not necessarily reliably or with
a full passing test suite. These are often working to be promoted to Tier
2 but are not quite ready. There is at least one individual actively
providing maintenance and the team is striving to broaden quality and
reliability of support.
* **Experimental**: May not compile reliably or test suite may not pass.
These are often working to be promoted to Tier 2 but are not quite ready.
There is at least one individual actively providing maintenance and the team
is striving to broaden quality and reliability of support.

### Supported platforms

Expand Down Expand Up @@ -96,7 +95,7 @@ to avoid popups asking to accept incoming network connections when running tests
$ sudo ./tools/macosx-firewall.sh
```
Running this script will add rules for the executable `node` in the out
directory and the symbolic `node` link in the projects root directory.
directory and the symbolic `node` link in the project's root directory.

On FreeBSD and OpenBSD, you may also need:
* libexecinfo
Expand All @@ -121,7 +120,7 @@ and not a newer version.

To run the tests:

```console
```
$ make test
```

Expand Down Expand Up @@ -206,9 +205,9 @@ in the current continuous integration environment. The participation of people
dedicated and determined to improve Android building, testing, and support is
encouraged.

Be sure you have downloaded and extracted [Android NDK]
(https://developer.android.com/tools/sdk/ndk/index.html)
before in a folder. Then run:
Be sure you have downloaded and extracted
[Android NDK](https://developer.android.com/tools/sdk/ndk/index.html) before in
a folder. Then run:

```console
$ ./android-configure /path/to/your/android-ndk
Expand Down Expand Up @@ -350,6 +349,6 @@ and [user guide](https://openssl.org/docs/fips/UserGuide-2.0.pdf).
6. Get into Node.js checkout folder
7. `./configure --openssl-fips=/path/to/openssl-fips/installdir`
For example on ubuntu 12 the installation directory was
/usr/local/ssl/fips-2.0
`/usr/local/ssl/fips-2.0`
8. Build Node.js with `make -j`
9. Verify with `node -p "process.versions.openssl"` (`1.0.2a-fips`)
9. Verify with `node -p "process.versions.openssl"` (for example `1.0.2a-fips`)
31 changes: 20 additions & 11 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ test: all
$(MAKE) build-addons
$(MAKE) cctest
$(PYTHON) tools/test.py --mode=release -J \
addons doctool inspector known_issues message pseudo-tty parallel sequential
doctool inspector known_issues message pseudo-tty parallel sequential addons
$(MAKE) lint

test-parallel: all
Expand Down Expand Up @@ -186,6 +186,14 @@ test/addons/.buildstamp: config.gypi \
# TODO(bnoordhuis) Force rebuild after gyp update.
build-addons: $(NODE_EXE) test/addons/.buildstamp

clear-stalled:
# Clean up any leftover processes but don't error if found.
ps awwx | grep Release/node | grep -v grep | cat
@PS_OUT=`ps awwx | grep Release/node | grep -v grep | awk '{print $$1}'`; \
if [ "$${PS_OUT}" ]; then \
echo $${PS_OUT} | xargs kill; \
fi

test-gc: all test/gc/node_modules/weak/build/Release/weakref.node
$(PYTHON) tools/test.py --mode=release gc

Expand All @@ -208,26 +216,28 @@ test-ci-native: | test/addons/.buildstamp
$(TEST_CI_ARGS) $(CI_NATIVE_SUITES)

# This target should not use a native compiler at all
test-ci-js:
test-ci-js: | clear-stalled
$(PYTHON) tools/test.py $(PARALLEL_ARGS) -p tap --logfile test.tap \
--mode=release --flaky-tests=$(FLAKY_TESTS) \
$(TEST_CI_ARGS) $(CI_JS_SUITES)
# Clean up any leftover processes
PS_OUT=`ps awwx | grep Release/node | grep -v grep | awk '{print $$1}'`; \
# Clean up any leftover processes, error if found.
ps awwx | grep Release/node | grep -v grep | cat
@PS_OUT=`ps awwx | grep Release/node | grep -v grep | awk '{print $$1}'`; \
if [ "$${PS_OUT}" ]; then \
echo $${PS_OUT} | $(XARGS) kill; exit 1; \
fi

test-ci: LOGLEVEL := info
test-ci: | build-addons
test-ci: | clear-stalled build-addons
out/Release/cctest --gtest_output=tap:cctest.tap
$(PYTHON) tools/test.py $(PARALLEL_ARGS) -p tap --logfile test.tap \
--mode=release --flaky-tests=$(FLAKY_TESTS) \
$(TEST_CI_ARGS) $(CI_NATIVE_SUITES) $(CI_JS_SUITES)
# Clean up any leftover processes
PS_OUT=`ps awwx | grep Release/node | grep -v grep | awk '{print $$1}'`; \
$(TEST_CI_ARGS) $(CI_JS_SUITES) $(CI_NATIVE_SUITES)
# Clean up any leftover processes, error if found.
ps awwx | grep Release/node | grep -v grep | cat
@PS_OUT=`ps awwx | grep Release/node | grep -v grep | awk '{print $$1}'`; \
if [ "$${PS_OUT}" ]; then \
echo $${PS_OUT} | $(XARGS) kill; exit 1; \
echo $${PS_OUT} | xargs kill; exit 1; \
fi

test-release: test-build
Expand Down Expand Up @@ -800,5 +810,4 @@ endif
bench-buffer bench-net bench-http bench-fs bench-tls cctest run-ci \
test-v8 test-v8-intl test-v8-benchmarks test-v8-all v8 lint-ci \
bench-ci jslint-ci doc-only $(TARBALL)-headers test-ci test-ci-native \
test-ci-js build-ci

test-ci-js build-ci clear-stalled
2 changes: 2 additions & 0 deletions benchmark/module/module-loader.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ function main(conf) {
measureFull(n);
else
measureDir(n);

rmrf(tmpDirectory);
}

function measureFull(n) {
Expand Down
4 changes: 2 additions & 2 deletions benchmark/net/tcp-raw-pipe.js
Original file line number Diff line number Diff line change
Expand Up @@ -97,8 +97,6 @@ function client() {
if (err)
fail(err, 'connect');

clientHandle.readStart();

clientHandle.onread = function(nread, buffer) {
if (nread < 0)
fail(nread, 'read');
Expand All @@ -112,6 +110,8 @@ function client() {

bench.start();

clientHandle.readStart();

setTimeout(function() {
// multiply by 2 since we're sending it first one way
// then then back again.
Expand Down
2 changes: 1 addition & 1 deletion deps/openssl/asm/arm-void-gas/aes/bsaes-armv7.S
Original file line number Diff line number Diff line change
Expand Up @@ -1298,7 +1298,7 @@ bsaes_cbc_encrypt:
vmov q4,q15 @ just in case ensure that IV
vmov q5,q0 @ and input are preserved
bl AES_decrypt
vld1.8 {q0}, [r9,:64] @ load result
vld1.8 {q0}, [r9] @ load result
veor q0, q0, q4 @ ^= IV
vmov q15, q5 @ q5 holds input
vst1.8 {q0}, [r10] @ write output
Expand Down
1 change: 1 addition & 0 deletions deps/openssl/asm/x64-elf-gas/aes/aesni-sha1-x86_64.s
Original file line number Diff line number Diff line change
Expand Up @@ -2692,6 +2692,7 @@ aesni_cbc_sha1_enc_shaext:
movl 240(%rcx),%r11d
subq %rdi,%rsi
movups (%rcx),%xmm15
movups (%r8),%xmm2
movups 16(%rcx),%xmm0
leaq 112(%rcx),%rcx

Expand Down
1 change: 1 addition & 0 deletions deps/openssl/asm/x64-elf-gas/aes/aesni-sha256-x86_64.s
Original file line number Diff line number Diff line change
Expand Up @@ -4012,6 +4012,7 @@ aesni_cbc_sha256_enc_shaext:
movl 240(%rcx),%r11d
subq %rdi,%rsi
movups (%rcx),%xmm15
movups (%r8),%xmm6
movups 16(%rcx),%xmm4
leaq 112(%rcx),%rcx

Expand Down
17 changes: 9 additions & 8 deletions deps/openssl/asm/x64-elf-gas/x86_64cpuid.s
Original file line number Diff line number Diff line change
Expand Up @@ -107,14 +107,6 @@ OPENSSL_ia32_cpuid:
shrl $14,%r10d
andl $0xfff,%r10d

cmpl $7,%r11d
jb .Lnocacheinfo

movl $7,%eax
xorl %ecx,%ecx
cpuid
movl %ebx,8(%rdi)

.Lnocacheinfo:
movl $1,%eax
cpuid
Expand Down Expand Up @@ -144,6 +136,15 @@ OPENSSL_ia32_cpuid:
orl %ecx,%r9d

movl %edx,%r10d

cmpl $7,%r11d
jb .Lno_extended_info
movl $7,%eax
xorl %ecx,%ecx
cpuid
movl %ebx,8(%rdi)
.Lno_extended_info:

btl $27,%r9d
jnc .Lclear_avx
xorl %ecx,%ecx
Expand Down
1 change: 1 addition & 0 deletions deps/openssl/asm/x64-macosx-gas/aes/aesni-sha1-x86_64.s
Original file line number Diff line number Diff line change
Expand Up @@ -2692,6 +2692,7 @@ aesni_cbc_sha1_enc_shaext:
movl 240(%rcx),%r11d
subq %rdi,%rsi
movups (%rcx),%xmm15
movups (%r8),%xmm2
movups 16(%rcx),%xmm0
leaq 112(%rcx),%rcx

Expand Down
1 change: 1 addition & 0 deletions deps/openssl/asm/x64-macosx-gas/aes/aesni-sha256-x86_64.s
Original file line number Diff line number Diff line change
Expand Up @@ -4012,6 +4012,7 @@ aesni_cbc_sha256_enc_shaext:
movl 240(%rcx),%r11d
subq %rdi,%rsi
movups (%rcx),%xmm15
movups (%r8),%xmm6
movups 16(%rcx),%xmm4
leaq 112(%rcx),%rcx

Expand Down
17 changes: 9 additions & 8 deletions deps/openssl/asm/x64-macosx-gas/x86_64cpuid.s
Original file line number Diff line number Diff line change
Expand Up @@ -108,14 +108,6 @@ L$intel:
shrl $14,%r10d
andl $0xfff,%r10d

cmpl $7,%r11d
jb L$nocacheinfo

movl $7,%eax
xorl %ecx,%ecx
cpuid
movl %ebx,8(%rdi)

L$nocacheinfo:
movl $1,%eax
cpuid
Expand Down Expand Up @@ -145,6 +137,15 @@ L$generic:
orl %ecx,%r9d

movl %edx,%r10d

cmpl $7,%r11d
jb L$no_extended_info
movl $7,%eax
xorl %ecx,%ecx
cpuid
movl %ebx,8(%rdi)
L$no_extended_info:

btl $27,%r9d
jnc L$clear_avx
xorl %ecx,%ecx
Expand Down
1 change: 1 addition & 0 deletions deps/openssl/asm/x64-win32-masm/aes/aesni-sha1-x86_64.asm
Original file line number Diff line number Diff line change
Expand Up @@ -2793,6 +2793,7 @@ $L$prologue_shaext::
mov r11d,DWORD PTR[240+rcx]
sub rsi,rdi
movups xmm15,XMMWORD PTR[rcx]
movups xmm2,XMMWORD PTR[r8]
movups xmm0,XMMWORD PTR[16+rcx]
lea rcx,QWORD PTR[112+rcx]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4146,6 +4146,7 @@ $L$prologue_shaext::
mov r11d,DWORD PTR[240+rcx]
sub rsi,rdi
movups xmm15,XMMWORD PTR[rcx]
movups xmm6,XMMWORD PTR[r8]
movups xmm4,XMMWORD PTR[16+rcx]
lea rcx,QWORD PTR[112+rcx]

Expand Down
17 changes: 9 additions & 8 deletions deps/openssl/asm/x64-win32-masm/x86_64cpuid.asm
Original file line number Diff line number Diff line change
Expand Up @@ -118,14 +118,6 @@ $L$intel::
shr r10d,14
and r10d,0fffh

cmp r11d,7
jb $L$nocacheinfo

mov eax,7
xor ecx,ecx
cpuid
mov DWORD PTR[8+rdi],ebx

$L$nocacheinfo::
mov eax,1
cpuid
Expand Down Expand Up @@ -155,6 +147,15 @@ $L$generic::
or r9d,ecx

mov r10d,edx

cmp r11d,7
jb $L$no_extended_info
mov eax,7
xor ecx,ecx
cpuid
mov DWORD PTR[8+rdi],ebx
$L$no_extended_info::

bt r9d,27
jnc $L$clear_avx
xor ecx,ecx
Expand Down
Loading