#469 add hasownproperty to prevent references looking in the prototype

fix for issue in #469.

This pull request only addresses the head of master. If we want to address the previous branches I can add the fixes to those branches too.

thanks
Can this be abstracted out?  Maybe create something like a ContextValue object that wraps user defined values, and can't reach into the prototype.  and then just do something like contextVal.getValue()