Skip to content
Permalink
Branch: master
Commits on Mar 3, 2019
  1. doc,lib,test: rename node-report to report

    cjihrig committed Mar 1, 2019
    This commit completes the renaming of node-report to report
    in order to better differentiate core's reporting from the
    node-report npm module.
    
    PR-URL: #26371
    Reviewed-By: Richard Lau <riclau@uk.ibm.com>
    Reviewed-By: Rich Trott <rtrott@gmail.com>
    Reviewed-By: Minwoo Jung <minwoo@nodesource.com>
    Reviewed-By: James M Snell <jasnell@gmail.com>
  2. test: rename node-report suite to report

    cjihrig committed Mar 1, 2019
    This commit renames the "node-report" test suite to "report"
    in order to begin differentiating core's diagnostic reporting
    from the original node-report module on npm
    
    PR-URL: #26371
    Reviewed-By: Richard Lau <riclau@uk.ibm.com>
    Reviewed-By: Rich Trott <rtrott@gmail.com>
    Reviewed-By: Minwoo Jung <minwoo@nodesource.com>
    Reviewed-By: James M Snell <jasnell@gmail.com>
Commits on Mar 2, 2019
  1. test: improve validation of report output

    cjihrig committed Feb 24, 2019
    This commit improves the validation of generated diagnostic
    reports.
    
    PR-URL: #26289
    Reviewed-By: Anna Henningsen <anna@addaleax.net>
    Reviewed-By: Richard Lau <riclau@uk.ibm.com>
    Reviewed-By: James M Snell <jasnell@gmail.com>
  2. events: add once method to use promises with EventEmitter

    mcollina committed Feb 13, 2019
    This change adds a EventEmitter.once() method that wraps ee.once in a
    promise.
    
    Co-authored-by: David Mark Clements <david.mark.clements@gmail.com>
    
    PR-URL: #26078
    Reviewed-By: James M Snell <jasnell@gmail.com>
    Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
    Reviewed-By: Gus Caplan <me@gus.host>
    Reviewed-By: Anna Henningsen <anna@addaleax.net>
    Reviewed-By: Michaël Zasso <targos@protonmail.com>
    Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
    Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
    Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>
  3. doc: maxReservedRemoteStreams value constraints

    sebdeckers authored and addaleax committed Feb 26, 2019
    PR-URL: #26309
    Reviewed-By: James M Snell <jasnell@gmail.com>
    Reviewed-By: Rich Trott <rtrott@gmail.com>
    Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
    Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
  4. doc: correct typos in various docs

    BeniCheni authored and addaleax committed Feb 26, 2019
    PR-URL: #26312
    Reviewed-By: Rich Trott <rtrott@gmail.com>
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
    Reviewed-By: James M Snell <jasnell@gmail.com>
    Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com>
    Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
  5. tools: update babel-eslint to 10.0.1

    Trott authored and addaleax committed Feb 28, 2019
    Update babel-eslint to 10.0.1.
    
    PR-URL: #26347
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
    Reviewed-By: Shingo Inoue <leko.noor@gmail.com>
    Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
  6. build: make 'floating patch' message informational

    bnoordhuis authored and addaleax committed Feb 28, 2019
    Downgrade the 'Using floating patch' message that is emitted
    when a local patch is applied to the bundled ICU from a warning
    to a notice. There isn't anything the user can or should do so
    warning isn't appropriate. Instead of angry yellow use soothing green.
    
    Fixes: #26346
    
    PR-URL: #26349
    Reviewed-By: Richard Lau <riclau@uk.ibm.com>
    Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
    Reviewed-By: James M Snell <jasnell@gmail.com>
    Reviewed-By: Refael Ackermann <refack@gmail.com>
  7. worker: provide process.execArgv

    addaleax committed Feb 22, 2019
    Provide `process.execArgv`. If an `execArgv` option is passed to the
    `Worker` constructor, that option is used as its value; if not,
    the parent’s `process.execArgv` is inherited (since that also goes
    for the actual options in that case).
    
    PR-URL: #26267
    Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
    Reviewed-By: James M Snell <jasnell@gmail.com>
  8. crypto: move DEP0113 to End-of-Life

    tniessen committed Feb 21, 2019
    PR-URL: #26249
    Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
    Reviewed-By: Rich Trott <rtrott@gmail.com>
  9. tools: update eslint-plugin-markdown to 1.0.0

    Trott committed Feb 28, 2019
    For eslint-plugin-markdown, we had been using an RC but can now use the
    most recent stable release of 1.0.0, as it has the bugfix that caused us
    to start using the RC in the first place.
    
    There are a few other updates in this commit too because it was
    performed by running `update-eslint.sh`. This did not update ESLint
    itself but did update some dependencies.
    
    PR-URL: #26345
    Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
    Reviewed-By: Richard Lau <riclau@uk.ibm.com>
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
  10. tools: use latest rather than next for markdown linting plugin

    Trott committed Feb 28, 2019
    eslint-plugin-markdown is being installed @next to get a bugfix for
    eslint/eslint-plugin-markdown#69 but that
    bugfix is in 1.0.0. Go back to installing @latest rather than @next.
    
    PR-URL: #26345
    Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
    Reviewed-By: Richard Lau <riclau@uk.ibm.com>
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
  11. doc: sort http.request() options alphabetically

    lpinca committed Feb 16, 2019
    PR-URL: #26152
    Reviewed-By: Anna Henningsen <anna@addaleax.net>
    Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
  12. doc: add documentation for the defaultPort option

    lpinca committed Feb 16, 2019
    PR-URL: #26152
    Reviewed-By: Anna Henningsen <anna@addaleax.net>
    Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Commits on Mar 1, 2019
  1. src: remove unused macro in node_http2.h

    gengjiawen authored and addaleax committed Feb 19, 2019
    PR-URL: #26204
    Reviewed-By: Anna Henningsen <anna@addaleax.net>
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
    Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
    Reviewed-By: James M Snell <jasnell@gmail.com>
  2. src: remove redundant cast in PipeWrap::Fchmod

    gengjiawen authored and addaleax committed Feb 21, 2019
    PR-URL: #26242
    Reviewed-By: Anna Henningsen <anna@addaleax.net>
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
    Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
  3. console: prevent constructing console methods

    Hakerh400 authored and addaleax committed Feb 10, 2019
    Ref: #25987
    
    PR-URL: #26096
    Refs: #25987
    Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
    Reviewed-By: Gabriel Schulhof <gabriel.schulhof@intel.com>
  4. report: add fallback for uv_getnameinfo() failures

    richardlau authored and addaleax committed Feb 15, 2019
    Attempt to report the host and port in the case that uv_getnameinfo()
    fails.
    
    PR-URL: #26140
    Reviewed-By: Anna Henningsen <anna@addaleax.net>
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
  5. src: simplify native immediate by using v8::Global

    addaleax committed Feb 21, 2019
    Unlike `node::Persistent`, `v8::Global` has move semantics and
    can be used directly in STL containers.
    
    PR-URL: #26254
    Reviewed-By: Gus Caplan <me@gus.host>
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
    Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
    Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
    Reviewed-By: James M Snell <jasnell@gmail.com>
  6. dns: refactor QueryWrap lifetime management

    addaleax committed Feb 21, 2019
    - Prefer RAII-style management over manual resource management.
    - Prefer `env->SetImmediate()` over a separate `uv_async_t`.
    - Perform `ares_destroy()` before possibly tearing down c-ares state.
    - Verify that the number of active queries is non-negative.
    - Let pending callbacks know when their underlying `QueryWrap` object
      has been destroyed.
    
    The last item has been a real bug, in that when Workers shut down
    during currently running DNS queries, they may run into use-after-free
    situations because:
    
    1. Shutting the `Worker` down leads to the cleanup code deleting
       the `QueryWrap` objects first; then
    2. deleting the `ChannelWrap` object (as it has been created before
       the `QueryWrap`s), whose destructor runs `ares_destroy()`, which
       in turn invokes all pending query callbacks with `ARES_ECANCELLED`,
    3. which lead to use-after-free, as the callback tried to access the
       deleted `QueryWrap` object.
    
    The added test verifies that this is no longer an issue.
    
    PR-URL: #26253
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
    Reviewed-By: James M Snell <jasnell@gmail.com>
  7. test: verify heap buffer allocations occur

    addaleax committed Feb 25, 2019
    Check that small typed arrays, including `Buffer`s (unless allocated
    by `Buffer.allocUnsafe()`), are indeed heap-allocated.
    
    PR-URL: #26301
    Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
    Reviewed-By: James M Snell <jasnell@gmail.com>
  8. buffer: avoid materializing ArrayBuffer for creation

    addaleax committed Feb 25, 2019
    Do not create an `ArrayBuffer` if the engine’s settings avoid it
    and we don’t need it.
    
    PR-URL: #26301
    Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
    Reviewed-By: James M Snell <jasnell@gmail.com>
  9. src: allow not materializing ArrayBuffers from C++

    addaleax committed Feb 25, 2019
    Where appropriate, use a helper that wraps around
    `ArrayBufferView::Buffer()` or `ArrayBufferView::CopyContents()`
    rather than `Buffer::Data()`, as that may help to avoid materializing
    the underlying `ArrayBuffer` when reading small typed arrays from C++.
    This allows keeping the performance benefits of the faster creation of
    heap-allocated small typed arrays in many cases.
    
    PR-URL: #26301
    Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
    Reviewed-By: James M Snell <jasnell@gmail.com>
  10. build: remove v8_typed_array_max_size_in_heap option

    addaleax committed Feb 25, 2019
    This was added in 16f86d6, based on
    the assumption that otherwise, the memory behind `ArrayBuffer`
    instances could be moved around on the heap while native code
    holds references to it.
    
    This does not match what V8 actually does (and also did at the time):
    
    - The option/build variable was about always only about TypedArrays,
      not ArrayBuffers. Calls like `new ArrayBuffer(4)` call into C++
      regardless of the option value, but calls like `new Uint8Array(4)`
      would not call into C++ under V8 defaults.
    - When first accessing a heap-allocated TypedArray’s `ArrayBuffer`,
      whether that is through the JS `.buffer` getter or the C++
      `ArrayBufferView::Buffer()` function, a copy of the contents is
      created using the ArrayBuffer allocator and stored as the
      (permanent, unmovable) backing store.
    
    As a consequence, the memory returned by `ArrayBuffer::GetContents()`
    is not moved around, because it is fixed once the `ArrayBuffer`
    object itself first comes into explicit existence in any way.
    
    Removing this build option significantly speeds up creation of typed
    arrays from JS:
    
        $ ./node benchmark/compare.js --new ./node --old ./node-master --runs 10 --filter buffer-creation.js buffers | Rscript benchmark/compare.R
                                                                             confidence improvement accuracy (*)     (**)    (***)
         buffers/buffer-creation.js n=1024 len=10 type='buffer()'                  ***    593.66 %      ±28.64%  ±41.10%  ±60.36%
         buffers/buffer-creation.js n=1024 len=10 type='fast-alloc-fill'           ***    675.42 %      ±90.67% ±130.24% ±191.54%
         buffers/buffer-creation.js n=1024 len=10 type='fast-alloc'                ***    663.55 %      ±58.41%  ±83.87% ±123.29%
         buffers/buffer-creation.js n=1024 len=10 type='fast-allocUnsafe'                   3.10 %       ±9.63%  ±13.22%  ±18.07%
         buffers/buffer-creation.js n=1024 len=10 type='slow-allocUnsafe'                   4.67 %       ±5.55%   ±7.77%  ±10.97%
         buffers/buffer-creation.js n=1024 len=10 type='slow'                              -2.48 %       ±4.47%   ±6.12%   ±8.34%
         buffers/buffer-creation.js n=1024 len=1024 type='buffer()'                        -1.91 %       ±4.71%   ±6.45%   ±8.79%
         buffers/buffer-creation.js n=1024 len=1024 type='fast-alloc-fill'                 -1.34 %       ±7.53%  ±10.33%  ±14.10%
         buffers/buffer-creation.js n=1024 len=1024 type='fast-alloc'                       0.52 %       ±5.00%   ±6.87%   ±9.40%
         buffers/buffer-creation.js n=1024 len=1024 type='fast-allocUnsafe'                 0.39 %       ±5.65%   ±7.78%  ±10.67%
         buffers/buffer-creation.js n=1024 len=1024 type='slow-allocUnsafe'                -0.13 %       ±5.68%   ±7.83%  ±10.77%
         buffers/buffer-creation.js n=1024 len=1024 type='slow'                            -5.07 %       ±7.15%   ±9.80%  ±13.35%
         buffers/buffer-creation.js n=1024 len=2048 type='buffer()'                         0.57 %       ±2.70%   ±3.74%   ±5.16%
         buffers/buffer-creation.js n=1024 len=2048 type='fast-alloc-fill'                 -1.60 %       ±4.96%   ±6.79%   ±9.25%
         buffers/buffer-creation.js n=1024 len=2048 type='fast-alloc'                       1.29 %       ±3.79%   ±5.20%   ±7.09%
         buffers/buffer-creation.js n=1024 len=2048 type='fast-allocUnsafe'                 2.73 %       ±8.79%  ±12.05%  ±16.41%
         buffers/buffer-creation.js n=1024 len=2048 type='slow-allocUnsafe'                -0.99 %       ±6.27%   ±8.65%  ±11.91%
         buffers/buffer-creation.js n=1024 len=2048 type='slow'                            -5.98 %       ±6.24%   ±8.71%  ±12.20%
         buffers/buffer-creation.js n=1024 len=4096 type='buffer()'                        -1.75 %       ±3.48%   ±4.78%   ±6.56%
         buffers/buffer-creation.js n=1024 len=4096 type='fast-alloc-fill'                 -3.18 %       ±3.97%   ±5.45%   ±7.45%
         buffers/buffer-creation.js n=1024 len=4096 type='fast-alloc'                       2.05 %       ±4.05%   ±5.58%   ±7.65%
         buffers/buffer-creation.js n=1024 len=4096 type='fast-allocUnsafe'                 1.44 %       ±5.51%   ±7.63%  ±10.57%
         buffers/buffer-creation.js n=1024 len=4096 type='slow-allocUnsafe'          *     -4.77 %       ±4.30%   ±5.90%   ±8.06%
         buffers/buffer-creation.js n=1024 len=4096 type='slow'                            -3.31 %       ±6.38%   ±8.86%  ±12.34%
         buffers/buffer-creation.js n=1024 len=8192 type='buffer()'                         0.06 %       ±2.70%   ±3.77%   ±5.31%
         buffers/buffer-creation.js n=1024 len=8192 type='fast-alloc-fill'                 -1.20 %       ±3.30%   ±4.53%   ±6.17%
         buffers/buffer-creation.js n=1024 len=8192 type='fast-alloc'                      -1.46 %       ±2.75%   ±3.84%   ±5.38%
         buffers/buffer-creation.js n=1024 len=8192 type='fast-allocUnsafe'                 1.27 %       ±4.69%   ±6.49%   ±8.98%
         buffers/buffer-creation.js n=1024 len=8192 type='slow-allocUnsafe'                -1.68 %       ±3.30%   ±4.62%   ±6.49%
         buffers/buffer-creation.js n=1024 len=8192 type='slow'                            -2.49 %       ±3.24%   ±4.44%   ±6.07%
         (Re-running the outlier with 30 runs instead of 10:)
         buffers/buffer-creation.js n=1024 len=4096 type='slow-allocUnsafe'                 2.06 %       ±2.39%   ±3.19%   ±4.15%
    
    The performance gains effect are undone once native code accesses
    the underlying ArrayBuffer, but then again that a) does not happen for
    all TypedArrays, and b) it should also make sense to look into using
    `ArrayBufferView::CopyContents()` in some places, which is made
    specifically to avoid such a performance impact and allows us to
    use the benefits of heap-allocated typed arrays.
    
    Refs: 16f86d6
    Refs: #2893
    Refs: 74178a5#commitcomment-13250880
    Refs: http://logs.libuv.org/node-dev/2015-09-15
    
    PR-URL: #26301
    Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
    Reviewed-By: James M Snell <jasnell@gmail.com>
  11. src: remove dead inspector code

    addaleax committed Feb 24, 2019
    This was overlooked in c583245.
    
    Refs: #26137
    
    PR-URL: #26295
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
    Reviewed-By: James M Snell <jasnell@gmail.com>
    Reviewed-By: Tobias Nießen <tniessen@tnie.de>
  12. worker: make MessagePort `uv_async_t` inline field

    addaleax committed Feb 23, 2019
    It’s not obvious why this was a heap allocation in the first place,
    but it’s unneccessary. Most other `HandleWrap`s also store the
    libuv handle directly.
    
    PR-URL: #26271
    Reviewed-By: Richard Lau <riclau@uk.ibm.com>
    Reviewed-By: James M Snell <jasnell@gmail.com>
    Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
    Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
  13. worker: remove MessagePort::AddToIncomingQueue

    addaleax committed Feb 23, 2019
    PR-URL: #26271
    Reviewed-By: Richard Lau <riclau@uk.ibm.com>
    Reviewed-By: James M Snell <jasnell@gmail.com>
    Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
    Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
  14. src: remove unused Converter object

    addaleax committed Feb 21, 2019
    PR-URL: #26243
    Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
  15. doc,test,repl: fix deprecation code

    cjihrig committed Mar 1, 2019
    PR-URL: #26368
    Reviewed-By: Richard Lau <riclau@uk.ibm.com>
    Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
    Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com>
    Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
  16. readline: improve Unicode handling

    Avi-D-coder authored and BridgeAR committed Jan 26, 2019
    Prevents moving left or right from placing the cursor in between code
    units comprising a code point.
    
    PR-URL: #25723
    Fixes: #25693
    Reviewed-By: Anna Henningsen <anna@addaleax.net>
    Reviewed-By: James M Snell <jasnell@gmail.com>
    Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
  17. path: refactor code for clarity

    BridgeAR committed Jan 27, 2019
    This moves a condition inside of a for loop which can only be
    triggered at the very end of the for loop outside of the loop. That
    way the for loop itself is much simpler and easier to understand and
    the code itself is less indented which should increase the
    readability.
    
    It also refactors some `var` to `let` and `const`.
    
    PR-URL: #25278
    Reviewed-By: Michaël Zasso <targos@protonmail.com>
  18. path: refactor for less indentation

    BridgeAR committed Jan 27, 2019
    This moves the `if (len === 1)` case to the top of the function.
    That way it is possible to reduce the indentation level due to
    returning early in that case.
    
    On top of that the following was done:
    
    1) For clarity refactored for loops which were meant to count up a
       variable into a while loop.
    2) Used template strings instead of string concat.
    3) Consolidating nested if statements.
    4) Using tenary expressions if applicable when assigning variables
       to reduce the code overhead.
    
    PR-URL: #25278
    Reviewed-By: Michaël Zasso <targos@protonmail.com>
  19. path: simplify code and remove obsolete checks

    BridgeAR committed Jan 27, 2019
    Either `end` is `-1` or `startPart` is not `0`. Therefore it's
    possible to move the conditions in a way that we eliminate a few code
    branches.
    
    PR-URL: #25278
    Reviewed-By: Michaël Zasso <targos@protonmail.com>
  20. path: refactor logic for to reduce code branches

    BridgeAR committed Jan 27, 2019
    This refactoring makes sure some code branches will not be hit if
    they do not have to be reached.
    
    PR-URL: #25278
    Reviewed-By: Michaël Zasso <targos@protonmail.com>
  21. path: minor refactoring

    BridgeAR committed Jan 27, 2019
    1) Consolidate nested if statements if possible
         `if (foo) { if bar () { /* do stuff */ } }`)
       to reduce indentation depth.
    2) Remove obsolete else cases to reduce indentation.
    
    PR-URL: #25278
    Reviewed-By: Michaël Zasso <targos@protonmail.com>
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.