static bool WaiveAccessors(JSContext* cx, MutableHandle<PropertyDescriptor> desc) { if (desc.hasGetterObject() && desc.getterObject()) { RootedValue v(cx, JS::ObjectValue(*desc.getterObject())); if (!WrapperFactory::WaiveXrayAndWrap(cx, &v)) return false; desc.setGetterObject(&v.toObject()); } if (desc.hasSetterObject() && desc.setterObject()) { RootedValue v(cx, JS::ObjectValue(*desc.setterObject())); if (!WrapperFactory::WaiveXrayAndWrap(cx, &v)) return false; desc.setSetterObject(&v.toObject()); } return true; }
bool JSCompartment::wrap(JSContext* cx, MutableHandle<PropertyDescriptor> desc) { if (!wrap(cx, desc.object())) return false; if (desc.hasGetterObject()) { if (!wrap(cx, desc.getterObject())) return false; } if (desc.hasSetterObject()) { if (!wrap(cx, desc.setterObject())) return false; } return wrap(cx, desc.value()); }