@ 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 ( ) ; } }
Includes the prototype iff someone has created it . We do not want to expose the prototype for ordinary functions .