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

console: display timeEnd with suitable time unit #29251

Closed
wants to merge 9 commits into from

Conversation

@Xstoudi
Copy link
Contributor

Xstoudi commented Aug 21, 2019

When timeEnd function is called, display result with a suitable
time unit instead of a big amount of milliseconds.

Refs: #29099

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • tests and/or benchmarks are included
  • commit message follows commit guidelines
Copy link
Contributor

cjihrig left a comment

Can you please add tests.

@Xstoudi

This comment has been minimized.

Copy link
Contributor Author

Xstoudi commented Aug 21, 2019

I'm aware that the PR needs tests but I'm a little bit afraid of writing tests incorrectly regarding the fact that tests with timers can be flaky. Can someone give me a clue about how to achieve this correctly?

@cjihrig

This comment has been minimized.

Copy link
Contributor

cjihrig commented Aug 21, 2019

Since testing this would require large timers, (which won't work in the CI) to be able to test all the code paths here you can try a few things. You could monkey patch process.hrtime(). You could also create a separate function with all of this logic and export it (since this is an internal module) for testing.

unit = 's';
}

return value.toFixed(3) + unit;

This comment has been minimized.

Copy link
@devsnek

devsnek Aug 21, 2019

Member

i think we should always show the milliseconds

This comment has been minimized.

Copy link
@targos

targos Aug 22, 2019

Member

I'm not convinced. even in case it's a few seconds, I don't think we need more than millisecond precision.

This comment has been minimized.

Copy link
@devsnek

devsnek Aug 22, 2019

Member

if we don't include milliseconds can we remove the toFixed?

This comment has been minimized.

Copy link
@Xstoudi

Xstoudi Aug 23, 2019

Author Contributor

time and timeEnd couple seems to be here to allow developers to get an idea of which time scale does a part of their code take to run. I think it's usefull to know whether the code takes 500ms, 1, 1min or 1h to run but I don't see any case where the difference between 1h and 1.0000000000000001h is important. People that need high precision can still use process.hrtime.

This comment has been minimized.

Copy link
@BridgeAR

BridgeAR Sep 3, 2019

Member

I am in favor of changing the representation in general but I think it would have been good to keep the milliseconds. I think it would have been ideal to visualize it as: n1h, n2m, n3s and n4ms (n1 - n4 as value) while each leading part would be optional as long as all former ones are zero. Right now you have to calculate in a fraction of an hour or minutes and that is not very intuitive.

@targos
targos approved these changes Aug 22, 2019
@nodejs-github-bot

This comment has been minimized.

@nodejs-github-bot

This comment has been minimized.

@Trott Trott force-pushed the nodejs:master branch from e460838 to 775048d Aug 22, 2019
@targos

This comment has been minimized.

Copy link
Member

targos commented Aug 22, 2019

@Trott I'm not sure what you force-pushed? I helped @Xstoudi to prepare this PR but I never touched git myself and he doesn't have access to the main repo

@targos

This comment has been minimized.

Copy link
Member

targos commented Aug 22, 2019

This pull request now has two more commits. I don't understand how they arrived here 😕

@Trott

This comment has been minimized.

Copy link
Member

Trott commented Aug 23, 2019

@Trott I'm not sure what you force-pushed?

@targos You can see what I force-pushed out of master at 94e47b8 and e460838. I commented on those commits, which I guess somehow are also in this branch? I didn't force push anything in this branch. I force-pushed to master branch to clear out those two commits from master.

@Trott

This comment has been minimized.

Copy link
Member

Trott commented Aug 23, 2019

It's possible that those two commits got added to this branch as part of a rebase against master in the time when those commits were on master. Perhaps they can/should be force-pushed out of this branch.

Xstoudi added 9 commits Aug 21, 2019
When timeEnd function is called, display result with a suitable
time unit instead of a big amount of milliseconds.

Refs: #29099
Extract the format time part to be able to test it.
Change regexp of test-console to accept other possible units and create test for formatTime
Tests in test-console.js expect 3 floating points.
Assert that returnes value as 3 floating points
Edit the file to fulfill the linter requirements
Edit the file to fulfill the linter requirements
Hour, minute and second equivalent in ms are now constants.
@Xstoudi

This comment has been minimized.

Copy link
Contributor Author

Xstoudi commented Aug 23, 2019

I removed the documentation is changed or added checkbox because I think it doesn't require a change in the documentation. Let me know if it's not the case.

@nodejs-github-bot

This comment has been minimized.

@Trott Trott added the author ready label Aug 24, 2019
addaleax added a commit that referenced this pull request Aug 25, 2019
When timeEnd function is called, display result with a suitable
time unit instead of a big amount of milliseconds.

Refs: #29099

PR-URL: #29251
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
@addaleax

This comment has been minimized.

Copy link
Member

addaleax commented Aug 25, 2019

Landed in 66043e1, thanks for the PR! 🎉

@addaleax addaleax closed this Aug 25, 2019
@BridgeAR

This comment has been minimized.

Copy link
Member

BridgeAR commented Sep 3, 2019

This feels like a semver-major change to me. I can imagine tests hooking into output to verify a specific min/max delay (there are definitely more straight forward ways to do that but who knows).

BridgeAR added a commit that referenced this pull request Sep 3, 2019
When timeEnd function is called, display result with a suitable
time unit instead of a big amount of milliseconds.

Refs: #29099

PR-URL: #29251
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
@BridgeAR BridgeAR referenced this pull request Sep 3, 2019
@sam-github

This comment has been minimized.

Copy link
Member

sam-github commented Sep 3, 2019

I agree, though not strongly. If anyone really feels this is not major and should land in 12.x, feel free to remove the semver-major label, as far as I'm concerned.

JeniaBR added a commit to JeniaBR/node that referenced this pull request Sep 11, 2019
When timeEnd function is called, display result with a suitable
time unit instead of a big amount of milliseconds.

