# Limitations

Most implementations of JavaScript are loosely based on a core script standard called ECMA. Beyond the standard there is a common set of non-standard language constructs supported by most implementations and other functions/constructs that are only supported by a subset of the JavaScript implementations.
Quite a few public JavaScript toolkits as well as the general popular usage of JavaScript exploit many of these non-standard language aspects making a pure modeling of the language difficult (if not impossible). Our solution is a complex inference engine that analyzes your JavaScript to help build an accurate model. Unfortunately the inference isn't always perfect. For these reasons some JavaScript class inferences may be imperfect and mark fields/methods/types as an error that really aren't. Of course we are working on this and plan to work with more edge cases as we progress.