Почему я могу установить [перечислимость и] возможность записи неконфигурируемых дескрипторов свойств?

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperty состояния:

конфигурируемый: True, если и только если тип этого дескриптора свойства может быть изменен и если свойство может быть удалено из соответствующего объекта. По умолчаниюfalse.

Итак, у меня есть

var x = Object.defineProperty({}, "a", {
    value:true,
    writable:true,
    enumerable:true,
    configurable:false
});

Теперь я могу играть сx.a = false, for(i in x) и т.д. Но даже если дескрипторявляется должен быть неконфигурируемым, я могу сделать

Object.defineProperty(x, "a", {writable:true}); // others defaulting to false
Object.defineProperty(x, "a", {}); // everything to false
Object.freeze(x); // does the same to the descriptors

С другой стороны, установив их снова в значение true или попытавшись определить дескриптор средства доступа, теперь возникают ошибки. Если быть точным:Object.defineProperty: invalid modification of non-configurable property.

Почему я могу «понизить» дескрипторы, хотя они говорят, что они не настраиваются?

Ответы на вопрос(2)

Ваш ответ на вопрос