Refs: nodejs#29099

PR-URL: nodejs#29251
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
JeniaBR added a commit to JeniaBR/node that referenced this pull request Sep 11, 2019
When timeEnd function is called, display result with a suitable
time unit instead of a big amount of milliseconds.

Refs: nodejs#29099

PR-URL: nodejs#29251
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
@BridgeAR BridgeAR referenced this pull request Sep 20, 2019
4 of 4 tasks complete
BethGriggs added a commit that referenced this pull request Oct 21, 2019
Notable changes:

- **assert**:
    - do not repeat .throws() code (Ruben Bridgewater)
        [#28263](#28263)
    - wrap validation function errors (Ruben Bridgewater)
        [#28263](#28263)
    - fix generatedMessage property (Ruben Bridgewater)
        [#28263](#28263)
    - improve class instance errors (Ruben Bridgewater)
        [#28263](#28263)
- **benchmark**:
    - use test/common/tmpdir consistently (João Reis)
        [#28858](#28858)
- **build**:
    - make full-icu the default for releases (Richard Lau)
        [#29887](#29887)
    - update minimum Xcode version for macOS (Michael Dawson)
        [#29622](#29622)
- **child_process**:
    - runtime deprecate \_channel (cjihrig)
        [#27949](#27949)
    - simplify spawn argument parsing (cjihrig)
        [#27854](#27854)
- **console**:
    - display timeEnd with suitable time unit (Xavier Stouder)
        [#29251](#29251)
- **deps**:
    - patch V8 to 7.8.279.14 (Myles Borins)
        [#29694](#29694)
    - patch V8 to 7.8.279.12 (Myles Borins)
        [#29694](#29694)
    - patch V8 to 7.8.279.10 (Myles Borins)
        [#29694](#29694)
    - update V8's postmortem script (cjihrig)
        [#29694](#29694)
    - V8: cherry-pick 716875d (Myles Borins)
        [#29694](#29694)
    - update V8 to 7.8.279.9 (Myles Borins)
        [#29694](#29694)
    - V8: cherry-pick b33af60 (Michaël Zasso)
        [#28016](#28016)
    - update V8 to 7.6.303.28 (Michaël Zasso)
        [#28016](#28016)
- **domain**:
    - error handler runs outside of its domain (Julien Gilli)
        [#26211](#26211)
- **fs**:
    - make FSWatcher.start private (Lucas Holmquist)
        [#29905](#29905)
    - add runtime deprecate for file stream open() (Robert Nagy)
    [#29061](#29061)
    - allow int64 offset in fs.write/writeSync/fd.write (Zach Bjornson)
    [#26572](#26572)
    - use IsSafeJsInt instead of IsNumber for ftruncate (Zach Bjornson)
    [#26572](#26572)
    - allow int64 offset in fs.read/readSync/fd.read (Zach Bjornson)
    [#26572](#26572)
    - close file descriptor of promisified truncate (João Reis)
    [#28858](#28858)
- **http**:
    - do not emit end after aborted (Robert Nagy)
        [#27984](#27984)
    - don't emit 'data' after 'error' (Robert Nagy)
        [#28711](#28711)
    - remove legacy parser (Anna Henningsen)
        [#29589](#29589)
    - throw if 'host' agent header is not a string value
        (Giorgos Ntemiris)
        [#29568](#29568)
    - replace superfluous connection property with getter/setter
        (Robert Nagy)
        [#29015](#29015)
    - fix test where aborted should not be emitted (Robert Nagy)
        [#20077](#20077)
    - remove default 'timeout' listener on upgrade (Luigi Pinca)
        [#26030](#26030)
- **http, http2**:
    - remove default server timeout (Ali Ijaz Sheikh)
        [#27558](#27558)
- **http2**:
    - remove security revert flags (Anna Henningsen)
        [#29141](#29141)
    - remove callback-based padding (Anna Henningsen)
        [#29144](#29144)
- **lib**:
    - rename validateInteger to validateSafeInteger (Zach Bjornson)
        [#26572](#26572)
    - correct error.errno to always be numeric (Joyee Cheung)
        [#28140](#28140)
    - no need to strip BOM or shebang for scripts (Refael Ackermann)
        [#27375](#27375)
    - rework logic of stripping BOM+Shebang from commonjs (Gus Caplan)
        [#27768](#27768)
- **module**:
    - runtime deprecate createRequireFromPath() (cjihrig)
        [#27951](#27951)
- **readline**:
    - error on falsy values for callback (Sam Roberts)
        [#28109](#28109)
- **repl**:
    - close file descriptor of history file (João Reis)
        [#28858](#28858)
- **src**:
    - bring 425 status code name into accordance with RFC 8470
        (Sergei Osipov)
        [#29880](#29880)
    - update NODE\_MODULE\_VERSION to 79 (Myles Borins)
        [#29694](#29694)
    - update NODE\_MODULE\_VERSION to 78 (Michaël Zasso)
        [#28918](#28918)
    - add error codes to errors thrown in C++ (Yaniv Friedensohn)
        [#27700](#27700)
    - use non-deprecated overload of V8::SetFlagsFromString
        (Michaël Zasso)
        [#28016](#28016)
    - update NODE\_MODULE\_VERSION to 77 (Michaël Zasso)
        [#28016](#28016)
    - update NODE\_MODULE\_VERSION to 74 (Refael Ackermann)
        [#27375](#27375)
    - make process.env.TZ setter clear tz cache (Ben Noordhuis)
        [#20026](#20026)
    - enable V8's WASM trap handlers (Gus Caplan)
        [#27246](#27246)
- **stream**:
    - throw unhandled error for readable with autoDestroy (Robert Nagy)
        [#29806](#29806)
    - always invoke callback before emitting error (Robert Nagy)
        [#29293](#29293)
    - invoke callback before emitting error always (Robert Nagy)
        [#29293](#29293)
    - do not flush destroyed writable (Robert Nagy)
        [#29028](#29028)
    - don't emit finish on error (Robert Nagy)
        [#28979](#28979)
    - disallow stream methods on finished stream (Robert Nagy)
        [#28687](#28687)
    - do not emit after 'error' (Robert Nagy)
        [#28708](#28708)
    - fix destroy() behavior (Robert Nagy)
        [#29058](#29058)
    - simplify `.pipe()` and `.unpipe()` in Readable (Weijia Wang)
        [#28583](#28583)
- **tools**:
    - patch V8 to run on older XCode versions (Ujjwal Sharma)
        [#29694](#29694)
    - update V8 gypfiles (Michaël Zasso)
        [#29694](#29694)
    - support full-icu by default (Steven R. Loomis)
        [#29522](#29522)
- **util**: validate formatWithOptions inspectOptions
    (Ruben Bridgewater)
    [#29824](#29824)

PR-URL: #29504
BethGriggs added a commit that referenced this pull request Oct 21, 2019
Notable changes:

- **assert**:
    - do not repeat .throws() code (Ruben Bridgewater)
        [#28263](#28263)
    - wrap validation function errors (Ruben Bridgewater)
        [#28263](#28263)
    - fix generatedMessage property (Ruben Bridgewater)
        [#28263](#28263)
    - improve class instance errors (Ruben Bridgewater)
        [#28263](#28263)
- **benchmark**:
    - use test/common/tmpdir consistently (João Reis)
        [#28858](#28858)
- **build**:
    - make full-icu the default for releases (Richard Lau)
        [#29887](#29887)
    - update minimum Xcode version for macOS (Michael Dawson)
        [#29622](#29622)
- **child_process**:
    - runtime deprecate \_channel (cjihrig)
        [#27949](#27949)
    - simplify spawn argument parsing (cjihrig)
        [#27854](#27854)
- **console**:
    - display timeEnd with suitable time unit (Xavier Stouder)
        [#29251](#29251)
- **deps**:
    - patch V8 to 7.8.279.14 (Myles Borins)
        [#29694](#29694)
    - patch V8 to 7.8.279.12 (Myles Borins)
        [#29694](#29694)
    - patch V8 to 7.8.279.10 (Myles Borins)
        [#29694](#29694)
    - update V8's postmortem script (cjihrig)
        [#29694](#29694)
    - V8: cherry-pick 716875d (Myles Borins)
        [#29694](#29694)
    - update V8 to 7.8.279.9 (Myles Borins)
        [#29694](#29694)
    - V8: cherry-pick b33af60 (Michaël Zasso)
        [#28016](#28016)
    - update V8 to 7.6.303.28 (Michaël Zasso)
        [#28016](#28016)
- **domain**:
    - error handler runs outside of its domain (Julien Gilli)
        [#26211](#26211)
- **fs**:
    - make FSWatcher.start private (Lucas Holmquist)
        [#29905](#29905)
    - add runtime deprecate for file stream open() (Robert Nagy)
    [#29061](#29061)
    - allow int64 offset in fs.write/writeSync/fd.write (Zach Bjornson)
    [#26572](#26572)
    - use IsSafeJsInt instead of IsNumber for ftruncate (Zach Bjornson)
    [#26572](#26572)
    - allow int64 offset in fs.read/readSync/fd.read (Zach Bjornson)
    [#26572](#26572)
    - close file descriptor of promisified truncate (João Reis)
    [#28858](#28858)
- **http**:
    - do not emit end after aborted (Robert Nagy)
        [#27984](#27984)
    - don't emit 'data' after 'error' (Robert Nagy)
        [#28711](#28711)
    - remove legacy parser (Anna Henningsen)
        [#29589](#29589)
    - throw if 'host' agent header is not a string value
        (Giorgos Ntemiris)
        [#29568](#29568)
    - replace superfluous connection property with getter/setter
        (Robert Nagy)
        [#29015](#29015)
    - fix test where aborted should not be emitted (Robert Nagy)
        [#20077](#20077)
    - remove default 'timeout' listener on upgrade (Luigi Pinca)
        [#26030](#26030)
- **http, http2**:
    - remove default server timeout (Ali Ijaz Sheikh)
        [#27558](#27558)
- **http2**:
    - remove security revert flags (Anna Henningsen)
        [#29141](#29141)
    - remove callback-based padding (Anna Henningsen)
        [#29144](#29144)
- **lib**:
    - rename validateInteger to validateSafeInteger (Zach Bjornson)
        [#26572](#26572)
    - correct error.errno to always be numeric (Joyee Cheung)
        [#28140](#28140)
    - no need to strip BOM or shebang for scripts (Refael Ackermann)
        [#27375](#27375)
    - rework logic of stripping BOM+Shebang from commonjs (Gus Caplan)
        [#27768](#27768)
- **module**:
    - runtime deprecate createRequireFromPath() (cjihrig)
        [#27951](#27951)
- **readline**:
    - error on falsy values for callback (Sam Roberts)
        [#28109](#28109)
- **repl**:
    - close file descriptor of history file (João Reis)
        [#28858](#28858)
- **src**:
    - bring 425 status code name into accordance with RFC 8470
        (Sergei Osipov)
        [#29880](#29880)
    - update NODE\_MODULE\_VERSION to 79 (Myles Borins)
        [#29694](#29694)
    - update NODE\_MODULE\_VERSION to 78 (Michaël Zasso)
        [#28918](#28918)
    - add error codes to errors thrown in C++ (Yaniv Friedensohn)
        [#27700](#27700)
    - use non-deprecated overload of V8::SetFlagsFromString
        (Michaël Zasso)
        [#28016](#28016)
    - update NODE\_MODULE\_VERSION to 77 (Michaël Zasso)
        [#28016](#28016)
    - update NODE\_MODULE\_VERSION to 74 (Refael Ackermann)
        [#27375](#27375)
    - make process.env.TZ setter clear tz cache (Ben Noordhuis)
        [#20026](#20026)
    - enable V8's WASM trap handlers (Gus Caplan)
        [#27246](#27246)
- **stream**:
    - throw unhandled error for readable with autoDestroy (Robert Nagy)
        [#29806](#29806)
    - always invoke callback before emitting error (Robert Nagy)
        [#29293](#29293)
    - invoke callback before emitting error always (Robert Nagy)
        [#29293](#29293)
    - do not flush destroyed writable (Robert Nagy)
        [#29028](#29028)
    - don't emit finish on error (Robert Nagy)
        [#28979](#28979)
    - disallow stream methods on finished stream (Robert Nagy)
        [#28687](#28687)
    - do not emit after 'error' (Robert Nagy)
        [#28708](#28708)
    - fix destroy() behavior (Robert Nagy)
        [#29058](#29058)
    - simplify `.pipe()` and `.unpipe()` in Readable (Weijia Wang)
        [#28583](#28583)
- **tools**:
    - patch V8 to run on older XCode versions (Ujjwal Sharma)
        [#29694](#29694)
    - update V8 gypfiles (Michaël Zasso)
        [#29694](#29694)
    - support full-icu by default (Steven R. Loomis)
        [#29522](#29522)
- **util**: validate formatWithOptions inspectOptions
    (Ruben Bridgewater)
    [#29824](#29824)

PR-URL: #29504
BethGriggs added a commit that referenced this pull request Oct 21, 2019
Notable changes:

- **assert**:
    - do not repeat .throws() code (Ruben Bridgewater)
        [#28263](#28263)
    - wrap validation function errors (Ruben Bridgewater)
        [#28263](#28263)
    - fix generatedMessage property (Ruben Bridgewater)
        [#28263](#28263)
    - improve class instance errors (Ruben Bridgewater)
        [#28263](#28263)
- **benchmark**:
    - use test/common/tmpdir consistently (João Reis)
        [#28858](#28858)
- **build**:
    - make full-icu the default for releases (Richard Lau)
        [#29887](#29887)
    - update minimum Xcode version for macOS (Michael Dawson)
        [#29622](#29622)
- **child_process**:
    - runtime deprecate \_channel (cjihrig)
        [#27949](#27949)
    - simplify spawn argument parsing (cjihrig)
        [#27854](#27854)
- **console**:
    - display timeEnd with suitable time unit (Xavier Stouder)
        [#29251](#29251)
- **deps**:
    - patch V8 to 7.8.279.14 (Myles Borins)
        [#29694](#29694)
    - patch V8 to 7.8.279.12 (Myles Borins)
        [#29694](#29694)
    - patch V8 to 7.8.279.10 (Myles Borins)
        [#29694](#29694)
    - update V8's postmortem script (cjihrig)
        [#29694](#29694)
    - V8: cherry-pick 716875d (Myles Borins)
        [#29694](#29694)
    - update V8 to 7.8.279.9 (Myles Borins)
        [#29694](#29694)
    - V8: cherry-pick b33af60 (Michaël Zasso)
        [#28016](#28016)
    - update V8 to 7.6.303.28 (Michaël Zasso)
        [#28016](#28016)
- **domain**:
    - error handler runs outside of its domain (Julien Gilli)
        [#26211](#26211)
- **fs**:
    - make FSWatcher.start private (Lucas Holmquist)
        [#29905](#29905)
    - add runtime deprecate for file stream open() (Robert Nagy)
    [#29061](#29061)
    - allow int64 offset in fs.write/writeSync/fd.write (Zach Bjornson)
    [#26572](#26572)
    - use IsSafeJsInt instead of IsNumber for ftruncate (Zach Bjornson)
    [#26572](#26572)
    - allow int64 offset in fs.read/readSync/fd.read (Zach Bjornson)
    [#26572](#26572)
    - close file descriptor of promisified truncate (João Reis)
    [#28858](#28858)
- **http**:
    - do not emit end after aborted (Robert Nagy)
        [#27984](#27984)
    - don't emit 'data' after 'error' (Robert Nagy)
        [#28711](#28711)
    - remove legacy parser (Anna Henningsen)
        [#29589](#29589)
    - throw if 'host' agent header is not a string value
        (Giorgos Ntemiris)
        [#29568](#29568)
    - replace superfluous connection property with getter/setter
        (Robert Nagy)
        [#29015](#29015)
    - fix test where aborted should not be emitted (Robert Nagy)
        [#20077](#20077)
    - remove default 'timeout' listener on upgrade (Luigi Pinca)
        [#26030](#26030)
- **http, http2**:
    - remove default server timeout (Ali Ijaz Sheikh)
        [#27558](#27558)
- **http2**:
    - remove security revert flags (Anna Henningsen)
        [#29141](#29141)
    - remove callback-based padding (Anna Henningsen)
        [#29144](#29144)
- **lib**:
    - rename validateInteger to validateSafeInteger (Zach Bjornson)
        [#26572](#26572)
    - correct error.errno to always be numeric (Joyee Cheung)
        [#28140](#28140)
    - no need to strip BOM or shebang for scripts (Refael Ackermann)
        [#27375](#27375)
    - rework logic of stripping BOM+Shebang from commonjs (Gus Caplan)
        [#27768](#27768)
- **module**:
    - runtime deprecate createRequireFromPath() (cjihrig)
        [#27951](#27951)
- **readline**:
    - error on falsy values for callback (Sam Roberts)
        [#28109](#28109)
- **repl**:
    - close file descriptor of history file (João Reis)
        [#28858](#28858)
- **src**:
    - bring 425 status code name into accordance with RFC 8470
        (Sergei Osipov)
        [#29880](#29880)
    - update NODE\_MODULE\_VERSION to 79 (Myles Borins)
        [#29694](#29694)
    - update NODE\_MODULE\_VERSION to 78 (Michaël Zasso)
        [#28918](#28918)
    - add error codes to errors thrown in C++ (Yaniv Friedensohn)
        [#27700](#27700)
    - use non-deprecated overload of V8::SetFlagsFromString
        (Michaël Zasso)
        [#28016](#28016)
    - update NODE\_MODULE\_VERSION to 77 (Michaël Zasso)
        [#28016](#28016)
    - update NODE\_MODULE\_VERSION to 74 (Refael Ackermann)
        [#27375](#27375)
    - make process.env.TZ setter clear tz cache (Ben Noordhuis)
        [#20026](#20026)
    - enable V8's WASM trap handlers (Gus Caplan)
        [#27246](#27246)
- **stream**:
    - throw unhandled error for readable with autoDestroy (Robert Nagy)
        [#29806](#29806)
    - always invoke callback before emitting error (Robert Nagy)
        [#29293](#29293)
    - invoke callback before emitting error always (Robert Nagy)
        [#29293](#29293)
    - do not flush destroyed writable (Robert Nagy)
        [#29028](#29028)
    - don't emit finish on error (Robert Nagy)
        [#28979](#28979)
    - disallow stream methods on finished stream (Robert Nagy)
        [#28687](#28687)
    - do not emit after 'error' (Robert Nagy)
        [#28708](#28708)
    - fix destroy() behavior (Robert Nagy)
        [#29058](#29058)
    - simplify `.pipe()` and `.unpipe()` in Readable (Weijia Wang)
        [#28583](#28583)
- **tools**:
    - patch V8 to run on older XCode versions (Ujjwal Sharma)
        [#29694](#29694)
    - update V8 gypfiles (Michaël Zasso)
        [#29694](#29694)
    - support full-icu by default (Steven R. Loomis)
        [#29522](#29522)
- **util**: validate formatWithOptions inspectOptions
    (Ruben Bridgewater)
    [#29824](#29824)

PR-URL: #29504
BethGriggs added a commit that referenced this pull request Oct 22, 2019
Notable changes:

- **assert**:
    - do not repeat .throws() code (Ruben Bridgewater)
        [#28263](#28263)
    - wrap validation function errors (Ruben Bridgewater)
        [#28263](#28263)
    - fix generatedMessage property (Ruben Bridgewater)
        [#28263](#28263)
    - improve class instance errors (Ruben Bridgewater)
        [#28263](#28263)
- **benchmark**:
    - use test/common/tmpdir consistently (João Reis)
        [#28858](#28858)
- **build**:
    - make full-icu the default for releases (Richard Lau)
        [#29887](#29887)
    - update minimum Xcode version for macOS (Michael Dawson)
        [#29622](#29622)
- **child_process**:
    - runtime deprecate \_channel (cjihrig)
        [#27949](#27949)
    - simplify spawn argument parsing (cjihrig)
        [#27854](#27854)
- **console**:
    - display timeEnd with suitable time unit (Xavier Stouder)
        [#29251](#29251)
- **deps**:
    - patch V8 to 7.8.279.14 (Myles Borins)
        [#29694](#29694)
    - patch V8 to 7.8.279.12 (Myles Borins)
        [#29694](#29694)
    - patch V8 to 7.8.279.10 (Myles Borins)
        [#29694](#29694)
    - update V8's postmortem script (cjihrig)
        [#29694](#29694)
    - V8: cherry-pick 716875d (Myles Borins)
        [#29694](#29694)
    - update V8 to 7.8.279.9 (Myles Borins)
        [#29694](#29694)
    - V8: cherry-pick b33af60 (Michaël Zasso)
        [#28016](#28016)
    - update V8 to 7.6.303.28 (Michaël Zasso)
        [#28016](#28016)
- **domain**:
    - error handler runs outside of its domain (Julien Gilli)
        [#26211](#26211)
- **fs**:
    - make FSWatcher.start private (Lucas Holmquist)
        [#29905](#29905)
    - add runtime deprecate for file stream open() (Robert Nagy)
    [#29061](#29061)
    - allow int64 offset in fs.write/writeSync/fd.write (Zach Bjornson)
    [#26572](#26572)
    - use IsSafeJsInt instead of IsNumber for ftruncate (Zach Bjornson)
    [#26572](#26572)
    - allow int64 offset in fs.read/readSync/fd.read (Zach Bjornson)
    [#26572](#26572)
    - close file descriptor of promisified truncate (João Reis)
    [#28858](#28858)
- **http**:
    - do not emit end after aborted (Robert Nagy)
        [#27984](#27984)
    - don't emit 'data' after 'error' (Robert Nagy)
        [#28711](#28711)
    - remove legacy parser (Anna Henningsen)
        [#29589](#29589)
    - throw if 'host' agent header is not a string value
        (Giorgos Ntemiris)
        [#29568](#29568)
    - replace superfluous connection property with getter/setter
        (Robert Nagy)
        [#29015](#29015)
    - fix test where aborted should not be emitted (Robert Nagy)
        [#20077](#20077)
    - remove default 'timeout' listener on upgrade (Luigi Pinca)
        [#26030](#26030)
- **http, http2**:
    - remove default server timeout (Ali Ijaz Sheikh)
        [#27558](#27558)
- **http2**:
    - remove security revert flags (Anna Henningsen)
        [#29141](#29141)
    - remove callback-based padding (Anna Henningsen)
        [#29144](#29144)
- **lib**:
    - rename validateInteger to validateSafeInteger (Zach Bjornson)
        [#26572](#26572)
    - correct error.errno to always be numeric (Joyee Cheung)
        [#28140](#28140)
    - no need to strip BOM or shebang for scripts (Refael Ackermann)
        [#27375](#27375)
    - rework logic of stripping BOM+Shebang from commonjs (Gus Caplan)
        [#27768](#27768)
- **module**:
    - runtime deprecate createRequireFromPath() (cjihrig)
        [#27951](#27951)
- **readline**:
    - error on falsy values for callback (Sam Roberts)
        [#28109](#28109)
- **repl**:
    - close file descriptor of history file (João Reis)
        [#28858](#28858)
- **src**:
    - bring 425 status code name into accordance with RFC 8470
        (Sergei Osipov)
        [#29880](#29880)
    - update NODE\_MODULE\_VERSION to 79 (Myles Borins)
        [#29694](#29694)
    - update NODE\_MODULE\_VERSION to 78 (Michaël Zasso)
        [#28918](#28918)
    - add error codes to errors thrown in C++ (Yaniv Friedensohn)
        [#27700](#27700)
    - use non-deprecated overload of V8::SetFlagsFromString
        (Michaël Zasso)
        [#28016](#28016)
    - update NODE\_MODULE\_VERSION to 77 (Michaël Zasso)
        [#28016](#28016)
    - update NODE\_MODULE\_VERSION to 74 (Refael Ackermann)
        [#27375](#27375)
    - make process.env.TZ setter clear tz cache (Ben Noordhuis)
        [#20026](#20026)
    - enable V8's WASM trap handlers (Gus Caplan)
        [#27246](#27246)
- **stream**:
    - throw unhandled error for readable with autoDestroy (Robert Nagy)
        [#29806](#29806)
    - always invoke callback before emitting error (Robert Nagy)
        [#29293](#29293)
    - invoke callback before emitting error always (Robert Nagy)
        [#29293](#29293)
    - do not flush destroyed writable (Robert Nagy)
        [#29028](#29028)
    - don't emit finish on error (Robert Nagy)
        [#28979](#28979)
    - disallow stream methods on finished stream (Robert Nagy)
        [#28687](#28687)
    - do not emit after 'error' (Robert Nagy)
        [#28708](#28708)
    - fix destroy() behavior (Robert Nagy)
        [#29058](#29058)
    - simplify `.pipe()` and `.unpipe()` in Readable (Weijia Wang)
        [#28583](#28583)
- **tools**:
    - patch V8 to run on older XCode versions (Ujjwal Sharma)
        [#29694](#29694)
    - update V8 gypfiles (Michaël Zasso)
        [#29694](#29694)
    - support full-icu by default (Steven R. Loomis)
        [#29522](#29522)
- **util**: validate formatWithOptions inspectOptions
    (Ruben Bridgewater)
    [#29824](#29824)

PR-URL: #29504
BethGriggs added a commit that referenced this pull request Oct 22, 2019
Notable changes:

* assert:
  * If the validation function passed to `assert.throws()` or
    `assert.rejects()` returns a value other than `true`, an assertion
    error will be thrown instead of the original error to highlight the
    progamming mistake (Ruben Bridgewater).
    #28263
  * If a constructor function is passed to validate the instance of
    errors thrown in `assert.throws()` or `assert.reject()`, an
    assertion error will be thrown instead of the original error
    (Ruben Bridgewater).
    #28263
* build:
  * Node.js releases are now built with default full-icu support. This
    means that all locales supported by ICU are now included and
    Intl-related APIs may return different values than before
    (Richard Lau).
    #29887
  * The minimum Xcode version supported for macOS was increased to 10.
    It is still possible to build Node.js with Xcode 8 but this may no
    longer be the case in a future v13.x release (Michael Dawson).
    #29622
* child_process:
  * `ChildProcess._channel` (DEP0129) is now a Runtime deprecation
    (cjihrig).
    #27949
* console:
  * The output `console.timeEnd()` and `console.timeLog()` will now
    automatically select a suitable time unit instead of always using
    milliseconds (Xavier Stouder).
    #29251
* deps:
  * The V8 engine was updated to version 7.8. This includes performance
    improvements to object destructuring, memory usage and WebAssembly
    startup time (Myles Borins).
    #29694)
* domain:
  * The domain's error handler is now executed with the active domain
    set to the domain's parent to prevent inner recursion
    (Julien Gilli).
    #26211
* fs:
  * The undocumented method `FSWatcher.prototype.start()` was removed
    (Lucas Holmquist).
    #29905
  * Calling the `open()` method on a `ReadStream` or `WriteStream` now
    emits a runtime deprecation warning. The methods are supposed to be
    internal and should not be called by user code (Robert Nagy).
    #29061
  * `fs.read/write`, `fs.readSync/writeSync` and `fd.read/write` now
    accept any safe integer as their `offset` parameter. The value of
    `offset` is also no longer coerced, so a valid type must be passed
    to the functions (Zach Bjornson).
    #26572
* http:
  * Aborted requests no longer emit the `end` or `error` events after
    `aborted` (Robert Nagy).
    #27984
    #20077
  * Data will no longer be emitted after a socket error (Robert Nagy).
    #28711
  * The legacy HTTP parser (previously available under the
    `--http-parser=legacy` flag) was removed (Anna Henningsen).
    #29589
  * The `host` option for HTTP requests is now validated to be a string
    value (Giorgos Ntemiris).
    #29568
  * The `request.connection` and `response.connection` properties are now
    runtime deprecated. The equivalent `request.socket` and `response.socket`
    should be used instead (Robert Nagy).
    #29015
* http, http2:
  * The default server timeout was removed (Ali Ijaz Sheikh).
    #27558
  * Brought 425 status code name into accordance with RFC 8470. The name
    changed from "Unordered Collection" to "Too Early" (Sergei Osipov).
    #29880
* lib:
  * The `error.errno` property will now always be a number. To get the
    string value, use `error.code` instead (Joyee Cheung).
    #28140
* module:
  * `module.createRequireFromPath()` is deprecated. Use
    `module.createRequire()` instead (cjihrig).
    #27951
* src:
  * Changing the value of `process.env.TZ` will now clear the tz cache.
    This affects the default time zone used by methods such as
    `Date.prototype.toString` (Ben Noordhuis).
    #20026
* stream:
  * The timing and behavior of streams was consolidated for a number of
    edge cases. Please look at the individual commits below for more
    information.

PR-URL: #29504
BethGriggs added a commit that referenced this pull request Oct 22, 2019
Notable changes:

* assert:
  * If the validation function passed to `assert.throws()` or
    `assert.rejects()` returns a value other than `true`, an assertion
    error will be thrown instead of the original error to highlight the
    programming mistake (Ruben Bridgewater).
    #28263
  * If a constructor function is passed to validate the instance of
    errors thrown in `assert.throws()` or `assert.reject()`, an
    assertion error will be thrown instead of the original error
    (Ruben Bridgewater).
    #28263
* build:
  * Node.js releases are now built with default full-icu support. This
    means that all locales supported by ICU are now included and
    Intl-related APIs may return different values than before
    (Richard Lau).
    #29887
  * The minimum Xcode version supported for macOS was increased to 10.
    It is still possible to build Node.js with Xcode 8 but this may no
    longer be the case in a future v13.x release (Michael Dawson).
    #29622
* child_process:
  * `ChildProcess._channel` (DEP0129) is now a Runtime deprecation
    (cjihrig).
    #27949
* console:
  * The output `console.timeEnd()` and `console.timeLog()` will now
    automatically select a suitable time unit instead of always using
    milliseconds (Xavier Stouder).
    #29251
* deps:
  * The V8 engine was updated to version 7.8. This includes performance
    improvements to object destructuring, memory usage and WebAssembly
    startup time (Myles Borins).
    #29694)
* domain:
  * The domain's error handler is now executed with the active domain
    set to the domain's parent to prevent inner recursion
    (Julien Gilli).
    #26211
* fs:
  * The undocumented method `FSWatcher.prototype.start()` was removed
    (Lucas Holmquist).
    #29905
  * Calling the `open()` method on a `ReadStream` or `WriteStream` now
    emits a runtime deprecation warning. The methods are supposed to be
    internal and should not be called by user code (Robert Nagy).
    #29061
  * `fs.read/write`, `fs.readSync/writeSync` and `fd.read/write` now
    accept any safe integer as their `offset` parameter. The value of
    `offset` is also no longer coerced, so a valid type must be passed
    to the functions (Zach Bjornson).
    #26572
* http:
  * Aborted requests no longer emit the `end` or `error` events after
    `aborted` (Robert Nagy).
    #27984
    #20077
  * Data will no longer be emitted after a socket error (Robert Nagy).
    #28711
  * The legacy HTTP parser (previously available under the
    `--http-parser=legacy` flag) was removed (Anna Henningsen).
    #29589
  * The `host` option for HTTP requests is now validated to be a string
    value (Giorgos Ntemiris).
    #29568
  * The `request.connection` and `response.connection` properties are now
    runtime deprecated. The equivalent `request.socket` and `response.socket`
    should be used instead (Robert Nagy).
    #29015
* http, http2:
  * The default server timeout was removed (Ali Ijaz Sheikh).
    #27558
  * Brought 425 status code name into accordance with RFC 8470. The name
    changed from "Unordered Collection" to "Too Early" (Sergei Osipov).
    #29880
* lib:
  * The `error.errno` property will now always be a number. To get the
    string value, use `error.code` instead (Joyee Cheung).
    #28140
* module:
  * `module.createRequireFromPath()` is deprecated. Use
    `module.createRequire()` instead (cjihrig).
    #27951
* src:
  * Changing the value of `process.env.TZ` will now clear the tz cache.
    This affects the default time zone used by methods such as
    `Date.prototype.toString` (Ben Noordhuis).
    #20026
* stream:
  * The timing and behavior of streams was consolidated for a number of
    edge cases. Please look at the individual commits below for more
    information.

PR-URL: #29504
BethGriggs added a commit that referenced this pull request Oct 22, 2019
Notable changes:

* assert:
  * If the validation function passed to `assert.throws()` or
    `assert.rejects()` returns a value other than `true`, an assertion
    error will be thrown instead of the original error to highlight the
    programming mistake (Ruben Bridgewater).
    #28263
  * If a constructor function is passed to validate the instance of
    errors thrown in `assert.throws()` or `assert.reject()`, an
    assertion error will be thrown instead of the original error
    (Ruben Bridgewater).
    #28263
* build:
  * Node.js releases are now built with default full-icu support. This
    means that all locales supported by ICU are now included and
    Intl-related APIs may return different values than before
    (Richard Lau).
    #29887
  * The minimum Xcode version supported for macOS was increased to 10.
    It is still possible to build Node.js with Xcode 8 but this may no
    longer be the case in a future v13.x release (Michael Dawson).
    #29622
* child_process:
  * `ChildProcess._channel` (DEP0129) is now a Runtime deprecation
    (cjihrig).
    #27949
* console:
  * The output `console.timeEnd()` and `console.timeLog()` will now
    automatically select a suitable time unit instead of always using
    milliseconds (Xavier Stouder).
    #29251
* deps:
  * The V8 engine was updated to version 7.8. This includes performance
    improvements to object destructuring, memory usage and WebAssembly
    startup time (Myles Borins).
    #29694)
* domain:
  * The domain's error handler is now executed with the active domain
    set to the domain's parent to prevent inner recursion
    (Julien Gilli).
    #26211
* fs:
  * The undocumented method `FSWatcher.prototype.start()` was removed
    (Lucas Holmquist).
    #29905
  * Calling the `open()` method on a `ReadStream` or `WriteStream` now
    emits a runtime deprecation warning. The methods are supposed to be
    internal and should not be called by user code (Robert Nagy).
    #29061
  * `fs.read/write`, `fs.readSync/writeSync` and `fd.read/write` now
    accept any safe integer as their `offset` parameter. The value of
    `offset` is also no longer coerced, so a valid type must be passed
    to the functions (Zach Bjornson).
    #26572
* http:
  * Aborted requests no longer emit the `end` or `error` events after
    `aborted` (Robert Nagy).
    #27984
    #20077
  * Data will no longer be emitted after a socket error (Robert Nagy).
    #28711
  * The legacy HTTP parser (previously available under the
    `--http-parser=legacy` flag) was removed (Anna Henningsen).
    #29589
  * The `host` option for HTTP requests is now validated to be a string
    value (Giorgos Ntemiris).
    #29568
  * The `request.connection` and `response.connection` properties are now
    runtime deprecated. The equivalent `request.socket` and `response.socket`
    should be used instead (Robert Nagy).
    #29015
* http, http2:
  * The default server timeout was removed (Ali Ijaz Sheikh).
    #27558
  * Brought 425 status code name into accordance with RFC 8470. The name
    changed from "Unordered Collection" to "Too Early" (Sergei Osipov).
    #29880
* lib:
  * The `error.errno` property will now always be a number. To get the
    string value, use `error.code` instead (Joyee Cheung).
    #28140
* module:
  * `module.createRequireFromPath()` is deprecated. Use
    `module.createRequire()` instead (cjihrig).
    #27951
* src:
  * Changing the value of `process.env.TZ` will now clear the tz cache.
    This affects the default time zone used by methods such as
    `Date.prototype.toString` (Ben Noordhuis).
    #20026
* stream:
  * The timing and behavior of streams was consolidated for a number of
    edge cases. Please look at the individual commits below for more
    information.

PR-URL: #29504
BethGriggs added a commit that referenced this pull request Oct 22, 2019
Notable changes:

* assert:
  * If the validation function passed to `assert.throws()` or
    `assert.rejects()` returns a value other than `true`, an assertion
    error will be thrown instead of the original error to highlight the
    programming mistake (Ruben Bridgewater).
    #28263
  * If a constructor function is passed to validate the instance of
    errors thrown in `assert.throws()` or `assert.reject()`, an
    assertion error will be thrown instead of the original error
    (Ruben Bridgewater).
    #28263
* build:
  * Node.js releases are now built with default full-icu support. This
    means that all locales supported by ICU are now included and
    Intl-related APIs may return different values than before
    (Richard Lau).
    #29887
  * The minimum Xcode version supported for macOS was increased to 10.
    It is still possible to build Node.js with Xcode 8 but this may no
    longer be the case in a future v13.x release (Michael Dawson).
    #29622
* child_process:
  * `ChildProcess._channel` (DEP0129) is now a Runtime deprecation
    (cjihrig).
    #27949
* console:
  * The output `console.timeEnd()` and `console.timeLog()` will now
    automatically select a suitable time unit instead of always using
    milliseconds (Xavier Stouder).
    #29251
* deps:
  * The V8 engine was updated to version 7.8. This includes performance
    improvements to object destructuring, memory usage and WebAssembly
    startup time (Myles Borins).
    #29694)
* domain:
  * The domain's error handler is now executed with the active domain
    set to the domain's parent to prevent inner recursion
    (Julien Gilli).
    #26211
* fs:
  * The undocumented method `FSWatcher.prototype.start()` was removed
    (Lucas Holmquist).
    #29905
  * Calling the `open()` method on a `ReadStream` or `WriteStream` now
    emits a runtime deprecation warning. The methods are supposed to be
    internal and should not be called by user code (Robert Nagy).
    #29061
  * `fs.read/write`, `fs.readSync/writeSync` and `fd.read/write` now
    accept any safe integer as their `offset` parameter. The value of
    `offset` is also no longer coerced, so a valid type must be passed
    to the functions (Zach Bjornson).
    #26572
* http:
  * Aborted requests no longer emit the `end` or `error` events after
    `aborted` (Robert Nagy).
    #27984
    #20077
  * Data will no longer be emitted after a socket error (Robert Nagy).
    #28711
  * The legacy HTTP parser (previously available under the
    `--http-parser=legacy` flag) was removed (Anna Henningsen).
    #29589
  * The `host` option for HTTP requests is now validated to be a string
    value (Giorgos Ntemiris).
    #29568
  * The `request.connection` and `response.connection` properties are now
    runtime deprecated. The equivalent `request.socket` and `response.socket`
    should be used instead (Robert Nagy).
    #29015
* http, http2:
  * The default server timeout was removed (Ali Ijaz Sheikh).
    #27558
  * Brought 425 status code name into accordance with RFC 8470. The name
    changed from "Unordered Collection" to "Too Early" (Sergei Osipov).
    #29880
* lib:
  * The `error.errno` property will now always be a number. To get the
    string value, use `error.code` instead (Joyee Cheung).
    #28140
* module:
  * `module.createRequireFromPath()` is deprecated. Use
    `module.createRequire()` instead (cjihrig).
    #27951
* src:
  * Changing the value of `process.env.TZ` will now clear the tz cache.
    This affects the default time zone used by methods such as
    `Date.prototype.toString` (Ben Noordhuis).
    #20026
* stream:
  * The timing and behavior of streams was consolidated for a number of
    edge cases. Please look at the individual commits below for more
    information.

PR-URL: #29504
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
9 participants
You can’t perform that action at this time.