@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();
      }
    }
  }
@ 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 ( ) ; } } }
prototypeSlot is non-null, and this override does nothing to change that state.