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

[v16.x-backport] deps: update V8 to 9.2 #39470

Closed
wants to merge 34 commits into from

Conversation

targos
Copy link
Member

@targos targos commented Jul 20, 2021

This is a backport of #38990 with the addition of two commits to keep ABI, API and ICU 68 compatibility:

  • deps: make V8 9.2 abi-compatible with 9.0
  • deps: restore minimum ICU version to 68

targos and others added 29 commits July 20, 2021 16:11
Original commit message:

    [testrunner] delete ancient junit compatible format support

    Testrunner has ancient support for JUnit compatible XML output.

    This CL removes this old feature.

    [email protected],[email protected],[email protected]
    CC=​[email protected]

    Bug: v8:8728
    Change-Id: I7e1beb011dbaec3aa1a27398a5c52abdd778eaf0
    Reviewed-on: https://chromium-review.googlesource.com/c/1430065
    Reviewed-by: Jakob Gruber <[email protected]>
    Reviewed-by: Michael Starzinger <[email protected]>
    Commit-Queue: Tamer Tas <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#59045}

Refs: v8/v8@bd019bd

PR-URL: nodejs#32116
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Ruben Bridgewater <[email protected]>
Fixes a compilation issue on some platforms

PR-URL: nodejs#32116
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Ruben Bridgewater <[email protected]>
This should be semver-patch since actual invocation is version
conditional.

PR-URL: nodejs#32116
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Ruben Bridgewater <[email protected]>
There is a bug in the most recent version of VS2015 that affects v8.h
and therefore prevents compilation of addons.

Refs: https://stackoverflow.com/q/38378693

PR-URL: nodejs#32116
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Ruben Bridgewater <[email protected]>
PR-URL: nodejs#35415
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Daniel Bevenius <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
PR-URL: nodejs#37587
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
PR-URL: nodejs#38990
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
PR-URL: nodejs#38990
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
PR-URL: nodejs#38990
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
PR-URL: nodejs#38990
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
V8 9.2 doesn't emit the "V8.ScriptCompiler" event anymore.
Use "V8.GCScavenger" instead.

PR-URL: nodejs#38990
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
It it's not testing anything useful anymore.

PR-URL: nodejs#38990
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
V8 had a bug that in certain cases the default microtask queue was
drained, and this test relies on the behavior.

