So to summarize:

- This would be very useful in large MVC applications with many independent
components.
- Even with WeakMaps there is no way to implement weak event listeners,
since WeakMaps cannot be iterated. A weak reference implementation would
solve this.
- The main problem with weak event listeners is that they are not
deterministic; even if you remove all references to an object there is no
way to ensure that the object is garbage collected immediately, and so
events would still be dispatched to it for an indeterminable period of time
after the last strong reference is severed. I'm not sure of how big of a
problem this would be; it might be an annoyance or it might break the
application completely.

Marius Gundersen


On Tue, Mar 26, 2013 at 4:24 AM, Benoit Marchant <march...@mac.com> wrote:

> Very true, I'm wondering if based on usage today it could make sense to
> have this as default behavior on current API?
>
> Benoit
>
> On Mar 25, 2013, at 19:51, Peter Michaux <petermich...@gmail.com> wrote:
>
> > On Mon, Mar 25, 2013 at 2:55 AM, Marius Gundersen <gunder...@gmail.com>
> wrote:
> >
> >> One thing which is impossible to make in JavaScript today is a weakly
> >> referenced event listener system. In such a system an event listener is
> not
> >> strongly referenced by the event system, so events are only dispatched
> to it
> >> as long as another object holds a reference to it.
> >
> > Being able to make an observable subject that keeps a weak list of
> > observers would be very useful to ease memory management within an
> > application and avoid accidental memory leaks at the application
> > level. Sometimes the application programmer may forgot to remove a
> > observer from an observable subject, for example.
> >
> > With regard to the MVC architecture, this could be the best addition
> > to the language to make application development easier. A view might
> > mistakenly not unsubscribe from its associate model when the view is
> > destroyed, for example. That or the view's destroy method is never
> > even called because the application programmer forgot to call it.
> >
> > Peter
> > _______________________________________________
> > es-discuss mailing list
> > es-discuss@mozilla.org
> > https://mail.mozilla.org/listinfo/es-discuss
>
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to