This internal function is used to retrieve internal properties from objects.
If the property exists in the receiving object, its value will be returned.
If the property is not a member of the receiving object, then if the Prototype property for this object returns null, we have reached the top of the prototype chain so the property is undefined. The result will be the undefined value.
If the property does not exist, and there is a parent Prototype object, then the message is passed to that object for evaluation.
The Get internal function may indeed return a value when received by a host object, even if that host object would respond to the HasProperty function with a false result indicating that the property does not exist.