Are you sure that you have the right link there? The term “invokedynamic” doesn’t appear anywhere on that page. Indeed, “invoke” doesn’t appear on the page.
However, you are correct in terms of the Java compiler. Here’s a complete discussion: https://www.logicbig.com/tutorials/core-java-tutorial/java-8-enhancements/java-lambda-functional-aspect.html. Note that the runtime has options for what to produce when it hits the invoke dynamic. It can do what is fastest. I have a feeling that there are times when making an anonymous class could be deemed the fastest option if it is going to be used a lot.