Releases: core-ds/arui-scripts
Releases · core-ds/arui-scripts
arui-scripts@23.0.1
arui-scripts@23.0.0
Major Changes
-
#507
ed3c42bThanks @heymdall-legal! - SWC больше не использует loose режим по умолчанию. Это меняет то, как именно собирается код.Что это означает:
Если вы не делали вещей, противоречащих спеке - все должно остаться как прежде. Если же нет - вам придется модифицировать ваш код.
Не-loose режим генерирует немного больше кода: 3% в несжатом виде, 0.3% для gzip/brotli.Если ошибки проявляются в коде, который вы не можете контролировать:
- Сообщите об этом в чате arui-scripts
- Используйте оверрайды, чтобы включить loose режим.
Краткое описание того, что меняется в не-loose режиме:
- Приватные поля классов (
#private) теперь будут создаваться черезWeakMapи их действительно невозможно будет прочитать снаружи. - Публичные поля классов (
class Foo { x = 1 }) теперь создаются черезObject.defineProperty, а не простым присваиваниемthis.x = 1. Это корректно по спецификации, но медленнее. - Компилятор больше не предполагает, что суперкласс статичен — добавляются рантаймовые проверки на случай, если цепочка прототипов меняется через
setPrototypeOf. - Операторы
?.и??теперь корректно обрабатываютdocument.all: вместо== nullиспользуется строгая проверка=== null || === undefined. - Геттеры свойств могут иметь побочные эффекты, поэтому компилятор кеширует промежуточный результат во временную переменную, чтобы не вызывать геттер дважды.
- При rest-деструктуризации символьные ключи тоже копируются в
rest. Используется полный хелперobjectWithoutProperties. - Object spread (
{ ...obj }) теперь клонирует дескрипторы свойств черезObject.definePropertyвместоObject.assign. Медленнее, но точнее воспроизводит оригинальные дескрипторы. - Компилятор явно задаёт
.nameу функциональных выражений черезObject.defineProperty, как того требует спецификация. - Компилятор корректно имитирует
.lengthфункции с учётом параметров по умолчанию — через обращение кarguments. - Шаблонные строки используют
.concat()вместо+, что корректно учитывает возможное переопределениеSymbol.toPrimitiveна объекте. - Объект тегового шаблона замораживается через
Object.freeze, как требует спецификация. - В каждый конструктор класса добавляется проверка
_classCallCheck, которая выбрасывает ошибку при вызове класса безnew. - Методы добавляются на прототип через
Object.definePropertyсenumerable: false, что соответствует спецификации. super()компилируется черезReflect.constructвместо.call(), что позволяет корректно наследоваться от нативных классов (Array,Errorи т.п.).- Итерируемые объекты обходятся через полный итераторный протокол (
Symbol.iterator), а не прямой индексный доступ. Корректно работает сSet,Map, генераторами и любыми кастомными итерируемыми.
arui-scripts@22.4.0
Minor Changes
- #500
c8662dfThanks @dmitrbrvsk! - добавлен экспорт типа CompatModuleConfig
@alfalab/scripts-modules@1.9.2
Patch Changes
- #502
60a8287Thanks @heymdall-legal! - Исправлен баг, который мог ломать default модули, если они не используют default экспорт
arui-scripts@22.3.0
arui-scripts@22.2.0
Minor Changes
- #493
800b5dbThanks @dmitrbrvsk! - добавлен рееэкспорт patchMainWebpackConfigForModules для публичного api, для исправления ошибки ERR_PACKAGE_PATH_NOT_EXPORTED в проектах. если нужна функция patchMainWebpackConfigForModules, то используйтеimport { patchMainWebpackConfigForModules } from 'arui-scripts'
arui-scripts@22.1.1
Patch Changes
- #495
3a00087Thanks @dmitrbrvsk! - удален неиспользуемый импорт get-port в файле run-client-dev-server.ts
arui-scripts-docker@15.2.3
Patch Changes
- #492
44e3c41Thanks @dmitrbrvsk! - исправление сборки docker образа с alpine v3.23: добавлен CFLAGS для игнорирования предупреждения GCC 15 при сборке nginx
arui-scripts-docker@15.2.2
Patch Changes
- #486
efab87dThanks @dmitrbrvsk! - обновление версии alpine, добавляем openssl libcrypto3 libssl3
arui-scripts@22.1.0
Minor Changes
- #426
48ff487Thanks @dmitrbrvsk! - добавлена возможность запускать тесты c помощью vitest