Fixed function argument default value handling

The default value handling used for function arguments is a part of the currently unreleased ECMAScript 6 specification, and is thus not compliant with most modern browsers.

The included change maintains all current functionality, but allows the library to be used on additional browsers, for example Google Chrome, Opera and Internet Explorer.