code: @Override
    public final void clearCachedValues() {
      super.clearCachedValues();
  
      if (subTypes != null) {
        for (FunctionType subType : subTypes) {
          subType.clearCachedValues();
        }
      }
  
      if (!isNativeObjectType()) {
        if (hasInstanceType()) {
          getInstanceType().clearCachedValues();
        }
  
        if (prototypeSlot != null) {
          ((ObjectType) prototypeSlot.getType()).clearCachedValues();
        }
      }
    }
docs: prototypeSlot is non-null, and this override does nothing to change that state.