Как гарантировать, что определение перечислений не изменится в JavaScript?

Вопрос о гарантии неизменности enum в JS

Здравствуйте! Я интересуюсь, как убедиться, что перечисления в JavaScript не подлежат изменениям. У меня есть такой код:

my.namespace.ColorEnum = {
  RED: 0,
  GREEN: 1,
  BLUE: 2
};

// использование
if (currentColor === my.namespace.ColorEnum.RED) {
  // действия
}

Может ли такой подход обеспечить неизменность? Или есть другие методы для достижения этой цели? Ваши советы будут очень полезны!

Можешь создать константы через const и Symbol для уникальности - const RED = Symbol('red'). Или использовать Map с замороженными ключами. В TypeScript есть enum, который компилируется в защищенный код, но на чистом JS комбинация Object.freeze + const переменная - самый надежный вариант.

А что если завернуть в функцию с замыканием? Создаешь IIFE, который возвращает замороженный объект - к оригиналу вообще доступа не будет. Или через Proxy перехватывай попытки изменения и кидай ошибки. Кстати, зачем именно числовые значения? Строки может проще будут?