Implementation details
To keep code as testable as possible, yet conform as closely as possible to the brighterscript nodeclass language feature propositions maestro does the following:
- Maintains the original classes in the code (so they can be unit tested)
- Replaces all
m.fieldNamereferences tom.top.fieldNamereferences for public fields, so developers can code in a class-centric way, without having to worry about node-var space, vs class var space vs m var space - Assigns all default values for public fields to
m.topin the node'sinitmethod - Instantiates the class inside the node, according to the
@lazyannotation (i.e. either instantiation can be deferred for performance wins) - Appends the node class into the node's m
- This better conforms with the proposed brighterscript implementation
- Allows seamless and direct access to the node's m and top