Чтобы получить иммутабельные данные из JSON, сегодня гоняют Object.freeze в reviver или тащат immer. Оба пути тормозят: reviver сходит с быстрого пути и дёргает JS на каждом значении.
TC39 готовит нативный выход. JSON.parse(text, { freeze: true }) заморозит всё, включая массивы, а у объектов заодно срежет прототип — null вместо Object.prototype. Никаких сюрпризов с загрязнением прототипа, никаких зависимостей, и статический анализ наконец видит глубокую заморозку.
Второй ключ, preferNullPrototype, даёт null-прототип без заморозки. Имя ещё обсуждается. Статус — Stage 2.7, в движках пока ничего нет.
TC39 готовит нативный выход. JSON.parse(text, { freeze: true }) заморозит всё, включая массивы, а у объектов заодно срежет прототип — null вместо Object.prototype. Никаких сюрпризов с загрязнением прототипа, никаких зависимостей, и статический анализ наконец видит глубокую заморозку.
Второй ключ, preferNullPrototype, даёт null-прототип без заморозки. Имя ещё обсуждается. Статус — Stage 2.7, в движках пока ничего нет.
Просмотры: 5