code: public static Object emulateInvokeDynamic(ReloadableType rtype, Class<?> executorClass, Handle handle,
  			Object[] bsmArgs, Object lookup, String indyNameAndDescriptor, Object[] indyParams) {
  		try {
  			CallSite callsite = callLambdaMetaFactory(rtype, bsmArgs, lookup, indyNameAndDescriptor, executorClass);
  			return callsite.dynamicInvoker().invokeWithArguments(indyParams);
  		}
  		catch (Throwable t) {
  			throw new RuntimeException(t);
  		}
  	}
docs: Programmatic emulation of INVOKEDYNAMIC so initialize the callsite via use of the bootstrap method then invoke
  the result.
  
  @param executorClass the executor that will contain the lambda function, null if not yet reloaded
  @param handle bootstrap method handle
  @param bsmArgs bootstrap method arguments
  @param lookup The MethodHandles.Lookup object that can be used to find types
  @param indyNameAndDescriptor Method name and descriptor at invokedynamic site
  @param indyParams parameters when the invokedynamic call is made
  @return the result of the invokedynamic call