La mayoría de implementaciones de JavaScript están libremente basadas en un estándar de script de núcleo llamado ECMA.
Más allá del estándar, hay un conjunto común de construcciones de lenguaje no estándar soportadas por la mayoría de
implementaciones y otras funciones/construcciones que sólo están soportadas por un subconjunto de las implementaciones
de JavaScript.
Unos cuantos kits de herramientas de JavaScript públicos así como la utilización popular general de JavaScript explotan
muchos de estos aspectos de lenguaje no estándar haciendo muy difícil un modelado puro del lenguaje (cuando no
imposible). Una solución es un motor de inferencia complejo que analiza el Javascript para ayudar a construir un
modelo preciso. Desafortunadamente, la inferencia no es siempre perfecta. Por estas razones, alguna inferencia de
clase JavaScript puede ser imperfecta y marcar como erróneos campos/métodos/tipos que no lo son realmente. Por supuesto,
estamos trabajando en esto y planeamos trabajar con más casos grabados conforme avancemos.