From a2504723680e6866b77cea3e0e8b53332fcd09d5 Mon Sep 17 00:00:00 2001 From: luoqianlin Date: Fri, 4 Sep 2026 15:03:53 +0800 Subject: [PATCH] v8: fall back when atomic_ref is unavailable --- deps/v8/src/builtins/builtins-typed-array.cc | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/deps/v8/src/builtins/builtins-typed-array.cc b/deps/v8/src/builtins/builtins-typed-array.cc index 5637012bc8d3..b3e705826ac2 100644 --- a/deps/v8/src/builtins/builtins-typed-array.cc +++ b/deps/v8/src/builtins/builtins-typed-array.cc @@ -506,10 +506,17 @@ simdutf::result ArrayBufferSetFromBase64( output_length = array_length; simdutf::result simd_result; if (typed_array->buffer()->is_shared()) { +#if SIMDUTF_ATOMIC_REF simd_result = simdutf::atomic_base64_to_binary_safe( reinterpret_cast(input_vector), input_length, reinterpret_cast(typed_array->DataPtr()), output_length, alphabet, last_chunk_handling, /*decode_up_to_bad_char*/ true); +#else + simd_result = simdutf::base64_to_binary_safe( + reinterpret_cast(input_vector), input_length, + reinterpret_cast(typed_array->DataPtr()), output_length, + alphabet, last_chunk_handling, /*decode_up_to_bad_char*/ true); +#endif } else { simd_result = simdutf::base64_to_binary_safe( reinterpret_cast(input_vector), input_length, @@ -836,9 +843,15 @@ BUILTIN(Uint8ArrayPrototypeToBase64) { size_t simd_result_size; if (uint8array->buffer()->is_shared()) { +#if SIMDUTF_ATOMIC_REF simd_result_size = simdutf::atomic_binary_to_base64( std::bit_cast(uint8array->DataPtr()), length, reinterpret_cast(output->GetChars(no_gc)), alphabet); +#else + simd_result_size = simdutf::binary_to_base64( + std::bit_cast(uint8array->DataPtr()), length, + reinterpret_cast(output->GetChars(no_gc)), alphabet); +#endif } else { simd_result_size = simdutf::binary_to_base64( std::bit_cast(uint8array->DataPtr()), length,