This reminds me of a javascript weirdness I found. When passed as `this`, primitives (string, number, boolean) get wrapped in their classes.
You can get the 'Number' function with:
Number = (function(){return this;}).call(1).constructor