Aliaksandr Kalenik
eb4038fa83
AK: Fix Utf16View::operator<=> code-unit ordering on little-endian
...
The !has_ascii_storage() && !other.has_ascii_storage() branch did a
byte-wise __builtin_memcmp over a char16_t array, which on little-endian
does not give code-unit order: the low byte is compared first, so
0xD83D (bytes [0x3D, 0xD8]) spuriously compared less than 0x2764
(bytes [0x64, 0x27]) even though the code unit 0xD83D is greater.
No in-tree caller currently uses operator<=> for Utf16View ordering,
so this bug is dormant; the follow-up LibJS change exposes it.
Replace the memcmp branch with a per-code-unit loop, which the compiler
can auto-vectorize and which mirrors what is_code_unit_less_than already
does.
2026-04-22 19:12:54 +02:00
..
2025-05-14 02:01:59 -06:00
2025-11-20 15:44:25 +01:00
2025-11-07 11:27:51 +01:00
2025-05-14 02:01:59 -06:00
2026-03-02 17:06:39 -06:00
2024-07-01 10:15:24 -06:00
2024-12-04 16:45:58 +00:00
2026-03-31 18:14:28 +01:00
2025-05-03 11:21:10 -04:00
2026-02-22 13:56:12 -05:00
2024-02-25 17:24:36 -07:00
2024-10-04 13:19:50 +02:00
2024-07-17 09:56:13 -06:00
2026-04-08 09:57:53 +02:00
2025-01-04 20:32:35 +01:00
2024-02-12 14:08:56 +01:00
2024-04-30 13:22:56 +02:00
2023-10-11 14:36:48 -04:00
2026-04-08 09:57:53 +02:00
2026-04-08 09:57:53 +02:00
2026-03-31 13:48:50 +01:00
2026-02-17 12:38:51 +00:00
2026-02-17 12:38:51 +00:00
2026-04-08 09:57:53 +02:00
2024-08-05 17:21:26 +01:00
2026-03-21 18:20:09 -05:00
2025-05-14 02:01:59 -06:00
2026-02-17 12:38:51 +00:00
2026-02-24 13:24:58 +01:00
2024-10-04 13:19:50 +02:00
2026-04-20 16:41:29 -06:00
2025-05-14 02:01:59 -06:00
2025-08-08 12:54:06 +02:00
2025-08-08 12:54:06 +02:00
2024-09-10 13:51:28 +02:00
2025-06-11 18:16:29 +02:00
2025-06-11 18:16:29 +02:00
2025-04-18 17:09:27 +02:00
2026-04-16 21:01:28 +02:00
2025-06-17 18:39:18 -06:00
2025-06-17 18:39:18 -06:00
2025-04-14 17:40:13 +02:00
2025-05-14 02:01:59 -06:00
2026-02-02 14:11:49 +01:00
2024-07-18 19:43:57 +02:00
2025-11-18 13:31:52 +01:00
2025-05-10 21:19:46 -04:00
2025-05-26 18:48:09 +02:00
2026-01-22 08:54:49 -05:00
2026-04-08 09:57:53 +02:00
2026-01-14 11:46:23 +01:00
2024-07-18 09:43:38 +01:00
2026-02-23 18:30:40 +01:00
2026-01-26 19:37:42 +01:00
2026-04-17 16:22:56 +02:00
2026-02-26 19:52:49 -06:00
2026-02-17 12:38:51 +00:00
2026-02-26 08:03:50 -05:00
2026-02-18 13:13:32 -06:00
2025-08-13 09:56:13 -04:00
2026-02-26 13:50:11 +01:00
2025-05-14 02:01:59 -06:00
2026-02-20 22:47:24 +01:00
2026-01-29 10:10:12 +01:00
2026-04-08 09:57:53 +02:00
2026-02-17 12:38:51 +00:00
2024-10-04 13:19:50 +02:00
2025-05-14 02:01:59 -06:00
2024-12-06 06:44:27 +00:00
2025-04-23 09:13:45 +01:00
2024-06-18 09:36:25 +02:00
2025-04-15 02:19:06 -06:00
2024-12-28 05:39:32 -08:00
2025-04-15 02:19:06 -06:00
2026-02-21 12:37:44 +01:00
2026-02-21 12:37:44 +01:00
2024-10-04 13:19:50 +02:00
2024-10-25 09:15:28 +02:00
2025-02-20 19:27:51 -05:00
2025-03-04 15:33:39 -05:00
2024-06-18 09:36:25 +02:00
2025-02-20 19:27:51 -05:00
2025-02-20 19:27:51 -05:00
2025-02-20 19:27:51 -05:00
2026-03-27 14:29:43 +00:00
2026-03-27 14:29:43 +00:00
2025-03-20 10:50:24 +01:00
2025-02-20 19:27:51 -05:00
2026-04-08 09:57:53 +02:00
2026-04-08 09:57:53 +02:00
2025-08-08 12:54:06 +02:00
2024-11-19 22:07:01 -07:00
2025-09-01 11:11:38 +02:00
2025-02-17 14:57:00 +01:00
2024-09-05 19:21:52 +02:00
2026-02-22 13:56:12 -05:00
2024-03-25 20:35:00 +01:00
2025-05-14 02:01:59 -06:00
2025-03-03 15:58:27 +01:00
2026-04-22 13:32:07 +02:00
2026-04-22 13:32:07 +02:00
2024-11-19 14:32:11 -07:00
2025-04-22 21:19:31 -06:00
2025-09-18 22:37:18 +02:00
2025-09-18 22:37:18 +02:00
2025-09-18 22:37:18 +02:00
2026-02-17 12:38:51 +00:00
2026-02-17 12:38:51 +00:00
2024-11-10 14:48:20 -07:00
2026-03-20 12:03:36 +01:00
2026-02-17 12:38:51 +00:00
2026-02-17 12:38:51 +00:00
2025-09-18 22:37:18 +02:00
2026-02-21 11:49:42 +01:00
2026-03-17 18:58:37 -05:00
2024-12-22 12:33:41 +01:00
2026-03-24 12:04:50 -04:00
2026-03-24 12:04:50 -04:00
2026-01-29 05:22:27 -06:00
2026-02-18 13:13:32 -06:00
2025-09-18 22:37:18 +02:00
2024-12-28 05:39:32 -08:00
2023-12-17 18:25:10 +03:30
2026-03-21 18:20:09 -05:00
2024-10-04 13:19:50 +02:00
2025-01-09 18:36:34 +00:00
2025-05-14 02:01:59 -06:00
2025-07-13 19:15:05 +02:00
2025-05-14 02:01:59 -06:00
2025-05-14 02:01:59 -06:00
2025-08-23 16:04:36 -06:00
2026-04-21 18:09:29 +02:00
2025-09-01 11:11:38 +02:00
2026-02-18 13:13:32 -06:00
2025-12-01 15:12:52 +01:00
2024-11-10 19:12:59 +01:00
2023-07-01 07:03:11 +02:00
2026-03-03 11:26:42 -06:00
2026-03-19 14:21:44 +01:00
2026-02-22 13:56:12 -05:00
2025-08-08 12:54:06 +02:00
2025-08-08 12:54:06 +02:00
2026-02-21 12:37:44 +01:00
2026-04-17 16:22:56 +02:00
2026-02-17 12:38:51 +00:00
2026-02-22 13:56:12 -05:00
2025-10-05 11:24:46 +02:00
2025-10-05 11:24:46 +02:00
2026-02-23 18:30:40 +01:00
2026-02-23 18:30:40 +01:00
2026-04-08 09:57:53 +02:00
2025-08-07 02:05:50 +02:00
2025-10-05 11:24:46 +02:00
2026-03-31 13:48:50 +01:00
2025-07-03 09:51:56 -04:00
2026-03-31 13:48:50 +01:00
2026-03-31 19:01:10 +02:00
2025-03-22 17:27:45 +01:00
2026-04-16 15:08:27 -05:00
2026-02-22 13:56:12 -05:00
2026-02-24 13:24:58 +01:00
2025-11-21 02:46:33 +01:00
2024-12-04 16:45:58 +00:00
2026-02-18 08:02:45 -05:00
2026-02-27 11:42:38 -05:00
2026-03-19 14:21:44 +01:00
2024-02-11 18:53:00 +01:00
2025-11-07 11:27:51 +01:00
2025-09-01 11:11:38 +02:00
2024-03-25 14:26:29 -06:00
2025-07-05 01:25:22 +12:00
2026-02-17 12:38:51 +00:00
2026-03-31 13:48:50 +01:00
2026-01-26 19:37:42 +01:00
2026-04-17 16:22:56 +02:00
2025-10-05 11:24:46 +02:00
2026-04-17 16:22:56 +02:00
2026-02-22 13:56:12 -05:00
2026-04-08 09:57:53 +02:00
2026-04-08 09:57:53 +02:00
2026-02-17 12:38:51 +00:00
2026-04-22 19:12:54 +02:00
2024-10-20 08:50:01 +02:00
2025-07-18 12:45:38 -04:00
2026-02-20 22:01:44 +00:00
2026-03-25 00:57:49 +01:00
2026-04-08 09:57:53 +02:00
2026-02-26 08:03:50 -05:00
2026-02-26 08:03:50 -05:00
2026-02-17 10:48:09 -05:00