Do not throw ReferenceError on undeclared globals.
Length property of arguments object is a normal, configurable, property.
Use constructor function result if it returned anything.
IGlobal variables should not be enumerable and linked descriptor should inherit enumerable, configurable and writable.
Closure fields should be initialized.
Function parameter names are evaluated backwards.
Only assign closure variables that are of type JsInstance.
Completely removed the JsScope and LinkedDescriptor class.
Objects return true when cast to boolean.
Correctly implemented ToPrimitive.
Refactored Prototype. JsNumber, JsString and JsBoolean now don't depend on a prototype anymore.
Removed JsDictionaryObject and folded into JsObject.
Reworked object structure.

JsUndefined and JsNull don't inherit from JsObject anymore. JsObject now all have a JsGlobal to cut down on the number of times the global is passed and the scope we require. JsGlobal now doesn't inherit from JsObject anymore, but instead there is a separate, hidden, JsObject implementation that provides the global scope. Performance improve for fannkuck is 25%.