code: private String exposeExistingJavaMethodToJs(ExecutableElement originalMethod) {
      Emit emitAnnotation = originalMethod.getAnnotation(Emit.class);
  
      if (emitAnnotation != null) {
        // @Emit methods must be overridden so the exposed method must keep the same name
        String methodName = originalMethod.getSimpleName().toString();
        createProxyJsMethod(componentExposedTypeBuilder, originalMethod, methodName);
        addMethodToProto(methodName);
        return methodName;
      } else if (!isMethodVisibleInJS(originalMethod)) {
        String proxyMethodName = addNewMethodToProto();
        createProxyJsMethod(componentExposedTypeBuilder, originalMethod, proxyMethodName);
        return proxyMethodName;
      } else {
        String methodName = originalMethod.getSimpleName().toString();
        addMethodToProto(methodName);
        return methodName;
      }
    }
docs: Generate a JsInterop proxy method for a {@link IsVueComponent} method. This proxy will keep the
  same name in JS and can be therefore passed to Vue to configure our {@link IsVueComponent}.
  
  @param originalMethod Method to proxify
  @return The exposed method name