Browserify compatibility

Using 'this' to find the global means that the file can't be bundled in a 'use strict' file or into a definition function called on another object.  Function('return this')() always returns the global, regardless of whether you are in strict mode or not, and whatever function you have been called from.

I've also added a ; before the function definition, since if this file were concatenated with another that had no ending semicolon, bad things could happen.