it is still unclear what is the proper behavior when constructors are
invoked without new. at the moment the only way to distinct whether
function is invoked from within new expression is to check the value
of this. if this equals global object most likely constructor is
invoked as a plain function
We follow the standard here now.