These rules shouldn't be violated when using the getOwnPropertyDescriptor trap:
- This trap must either return an object or return an undefined property
- You cannot return the undefined value if the property exists as a non-configurable own property of the target object
- You cannot return the undefined value if the property exists as an own property of the target object and the target object is not-extensible
- You will have to return undefined if the property does not exist as an own property of the target object and the target object is not-extensible
- You cannot make the configurable property of the returned descriptor object false if the property exists as an own property of the target object, or ...