parameters: (descriptor, wrapperCache)
return_statement: return ("if (!UpdateMemberSlots(aCx, obj, aObject)) {\n"
              "%s"
              "  return nullptr;\n"
              "}\n" % clearWrapper)
docstring: Initialize member slots on our JS object if we're supposed to have some.
  
      Note that this is called after the SetWrapper() call in the
      wrapperCache case, since that can affect how our getters behave
      and we plan to invoke them here.  So if we fail, we need to
      ClearWrapper.
docstring_summary: Initialize member slots on our JS object if we're supposed to have some.
docstring_tokens: Initialize member slots on our JS object if we re supposed to have some .
function: def InitMemberSlots(descriptor, wrapperCache):
      """
      Initialize member slots on our JS object if we're supposed to have some.
  
      Note that this is called after the SetWrapper() call in the
      wrapperCache case, since that can affect how our getters behave
      and we plan to invoke them here.  So if we fail, we need to
      ClearWrapper.
      """
      if not descriptor.interface.hasMembersInSlots():
          return ""
      if wrapperCache:
          clearWrapper = "  aCache->ClearWrapper();\n"
      else:
          clearWrapper = ""
      return ("if (!UpdateMemberSlots(aCx, obj, aObject)) {\n"
              "%s"
              "  return nullptr;\n"
              "}\n" % clearWrapper)
function_tokens: def InitMemberSlots ( descriptor , wrapperCache ) : if not descriptor . interface . hasMembersInSlots ( ) : return "" if wrapperCache : clearWrapper = "  aCache->ClearWrapper();\n" else : clearWrapper = "" return ( "if (!UpdateMemberSlots(aCx, obj, aObject)) {\n" "%s" "  return nullptr;\n" "}\n" % clearWrapper )