Fixed loop bug with prototypal inheritance

Object.defineProperty defines an extension property so that looping through a newly created object will not bring up the property, unlike using *.prototype