(obj, name, desc)
| 3720 | // get masked as one overwrites the other. Accordingly, the thrown error |
| 3721 | // complains of a "Conflicting definition". |
| 3722 | function initProperty(obj, name, desc) { |
| 3723 | if( objectHasOwnProperty(obj, name)) { |
| 3724 | const preDesc= getOwnPropertyDescriptor(obj, name); |
| 3725 | if( |
| 3726 | !preDesc|| |
| 3727 | !is(preDesc.value, desc.value)|| |
| 3728 | preDesc.get!== desc.get|| |
| 3729 | preDesc.set!== desc.set|| |
| 3730 | preDesc.writable!== desc.writable|| |
| 3731 | preDesc.enumerable!== desc.enumerable|| |
| 3732 | preDesc.configurable!== desc.configurable) |
| 3733 | { |
| 3734 | throw TypeError( `Conflicting definitions of ${name}`); |
| 3735 | } |
| 3736 | } |
| 3737 | defineProperty(obj, name, desc); |
| 3738 | } |
| 3739 | |
| 3740 | // Like defineProperties, but throws if it would modify an existing property. |
| 3741 | // This ensures that the intrinsics added to the intrinsics collector object |
no test coverage detected