code: public boolean defaulted(String name) throws IllegalArgumentException {
          ObjectSlot slot = findSlot(name, null);
          if (slot == null) {
              throw new IllegalArgumentException("no field '" + name + "'");
          }
          return slot.defaulted;
      }
docs: Returns {@code true} indicating the field called {@code name} has not had
  a value explicitly assigned and that it still holds a default value for
  its type, or {@code false} indicating that the field named has been
  assigned a value explicitly.
  
  @param name
  the name of the field to test.
  @return {@code true} if {@code name} still holds its default value,
  {@code false} otherwise
  
  @throws IllegalArgumentException
  if {@code name} is {@code null}