perf(ngOptions): avoid calls to `element.value`
In some cases IE11/Edge calls to `element.value` are very slow when the `element.value` has not been set. Normally, these calls are usualy 0-3 ms but in these cases it can take 200-300 ms. This can easily add 3 or more seconds to the load time on a view that has 10 or more select tags using `ngOptions`. The line this pull request is changing not only suffers from the performance issue described above but it also appears to be broken. The code is checking that `option.value` does not equal `element.value` but then sets `element.value` to `option.selectValue`. I don't believe `option.value` is actually defined anywhere and likely it was always intended to be `option.selectValue`. This means that check would always be true and since this code has been this way for quite a while and is causing a performance issue I've just removed the check. This way a call to `element.value` is never made prior to it's value being set. Closes #15344
K
Kyle Lieber committed
3b7f29ff63e8bf02327a1430dcc2a4c83915a206
Parent: bdf9602
Committed by Peter Bacon Darwin <pete@bacondarwin.com>
on 11/1/2016, 10:40:58 AM