PR-URL: nodejs#38990
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Original commit message:

    ARM64: VRegister::from_code expected to be constexpr

    GCC build fails trying to use a non constexpr function from a
    constexpr function.

    ../chromium-92.0.4503.0/v8/src/wasm/baseline/liftoff-register.h: In member function 'constexpr v8::internal::DoubleRegister v8::internal::wasm::LiftoffRegister::fp() const':
    ../chromium-92.0.4503.0/v8/src/wasm/baseline/liftoff-register.h:286:71: error: call to non-'constexpr' function 'static v8::internal::VRegister v8::internal::VRegister::from_code(int)'
      286 |     return DoubleRegister::from_code(code_ - kAfterMaxLiftoffGpRegCode);
          |                                                                       ^
    In file included from ../chromium-92.0.4503.0/v8/src/codegen/register-arch.h:16,
                     from ../chromium-92.0.4503.0/v8/src/deoptimizer/translation-array.h:8,
                     from ../chromium-92.0.4503.0/v8/src/objects/code.h:10,
                     from ../chromium-92.0.4503.0/v8/src/codegen/reloc-info.h:10,
                     from ../chromium-92.0.4503.0/v8/src/codegen/assembler.h:47,
                     from ../chromium-92.0.4503.0/v8/src/codegen/assembler-arch.h:8,
                     from ../chromium-92.0.4503.0/v8/src/codegen/turbo-assembler.h:12,
                     from ../chromium-92.0.4503.0/v8/src/codegen/macro-assembler.h:8,
                     from ../chromium-92.0.4503.0/v8/src/wasm/baseline/liftoff-assembler.h:13,
                     from ../chromium-92.0.4503.0/v8/src/wasm/baseline/liftoff-assembler.cc:5:
    ../chromium-92.0.4503.0/v8/src/codegen/arm64/register-arm64.h:416:20: note: 'static v8::internal::VRegister v8::internal::VRegister::from_code(int)' declared here
      416 |   static VRegister from_code(int code) {
          |                    ^~~~~~~~~

    Bug: chromium:819294
    Change-Id: Ia19ea90f3f666702d32c90e147af17dcda7e08a6
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2929805
    Reviewed-by: Maya Lekova <[email protected]>
    Commit-Queue: José Dapena Paz <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#74889}

Refs: v8/v8@3d24b3a

PR-URL: nodejs#38990
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Original commit message:

    [codegen] Move definition of GetRegisterParameter to inline header

    This fixes compilation of V8 in Node.js with Visual Studio 2019.
    Without this change, MSVC errors with C3779 (a function that returns
    'auto' cannot be used before it is defined) on the `static constexpr
    auto registers()` method.

    Bug: v8:11420
    Change-Id: Id545199e2cdc10c8560031fb5950ec1171e5d554
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2964095
    Commit-Queue: Igor Sheludko <[email protected]>
    Reviewed-by: Igor Sheludko <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#75173}

Refs: v8/v8@71e8f8b

PR-URL: nodejs#38990
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Original commit message:

    [wasm-simd] Skip tests which require Simd enabled

    These tests require Simd enabled which causes failures
    on machines without the support.

    They are already skipped on Mips: https://crrev.com/c/2841887

    Change-Id: I4b9a9bb3cb208a0e9aa12dc135393bc515ad766e
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2927210
    Reviewed-by: Zhi An Ng <[email protected]>
    Commit-Queue: Milad Fa <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#74891}

Refs: v8/v8@9862992

PR-URL: nodejs#38990
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Original commit message:

    Mark Node::opcode() and Operator::opcode() as constexpr.

    Without the explicit constexpr keyword, Clang seems to be able to treat
    these methods as constexpr, whereas MSVC will not.

    Bug: v8:11760
    Change-Id: I9f6492f38fb50dcaf7a4f09da0bd79c0da6a50eb
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2912916
    Reviewed-by: Clemens Backes <[email protected]>
    Reviewed-by: Maya Lekova <[email protected]>
    Commit-Queue: Lei Zhang <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#74791}

Refs: v8/v8@a5cea1b

PR-URL: nodejs#38990
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Original commit message:

    Move DCHECK() in JSCallOrConstructNode ctor into a helper function.

    As is, the DCHECK() has a #if inside, and MSVC has trouble
    pre-processing that. Fix this by moving the conditional inside the
    DCHECK() into a separate helper function.

    Bug: v8:11760
    Change-Id: Ib4ae0fe263029bb426da378afa5b6881557ce652
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2919421
    Reviewed-by: Maya Lekova <[email protected]>
    Reviewed-by: Clemens Backes <[email protected]>
    Commit-Queue: Lei Zhang <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#74807}

Refs: v8/v8@7ff6609

PR-URL: nodejs#38990
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Original commit message:

    [liftoff] Handle constant memory indexes specially

    This adds detection for constant memory indexes which can statically be
    proven to be in-bounds (because the effective offset is within the
    minimum memory size). In these cases, we can skip the bounds check and
    the out-of-line code for the trap-handler.
    This often saves 1-2% of code size.

    [email protected]

    Bug: v8:11802
    Change-Id: I0ee094e6f1f5d132af1d6a8a7c539a4af6c3cb5e
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2919827
    Commit-Queue: Clemens Backes <[email protected]>
    Reviewed-by: Andreas Haas <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#74825}

Refs: v8/v8@53784bd

PR-URL: nodejs#39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Original commit message:

    [wasm][liftoff] Always zero-extend 32 bit offsets

    The upper 32 bits of the 64 bit offset register are not guaranteed to be
    cleared, so a zero-extension is needed. We already do the zero-extension
    in the case of explicit bounds checking, but this should also be done if
    the trap handler is enabled.

    [email protected]
    [email protected]

    Bug: v8:11809
    Change-Id: I21e2535c701041d11fa06c176fa683d82db0a3f1
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2917612
    Commit-Queue: Thibaud Michaud <[email protected]>
    Reviewed-by: Clemens Backes <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#74881}

Refs: v8/v8@2b77ca2

PR-URL: nodejs#39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Original commit message:

    [wasm][arm64] Always zero-extend 32 bit offsets, for realz

    We've already been zero-extending 32-bit offset registers since
    https://chromium-review.googlesource.com/c/v8/v8/+/2917612,
    but that patch only covered the case where offset_imm == 0.
    When there is a non-zero offset, we need the same fix.

    Bug: chromium:1224882,v8:11809
    Change-Id: I1908f735929798f411346807fc4f3c79d8e04362
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2998582
    Commit-Queue: Jakob Kummerow <[email protected]>
    Reviewed-by: Clemens Backes <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#75500}

Refs: v8/v8@56fe020

Fixes: nodejs#39327

PR-URL: nodejs#39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Original commit message:

    PPC/s390: [wasm][liftoff] Always zero-extend 32 bit offsets

    Port 2b77ca200c56667c68895e49c96c10ff77834f09

    Original Commit Message:

        The upper 32 bits of the 64 bit offset register are not guaranteed to be
        cleared, so a zero-extension is needed. We already do the zero-extension
        in the case of explicit bounds checking, but this should also be done if
        the trap handler is enabled.

    [email protected], [email protected], [email protected], [email protected]
    BUG=
    LOG=N

    Change-Id: Ife3ae4f93b85fe1b2c76fe4b98fa408b5b51ed71
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2929661
    Reviewed-by: Junliang Yan <[email protected]>
    Commit-Queue: Milad Fa <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#74886}

Refs: v8/v8@3805a69

PR-URL: nodejs#39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Original commit message:

    [riscv64] Fix build failed

    Port 2b77ca200c56667c68895e49c96c10ff77834f09

    Change-Id: Ie953a1d54f5529423ae35d1b1cd3ca25e8101c6e
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2931577
    Auto-Submit: Yahan Lu <[email protected]>
    Commit-Queue: Brice Dobry <[email protected]>
    Reviewed-by: Brice Dobry <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#74937}

Refs: v8/v8@359d44d

PR-URL: nodejs#39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Original commit message:

    [mips][wasm][liftoff] Fix compile failed

    Port 2b77ca200c56667c68895e49c96c10ff77834f09

    Bug: v8:11809

    Change-Id: Idbbbc10d1339d6c8463686b6e701fb601a217cab
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2931557
    Reviewed-by: Zhao Jiazhong <[email protected]>
    Commit-Queue: Zhao Jiazhong <[email protected]>
    Auto-Submit: Liu yu <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#74934}

Refs: v8/v8@5c76da8

PR-URL: nodejs#39337
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: James M Snell <[email protected]>
gtest_prod.h is not enough to build V8's cctests.

PR-URL: nodejs#38990
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Revert "[api] Avoid handles for const API functions"

This reverts commit aee471b2ff5b1a9e622426454885b748d226535b.

Revert "[api] Remove deprecated [Shared]ArrayBuffer API"

This reverts commit 578f6be77fc5d8af975005c2baf918e7225abb62.

Revert "[Jobs]: Cleanup in v8 platform."

This reverts commit baf2b088dd9f585aa597459f30d71431171666e2.

Revert "Skip global registration of [Shared]ArrayBuffer backing stores"

This reverts commit fcdf35e6d70d51699ece063e25dc705e80673308.

Revert "[api] Remove previously deprecated Function::GetDisplayName()."

This reverts commit 6165fef8cc9dde52973e54c915e6905221b3f8fb.

Revert "[api] Remove deprecated Symbol::Name()"

This reverts commit bbc72ef6c7d6d8e2c4dd074d7713e5c841003163.

Revert API change for HeapProfiler::TakeHeapSnapshot

This reverts a small part of 7f52e4f92d3d3ded9a1701ee2f93966075ae5004.

Revert "[cpu-profiler] Reintroduce support for context filtering"

This reverts commit 0aacfb2a6ecbeda1d1d97ca113afd8253a1b9670.
@nodejs-github-bot nodejs-github-bot added the build Issues and PRs related to build files or the CI. label Jul 20, 2021
BethGriggs pushed a commit that referenced this pull request Jul 29, 2021
V8 had a bug that in certain cases the default microtask queue was
drained, and this test relies on the behavior.

Backport-PR-URL: #39470
PR-URL: #38990
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
BethGriggs pushed a commit that referenced this pull request Jul 29, 2021
Original commit message:

    ARM64: VRegister::from_code expected to be constexpr

    GCC build fails trying to use a non constexpr function from a
    constexpr function.

    ../chromium-92.0.4503.0/v8/src/wasm/baseline/liftoff-register.h: In member function 'constexpr v8::internal::DoubleRegister v8::internal::wasm::LiftoffRegister::fp() const':
    ../chromium-92.0.4503.0/v8/src/wasm/baseline/liftoff-register.h:286:71: error: call to non-'constexpr' function 'static v8::internal::VRegister v8::internal::VRegister::from_code(int)'
      286 |     return DoubleRegister::from_code(code_ - kAfterMaxLiftoffGpRegCode);
          |                                                                       ^
    In file included from ../chromium-92.0.4503.0/v8/src/codegen/register-arch.h:16,
                     from ../chromium-92.0.4503.0/v8/src/deoptimizer/translation-array.h:8,
                     from ../chromium-92.0.4503.0/v8/src/objects/code.h:10,
                     from ../chromium-92.0.4503.0/v8/src/codegen/reloc-info.h:10,
                     from ../chromium-92.0.4503.0/v8/src/codegen/assembler.h:47,
                     from ../chromium-92.0.4503.0/v8/src/codegen/assembler-arch.h:8,
                     from ../chromium-92.0.4503.0/v8/src/codegen/turbo-assembler.h:12,
                     from ../chromium-92.0.4503.0/v8/src/codegen/macro-assembler.h:8,
                     from ../chromium-92.0.4503.0/v8/src/wasm/baseline/liftoff-assembler.h:13,
                     from ../chromium-92.0.4503.0/v8/src/wasm/baseline/liftoff-assembler.cc:5:
    ../chromium-92.0.4503.0/v8/src/codegen/arm64/register-arm64.h:416:20: note: 'static v8::internal::VRegister v8::internal::VRegister::from_code(int)' declared here
      416 |   static VRegister from_code(int code) {
          |                    ^~~~~~~~~

    Bug: chromium:819294
    Change-Id: Ia19ea90f3f666702d32c90e147af17dcda7e08a6
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2929805
    Reviewed-by: Maya Lekova <[email protected]>
    Commit-Queue: José Dapena Paz <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#74889}

Refs: v8/v8@3d24b3a

Backport-PR-URL: #39470
PR-URL: #38990
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
BethGriggs pushed a commit that referenced this pull request Jul 29, 2021
Original commit message:

    [codegen] Move definition of GetRegisterParameter to inline header

    This fixes compilation of V8 in Node.js with Visual Studio 2019.
    Without this change, MSVC errors with C3779 (a function that returns
    'auto' cannot be used before it is defined) on the `static constexpr
    auto registers()` method.

    Bug: v8:11420
    Change-Id: Id545199e2cdc10c8560031fb5950ec1171e5d554
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2964095
    Commit-Queue: Igor Sheludko <[email protected]>
    Reviewed-by: Igor Sheludko <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#75173}

Refs: v8/v8@71e8f8b

Backport-PR-URL: #39470
PR-URL: #38990
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
BethGriggs pushed a commit that referenced this pull request Jul 29, 2021
Original commit message:

    [wasm-simd] Skip tests which require Simd enabled

    These tests require Simd enabled which causes failures
    on machines without the support.

    They are already skipped on Mips: https://crrev.com/c/2841887

    Change-Id: I4b9a9bb3cb208a0e9aa12dc135393bc515ad766e
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2927210
    Reviewed-by: Zhi An Ng <[email protected]>
    Commit-Queue: Milad Fa <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#74891}

Refs: v8/v8@9862992

Backport-PR-URL: #39470
PR-URL: #38990
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
BethGriggs pushed a commit that referenced this pull request Jul 29, 2021
Original commit message:

    Mark Node::opcode() and Operator::opcode() as constexpr.

    Without the explicit constexpr keyword, Clang seems to be able to treat
    these methods as constexpr, whereas MSVC will not.

    Bug: v8:11760
    Change-Id: I9f6492f38fb50dcaf7a4f09da0bd79c0da6a50eb
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2912916
    Reviewed-by: Clemens Backes <[email protected]>
    Reviewed-by: Maya Lekova <[email protected]>
    Commit-Queue: Lei Zhang <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#74791}

Refs: v8/v8@a5cea1b

Backport-PR-URL: #39470
PR-URL: #38990
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
BethGriggs pushed a commit that referenced this pull request Jul 29, 2021
Original commit message:

    Move DCHECK() in JSCallOrConstructNode ctor into a helper function.

    As is, the DCHECK() has a #if inside, and MSVC has trouble
    pre-processing that. Fix this by moving the conditional inside the
    DCHECK() into a separate helper function.

    Bug: v8:11760
    Change-Id: Ib4ae0fe263029bb426da378afa5b6881557ce652
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2919421
    Reviewed-by: Maya Lekova <[email protected]>
    Reviewed-by: Clemens Backes <[email protected]>
    Commit-Queue: Lei Zhang <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#74807}

Refs: v8/v8@7ff6609

Backport-PR-URL: #39470
PR-URL: #38990
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
BethGriggs pushed a commit that referenced this pull request Jul 29, 2021
gtest_prod.h is not enough to build V8's cctests.

Backport-PR-URL: #39470
PR-URL: #38990
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
BethGriggs pushed a commit that referenced this pull request Jul 29, 2021
Revert "[api] Avoid handles for const API functions"
This reverts commit aee471b2ff5b1a9e622426454885b748d226535b.

Revert "[api] Remove deprecated [Shared]ArrayBuffer API"
This reverts commit 578f6be77fc5d8af975005c2baf918e7225abb62.

Revert "[Jobs]: Cleanup in v8 platform."
This reverts commit baf2b088dd9f585aa597459f30d71431171666e2.

Revert "Skip global registration of [Shared]ArrayBuffer backing stores"
This reverts commit fcdf35e6d70d51699ece063e25dc705e80673308.

Revert "[api] Remove previously deprecated Function::GetDisplayName()."
This reverts commit 6165fef8cc9dde52973e54c915e6905221b3f8fb.

Revert "[api] Remove deprecated Symbol::Name()"
This reverts commit bbc72ef6c7d6d8e2c4dd074d7713e5c841003163.

Revert API change for HeapProfiler::TakeHeapSnapshot
This reverts a small part of 7f52e4f92d3d3ded9a1701ee2f93966075ae5004.

Revert "[cpu-profiler] Reintroduce support for context filtering"
This reverts commit 0aacfb2a6ecbeda1d1d97ca113afd8253a1b9670.

Restore new argument for TakeHeapSnapshot method
This creates a new TakeHeapSnapshotV8_92 method with the signature from
7f52e4f92d3d3ded9a1701ee2f93966075ae5004.
It is necessary because the API is used internall by V8.

Silence irrelevant warning
V8 triggers it in the Name method.

Revert "[api] Add v8::metrics::LongTaskStats for the LongTasks UKM"
This reverts commit 521ae93bf652b0cc1fec1fdd788e3b80fb72a349.

Move cage_base isolate data field
Makes 3ada6f27404b4ffd6d3e97cf15be76672f60c10d ABI-compatible.

PR-URL: #39470
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Beth Griggs <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
BethGriggs pushed a commit that referenced this pull request Jul 29, 2021
Refs: v8/v8@edac496

PR-URL: #39470
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Beth Griggs <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
BethGriggs added a commit that referenced this pull request Jul 29, 2021
This is a security release.

Notable Changes:

- CVE-2021-22930: Use after free on close http2 on stream canceling
  (High) [#39423](#39423)
- (SEMVER-MINOR) deps: update V8 to 9.2.230.21 (Michaël Zasso)
  [#39470](#39470)
- inspector: mark as stable (Gireesh Punathil)
  [#37748](#37748)
- punycode: add pending deprecation (Antoine du Hamel)
  [#38444](#38444)
- (SEMVER-MINOR) repl: enable --experimental-repl-await /w opt-out
  (hemanth.hm) [#34733](#34733)

PR-URL: #39534
BethGriggs added a commit that referenced this pull request Jul 29, 2021
This is a security release.

Notable Changes:

- CVE-2021-22930: Use after free on close http2 on stream canceling
  (High) [#39423](#39423)
- (SEMVER-MINOR) deps: update V8 to 9.2.230.21 (Michaël Zasso)
  [#39470](#39470)
- inspector: mark as stable (Gireesh Punathil)
  [#37748](#37748)
- punycode: add pending deprecation (Antoine du Hamel)
  [#38444](#38444)
- (SEMVER-MINOR) repl: enable --experimental-repl-await /w opt-out
  (hemanth.hm) [#34733](#34733)

PR-URL: #39534
@reuben
Copy link

reuben commented Aug 1, 2021

I'm getting a loader error when trying to load a binary extension built with NodeJS 16.0.0 headers on NodeJS 16.6.0:

node: symbol lookup error: /home/runner/work/STT/STT/node_modules/stt/lib/binding/v0.10.0-alpha.11/linux-x64/node-v93/stt.node: undefined symbol: _ZN2v816FunctionTemplate14SetCallHandlerEPFvRKNS_20FunctionCallbackInfoINS_5ValueEEEENS_5LocalIS2_EENS_14SideEffectTypeEPKNS_9CFunctionE

Which is v8::FunctionTemplate::SetCallHandler(void (*)(v8::FunctionCallbackInfo<v8::Value> const&), v8::Local<v8::Value>, v8::SideEffectType, v8::CFunction const*).

Looking at blame in v8, it looks like this is the relevant commit, which changed the last parameter from a v8::CFunction const pointer to an std::vector of CFunction const pointers: v8/v8@a7980d4

Apologies if this is not the correct place to raise this, but it seemed like the most close to the root cause, specially given that it looks to me like NodeJS 16.6.0 was released with an unplanned ABI breakage.

targos added a commit to targos/node that referenced this pull request Aug 30, 2021
Refs: v8/v8@edac496

PR-URL: nodejs#39470
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Beth Griggs <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
targos added a commit that referenced this pull request Sep 1, 2021
Refs: v8/v8@edac496

PR-URL: #39470
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Beth Griggs <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
@targos targos mentioned this pull request Sep 6, 2021
targos added a commit to targos/node that referenced this pull request Oct 2, 2021
Refs: v8/v8@edac496

PR-URL: nodejs#39470
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Beth Griggs <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
targos added a commit to targos/node that referenced this pull request Oct 3, 2021
Refs: v8/v8@edac496

PR-URL: nodejs#39470
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Beth Griggs <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
targos added a commit to targos/node that referenced this pull request Oct 4, 2021
Refs: v8/v8@edac496

PR-URL: nodejs#39470
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Beth Griggs <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
danielleadams added a commit that referenced this pull request Oct 4, 2021
Notable changes:

* crypto:
  * update root certificates (Richard Lau) #40280
* tools:
  * update certdata.txt (Richard Lau) #40280
* deps:
  * update `nghttp2` to v1.45.1 (thunder-coding) #40206
* deps:
  * restore minimum ICU version to 68 (Michaël Zasso) #39470
danielleadams added a commit that referenced this pull request Oct 4, 2021
Notable changes:

* crypto:
  * update root certificates (Richard Lau) #40280
* tools:
  * update certdata.txt (Richard Lau) #40280
* deps:
  * update `nghttp2` to v1.45.1 (thunder-coding) #40206
* deps:
  * restore minimum ICU version to 68 (Michaël Zasso) #39470
danielleadams added a commit that referenced this pull request Oct 4, 2021
Notable changes:

* crypto:
  * update root certificates (Richard Lau) #40280
* tools:
  * update certdata.txt (Richard Lau) #40280
* deps:
  * update `nghttp2` to v1.45.1 (thunder-coding) #40206
* deps:
  * restore minimum ICU version to 68 (Michaël Zasso) #39470

PR-URL: #40319
danielleadams added a commit that referenced this pull request Oct 5, 2021
Notable changes:

* crypto:
  * update root certificates (Richard Lau) #40280
* tools:
  * update certdata.txt (Richard Lau) #40280
* deps:
  * update `nghttp2` to v1.45.1 (thunder-coding) #40206
  * restore minimum ICU version to 68 (Michaël Zasso) #39470

PR-URL: #40319
danielleadams added a commit that referenced this pull request Oct 5, 2021
    Notable changes:

    * crypto:
      * update root certificates (Richard Lau) #40280
    * tools:
      * update certdata.txt (Richard Lau) #40280
    * deps:
      * update `nghttp2` to v1.45.1 (thunder-coding) #40206
      * restore minimum ICU version to 68 (Michaël Zasso) #39470

    PR-URL: #40319
danielleadams added a commit that referenced this pull request Oct 5, 2021
    Notable changes:

    * crypto:
      * update root certificates (Richard Lau) #40280
    * tools:
      * update certdata.txt (Richard Lau) #40280
    * deps:
      * update `nghttp2` to v1.45.1 (thunder-coding) #40206
      * restore minimum ICU version to 68 (Michaël Zasso) #39470

    PR-URL: #40319
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
notable-change PRs with changes that should be highlighted in changelogs. semver-minor PRs that contain new features and should be released in the next minor version. v8 engine Issues and PRs related to the V8 dependency.
Projects
None yet
Development

Successfully merging this pull request may close these issues.