return proto_frame != null &&  descendsFrom(proto_frame, prototype);
boolean result = proto_frame != null &&  descendsFrom(proto_frame, prototype); return result;
    private boolean descendsFrom(Frame frame, String prototype)    {	String proto = frame.getKind();	if (proto == null) return false;	if (proto.equals(prototype)) return true;	Frame proto_frame = null;	synchronized (prototypes) {	    proto_frame = (Frame) prototypes.get(proto);	}	return proto_frame != null &&  descendsFrom(proto_frame, prototype);    }