Hello List,

when I recently thought about a way to get AS3 code to JavaScript I got into a major concept problem related to Weak references. As maybe most of you know weak references are not supported by JavaScript. However: The current code using addEventListener() relies heavily on weak references to not come in trouble with memory leaks. This is also a big problem in other UI toolkits to my knowledge and other toolkits solve this using destructors or completely inverse control logic. For example in SWT you have to call:

Widget.dispose();

after you stopped using your widget. The destructor-approach is in theory a lot faster than the weak reference approach because it doesn't rely on a garbage collector but it comes with a lot of code-noise. The other approach, to have it in a completely inverse control flow looks like this:

class Component implements IUIEventHandler {
   public function handleMouseEvent() {}
}

and handleMouseEvent is called from outside. All other approaches I know are just derivations of these two concepts. This means to me: Any use of weak Dictionaries and weak event listeners would need to vanish from the Flex SDK to actually make it portable.

I just wanted to point that out. It might be interesting to a few.

And related to that two questions:
1) Does anyone know how browsers avoid memory leaks with addEventListener ?
 2) Would the Flex team be open to such a fundamental change in code-style?

yours
Martin

Reply via email to