static bool ensure_value_for_header(JSContext *cx, HandleObject self, HandleValue normalized_name,
                                    MutableHandleValue values) {
  if (!detail::lazy_values(self))
    return true;

  RootedObject map(cx, detail::backing_map(self));
  if (!JS::MapGet(cx, map, normalized_name, values))
    return false;

  // Value isn't lazy, just return it.
  if (!values.isNull())
    return true;

  return detail::retrieve_value_for_header_from_handle(cx, self, normalized_name, values);
}
static bool ensure_value_for_header(JSContext *cx, HandleObject self, HandleValue normalized_name,
                                    MutableHandleValue values) {
  if (!detail::lazy_values(self))
    return true;

  RootedObject map(cx, detail::backing_map(self));
  if (!JS::MapGet(cx, map, normalized_name, values))
    return false;

   
  if (!values.isNull())
    return true;

  return detail::retrieve_value_for_header_from_handle(cx, self, normalized_name, values);
}