with({Object : MyObject})
document.writeln({}.answer); // 42Super, du hast einen Exploit geschrieben.
Okay, so ganz stimmt das nicht, schließlich ist die Auswirkung auf den Block beschränkt und kann nicht so ohne weiteres externen Scripten eine andere andere Scope-Chain vorschreiben. Trotzdem wundert es mich, das Browser (IE hast du ausgenommen) das Verhalten von Literalen ändern, wenn man ein Objekt in der Scope-Chain zwischenschiebt. Andererseits sagt ECMAScript auch nur, {} erzeugt ein Objekt wie die Expression new Object() es tun würde, und für »Object« gelten dann die ganz normalen Regeln für die Auflösung von Bezeichnern.
Mathias