Obsługa języków dynamicznych JVM obecnie nie ma wbudowanej obsługi języków o dynamicznym systemie typów. Ponieważ istniejący zestaw instrukcji dla JVM jest w statycznym systemie typów, co oznacza, że wywołania metod mają przypisane sygnatury typów sprawdzane podczas kompilacji, bez mechanizmu odraczania sprawdzania do czasu uruchomienia kodu lub wybrania metody wysyłki przez alternatywny typ.

JSR 292 Supporting Dynamically Typed Languages on the JavaTM Platform (z ang. Obsługa języków o dynamicznym systemie typów na platformie JavaTM)JSR 292 dodaje nową instrukcję invokedynamic, która umożliwia wywołanie metody opierając się na dynamicznym sprawdzaniu typów (zamiast istniejącej funkcji invokevirtual, która opiera się na statycznym sprawdzaniu typów).