Iterator.zip обрывает данные в Safari Technology Preview 251: проверка shortest, longest и strict. Практическая проверка Safari Technology Preview 251: матрица «input lengths × API × mode × padding × rows produced × error», обратимый canary и ясный критерий остановки.
Симптом и граница Iterator.zip() и Iterator.zipKeyed()
Вопрос здесь один: как проверить iterator zip длины потоков в safari technology preview 251. Наблюдаемое расхождение — позиционно связанные последовательности разной длины тихо обрываются, дополняются или выбрасывают ошибку не по выбранной политике. Название новой возможности не равно диагнозу: сначала нужны один повторяемый fixture и пара expected/actual. Граница наблюдения записывается как «event start → transition state → completion → released listener». Любая другая ошибка остаётся за пределами этого URL.
Два первичных источника для 318477@main
Официальная страница WebKit датирована 26 августа 2026 года, описывает Release 251 и в соответствующей строке называет Iterator.zip() и Iterator.zipKeyed(). Эта строка ссылается на 318477@main, первичную запись изменения в репозитории WebKit. Это подтверждает границу функции в Technology Preview, но не подтверждает ни конкретный сбой сайта, ни поведение stable Safari. Поисковый сниппет и community reply в этот слой доказательств не входят.
Поля контроля: матрица «input lengths × API × mode × padding × rows produced × error»
Базовый набор для этой задачи: длины входов, zip или zipKeyed, mode, padding, число результатов и состояние каждого iterator. Поле «длины входов»: не восстанавливайте по памяти; его значение не подменяет соседнюю колонку. Поле «zip или zipKeyed»: снимите до опыта; его значение не подменяет соседнюю колонку. Поле «mode»: сопоставьте с контролем; его значение не подменяет соседнюю колонку. Поле «padding»: пометьте observed или unknown; его значение не подменяет соседнюю колонку. Поле «число результатов»: повторите после отката; его значение не подменяет соседнюю колонку. Поле «состояние каждого iterator»: не восстанавливайте по памяти; его значение не подменяет соседнюю колонку. Время, точная сборка и одинаковый fixture нужны для повтора, но имена, IP, cookie, токены, полные URL с query и содержимое рабочих данных не собираются.
Обратимый опыт для Iterator.zip() и Iterator.zipKeyed()
Одиночный canary: свести последовательности длиной два и три в режимах shortest, longest и strict на свежих iterators, затем удалить canary. До воздействия запишите исходную строку, после — только заранее выбранные поля, затем верните исходное состояние и повторите то же наблюдение. Каждый mode получает свежие iterator длиной два и три. Сначала запишите число ожидаемых строк и только затем значения padding. Такой порядок обнаруживает тихое усечение, отличает дополнение от strict error и не маскирует потребление источника предыдущим опытом. Неоднозначный результат не расширяет эксперимент: он получает статус unknown.
Как принять решение: матрица «input lengths × API × mode × padding × rows produced × error»
Практический итог — матрица «input lengths × API × mode × padding × rows produced × error». Заполните в нём все предусмотренные поля. Если вход не принят, отметьте unsupported и сохраните прежний fallback. Если функция доступна, но боль «позиционно связанные последовательности разной длины тихо обрываются, дополняются или выбрасывают ошибку не по выбранной политике» не повторилась, результат равен not reproduced только для этого fixture. Локальное повторение после единственного изменения и успешный возврат дают reproduced. Неудачный возврат — stopped, а не предлог менять ещё одну переменную.
Красная линия и минимальный report 318477@main
Стоп-линия: не использовать один и тот же исчерпанный iterator между режимами и не скрывать потерю строк default-поведением. Для поддержки достаточно точной версии Technology Preview 251, коротких expected/actual, минимального fixture, шага возврата, матрица «input lengths × API × mode × padding × rows produced × error» и ссылки на 318477@main. Перед передачей удалите локальные пути, дампы профиля, идентификаторы и любой реальный контент. Отчёт не обещает исправление и не переносит вывод на stable Safari.
Материал подготовлен редакцией VOne с помощью ИИ; границы фактов, дата, первичный WebKit commit, стоп-линия и роль community lead постатейно проверены 29 августа 2026 года.
Источники и проверка
- WebKit — Release Notes for Safari Technology Preview 251 проверено 2026-08-29
- WebKit commit 318477@main проверено 2026-08-29
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.