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

deps: update V8 to 8.8 #36139

Merged
merged 28 commits into from
Feb 12, 2021
Merged

deps: update V8 to 8.8 #36139

merged 28 commits into from
Feb 12, 2021

Conversation

targos
Copy link
Member

@targos targos commented Nov 16, 2020

ETA: Tue, Jan 19, 2021

@nodejs-github-bot nodejs-github-bot added build Issues and PRs related to build files or the CI. v8 engine Issues and PRs related to the V8 dependency. labels Nov 16, 2020
@nodejs-github-bot
Copy link
Collaborator

nodejs-github-bot commented Nov 16, 2020

@targos
Copy link
Member Author

targos commented Nov 16, 2020

@nodejs/platform-smartos :

21:38:02 ../deps/v8/src/base/platform/platform-solaris.cc:69:7: error: prototype for 'void* v8::base::Stack::GetStackStart()' does not match any in class 'v8::base::Stack'
21:38:02  void* Stack::GetStackStart() {
21:38:02        ^~~~~
21:38:02 In file included from ../deps/v8/src/base/platform/platform-posix.h:8:0,
21:38:02                  from ../deps/v8/src/base/platform/platform-solaris.cc:31:
21:38:02 ../deps/v8/src/base/platform/platform.h:452:20: error: candidate is: static v8::base::Stack::StackSlot v8::base::Stack::GetStackStart()
21:38:02    static StackSlot GetStackStart();
21:38:02                     ^~~~~~~~~~~~~
21:38:02 make[2]: *** [tools/v8_gypfiles/v8_libbase.target.mk:145: /home/iojs/build/workspace/node-test-commit-smartos/nodes/smartos18-64/out/Release/obj.target/v8_libbase/deps/v8/src/base/platform/platform-solaris.o] Error 1

@targos
Copy link
Member Author

targos commented Nov 16, 2020

The Windows issue is tracked here: nodejs/node-v8#183

@cjihrig
Copy link
Contributor

cjihrig commented Nov 22, 2020

@targos cjihrig@7d8f929 is a fix for the SmartOS compilation error.

Here is a run with that fix: https://ci.nodejs.org/job/node-test-commit-smartos/36046/nodes=smartos18-64/console. Unfortunately, the addon test suite appears to fail due to a problem finding python on the machine?

@targos
Copy link
Member Author

targos commented Nov 29, 2020

@cjihrig thanks, I just included it. Btw, would you like to try and upstream this change and the two others for postmortem metadata that we are currently floating?

@targos targos added the request-ci Add this label to start a Jenkins CI on a PR. label Nov 29, 2020
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Nov 29, 2020
@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@targos
Copy link
Member Author

targos commented Nov 29, 2020

@targos
Copy link
Member Author

targos commented Nov 29, 2020

Now we have debug errors:

14:17:05 C:\workspace\node-compile-windows-debug\node\deps\v8\src\heap\heap.h(2614,5): error C2338: (std::is_same<Address, U>::value) [C:\workspace\node-compile-windows-debug\node\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
14:17:05 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include\vector(675): message : see reference to class template instantiation 'v8::internal::StrongRootBlockAllocator::rebind<std::_Container_proxy>' being compiled [C:\workspace\node-compile-windows-debug\node\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
14:17:05 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include\xmemory(738): message : see reference to alias template instantiation 'std::_Normal_allocator_traits<_Alloc>::rebind_alloc<std::_Container_proxy>' being compiled [C:\workspace\node-compile-windows-debug\node\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
14:17:05           with
14:17:05           [
14:17:05               _Alloc=v8::internal::StrongRootBlockAllocator
14:17:05           ]
14:17:05 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include\vector(675): message : see reference to alias template instantiation 'std::_Rebind_alloc_t<v8::internal::StrongRootBlockAllocator,std::_Container_proxy>' being compiled [C:\workspace\node-compile-windows-debug\node\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
14:17:05 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include\vector(672): message : while compiling class template member function 'std::vector<v8::internal::Address,v8::internal::StrongRootBlockAllocator>::~vector(void) noexcept' [C:\workspace\node-compile-windows-debug\node\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
14:17:05 C:\workspace\node-compile-windows-debug\node\deps\v8\src\snapshot\serializer.h(385): message : see reference to function template instantiation 'std::vector<v8::internal::Address,v8::internal::StrongRootBlockAllocator>::~vector(void) noexcept' being compiled [C:\workspace\node-compile-windows-debug\node\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
14:17:05 C:\workspace\node-compile-windows-debug\node\deps\v8\src\handles\global-handles.h(334): message : see reference to class template instantiation 'std::vector<v8::internal::Address,v8::internal::StrongRootBlockAllocator>' being compiled [C:\workspace\node-compile-windows-debug\node\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
14:17:05 C:\workspace\node-compile-windows-debug\node\deps\v8\src\handles\global-handles.h(345): message : see reference to class template instantiation 'v8::internal::GlobalHandleVector<T>::Iterator' being compiled [C:\workspace\node-compile-windows-debug\node\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
14:17:05 C:\workspace\node-compile-windows-debug\node\deps\v8\src\handles\global-handles.h(370): message : see reference to class template instantiation 'v8::internal::GlobalHandleVector<T>' being compiled [C:\workspace\node-compile-windows-debug\node\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
14:17:05 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include\vector(676,1): error C2664: 'void std::_Delete_plain_internal<v8::internal::StrongRootBlockAllocator>(_Alloc &,v8::internal::StrongRootBlockAllocator::value_type *const ) noexcept': cannot convert argument 2 from '_Ty' to 'v8::internal::StrongRootBlockAllocator::value_type *const ' [C:\workspace\node-compile-windows-debug\node\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
14:17:05           with
14:17:05           [
14:17:05               _Alloc=v8::internal::StrongRootBlockAllocator
14:17:05           ]
14:17:05           and
14:17:05           [
14:17:05               _Ty=std::_Container_proxy *
14:17:05           ]
14:17:05 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include\vector(676,55): message : Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast [C:\workspace\node-compile-windows-debug\node\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
14:17:05 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include\xmemory(1031,6): message : see declaration of 'std::_Delete_plain_internal' [C:\workspace\node-compile-windows-debug\node\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]

@targos
Copy link
Member Author

targos commented Nov 29, 2020

Error on SmartOS:

14:15:51 /home/iojs/build/workspace/node-test-commit-smartos/nodes/smartos18-64/tools/build-addons.js:58
14:15:51 main(process.argv[3]).catch((err) => setImmediate(() => { throw err; }));
14:15:51                                                           ^
14:15:51 
14:15:51 Error: Command failed: /home/iojs/build/workspace/node-test-commit-smartos/nodes/smartos18-64/out/Release/node /home/iojs/build/workspace/node-test-commit-smartos/nodes/smartos18-64/deps/npm/node_modules/node-gyp/bin/node-gyp.js rebuild --directory=/home/iojs/build/workspace/node-test-commit-smartos/nodes/smartos18-64/benchmark/napi/function_call
14:15:51 gyp info it worked if it ends with ok
14:15:51 gyp info using [email protected]
14:15:51 gyp info using [email protected] | sunos | x64
14:15:51 gyp info chdir /home/iojs/build/workspace/node-test-commit-smartos/nodes/smartos18-64/benchmark/napi/function_call
14:15:51 gyp ERR! find Python 
14:15:51 gyp ERR! find Python checking Python explicitly set from command line or npm configuration
14:15:51 gyp ERR! find Python - "--python=" or "npm config get python" is "/opt/local/bin/python2.7"
14:15:51 gyp ERR! find Python - executable path is "/opt/local/bin/python2.7
14:15:51 gyp ERR! find Python "
14:15:51 gyp ERR! find Python - "/opt/local/bin/python2.7
14:15:51 gyp ERR! find Python " could not be run
14:15:51 gyp ERR! find Python Python is not set from environment variable PYTHON
14:15:51 gyp ERR! find Python checking if "python3" can be used
14:15:51 gyp ERR! find Python - "python3" is not in PATH or produced an error
14:15:51 gyp ERR! find Python checking if "python" can be used
14:15:51 gyp ERR! find Python - executable path is "/home/iojs/build/workspace/node-test-commit-smartos/nodes/smartos18-64/out/tools/bin/python
14:15:51 gyp ERR! find Python "
14:15:51 gyp ERR! find Python - "/home/iojs/build/workspace/node-test-commit-smartos/nodes/smartos18-64/out/tools/bin/python
14:15:51 gyp ERR! find Python " could not be run
14:15:51 gyp ERR! find Python checking if "python2" can be used
14:15:51 gyp ERR! find Python - executable path is "/opt/local/bin/python2.7
14:15:51 gyp ERR! find Python "
14:15:51 gyp ERR! find Python - "/opt/local/bin/python2.7
14:15:51 gyp ERR! find Python " could not be run

@cjihrig
Copy link
Contributor

cjihrig commented Nov 29, 2020

@cjihrig thanks, I just included it. Btw, would you like to try and upstream this change and the two others for postmortem metadata that we are currently floating?

Sure.

Error on SmartOS:

For some reason python3 can't be found on that machine during the addon test suite. I'm not sure why that is since it works on other CI runs. Is there a change in this PR that would impact that? It's part of our test suite, so I don't think it's related to V8 specifically.

@targos
Copy link
Member Author

targos commented Nov 30, 2020

For some reason python3 can't be found on that machine during the addon test suite. I'm not sure why that is since it works on other CI runs. Is there a change in this PR that would impact that? It's part of our test suite, so I don't think it's related to V8 specifically.

Yeah, I don't know what's happening here. I think the best would be that someone connects to a SmartOS host to investigate.

@cjihrig
Copy link
Contributor

cjihrig commented Dec 7, 2020

I spent some more time investigating the problem on SmartOS via some CI runs. I don't have a fix yet, but I think I have a better understanding of the problem:

  • In the test output, we see the following lines logged. Notice that the executable path spans two lines. There is a newline character on the end of the python path.
14:15:51 gyp ERR! find Python - executable path is "/opt/local/bin/python2.7
14:15:51 gyp ERR! find Python "
  • node-gyp is supposed to remove the trailing newline in the python path here. It is currently not removing it because String.prototype.trim() is not working.

  • This V8 update ported String.prototype.trim() to Torque here. The problem seems to be that on SmartOS, conversions from hex constants like this one are evaluating to 0 instead of the expected integer constant. That is causing String.prototype.trim() to fail to remove the trailing whitespace in the node-gyp python path.

  • UPDATE - It looks like std::stod() here is returning 0 for hex literals.

That is as far as I've gotten down the rabbit hole so far 😄.

UPDATE: I've confirmed that SmartOS does not currently support hex strings with std::stod(). I think I have a workaround.

@cjihrig
Copy link
Contributor

cjihrig commented Dec 8, 2020

@targos please cherrypick 02559b4 for the SmartOS issue. Here is a passing CI run on SmartOS with that change.

@nodejs-github-bot
Copy link
Collaborator

nodejs-github-bot commented Dec 8, 2020

@gengjiawen
Copy link
Member

Now we have debug errors:

14:17:05 C:\workspace\node-compile-windows-debug\node\deps\v8\src\heap\heap.h(2614,5): error C2338: (std::is_same<Address, U>::value) [C:\workspace\node-compile-windows-debug\node\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
14:17:05 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include\vector(675): message : see reference to class template instantiation 'v8::internal::StrongRootBlockAllocator::rebind<std::_Container_proxy>' being compiled [C:\workspace\node-compile-windows-debug\node\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
14:17:05 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include\xmemory(738): message : see reference to alias template instantiation 'std::_Normal_allocator_traits<_Alloc>::rebind_alloc<std::_Container_proxy>' being compiled [C:\workspace\node-compile-windows-debug\node\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
14:17:05           with
14:17:05           [
14:17:05               _Alloc=v8::internal::StrongRootBlockAllocator
14:17:05           ]
14:17:05 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include\vector(675): message : see reference to alias template instantiation 'std::_Rebind_alloc_t<v8::internal::StrongRootBlockAllocator,std::_Container_proxy>' being compiled [C:\workspace\node-compile-windows-debug\node\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
14:17:05 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include\vector(672): message : while compiling class template member function 'std::vector<v8::internal::Address,v8::internal::StrongRootBlockAllocator>::~vector(void) noexcept' [C:\workspace\node-compile-windows-debug\node\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
14:17:05 C:\workspace\node-compile-windows-debug\node\deps\v8\src\snapshot\serializer.h(385): message : see reference to function template instantiation 'std::vector<v8::internal::Address,v8::internal::StrongRootBlockAllocator>::~vector(void) noexcept' being compiled [C:\workspace\node-compile-windows-debug\node\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
14:17:05 C:\workspace\node-compile-windows-debug\node\deps\v8\src\handles\global-handles.h(334): message : see reference to class template instantiation 'std::vector<v8::internal::Address,v8::internal::StrongRootBlockAllocator>' being compiled [C:\workspace\node-compile-windows-debug\node\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
14:17:05 C:\workspace\node-compile-windows-debug\node\deps\v8\src\handles\global-handles.h(345): message : see reference to class template instantiation 'v8::internal::GlobalHandleVector<T>::Iterator' being compiled [C:\workspace\node-compile-windows-debug\node\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
14:17:05 C:\workspace\node-compile-windows-debug\node\deps\v8\src\handles\global-handles.h(370): message : see reference to class template instantiation 'v8::internal::GlobalHandleVector<T>' being compiled [C:\workspace\node-compile-windows-debug\node\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
14:17:05 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include\vector(676,1): error C2664: 'void std::_Delete_plain_internal<v8::internal::StrongRootBlockAllocator>(_Alloc &,v8::internal::StrongRootBlockAllocator::value_type *const ) noexcept': cannot convert argument 2 from '_Ty' to 'v8::internal::StrongRootBlockAllocator::value_type *const ' [C:\workspace\node-compile-windows-debug\node\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
14:17:05           with
14:17:05           [
14:17:05               _Alloc=v8::internal::StrongRootBlockAllocator
14:17:05           ]
14:17:05           and
14:17:05           [
14:17:05               _Ty=std::_Container_proxy *
14:17:05           ]
14:17:05 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include\vector(676,55): message : Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast [C:\workspace\node-compile-windows-debug\node\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
14:17:05 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include\xmemory(1031,6): message : see declaration of 'std::_Delete_plain_internal' [C:\workspace\node-compile-windows-debug\node\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]

I tried few patches, but no luck. reported to v8 upstream: https://bugs.chromium.org/p/v8/issues/detail?id=11241.

@targos
Copy link
Member Author

targos commented Dec 9, 2020

Thanks! Note that there are also debug errors on Linux and they seem completely different

@gengjiawen
Copy link
Member

Thanks! Note that there are also debug errors on Linux and they seem completely different

Yeap. Looks like #ifdef VERIFY_HEAP somehow is defined in debug build, not sure which leads to this.
We are not changing v8_enable_verify_heap from my code search.

@targos targos added the request-ci Add this label to start a Jenkins CI on a PR. label Jan 8, 2021
@targos
Copy link
Member Author

targos commented Jan 8, 2021

@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Jan 8, 2021
@nodejs-github-bot
Copy link
Collaborator

@targos targos deleted the v8-88 branch February 12, 2021 07:00
targos added a commit to targos/node that referenced this pull request Feb 12, 2021
Original commit message:

    [heap] Fix DCHECK in TransitionArrayNeedsCompaction

    The dead target check in TransitionArrayNeedsCompaction, confirming that
    Smi (uninitialized) targets imply that no other target is dead, has to
    additionally support Smi entries.

    Bug: v8:11305
    Change-Id: I6f3fa9e7420b1bd0a64a25dae670f439e3f41162
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2622914
    Commit-Queue: Leszek Swirski <[email protected]>
    Commit-Queue: Ulan Degenbaev <[email protected]>
    Auto-Submit: Leszek Swirski <[email protected]>
    Reviewed-by: Ulan Degenbaev <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#72040}

Refs: v8/v8@9a6a228

PR-URL: nodejs#36139
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
Reviewed-By: Shelley Vohr <[email protected]>
targos added a commit to targos/node that referenced this pull request Feb 12, 2021
Original commit message:

    [heap] Add proper rebind support to StrongRootBlockAllocator

    MSVC's STL in debug mode rebinds the allocator passed to vectors to
    allocate helper structures, so we need StrongRootBlockAllocator to have
    proper rebind support rather than assuming it always rebinds to Address.

    Bug: v8:11241
    Change-Id: I15688e43fe2c71ec4ff0c287a03e36ca57427417
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2622915
    Auto-Submit: Leszek Swirski <[email protected]>
    Reviewed-by: Ulan Degenbaev <[email protected]>
    Commit-Queue: Leszek Swirski <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#72060}

Refs: v8/v8@deb0813

PR-URL: nodejs#36139
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
Reviewed-By: Shelley Vohr <[email protected]>
targos added a commit to targos/node that referenced this pull request Feb 12, 2021
Original commit message:

    [heap] Fix DCHECK in TransitionArrayNeedsCompaction

    The dead target check in TransitionArrayNeedsCompaction, confirming that
    Smi (uninitialized) targets imply that no other target is dead, has to
    additionally support Smi entries.

    Bug: v8:11305
    Change-Id: I6f3fa9e7420b1bd0a64a25dae670f439e3f41162
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2622914
    Commit-Queue: Leszek Swirski <[email protected]>
    Commit-Queue: Ulan Degenbaev <[email protected]>
    Auto-Submit: Leszek Swirski <[email protected]>
    Reviewed-by: Ulan Degenbaev <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#72040}

Refs: v8/v8@9a6a228

PR-URL: nodejs#36139
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
Reviewed-By: Shelley Vohr <[email protected]>
targos added a commit to targos/node that referenced this pull request Feb 12, 2021
Original commit message:

    [heap] Add proper rebind support to StrongRootBlockAllocator

    MSVC's STL in debug mode rebinds the allocator passed to vectors to
    allocate helper structures, so we need StrongRootBlockAllocator to have
    proper rebind support rather than assuming it always rebinds to Address.

    Bug: v8:11241
    Change-Id: I15688e43fe2c71ec4ff0c287a03e36ca57427417
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2622915
    Auto-Submit: Leszek Swirski <[email protected]>
    Reviewed-by: Ulan Degenbaev <[email protected]>
    Commit-Queue: Leszek Swirski <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#72060}

Refs: v8/v8@deb0813

PR-URL: nodejs#36139
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
Reviewed-By: Shelley Vohr <[email protected]>
@aduh95
Copy link
Contributor

aduh95 commented Feb 17, 2021

This PR seems to have broken something in our CI, tests are now taking much longer to complete:

  • test-linux:
    image
  • test-macos:
    image

@gengjiawen
Copy link
Member

@targos You want to cherrypick this to 15.x or just wait for V8 8.9 ?

@targos
Copy link
Member Author

targos commented Feb 22, 2021

I'm not going to try and update V8 in 15.x anymore. Imo it's too close to EoL to be worth it.

targos added a commit to targos/node that referenced this pull request Feb 23, 2021
Original commit message:

    [heap] Fix DCHECK in TransitionArrayNeedsCompaction

    The dead target check in TransitionArrayNeedsCompaction, confirming that
    Smi (uninitialized) targets imply that no other target is dead, has to
    additionally support Smi entries.

    Bug: v8:11305
    Change-Id: I6f3fa9e7420b1bd0a64a25dae670f439e3f41162
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2622914
    Commit-Queue: Leszek Swirski <[email protected]>
    Commit-Queue: Ulan Degenbaev <[email protected]>
    Auto-Submit: Leszek Swirski <[email protected]>
    Reviewed-by: Ulan Degenbaev <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#72040}

Refs: v8/v8@9a6a228

PR-URL: nodejs#36139
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
Reviewed-By: Shelley Vohr <[email protected]>
targos added a commit to targos/node that referenced this pull request Feb 23, 2021
Original commit message:

    [heap] Add proper rebind support to StrongRootBlockAllocator

    MSVC's STL in debug mode rebinds the allocator passed to vectors to
    allocate helper structures, so we need StrongRootBlockAllocator to have
    proper rebind support rather than assuming it always rebinds to Address.

    Bug: v8:11241
    Change-Id: I15688e43fe2c71ec4ff0c287a03e36ca57427417
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2622915
    Auto-Submit: Leszek Swirski <[email protected]>
    Reviewed-by: Ulan Degenbaev <[email protected]>
    Commit-Queue: Leszek Swirski <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#72060}

Refs: v8/v8@deb0813

PR-URL: nodejs#36139
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
Reviewed-By: Shelley Vohr <[email protected]>
targos added a commit to targos/node that referenced this pull request Feb 24, 2021
Original commit message:

    [heap] Fix DCHECK in TransitionArrayNeedsCompaction

    The dead target check in TransitionArrayNeedsCompaction, confirming that
    Smi (uninitialized) targets imply that no other target is dead, has to
    additionally support Smi entries.

    Bug: v8:11305
    Change-Id: I6f3fa9e7420b1bd0a64a25dae670f439e3f41162
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2622914
    Commit-Queue: Leszek Swirski <[email protected]>
    Commit-Queue: Ulan Degenbaev <[email protected]>
    Auto-Submit: Leszek Swirski <[email protected]>
    Reviewed-by: Ulan Degenbaev <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#72040}

Refs: v8/v8@9a6a228

PR-URL: nodejs#36139
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
Reviewed-By: Shelley Vohr <[email protected]>
targos added a commit to targos/node that referenced this pull request Feb 24, 2021
Original commit message:

    [heap] Add proper rebind support to StrongRootBlockAllocator

    MSVC's STL in debug mode rebinds the allocator passed to vectors to
    allocate helper structures, so we need StrongRootBlockAllocator to have
    proper rebind support rather than assuming it always rebinds to Address.

    Bug: v8:11241
    Change-Id: I15688e43fe2c71ec4ff0c287a03e36ca57427417
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2622915
    Auto-Submit: Leszek Swirski <[email protected]>
    Reviewed-by: Ulan Degenbaev <[email protected]>
    Commit-Queue: Leszek Swirski <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#72060}

Refs: v8/v8@deb0813

PR-URL: nodejs#36139
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
Reviewed-By: Shelley Vohr <[email protected]>
targos added a commit that referenced this pull request Feb 24, 2021
Original commit message:

    [heap] Fix DCHECK in TransitionArrayNeedsCompaction

    The dead target check in TransitionArrayNeedsCompaction, confirming that
    Smi (uninitialized) targets imply that no other target is dead, has to
    additionally support Smi entries.

    Bug: v8:11305
    Change-Id: I6f3fa9e7420b1bd0a64a25dae670f439e3f41162
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2622914
    Commit-Queue: Leszek Swirski <[email protected]>
    Commit-Queue: Ulan Degenbaev <[email protected]>
    Auto-Submit: Leszek Swirski <[email protected]>
    Reviewed-by: Ulan Degenbaev <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#72040}

Refs: v8/v8@9a6a228

PR-URL: #36139
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
Reviewed-By: Shelley Vohr <[email protected]>
targos added a commit that referenced this pull request Feb 24, 2021
Original commit message:

    [heap] Add proper rebind support to StrongRootBlockAllocator

    MSVC's STL in debug mode rebinds the allocator passed to vectors to
    allocate helper structures, so we need StrongRootBlockAllocator to have
    proper rebind support rather than assuming it always rebinds to Address.

    Bug: v8:11241
    Change-Id: I15688e43fe2c71ec4ff0c287a03e36ca57427417
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2622915
    Auto-Submit: Leszek Swirski <[email protected]>
    Reviewed-by: Ulan Degenbaev <[email protected]>
    Commit-Queue: Leszek Swirski <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#72060}

Refs: v8/v8@deb0813

PR-URL: #36139
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
Reviewed-By: Shelley Vohr <[email protected]>
pull bot pushed a commit to httpsgithu/v8 that referenced this pull request Mar 8, 2021
std::stod() on Solaris does not currently handle hex strings.
This commit provides a workaround based on strtol() until proper
stod() support is available.

This was encountered while updating Node.js to V8 8.8. For more
details see the following comment:

nodejs/node#36139 (comment)

Change-Id: I16ed80a817f6d9105e7153b10824b1fee8520432
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2692746
Reviewed-by: Michael Stanton <[email protected]>
Commit-Queue: Michael Stanton <[email protected]>
Cr-Commit-Position: refs/heads/master@{#73255}
cjihrig added a commit to cjihrig/node that referenced this pull request Mar 9, 2021
Original commit message:

    torque: workaround stod() limitations on Solaris

    std::stod() on Solaris does not currently handle hex strings.
    This commit provides a workaround based on strtol() until proper
    stod() support is available.

    This was encountered while updating Node.js to V8 8.8. For more
    details see the following comment:

    nodejs#36139 (comment)

    Change-Id: I16ed80a817f6d9105e7153b10824b1fee8520432
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2692746
    Reviewed-by: Michael Stanton <[email protected]>
    Commit-Queue: Michael Stanton <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#73255}
cjihrig added a commit to cjihrig/node that referenced this pull request Mar 11, 2021
Original commit message:

    torque: workaround stod() limitations on Solaris

    std::stod() on Solaris does not currently handle hex strings.
    This commit provides a workaround based on strtol() until proper
    stod() support is available.

    This was encountered while updating Node.js to V8 8.8. For more
    details see the following comment:

    nodejs#36139 (comment)

    Change-Id: I16ed80a817f6d9105e7153b10824b1fee8520432
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2692746
    Reviewed-by: Michael Stanton <[email protected]>
    Commit-Queue: Michael Stanton <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#73255}

Refs: v8/v8@1648e05
PR-URL: nodejs#37664
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
targos added a commit to targos/node that referenced this pull request Mar 12, 2021
Original commit message:

    torque: workaround stod() limitations on Solaris

    std::stod() on Solaris does not currently handle hex strings.
    This commit provides a workaround based on strtol() until proper
    stod() support is available.

    This was encountered while updating Node.js to V8 8.8. For more
    details see the following comment:

    nodejs#36139 (comment)

    Change-Id: I16ed80a817f6d9105e7153b10824b1fee8520432
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2692746
    Reviewed-by: Michael Stanton <[email protected]>
    Commit-Queue: Michael Stanton <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#73255}

Refs: v8/v8@1648e05
targos added a commit that referenced this pull request Mar 15, 2021
Original commit message:

    torque: workaround stod() limitations on Solaris

    std::stod() on Solaris does not currently handle hex strings.
    This commit provides a workaround based on strtol() until proper
    stod() support is available.

    This was encountered while updating Node.js to V8 8.8. For more
    details see the following comment:

    #36139 (comment)

    Change-Id: I16ed80a817f6d9105e7153b10824b1fee8520432
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2692746
    Reviewed-by: Michael Stanton <[email protected]>
    Commit-Queue: Michael Stanton <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#73255}

Refs: v8/v8@1648e05

PR-URL: #37587
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
danielleadams pushed a commit that referenced this pull request Mar 16, 2021
Original commit message:

    torque: workaround stod() limitations on Solaris

    std::stod() on Solaris does not currently handle hex strings.
    This commit provides a workaround based on strtol() until proper
    stod() support is available.

    This was encountered while updating Node.js to V8 8.8. For more
    details see the following comment:

    #36139 (comment)

    Change-Id: I16ed80a817f6d9105e7153b10824b1fee8520432
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2692746
    Reviewed-by: Michael Stanton <[email protected]>
    Commit-Queue: Michael Stanton <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#73255}

Refs: v8/v8@1648e05
PR-URL: #37664
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
danielleadams pushed a commit that referenced this pull request Mar 16, 2021
Original commit message:

    torque: workaround stod() limitations on Solaris

    std::stod() on Solaris does not currently handle hex strings.
    This commit provides a workaround based on strtol() until proper
    stod() support is available.

    This was encountered while updating Node.js to V8 8.8. For more
    details see the following comment:

    #36139 (comment)

    Change-Id: I16ed80a817f6d9105e7153b10824b1fee8520432
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2692746
    Reviewed-by: Michael Stanton <[email protected]>
    Commit-Queue: Michael Stanton <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#73255}

Refs: v8/v8@1648e05
PR-URL: #37664
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
BethGriggs added a commit that referenced this pull request Apr 20, 2021
Notable Changes:

Deprecations and Removals

- **(SEMVER-MAJOR)** **fs**: remove permissive rmdir recursive
  (Antoine du Hamel) [#37216]
- **(SEMVER-MAJOR)** **fs**: runtime deprecate rmdir recursive option
  (Antoine du Hamel) [#37302]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('http_parser') (James M Snell) [#37813]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('url') (James M Snell) [#37799]
- **(SEMVER-MAJOR)** **lib**: make process.binding('util') return only
  type checkers (Anna Henningsen) [#37819]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('crypto') (James M Snell) [#37790]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('signal_wrap') (James M Snell) [#37800]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('v8') (James M Snell) [#37789]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('async_wrap') (James M Snell) [#37576]
- **(SEMVER-MAJOR)** **module**: remove module.createRequireFromPath
  (Antoine du Hamel) [#37201]
- **(SEMVER-MAJOR)** **module**: runtime deprecate subpath folder
  mappings (Antoine du Hamel) [#37215]
- **(SEMVER-MAJOR)** **module**: runtime deprecate "main" index and
  extension lookups (Antoine du Hamel) [#37206]
- **(SEMVER-MAJOR)** **module**: runtime deprecate invalid package.json
  main entries (Antoine du Hamel) [#37204]
- **(SEMVER-MAJOR)** **process**: runtime deprecate changing
  process.config (James M Snell) [#36902]

Stable Timers Promises API:

The Timers Promises API provides an alternative set of timer functions
that return Promise objects. Added in Node.js v15.0.0, in this release
they graduate from experimental status to stable.

Contributed by James Snell - [#38112]

Toolchain and Compiler Upgrades:

Node.js v16.0.0 will be the first release where we ship prebuilt
binaries for Apple Silicon. While we’ll be providing separate tarballs
for the Intel (`darwin-x64`) and ARM (`darwin-arm64`) architectures the
macOS installer (`.pkg`) will be shipped as a ‘fat’ (multi-architecture)
binary.

- **(SEMVER-MAJOR)** **build**: remove support for Python 2
  (Christian Clauss) [#36691]
- **(SEMVER-MAJOR)** **build**: default PYTHON to python3 in Makefile
  (Michaël Zasso) [#37764]
- **build**: update Makefile to support fat binary (Ash Cripps)
  [#37861]
- **(SEMVER-MAJOR)** **build**: enable ASLR (PIE) on OS X (woodfairy)
  [#35704]
- **build**: warn for gcc versions earlier than 8.3.0 (Richard Lau)
  [#37935]
- **(SEMVER-MAJOR)** **doc**: update minimum supported Xcode to 11
  (Michaël Zasso) [#37872]
- **(SEMVER-MAJOR)** **doc**: update minimum supported GCC to 8.3
  (Michaël Zasso) [#37871]
- **(SEMVER-MAJOR)** **doc**: update AIX to GCC8 for v16.x (Ash Cripps)
  [#37677]
- **tools**: set arch in Distribution.xml (Ash Cripps)
  [#38261]

V8 9.0:

The V8 JavaScript engine is updated to V8 9.0, including performance
tweaks and improvements.

This update also brings the ECMAScript RegExp Match Indices, which
provide the start and end indices of the captured string. The indices
array is available via the `.indices` property on match objects when the
regular expression has the `/d` flag.

Contributed by Michaël Zasso - [#37587]

Other Notable Changes:

- **(SEMVER-MINOR)** **assert**: graduate assert.match and
  assert.doesNotMatch (James M Snell) [#38111]
- **(SEMVER-MAJOR)** **buffer**: expose btoa and atob as globals
  (James M Snell) [#37786]
- **deps**: update llhttp to 6.0.0 (Fedor Indutny)
  [#38277]
- **deps**: upgrade npm to 7.10.0 (Ruy Adorno)
  [#38254]
- **(SEMVER-MAJOR)** **deps**: bump minimum ICU version to 68
  (Michaël Zasso) [#37330]
- **(SEMVER-MINOR)** **http**: add http.ClientRequest.getRawHeaderNames()
  (simov) [#37660]
- **(SEMVER-MAJOR)** **lib,src**: update cluster to use Parent
  (Michael Dawson) [#36478]
- **(SEMVER-MINOR)** **module**: add support for `node:`‑prefixed
  `require(…)` calls (ExE Boss) [#37246]
- **(SEMVER-MINOR)** **perf_hooks**: add histogram option to timerify
  (James M Snell) [#37475]
- **(SEMVER-MINOR)** **repl**: add auto‑completion for `node:`‑prefixed
  `require(…)` calls (ExE Boss) [#37246]
- **(SEMVER-MINOR)** **util**: add getSystemErrorMap() impl
  (eladkeyshawn) [#38101]

Semver-Major Commits:

- **async_hooks**: add thisArg to AsyncResource.bind (James M Snell)
  [#36782]
- **buffer**: expose btoa and atob as globals (James M Snell)
  [#37786]
- **build**: remove support for Python 2 (Christian Clauss)
  [#36691]
- **build**: default PYTHON to python3 in Makefile (Michaël Zasso)
  [#37764]
- **build**: update Makefile to support fat binary (Ash Cripps)
  [#37861]
- **build**: reset embedder string to "-node.0" (Michaël Zasso)
  [#37587]
- **build**: include minimal V8 headers in distribution (Michaël Zasso)
  [#37570]
- **build**: reset embedder string to "-node.0" (Michaël Zasso)
  [#37330]
- **build**: reset embedder string to "-node.0" (Michaël Zasso)
  [#36139]
- **build**: use C++11 ABI with libstdc++ (Anna Henningsen)
  [#36634]
- **build**: enable ASLR (PIE) on OS X (woodfairy)
  [#35704]
- **build**: reset embedder string to "-node.0" (Michaël Zasso)
  [#35700]
- **deps**: V8: cherry-pick 1648e050cade (Michaël Zasso)
  [#37587]
- **deps**: silence irrelevant V8 warnings (Michaël Zasso)
  [#37587]
- **deps**: fix V8 build issue with inline methods (Jiawen Geng)
  [#35415]
- **deps**: make v8.h compatible with VS2015 (Joao Reis)
  [#32116]
- **deps**: V8: forward declaration of `Rtl\*FunctionTable` (Refael
  Ackermann) [#32116]
- **deps**: V8: patch register-arm64.h (Refael Ackermann)
  [#32116]
- **deps**: V8: un-cherry-pick bd019bd (Refael Ackermann)
  [#32116]
- **deps**: update V8 to 9.0.257.11 (Michaël Zasso)
  [#37587]
- **deps**: bump minimum ICU version to 68 (Michaël Zasso)
  [#37330]
- **deps**: V8: cherry-pick 8957d4677aa7 (Michaël Zasso)
  [#37330]
- **deps**: V8: backport a11395433dbd (Michaël Zasso)
  [#37330]
- **deps**: V8: cherry-pick deb0813166f3 (Michaël Zasso)
  [#36139]
- **deps**: V8: cherry-pick 9a6a22874c81 (Michaël Zasso)
  [#36139]
- **deps**: silence irrelevant V8 warning (Michaël Zasso)
  [#37330]
- **deps**: workaround stod() limitations on SmartOS (Colin Ihrig)
  [#37330]
- **deps**: fix V8 build issue with inline methods (Jiawen Geng)
  [#35415]
- **deps**: patch V8 to run on Xcode 8 (Mary Marchini)
  [#32116]
- **deps**: make v8.h compatible with VS2015 (Joao Reis)
  [#32116]
- **deps**: V8: forward declaration of `Rtl\*FunctionTable` (Refael
  Ackermann) [#32116]
- **deps**: V8: patch register-arm64.h (Refael Ackermann)
  [#32116]
- **deps**: patch V8 to run on older XCode versions (Ujjwal Sharma)
  [#32116]
- **deps**: V8: un-cherry-pick bd019bd (Refael Ackermann)
  [#32116]
- **deps**: update V8 to 8.9.255.19 (Michaël Zasso)
  [#37330]
- **deps**: V8: cherry-pick deb0813166f3 (Michaël Zasso)
  [#36139]
- **deps**: V8: cherry-pick 9a6a22874c81 (Michaël Zasso)
  [#36139]
- **deps**: V8: cherry-pick 2059ee813359 (Michaël Zasso)
  [#36139]
- **deps**: V8: cherry-pick bde7ee5473d6 (Michaël Zasso)
  [#36139]
- **deps**: V8: cherry-pick 9a712984025e (Michaël Zasso)
  [#36139]
- **deps**: V8: cherry-pick 0b96e5b0bfb2 (Michaël Zasso)
  [#36139]
- **deps**: V8: cherry-pick fbb28902e049 (Michaël Zasso)
  [#36139]
- **deps**: V8: cherry-pick 821fb3883a8e (Michaël Zasso)
  [#35700]
- **deps**: workaround stod() limitations on SmartOS (Colin Ihrig)
  [#36139]
- **deps**: fix V8 build issue with inline methods (Jiawen Geng)
  [#35415]
- **deps**: patch V8 to run on Xcode 8 (Mary Marchini)
  [#32116]
- **deps**: V8: silence irrelevant warnings (Michaël Zasso)
  [#32116]
- **deps**: make v8.h compatible with VS2015 (Joao Reis)
  [#32116]
- **deps**: V8: forward declaration of `Rtl\*FunctionTable` (Refael
  Ackermann) [#32116]
- **deps**: V8: patch register-arm64.h (Refael Ackermann)
  [#32116]
- **deps**: patch V8 to run on older XCode versions (Ujjwal Sharma)
  [#32116]
- **deps**: V8: un-cherry-pick bd019bd (Refael Ackermann)
  [#32116]
- **deps**: update V8 to 8.8.278.17 (Michaël Zasso)
  [#36139]
- **deps**: V8: cherry-pick 821fb3883a8e (Michaël Zasso)
  [#35700]
- **deps**: V8: cherry-pick 45e49775f5a3 (Michaël Zasso)
  [#35700]
- **deps**: V8: cherry-pick 7b3a27b7ae65 (Michaël Zasso)
  [#35700]
- **deps**: V8: cherry-pick d76abfed3512 (Michaël Zasso)
  [#35415]
- **deps**: fix V8 build issue with inline methods (Jiawen Geng)
  [#35415]
- **deps**: update V8 postmortem metadata script (Colin Ihrig)
  [#35415]
- **deps**: update V8 postmortem metadata script (Colin Ihrig)
  [#33579]
- **deps**: patch V8 to run on Xcode 8 (Mary Marchini)
  [#32116]
- **deps**: V8: silence irrelevant warnings (Michaël Zasso)
  [#32116]
- **deps**: make v8.h compatible with VS2015 (Joao Reis)
  [#32116]
- **deps**: V8: forward declaration of `Rtl\*FunctionTable` (Refael
  Ackermann) [#32116]
- **deps**: V8: patch register-arm64.h (Refael Ackermann)
  [#32116]
- **deps**: patch V8 to run on older XCode versions (Ujjwal Sharma)
  [#32116]
- **deps**: V8: un-cherry-pick bd019bd (Refael Ackermann)
  [#32116]
- **deps**: update V8 to 8.7.220 (Michaël Zasso)
  [#35700]
- **dns**: use url module instead of punycode for IDNA (Antoine du
  Hamel) [#35091]
- **doc**: update minimum supported Xcode to 11 (Michaël Zasso)
  [#37872]
- **doc**: update minimum supported GCC to 8.3 (Michaël Zasso)
  [#37871]
- **doc**: update AIX to GCC8 for v16.x (Ash Cripps)
  [#37677]
- **doc**: fixup http.IncomingMessage deprecation code (Guy Bedford)
  [#36917]
- **doc**: add http.IncomingMessage#connection (Pranshu Srivastava)
  [#33768]
- **events**: change EventTarget handler exception behavior (Nitzan
  Uziely) [#37237]
- **fs**: remove permissive rmdir recursive (Antoine du Hamel)
  [#37216]
- **fs**: add validation for fd and path (Dylan Elliott)
  [#35187]
- **fs**: runtime deprecate rmdir recursive option (Antoine du Hamel)
  [#37302]
- **fs**: fix flag and mode validation (James M Snell)
  [#37480]
- **http**: use objects with null prototype in Agent (Michaël Zasso)
  [#36409]
- **lib**: runtime deprecate access to process.binding('http_parser')
  (James M Snell) [#37813]
- **lib**: runtime deprecate access to process.binding('url') (James M
  Snell) [#37799]
- **lib**: make process.binding('util') return only type checkers (Anna
  Henningsen) [#37819]
- **lib**: runtime deprecate access to process.binding('crypto') (James
  M Snell) [#37790]
- **lib**: runtime deprecate access to process.binding('signal_wrap')
  (James M Snell) [#37800]
- **lib**: runtime deprecate access to process.binding('v8') (James M
  Snell) [#37789]
- **lib**: aggregate errors to avoid error swallowing (Antoine du Hamel)
  [#37460]
- **lib**: load v8_prof_processor dependencies as ESM (Michaël Zasso)
  [#37587]
- **lib**: runtime deprecate access to process.binding('async_wrap')
  (James M Snell) [#37576]
- **lib**: remove usage of url.parse (raisinten)
  [#36853]
- **lib**: add error handling for input stream (rexagod)
  [#31603]
- **lib,src**: update cluster to use Parent (Michael Dawson)
  [#36478]
- **module**: runtime deprecate subpath folder mappings (Antoine du
  Hamel) [#37215]
- **module**: runtime deprecate "main" index and extension lookups
  (Antoine du Hamel) [#37206]
- **module**: runtime deprecate invalid package.json main entries
  (Antoine du Hamel) [#37204]
- **module**: remove module.createRequireFromPath (Antoine du Hamel)
  [#37201]
- **module**: only set cache when finding module succeeds (Yongsheng
  Zhang) [#36642]
- **perf_hooks**: make performance a global (James M Snell)
  [#37970]
- **perf_hooks**: complete overhaul of the implementation (James M
  Snell) [#37136]
- **process**: disallow adding options to
  process.allowedNodeEnvironmentFlags (Antoine du Hamel)
  [#36660]
- **process**: runtime deprecate changing process.config (James M Snell)
  [#36902]
- **readline**: cursorTo throw error on NaN (Zijian Liu)
  [#36379]
- **src**: use non-deprecated GetCreationContext from V8 (Michaël Zasso)
  [#37587]
- **src**: remove V8_FT_ADAPTOR for V8 update (Colin Ihrig)
  [#37587]
- **src**: use non-deprecated V8 module APIs (Michaël Zasso)
  [#37587]
- **src**: update NODE_MODULE_VERSION to 93 (Michaël Zasso)
  [#37587]
- **src**: use non-deprecated V8 module and script APIs (Michaël Zasso)
  [#37330]
- **src**: update NODE_MODULE_VERSION to 92 (Michaël Zasso)
  [#37330]
- **src**: update NODE_MODULE_VERSION to 91 (Michaël Zasso)
  [#36139]
- **src**: mark internally exported functions as explicitly internal
  (Tyler Ang-Wanek) [#37000]
- **src**: inline AsyncCleanupHookHandle in headers (Tyler Ang-Wanek)
  [#37000]
- **src**: fix v8 api deprecation (Jiawen Geng)
  [#35700]
- **src**: update NODE_MODULE_VERSION to 90 (Michaël Zasso)
  [#35700]
- **src**: clean up embedder API (Anna Henningsen)
  [#35897]
- **test**: mark test-return-on-exit as flaky (Michaël Zasso)
  [#36139]
- **test**: mark WASI's test-return-on-exit as flaky (Colin Ihrig)
  [#36139]
- **tools**: update V8 gypfiles for 9.0 (Michaël Zasso)
  [#37587]
- **tools**: update V8 gypfiles for 8.9 (Michaël Zasso)
  [#37330]
- **tools**: update V8 gypfiles for 8.8 (Michaël Zasso)
  [#36139]
- **tools**: update V8 gypfiles for 8.7 (Michaël Zasso)
  [#35700]
- **worker**: send correct error status for worker init (Yash Ladha)
  [#36242]

PR-URL: #37678
BethGriggs added a commit that referenced this pull request Apr 20, 2021
Notable changes:

Deprecations and Removals:

- **(SEMVER-MAJOR)** **fs**: remove permissive rmdir recursive
  (Antoine du Hamel) [#37216]
- **(SEMVER-MAJOR)** **fs**: runtime deprecate rmdir recursive option
  (Antoine du Hamel) [#37302]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('http_parser') (James M Snell) [#37813]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('url') (James M Snell) [#37799]
- **(SEMVER-MAJOR)** **lib**: make process.binding('util') return only
  type checkers (Anna Henningsen) [#37819]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('crypto') (James M Snell) [#37790]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('signal_wrap') (James M Snell) [#37800]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('v8') (James M Snell) [#37789]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('async_wrap') (James M Snell) [#37576]
- **(SEMVER-MAJOR)** **module**: remove module.createRequireFromPath
  (Antoine du Hamel) [#37201]
- **(SEMVER-MAJOR)** **module**: runtime deprecate subpath folder
  mappings (Antoine du Hamel) [#37215]
- **(SEMVER-MAJOR)** **module**: runtime deprecate "main" index and
  extension lookups (Antoine du Hamel) [#37206]
- **(SEMVER-MAJOR)** **module**: runtime deprecate invalid package.json
  main entries (Antoine du Hamel) [#37204]
- **(SEMVER-MAJOR)** **process**: runtime deprecate changing
  process.config (James M Snell) [#36902]

Stable Timers Promises API:

The Timers Promises API provides an alternative set of timer functions
that return Promise objects. Added in Node.js v15.0.0, in this release
they graduate from experimental status to stable.

Contributed by James Snell - [#38112]

Toolchain and Compiler Upgrades:

Node.js v16.0.0 will be the first release where we ship prebuilt
binaries for Apple Silicon. While we’ll be providing separate tarballs
for the Intel (`darwin-x64`) and ARM (`darwin-arm64`) architectures the
macOS installer (`.pkg`) will be shipped as a ‘fat’ (multi-architecture)
binary.

- **(SEMVER-MAJOR)** **build**: remove support for Python 2 (Christian
  Clauss) [#36691]
- **(SEMVER-MAJOR)** **build**: default PYTHON to python3 in Makefile
  (Michaël Zasso) [#37764]
- **build**: update Makefile to support fat binary (Ash Cripps)
  [#37861]
- **(SEMVER-MAJOR)** **build**: enable ASLR (PIE) on OS X (woodfairy)
  [#35704]
- **build**: warn for gcc versions earlier than 8.3.0 (Richard Lau)
  [#37935]
- **(SEMVER-MAJOR)** **doc**: update minimum supported Xcode to 11
  (Michaël Zasso) [#37872]
- **(SEMVER-MAJOR)** **doc**: update minimum supported GCC to 8.3
  (Michaël Zasso) [#37871]
- **(SEMVER-MAJOR)** **doc**: update AIX to GCC8 for v16.x (Ash Cripps)
  [#37677]
- **tools**: set arch in Distribution.xml (Ash Cripps)
  [#38261]

V8 9.0:

The V8 JavaScript engine is updated to V8 9.0, including performance
tweaks and improvements.

This update also brings the ECMAScript RegExp Match Indices, which
provide the start and end indices of the captured string. The indices
array is available via the `.indices` property on match objects when the
regular expression has the `/d` flag.

Contributed by Michaël Zasso - [#37587]

Other Notable Changes:

- **(SEMVER-MINOR)** **assert**: graduate assert.match and
  assert.doesNotMatch (James M Snell) [#38111]
- **(SEMVER-MAJOR)** **buffer**: expose btoa and atob as globals
  (James M Snell) [#37786]
- **(SEMVER-MAJOR)** **deps**: bump minimum ICU version to 68
  (Michaël Zasso) [#37330]
- **deps**: update ICU to 69.1 (Michaël Zasso)
  [#38178]
- **deps**: update llhttp to 6.0.0 (Fedor Indutny)
  [#38277]
- **deps**: upgrade npm to 7.10.0 (Ruy Adorno)
  [#38254]
- **(SEMVER-MINOR)** **http**: add http.ClientRequest.getRawHeaderNames()
  (simov) [#37660]
- **(SEMVER-MAJOR)** **lib,src**: update cluster to use Parent
  (Michael Dawson) [#36478]
- **(SEMVER-MINOR)** **module**: add support for `node:`‑prefixed
  `require(…)` calls (ExE Boss) [#37246]
- **(SEMVER-MINOR)** **perf_hooks**: add histogram option to timerify
  (James M Snell) [#37475]
- **(SEMVER-MINOR)** **repl**: add auto‑completion for `node:`‑prefixed
  `require(…)` calls (ExE Boss) [#37246]
- **(SEMVER-MINOR)** **util**: add getSystemErrorMap() impl
  (eladkeyshawn) [#38101]

Semver-Major Commits:

- **(SEMVER-MAJOR)** **async_hooks**: add thisArg to AsyncResource.bind
  (James M Snell) [#36782]
- **(SEMVER-MAJOR)** **buffer**: expose btoa and atob as globals
  (James M Snell) [#37786]
- **(SEMVER-MAJOR)** **build**: remove support for Python 2
  (Christian Clauss) [#36691]
- **(SEMVER-MAJOR)** **build**: default PYTHON to python3 in Makefile
  (Michaël Zasso) [#37764]
- **(SEMVER-MAJOR)** **build**: update Makefile to support fat binary
  (Ash Cripps) [#37861]
- **(SEMVER-MAJOR)** **build**: include minimal V8 headers in
  distribution (Michaël Zasso) [#37570]
- **(SEMVER-MAJOR)** **build**: use C++11 ABI with libstdc++
  (Anna Henningsen) [#36634]
- **(SEMVER-MAJOR)** **build**: enable ASLR (PIE) on OS X (woodfairy)
  [#35704]
- **(SEMVER-MAJOR)** **deps**: update V8 to 9.0.257.11 (Michaël Zasso)
  [#37587]
- **(SEMVER-MAJOR)** **deps**: bump minimum ICU version to 68
  (Michaël Zasso) [#37330]
- **(SEMVER-MAJOR)** **deps**: update V8 to 8.9.255.19 (Michaël Zasso)
  [#37330]
- **(SEMVER-MAJOR)** **deps**: update V8 to 8.8.278.17 (Michaël Zasso)
  [#36139]
- **(SEMVER-MAJOR)** **deps**: update V8 to 8.7.220 (Michaël Zasso)
  [#35700]
- **(SEMVER-MAJOR)** **dns**: use url module instead of punycode for
  IDNA (Antoine du Hamel) [#35091]
- **(SEMVER-MAJOR)** **doc**: update minimum supported Xcode to 11
  (Michaël Zasso) [#37872]
- **(SEMVER-MAJOR)** **doc**: update minimum supported GCC to 8.3
  (Michaël Zasso) [#37871]
- **(SEMVER-MAJOR)** **doc**: update AIX to GCC8 for v16.x (Ash Cripps)
  [#37677]
- **(SEMVER-MAJOR)** **doc**: add http.IncomingMessage#connection
  (Pranshu Srivastava) [#33768]
- **(SEMVER-MAJOR)** **events**: change EventTarget handler exception
  behavior (Nitzan Uziely) [#37237]
- **(SEMVER-MAJOR)** **fs**: remove permissive rmdir recursive
  (Antoine du Hamel) [#37216]
- **(SEMVER-MAJOR)** **fs**: add validation for fd and path
  (Dylan Elliott) [#35187]
- **(SEMVER-MAJOR)** **fs**: runtime deprecate rmdir recursive option
  (Antoine du Hamel) [#37302]
- **(SEMVER-MAJOR)** **fs**: fix flag and mode validation
  (James M Snell) [#37480]
- **(SEMVER-MAJOR)** **http**: use objects with null prototype in Agent
  (Michaël Zasso) [#36409]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('http_parser') (James M Snell)
  [#37813]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('url') (James M Snell)
  [#37799]
- **(SEMVER-MAJOR)** **lib**: make process.binding('util') return only
  type checkers (Anna Henningsen) [#37819]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('crypto') (James M Snell) [#37790]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('signal_wrap') (James M Snell) [#37800]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('v8') (James M Snell) [#37789]
- **(SEMVER-MAJOR)** **lib**: aggregate errors to avoid error swallowing
  (Antoine du Hamel) [#37460]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('async_wrap') (James M Snell) [#37576]
- **(SEMVER-MAJOR)** **lib**: remove usage of url.parse
  (raisinten) [#36853]
- **(SEMVER-MAJOR)** **lib**: add error handling for input stream
  (rexagod) [#31603]
- **(SEMVER-MAJOR)** **lib,src**: update cluster to use Parent
  (Michael Dawson) [#36478]
- **(SEMVER-MAJOR)** **module**: runtime deprecate subpath folder
  mappings (Antoine du Hamel) [#37215]
- **(SEMVER-MAJOR)** **module**: runtime deprecate "main" index and
  extension lookups (Antoine du Hamel) [#37206]
- **(SEMVER-MAJOR)** **module**: runtime deprecate invalid package.json
  main entries (Antoine du Hamel) [#37204]
- **(SEMVER-MAJOR)** **module**: remove module.createRequireFromPath
  (Antoine du Hamel) [#37201]
- **(SEMVER-MAJOR)** **module**: only set cache when finding module
  succeeds (Yongsheng Zhang) [#36642]
- **(SEMVER-MAJOR)** **perf_hooks**: make performance a global (James M
  Snell) [#37970]
- **(SEMVER-MAJOR)** **perf_hooks**: complete overhaul of the
  implementation (James M Snell) [#37136]
- **(SEMVER-MAJOR)** **process**: disallow adding options to
  process.allowedNodeEnvironmentFlags (Antoine du Hamel)
  [#36660]
- **(SEMVER-MAJOR)** **process**: runtime deprecate changing
  process.config (James M Snell) [#36902]
- **(SEMVER-MAJOR)** **readline**: cursorTo throw error on NaN
  (Zijian Liu) [#36379]
- **(SEMVER-MAJOR)** **src**: mark internally exported functions as
  explicitly internal (Tyler Ang-Wanek) [#37000]
- **(SEMVER-MAJOR)** **src**: inline AsyncCleanupHookHandle in headers
  (Tyler Ang-Wanek) [#37000]
- **(SEMVER-MAJOR)** **src**: clean up embedder API (Anna Henningsen)
  [#35897]
- **(SEMVER-MAJOR)** **worker**: send correct error status for worker
  init (Yash Ladha) [#36242]

PR-URL: #37678
BethGriggs added a commit that referenced this pull request Apr 20, 2021
Notable changes:

Deprecations and Removals:

- **(SEMVER-MAJOR)** **fs**: remove permissive rmdir recursive
  (Antoine du Hamel) [#37216]
- **(SEMVER-MAJOR)** **fs**: runtime deprecate rmdir recursive option
  (Antoine du Hamel) [#37302]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('http_parser') (James M Snell) [#37813]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('url') (James M Snell) [#37799]
- **(SEMVER-MAJOR)** **lib**: make process.binding('util') return only
  type checkers (Anna Henningsen) [#37819]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('crypto') (James M Snell) [#37790]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('signal_wrap') (James M Snell) [#37800]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('v8') (James M Snell) [#37789]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('async_wrap') (James M Snell) [#37576]
- **(SEMVER-MAJOR)** **module**: remove module.createRequireFromPath
  (Antoine du Hamel) [#37201]
- **(SEMVER-MAJOR)** **module**: runtime deprecate subpath folder
  mappings (Antoine du Hamel) [#37215]
- **(SEMVER-MAJOR)** **module**: runtime deprecate "main" index and
  extension lookups (Antoine du Hamel) [#37206]
- **(SEMVER-MAJOR)** **module**: runtime deprecate invalid package.json
  main entries (Antoine du Hamel) [#37204]
- **(SEMVER-MAJOR)** **process**: runtime deprecate changing
  process.config (James M Snell) [#36902]

Stable Timers Promises API:

The Timers Promises API provides an alternative set of timer functions
that return Promise objects. Added in Node.js v15.0.0, in this release
they graduate from experimental status to stable.

Contributed by James Snell - [#38112]

Toolchain and Compiler Upgrades:

Node.js v16.0.0 will be the first release where we ship prebuilt
binaries for Apple Silicon. While we’ll be providing separate tarballs
for the Intel (`darwin-x64`) and ARM (`darwin-arm64`) architectures the
macOS installer (`.pkg`) will be shipped as a ‘fat’ (multi-architecture)
binary.

- **(SEMVER-MAJOR)** **build**: remove support for Python 2 (Christian
  Clauss) [#36691]
- **(SEMVER-MAJOR)** **build**: default PYTHON to python3 in Makefile
  (Michaël Zasso) [#37764]
- **build**: update Makefile to support fat binary (Ash Cripps)
  [#37861]
- **(SEMVER-MAJOR)** **build**: enable ASLR (PIE) on OS X (woodfairy)
  [#35704]
- **build**: warn for gcc versions earlier than 8.3.0 (Richard Lau)
  [#37935]
- **(SEMVER-MAJOR)** **doc**: update minimum supported Xcode to 11
  (Michaël Zasso) [#37872]
- **(SEMVER-MAJOR)** **doc**: update minimum supported GCC to 8.3
  (Michaël Zasso) [#37871]
- **(SEMVER-MAJOR)** **doc**: update AIX to GCC8 for v16.x (Ash Cripps)
  [#37677]
- **tools**: set arch in Distribution.xml (Ash Cripps)
  [#38261]

V8 9.0:

The V8 JavaScript engine is updated to V8 9.0, including performance
tweaks and improvements.

This update also brings the ECMAScript RegExp Match Indices, which
provide the start and end indices of the captured string. The indices
array is available via the `.indices` property on match objects when the
regular expression has the `/d` flag.

Contributed by Michaël Zasso - [#37587]

Other Notable Changes:

- **(SEMVER-MINOR)** **assert**: graduate assert.match and
  assert.doesNotMatch (James M Snell) [#38111]
- **(SEMVER-MAJOR)** **buffer**: expose btoa and atob as globals
  (James M Snell) [#37786]
- **(SEMVER-MAJOR)** **deps**: bump minimum ICU version to 68
  (Michaël Zasso) [#37330]
- **deps**: update ICU to 69.1 (Michaël Zasso)
  [#38178]
- **deps**: update llhttp to 6.0.0 (Fedor Indutny)
  [#38277]
- **deps**: upgrade npm to 7.10.0 (Ruy Adorno)
  [#38254]
- **(SEMVER-MINOR)** **http**: add http.ClientRequest.getRawHeaderNames()
  (simov) [#37660]
- **(SEMVER-MAJOR)** **lib,src**: update cluster to use Parent
  (Michael Dawson) [#36478]
- **(SEMVER-MINOR)** **module**: add support for `node:`‑prefixed
  `require(…)` calls (ExE Boss) [#37246]
- **(SEMVER-MINOR)** **perf_hooks**: add histogram option to timerify
  (James M Snell) [#37475]
- **(SEMVER-MINOR)** **repl**: add auto‑completion for `node:`‑prefixed
  `require(…)` calls (ExE Boss) [#37246]
- **(SEMVER-MINOR)** **util**: add getSystemErrorMap() impl
  (eladkeyshawn) [#38101]

Semver-Major Commits:

- **(SEMVER-MAJOR)** **async_hooks**: add thisArg to AsyncResource.bind
  (James M Snell) [#36782]
- **(SEMVER-MAJOR)** **buffer**: expose btoa and atob as globals
  (James M Snell) [#37786]
- **(SEMVER-MAJOR)** **build**: remove support for Python 2
  (Christian Clauss) [#36691]
- **(SEMVER-MAJOR)** **build**: default PYTHON to python3 in Makefile
  (Michaël Zasso) [#37764]
- **(SEMVER-MAJOR)** **build**: update Makefile to support fat binary
  (Ash Cripps) [#37861]
- **(SEMVER-MAJOR)** **build**: include minimal V8 headers in
  distribution (Michaël Zasso) [#37570]
- **(SEMVER-MAJOR)** **build**: use C++11 ABI with libstdc++
  (Anna Henningsen) [#36634]
- **(SEMVER-MAJOR)** **build**: enable ASLR (PIE) on OS X (woodfairy)
  [#35704]
- **(SEMVER-MAJOR)** **deps**: update V8 to 9.0.257.11 (Michaël Zasso)
  [#37587]
- **(SEMVER-MAJOR)** **deps**: bump minimum ICU version to 68
  (Michaël Zasso) [#37330]
- **(SEMVER-MAJOR)** **deps**: update V8 to 8.9.255.19 (Michaël Zasso)
  [#37330]
- **(SEMVER-MAJOR)** **deps**: update V8 to 8.8.278.17 (Michaël Zasso)
  [#36139]
- **(SEMVER-MAJOR)** **deps**: update V8 to 8.7.220 (Michaël Zasso)
  [#35700]
- **(SEMVER-MAJOR)** **dns**: use url module instead of punycode for
  IDNA (Antoine du Hamel) [#35091]
- **(SEMVER-MAJOR)** **doc**: update minimum supported Xcode to 11
  (Michaël Zasso) [#37872]
- **(SEMVER-MAJOR)** **doc**: update minimum supported GCC to 8.3
  (Michaël Zasso) [#37871]
- **(SEMVER-MAJOR)** **doc**: update AIX to GCC8 for v16.x (Ash Cripps)
  [#37677]
- **(SEMVER-MAJOR)** **doc**: add http.IncomingMessage#connection
  (Pranshu Srivastava) [#33768]
- **(SEMVER-MAJOR)** **events**: change EventTarget handler exception
  behavior (Nitzan Uziely) [#37237]
- **(SEMVER-MAJOR)** **fs**: remove permissive rmdir recursive
  (Antoine du Hamel) [#37216]
- **(SEMVER-MAJOR)** **fs**: add validation for fd and path
  (Dylan Elliott) [#35187]
- **(SEMVER-MAJOR)** **fs**: runtime deprecate rmdir recursive option
  (Antoine du Hamel) [#37302]
- **(SEMVER-MAJOR)** **fs**: fix flag and mode validation
  (James M Snell) [#37480]
- **(SEMVER-MAJOR)** **http**: use objects with null prototype in Agent
  (Michaël Zasso) [#36409]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('http_parser') (James M Snell)
  [#37813]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('url') (James M Snell)
  [#37799]
- **(SEMVER-MAJOR)** **lib**: make process.binding('util') return only
  type checkers (Anna Henningsen) [#37819]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('crypto') (James M Snell) [#37790]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('signal_wrap') (James M Snell) [#37800]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('v8') (James M Snell) [#37789]
- **(SEMVER-MAJOR)** **lib**: aggregate errors to avoid error swallowing
  (Antoine du Hamel) [#37460]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
  process.binding('async_wrap') (James M Snell) [#37576]
- **(SEMVER-MAJOR)** **lib**: remove usage of url.parse
  (raisinten) [#36853]
- **(SEMVER-MAJOR)** **lib**: add error handling for input stream
  (rexagod) [#31603]
- **(SEMVER-MAJOR)** **lib,src**: update cluster to use Parent
  (Michael Dawson) [#36478]
- **(SEMVER-MAJOR)** **module**: runtime deprecate subpath folder
  mappings (Antoine du Hamel) [#37215]
- **(SEMVER-MAJOR)** **module**: runtime deprecate "main" index and
  extension lookups (Antoine du Hamel) [#37206]
- **(SEMVER-MAJOR)** **module**: runtime deprecate invalid package.json
  main entries (Antoine du Hamel) [#37204]
- **(SEMVER-MAJOR)** **module**: remove module.createRequireFromPath
  (Antoine du Hamel) [#37201]
- **(SEMVER-MAJOR)** **module**: only set cache when finding module
  succeeds (Yongsheng Zhang) [#36642]
- **(SEMVER-MAJOR)** **perf_hooks**: make performance a global (James M
  Snell) [#37970]
- **(SEMVER-MAJOR)** **perf_hooks**: complete overhaul of the
  implementation (James M Snell) [#37136]
- **(SEMVER-MAJOR)** **process**: disallow adding options to
  process.allowedNodeEnvironmentFlags (Antoine du Hamel)
  [#36660]
- **(SEMVER-MAJOR)** **process**: runtime deprecate changing
  process.config (James M Snell) [#36902]
- **(SEMVER-MAJOR)** **readline**: cursorTo throw error on NaN
  (Zijian Liu) [#36379]
- **(SEMVER-MAJOR)** **src**: mark internally exported functions as
  explicitly internal (Tyler Ang-Wanek) [#37000]
- **(SEMVER-MAJOR)** **src**: inline AsyncCleanupHookHandle in headers
  (Tyler Ang-Wanek) [#37000]
- **(SEMVER-MAJOR)** **src**: clean up embedder API (Anna Henningsen)
  [#35897]
- **(SEMVER-MAJOR)** **worker**: send correct error status for worker
  init (Yash Ladha) [#36242]

PR-URL: #37678
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Issues and PRs related to build files or the CI. semver-major PRs that contain breaking changes and should be released in the next major version. v8 engine Issues and PRs related to the V8 dependency.
Projects
None yet
Development

Successfully merging this pull request may close these issues.