Experimental implementation of Object.observe & JS Utility library now available

Tab Atkins Jr. jackalmage at gmail.com
Fri Aug 17 22:37:44 PDT 2012


On Fri, Aug 17, 2012 at 7:30 PM, Brendan Eich <brendan at mozilla.org> wrote:
>>   and they're *very*
>> prone to making the browser crashy. Get the slightest thing wrong in
>> your implementation, and suddenly the user is holding onto a null
>> pointer.
>
> This you'll have to explain more. What pointer, to what point-ee? Why
> nulled?

In a perfect implementation, everything's fine.

In real-world implementations, when the user changes the world during
their listener invocation, and then the JS engine picks up where it
left off and tries to finish the operation that triggered the listener
(because mutation events happen during/before the actual mutation),
some of those hanging operations are sometimes not properly notified
of the world-changes, and bam, null pointer exception (or otherwise
invalid operation invoked on a tree that the operation didn't expect).

This happens so often, and so widely, that it seems to be a fact of
life - the DOM is just too complicated to properly inform everyone of
everything that a user could change, when the user has the opportunity
to pre-empt some of the operations.

~TJ


More information about the es-discuss mailing list