I just spent 2 hours tracking down this issue:
- We have a class with a prototype method called
focus()
- Our code was calling
focus(), but it should have been calling this.focus()
- The code compiled fine, because
window.focus() shares the same signature as our focus() method
Is there a way to throw a compile time error when implicitly accessing global methods (on window, global, etc.)?
If not, a compiler flag would be extremely helpful. I would happily be more explicit about commonly used globals (window.setTimeout, window.document, ...) if it meant I could more easily catch insidious bugs like this one.
Full commit here: coatue-oss/slickgrid2@0f8bab3.
I just spent 2 hours tracking down this issue:
focus()focus(), but it should have been callingthis.focus()window.focus()shares the same signature as ourfocus()methodIs there a way to throw a compile time error when implicitly accessing global methods (on
window,global, etc.)?If not, a compiler flag would be extremely helpful. I would happily be more explicit about commonly used globals (
window.setTimeout,window.document, ...) if it meant I could more easily catch insidious bugs like this one.Full commit here: coatue-oss/slickgrid2@0f8bab3.