Safari Technology Preview 251: Unicode complement справа от set operation RegExp. People-first диагностика: таблица истинности «U+код → левый set → complement → операция → match»; синтетический fixture, независимый контроль, одно обратимое воздействие, stop-line и обезличенный handoff.
Ответ для узкого intent
Прямой ответ на запрос «как проверить Unicode complement справа от && или -- в RegExp v mode Safari Technology Preview 251» начинается с границы: проверяется только боль «класс символов с правым операндом \P{...} ведёт себя как union вместо пересечения или вычитания» на локальном fixture. Успех заранее определяется так: каждый символ классифицируется как set intersection/subtraction, а результат не совпадает с ложным union-контролем. Нельзя подменять его похожей картинкой, общей скоростью браузера или выводом о стабильном Safari. Отдельная ловушка — визуальная схожесть символов вместо принадлежности Unicode property. Исход получает один из статусов reproduced, not reproduced, unsupported, environment-blocked, invalid или unknown. Первое наблюдение не считается доказательством, пока контроль и возврат к baseline не подтвердили, что изменилась ровно одна причина.
Доказательная граница WebKit
Официальная страница WebKit от 26 августа 2026 года относит к Safari Technology Preview 251 следующий change item: исправлена трактовка \P{...} справа от операций && и -- в v mode: complement больше не считается union. Техническая ссылка — 318854@main. Release note и commit подтверждают наличие конкретного изменения в ветке, но не частоту жалоб, спрос, причинность для чужой страницы, результат на данном компьютере или перенос в стабильный выпуск. Публичная ветка MacRumors перепроверена только как community lead. Её текст, реакции и поисковые snippets не используются как фактологическое evidence и не дают права писать о массовости.
Что записать в baseline
Fixture: локальный список явных Unicode code points и две регулярные строки, отличающиеся только операцией && или --. До действия без интерпретации записываются pattern, flags, U+код, boolean match, длина span и ожидаемая принадлежность множеству. Рабочий артефакт — таблица истинности «U+код → левый set → complement → операция → match». У каждой строки есть expected, observed, время, версия TP 251 и флаг валидности. Используются только синтетические данные. Запрещено сохранять cookie, IP, Authorization, токены, реальные URLs с query, имена профилей, пользовательские файлы и полные логи. Если нужное поле нельзя получить без персональных или секретных данных, тест останавливается: пробел не заполняют догадкой и не расширяют сбор.
С чем сверять основную ветку
Контрольная ветка готовится до canary: предварительно вычисленные конечные наборы code points для маленького тестового алфавита. Она проверяет, не объясняется ли симптом общей средой или тестовой обвязкой. Риск «визуальная схожесть символов вместо принадлежности Unicode property» получает собственную колонку, потому что совпадение внешнего вида не означает совпадение причины. Если control отклоняется вместе с основной веткой, результат invalid и публикационная формулировка не утверждает воспроизведение. Такой контроль не обещает универсальной корректности; он лишь делает конкретный вывод опровержимым и не позволяет замаскировать соседний сбой вторым изменением.
Безопасная проверка
Основной шаг: поместить один и тот же property complement справа от &&, затем справа от -- без изменения корпуса символов. Сначала фиксируется baseline, затем выполняется только указанное воздействие, после заранее выбранного settle-события повторно снимаются pattern, flags, U+код, boolean match, длина span и ожидаемая принадлежность множеству. Далее состояние полностью возвращается и baseline измеряется ещё раз. PASS возможен, когда каждый символ классифицируется как set intersection/subtraction, а результат не совпадает с ложным union-контролем. Production, реальные аккаунты, чужие сайты, VPN-конфиги, маршрутизация и пользовательские данные в процедуру не входят. Если rollback не возвращает исходные признаки, весь прогон помечается invalid независимо от привлекательности результата.
Когда прекратить и что передать
Финальное решение хранится как таблица истинности «U+код → левый set → complement → операция → match». Reproduced означает только выполнение условия «каждый символ классифицируется как set intersection/subtraction, а результат не совпадает с ложным union-контролем» на этом стенде; not reproduced не опровергает проблему в других средах. Стоп-линия: остановиться, если строка прошла Unicode normalization, редактор заменил escape или тест сравнивает визуально похожие глифы. Для передачи разработчику достаточно минимального fixture, версии, обезличенных значений «pattern, flags, U+код, boolean match, длина span и ожидаемая принадлежность множеству», результата контрольной ветки, отметки rollback и ссылки на 318854@main. Статья не обещает индексацию, позиции, спрос, стабильную поддержку или автоматическое исправление; сомнительный либо неполный прогон не должен становиться новым URL.
Материал подготовлен редакцией VOne с помощью ИИ; дата, WebKit Release 251, primary commit 318854@main, техническая граница, контроль, rollback, privacy-stop и роль community lead постатейно проверены 29 августа 2026 года.
Источники и проверка
- WebKit — Release Notes for Safari Technology Preview 251 проверено 2026-08-29
- WebKit commit 318854@main проверено 2026-08-29
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.