← На главную

MacSurf 1.68 перешёл на macQJS с ES2023 нативно и починил кучу багов

07.07.2026 16:24 · hackernews

Вышел MacSurf 1.68 — браузер для Classic Mac OS (PowerPC, Mac OS 9.1–9.2.2). Он открывает современные HTTPS-сайты прямо на старом «железе», без прокси и второго компьютера. Версию назвали «macQJS» в честь сообщества 68kmla.org — там тестировали браузер каждый день и ловили самые сложные баги.

Главное изменение — новый движок JavaScript. Старый Duktape понимал только ES5, и MacSurf вручную перегонял современный JS обратно в ES5. Этот транслятор дёргано переписывал async/await и портил минифицированные бандлы. Теперь движок — macQJS, порт QuickJS для Classic Mac OS. Он выполняет ES2023 нативно: let/const, стрелочные функции, классы, шаблонные строки, Promises и генераторы прямо на PowerPC. Для защиты от зависаний есть ограничение по памяти на кучу и таймаут в 20 секунд.

Починили кучу «базовых» вещей, без которых браузер было не использовать. Текстовый курсор в полях ввода теперь виден и мигает. Работает выделение текста мышкой и буфер обмена через Scrap Manager. Сессии логина не сбрасываются — браузер больше не показывает закешированную страницу «до логина» после редиректа. Стрелки двигают курсор в полях и прокручивают страницу, а не сдвигают весь вьюпорт вбок. Tab переключает поля ввода. Браузер стартует мгновенно — убрали диагностический тест, который зависал на 17 секунд при каждом запуске.

Исправлена куча проблем рендеринга. Раньше нерешённый box получал ширину INT_MAX, и страница раздувалась до 2,1 миллиарда пикселей — XenForo-форумы вроде 68kmla и tinkerdifferent теперь отображаются нормально. Иконки из веб-шрифтов (Material Design Icons, FontAwesome) начали рисоваться на Classic Mac OS через парсинг sfnt cmap и QuickDraw. Кэш изображений и шрифтов — 64 МБ с LRU-вытеснением — перестал перезагружать всё при каждом посещении.

Скачивание файлов по HTTPS теперь работает — файлы сохраняются в папку Downloads с нормальными именами, окно показывает прогресс. Кнопки в sticky-оверлеях (куки-баннеры) наконец-то кликабельны. Всё складывается в одну папку MacSurfData рядом с приложением, а не разбрасывается по рабочему столу.

GitHub и некоторые тяжёлые HTTPS-сайты пока не грузятся — там проблема с парсингом URL после редиректа и очень навороченный одностраничник. Tab не доходит до ссылок и кнопок — только поля ввода. Клики могут проваливаться сквозь position: fixed/absolute оверлеи. Но для Mac OS 9 на реальном G3/G4 это огромный шаг.

Читать оригинал →