The ‘key’ property was already defined, so ‘defineProperty’ is modifying the existing definition. The default values are only applied when creating a new property.
This did suprise me the first time I found this out and potentially ‘defineProperty’ was not the best name for that api.
It might be worth suggesting an update on the MDN page to ensure this behaviour is clearer.