I did a little experiment just want to see what's the difference between defining object properties "normally" vs defining them using defineProperty:
When using defineProperty, you have to define all of the properties by yourself, otherwise they are default to false. But if the properties are define normally, then configurable, enumerable and writable are all default to true.