The delete operator returns true whenever the property is gone afterward, including when it never existed, so delete o.y is true. A property defined with configurable: false cannot be deleted; Reflect.deleteProperty returns false to signal the failed removal (whereas plain delete would throw in strict mode). The two results show delete’s success is about the final state, not whether anything was actually removed.