| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 1e7eb90 commit bfc729c
5 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -11,7 +11,7 @@ | |||
| 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.) | |
| 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 | ||
| 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; }) { | |
| 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; | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,15 @@ | |||
| 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. | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments