code: @Override
    public final Set<String> getOwnPropertyNames() {
      if (prototypeSlot == null) {
        return super.getOwnPropertyNames();
      } else {
        ImmutableSet.Builder<String> names = ImmutableSet.builder();
        names.add("prototype");
        names.addAll(super.getOwnPropertyNames());
        return names.build();
      }
    }
docs: Includes the prototype iff someone has created it. We do not want to expose the prototype for
  ordinary functions.