GeezerVison is showing github.com — deps: patch V8 to 14.3.127.16 · nodejs/node@bfc729c
File treeExpand file treeCollapse file tree Open diff view settings Expand file treeCollapse file tree Open diff view settings Collapse file Copy file name to clipboardExpand all lines: deps/v8/include/v8-version.h +1-1Lines changed: 1 addition & 1 deletion | Original file line number | Diff line number | Diff line change |
|---|
| 11 | 11 | #define V8_MAJOR_VERSION 14 | 12 | 12 | #define V8_MINOR_VERSION 3 | 13 | 13 | #define V8_BUILD_NUMBER 127 | 14 | | -#define V8_PATCH_LEVEL 14 | | 14 | +#define V8_PATCH_LEVEL 16 | 15 | 15 |
| 16 | 16 | // Use 1 for candidates and 0 otherwise. | 17 | 17 | // (Boolean macro values are not supported by all preprocessors.) | |
Collapse file Copy file name to clipboardExpand all lines: deps/v8/src/objects/intl-objects.cc +6-2Lines changed: 6 additions & 2 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -2445,7 +2445,7 @@ std::map<std::string, std::string> LookupAndValidateUnicodeExtensions( | 2445 | 2445 | if (U_FAILURE(status)) return extensions; | 2446 | 2446 |
| 2447 | 2447 | if (!keywords) return extensions; | 2448 | | - char value[ULOC_FULLNAME_CAPACITY]; | | 2448 | + char value[ULOC_FULLNAME_CAPACITY + 1]; | 2449 | 2449 |
| 2450 | 2450 | int32_t length; | 2451 | 2451 | status = U_ZERO_ERROR; | @@ -2459,7 +2459,8 @@ std::map<std::string, std::string> LookupAndValidateUnicodeExtensions( | 2459 | 2459 | continue; | 2460 | 2460 | } | 2461 | 2461 |
| 2462 | | - icu_locale->getKeywordValue(keyword, value, ULOC_FULLNAME_CAPACITY, status); | | 2462 | + const int32_t value_len = icu_locale->getKeywordValue( | | 2463 | + keyword, value, ULOC_FULLNAME_CAPACITY, status); | 2463 | 2464 |
| 2464 | 2465 | // Ignore failures in ICU and skip to the next keyword. | 2465 | 2466 | // | @@ -2468,6 +2469,9 @@ std::map<std::string, std::string> LookupAndValidateUnicodeExtensions( | 2468 | 2469 | status = U_ZERO_ERROR; | 2469 | 2470 | continue; | 2470 | 2471 | } | | 2472 | + // Ensure the `value` is null-terminated even when the `status` is | | 2473 | + // `U_STRING_NOT_TERMINATED_WARNING`. | | 2474 | + value[value_len] = '\0'; | 2471 | 2475 |
| 2472 | 2476 | const char* bcp47_key = uloc_toUnicodeLocaleKey(keyword); | 2473 | 2477 |
| |
Collapse file Copy file name to clipboardExpand all lines: deps/v8/src/wasm/wasm-objects.cc +4-2Lines changed: 4 additions & 2 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -2497,7 +2497,8 @@ void SetForNonWrapper(Tagged<DispatchTable> dispatch_table, int index, | 2497 | 2497 | } else { | 2498 | 2498 | #if V8_ENABLE_DRUMBRAKE | 2499 | 2499 | // Ignore call_target, not used in jitless mode. | 2500 | | - WriteField<int>(offset + kFunctionIndexBias, function_index); | | 2500 | + dispatch_table->template WriteField<int>( | | 2501 | + offset + DispatchTable::kFunctionIndexBias, function_index); | 2501 | 2502 | #endif // V8_ENABLE_DRUMBRAKE | 2502 | 2503 | } | 2503 | 2504 | dispatch_table->WriteProtectedPointerField( | @@ -2578,7 +2579,8 @@ void SetForWrapper( | 2578 | 2579 | } else { | 2579 | 2580 | #if V8_ENABLE_DRUMBRAKE | 2580 | 2581 | // Ignore call_target, not used in jitless mode. | 2581 | | - WriteField<int>(offset + kFunctionIndexBias, function_index); | | 2582 | + dispatch_table->template WriteField<int>( | | 2583 | + offset + DispatchTable::kFunctionIndexBias, function_index); | 2582 | 2584 | #endif // V8_ENABLE_DRUMBRAKE | 2583 | 2585 | } | 2584 | 2586 | if constexpr (requires { DispatchTable::kSigBias; }) { | |
Collapse file Copy file name to clipboardExpand all lines: deps/v8/src/wasm/wasm-objects.h +1-2Lines changed: 1 addition & 2 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -961,10 +961,9 @@ class WasmDispatchTableForImports : public TrustedObject { | 961 | 961 | // In jitless mode, reuse the 'target' field storage to hold the (uint32_t) | 962 | 962 | // function index. | 963 | 963 | static constexpr size_t kFunctionIndexBias = kTargetBias; | 964 | | -#else | | 964 | +#endif // V8_ENABLE_DRUMBRAKE | 965 | 965 | static constexpr size_t kEntryPaddingSize = | 966 | 966 | TAGGED_SIZE_8_BYTES ? kUInt32Size : 0; | 967 | | -#endif // V8_ENABLE_DRUMBRAKE | 968 | 967 | static_assert(sizeof(WasmCodePointer) == kUInt32Size); | 969 | 968 | static constexpr size_t kImplicitArgBias = | 970 | 969 | kTargetBias + kEntryPaddingSize + kUInt32Size; | |
Collapse file Copy file name to clipboard +15Lines changed: 15 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
| | 1 | +// Copyright 2025 the V8 project authors. All rights reserved. | | 2 | +// Use of this source code is governed by a BSD-style license that can be | | 3 | +// found in the LICENSE file. | | 4 | + | | 5 | +let locale = "zh-TW-u-ca-chinese"; | | 6 | +for (let i = 0; i < 300; ++i) { | | 7 | + try { | | 8 | + Intl.DateTimeFormat(locale); | | 9 | + } catch (e) { | | 10 | + // "RangeError: Invalid language tag", for locales ending with "-", or | | 11 | + // sub-tags of one character, are not relevant to this test. | | 12 | + } | | 13 | + locale += (i % 5) ? "a" : "-"; | | 14 | +} | | 15 | +// Pass if this test doesn't crash. |
|