The results aren't consistent with Object.getOwnPropertyNames; see discussion and test cases in https://bugs.webkit.org/show_bug.cgi?id=33603.
JSObject::hasOwnProperty() should use getOwnPropertyDescriptor() rather than getOwnPropertySlot(), since getOwnPropertySlot() does proxying of prototype properties; this is an implementation detail that shouldn't be exposed through public JS functions.
All dependent bugs are fixed and Safari pass all WPT related test for this:
Is something needed more here? Thanks!