This pass targets j2cl output. It looks for static get and set methods defined within a class
that follow the naming convention of j2cl static fields and inlines them at their
call sites. This is done for performance reasons since getter and setter accesses are slower
than regular field accesses.
This will be done by looking at all property accesses and determining if they have a
corresponding get or set method on the property qualifiers definition. Some caveats:
- - We make the assumption that all names that match the j2cl static field naming convention:
they are unique to their declared class.
- - Avoid inlining if the property is set using compound assignments.
- - Avoid inlining if the property is incremented using ++ or --
Since the FunctionInliner class really only works after the CollapseProperties pass has run, we
have to look for Object.defineProperties instead of es6 get and set nodes since es6
transpilation has already occured.