Use 'new obj.constructor' instead of 'Object.create(Object.getPrototypeOf(obj))' as the latter won't have the right hidden class, not to mention that 'Object.defineProperty()' is ugly.