2.4.3.1 Object.getOwnPropertyDescriptor (O, P)
This function is not defined for JScript 5.7. It exists only in JScript 5.8.
When the getOwnProperty function is called, the following steps are taken:
2. If the Type(O) is not Object, raise a TypeError exception.
3. If the O is not a host object that supports property access using this function, raise a TypeError exception.
4. Let name be ToString(P)
5. If O does not have an own property named name, return a new object created as if by evaluating the ECMAScript expressions: {configurable:true,enumerable: true,value: undefined, writable: true}
6. Let desc be a new object created as by evaluating the expression { }.
7. If the own property named name of O has the DontEnum attribute, let flag be true; if it does not have the DontEnum attribute, let flag be false.
8. Call the [[Put]] method of desc passing "enumerable" and flag as arguments.
9. If the own property named name of O has the DontDelete attribute, let flag be false; if it does not, have the DontEnum attribute let flag be true.
10. Call the [[Put]] method of desc passing "configurable" and flag as arguments.
11. If the own property named name of O is an accessor property, go to step 16.
12. Let value be the current value of the own property named name of O.
13. Call the [[Put]] method of desc passing "value" and value as arguments.
14. If the own property named name of O has the ReadOnly attribute, let flag be false; if it does not have the ReadOnly attribute, let flag be true.
15. Call the [[Put]] method of desc passing "writable" and flag as arguments.
16. Return desc.
17. If the own accessor property named name of O has a defined get function, let func be that function object; otherwise, let func be undefined.
18. Call the [[Put]] method of desc passing "get" and func as arguments.
19. If the own accessor property named name of O has a defined set function, let func be that function object; otherwise, let func be undefined.
20. Call the [[Put]] method of desc passing "set" and func as arguments.
21. Return desc.