Global State On Servers Considered Harmful  Global State On
Servers Considered Harmful    • Comments 5  The other day I
noted that extending the built-in objects in JScript .NET is no
longer legal in "fast mode".  Of course, this is still legal in
"compatibility mode" if you need it, but why did we take it out
of fast mode?   As several readers have pointed out, this is
actually a kind of compelling feature.  It's nice to be able to
add new methods to prototypes:   String.prototype.frobnicate =
function(){/* whatever */}  var s1 = "hello";  var s2 =
s1.frobnicate();   It would be nice to extend the Math object,
or change the implementation of toLocaleString on Date objects,
or whatever.   Unfortunately, it also breaks ASP.NET, which is
the prime reason we developed fast mode in the first place. 
Ironically, it is not the additional compiler optimizations that
a static object model enables which motivated this change! 
Rather, it is the compilation model of ASP.NET.   I discussed
earlier how ASP uses the scrip