Open olegstepura opened 5 years ago
Unfortunately any decorated property that assigns a getter/setter to the property will not be enumerable. This is also going to be an issue with @tracked
in Ember in general, and is an issue for computed properties 😕 I'm not sure what a great solution would be here that would also be performant. This may be something to discuss with decorators in general.
Well, the point is:
@argument
annotation and still be enumerable.@computed
or @alias
. Did not try it with @tracked
I wonder what does Chrome console use to display such object - as I already said they display this property greyed out.
It shouldn't be possible to enumerate properties with @computed
, unless you're enumerating on the prototype? I'm not sure how that would work. Here's a twiddle that demonstrates that, it isn't enumerating the properties: https://ember-twiddle.com/b2f668d0ed862eb1490e155120853f15?fileTreeShown=false
Hi! We are using
"@ember-decorators/argument": "0.8.21",
and noticed that if we have a default value for an argument annotated with@argument
keyword, that property becomes non-enumerable.We need all own properties to be enumerable to support converting ember object to simple javascript object for storing in localstorage. For this we do
Object.keys
on an ember object and recursively serialize object to a plain JS object.So if we do:
we see that this property is not part of
Object.keys
. If we log this object in chrome console this property is greyed out. If we simply remove default value like this:all starts to work fine.
Same with optional value, this code also leads to property not being enumerable: