theKashey / proxyequal

There is a bit more smart way to compare things, than a shallow equal.
MIT License
72 stars 7 forks source link

IE 11 bug. Affected is empty if field doesn't exist #24

Closed user753 closed 4 years ago

user753 commented 4 years ago
const proxy = proxyState({})
console.log(proxy.state.value)
console.log(proxy.affected) // affected is empty in IE 11, ['.value'] in Chrome

Any way to quick fix it?

user753 commented 4 years ago

Also arrays

const proxy = proxyState({value: []})
console.log(proxy.state.value[0])
theKashey commented 4 years ago

IE11 tracks only existing keys, in other words - keys which are known prior access.

user753 commented 4 years ago

I think you should mention this behavior in docs, so It would possible to know about it without reading proxy-polyfill docs. Does it even make sense to support IE? It looks like a big limitation.

theKashey commented 4 years ago

Hopefully, many big companies are dropping IE11 support in a few months, as well as new versions of MobX and Vue are not compatible with IE11, and literally due to this limitation.

I could only ask users to test their stuff in IE, as long as with such awkward tracking it's partially undefined behaviour.