Some major problems that browsers have to deal with have to do with UI. Specifically:
1. Users expect the UI to update in realtime,
2. Developers expect the UI to update in realtime,
3. UIs tend to be single threaded, and
4. The principles of software engineering and the reality of software stress encapsulation, but the realtime nature of UI requires visibility into these processes.
And of course this impacts the Javascript layer, since this is yet another environment with the same constraints as above.
1. Users expect the UI to update in realtime,
2. Developers expect the UI to update in realtime,
3. UIs tend to be single threaded, and
4. The principles of software engineering and the reality of software stress encapsulation, but the realtime nature of UI requires visibility into these processes.
And of course this impacts the Javascript layer, since this is yet another environment with the same constraints as above.