ThinkGeek - Cool Stuff for Geeks and Technophiles

You could imagine my excitement when I read the following on the Google Closure page:

“It also also checks syntax, variable references, and types, and warns about common JavaScript pitfalls. These checks and optimizations help you write apps that are less buggy and easier to maintain”

But then I tried the compiler and it thinks this code is dandy:

// ==ClosureCompiler==
// @compilation_level ADVANCED_OPTIMIZATIONS
// ==/ClosureCompiler==

function upper(s)
{
return s.toUpperCase();
}

function add(i)
{
return i + 1;
}

var i = add(new Array());

var s = upper(new Array());

alert(s);
alert(i);

Dynamic languages are evil. They cannot be tamed by mankind.