| 172 | } |
| 173 | |
| 174 | bool PyObjectProxyHandler::hasOwn(JSContext *cx, JS::HandleObject proxy, JS::HandleId id, |
| 175 | bool *bp) const { |
| 176 | PyObject *attrName = idToKey(cx, id); |
| 177 | PyObject *self = JS::GetMaybePtrFromReservedSlot<PyObject>(proxy, PyObjectSlot); |
| 178 | *bp = PyObject_HasAttr(self, attrName) == 1; |
| 179 | return true; |
| 180 | } |
| 181 | |
| 182 | bool PyObjectProxyHandler::getOwnEnumerablePropertyKeys( |
| 183 | JSContext *cx, JS::HandleObject proxy, |