From 15859d370edd477ec3a98855acad7a47e579d795 Mon Sep 17 00:00:00 2001 From: Renegade334 Date: Tue, 24 Jun 2025 20:08:05 +0100 Subject: [PATCH] deps: V8: backport 1c3e018e7d48 Original commit message: Expose dispose and asyncDispose symbols to C++ Since `Symbol.dispose` has been exposed to JS we need to be able to access the native v8::Symbol too. Change-Id: I9111d2806630efdd8bb5f931effa9adad3c85ae5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6410112 Commit-Queue: Erik Corry Reviewed-by: Erik Corry Reviewed-by: Leszek Swirski Cr-Commit-Position: refs/heads/main@{#99590} --- common.gypi | 2 +- deps/v8/include/v8-primitive.h | 2 ++ deps/v8/src/api/api.cc | 4 +++- deps/v8/test/cctest/test-api.cc | 2 ++ 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/common.gypi b/common.gypi index 9c3707d46cb053..9ee982c8351121 100644 --- a/common.gypi +++ b/common.gypi @@ -38,7 +38,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.21', + 'v8_embedder_string': '-node.22', ##### V8 defaults for Node.js ##### diff --git a/deps/v8/include/v8-primitive.h b/deps/v8/include/v8-primitive.h index f966ed55674841..50b07d9c10a7bb 100644 --- a/deps/v8/include/v8-primitive.h +++ b/deps/v8/include/v8-primitive.h @@ -819,6 +819,8 @@ class V8_EXPORT Symbol : public Name { static Local GetToPrimitive(Isolate* isolate); static Local GetToStringTag(Isolate* isolate); static Local GetUnscopables(Isolate* isolate); + static Local GetDispose(Isolate* isolate); + static Local GetAsyncDispose(Isolate* isolate); V8_INLINE static Symbol* Cast(Data* data) { #ifdef V8_ENABLE_CHECKS diff --git a/deps/v8/src/api/api.cc b/deps/v8/src/api/api.cc index 0f2a526b2b3453..ba759168aa92f5 100644 --- a/deps/v8/src/api/api.cc +++ b/deps/v8/src/api/api.cc @@ -9548,7 +9548,9 @@ Local v8::Symbol::ForApi(Isolate* v8_isolate, Local name) { V(Split, split) \ V(ToPrimitive, to_primitive) \ V(ToStringTag, to_string_tag) \ - V(Unscopables, unscopables) + V(Unscopables, unscopables) \ + V(Dispose, dispose) \ + V(AsyncDispose, async_dispose) #define SYMBOL_GETTER(Name, name) \ Local v8::Symbol::Get##Name(Isolate* v8_isolate) { \ diff --git a/deps/v8/test/cctest/test-api.cc b/deps/v8/test/cctest/test-api.cc index 0f023d15cfc181..876de6efb525ab 100644 --- a/deps/v8/test/cctest/test-api.cc +++ b/deps/v8/test/cctest/test-api.cc @@ -4006,6 +4006,8 @@ THREADED_TEST(WellKnownSymbols) { CheckWellKnownSymbol(v8::Symbol::GetSplit, "Symbol.split"); CheckWellKnownSymbol(v8::Symbol::GetToPrimitive, "Symbol.toPrimitive"); CheckWellKnownSymbol(v8::Symbol::GetToStringTag, "Symbol.toStringTag"); + CheckWellKnownSymbol(v8::Symbol::GetDispose, "Symbol.dispose"); + CheckWellKnownSymbol(v8::Symbol::GetAsyncDispose, "Symbol.asyncDispose"); }