This could easily be changed/fixed in browsers without changing anything about js.
It'd be nice to be able to specify in a <script> tag if you want a new js execution context setup, and also what access you want to give that script to your own execution context.
For example, maybe:
<script src=http://widgetmaker.com/wm.js newContext=true permissions="modifyDom:false,readNamespace=false,passMessages=true">
<script src=http://hitcounter.com newContext=true permissions="NONE">
With such a scheme, everything is executing in completely separate contexts, with clear permissions about their interactions. Some script messes with the Object constructor? only affects its own execution context.
Saying a blanket "js must die" isn't really understanding the issues, as they are actually in browsers, not js.
It's like saying python/perl/etc is an insecure language and must die, because it usually shares the same filesystem between processes.