Re: [whatwg] Object.observe()able properties on the web platform

Just a quick idea: would it be desirable to have Object.observe work on
*any* property, either through change events, or through dirty-checking?
This would mean that from a developer's perspective, it would Just Always
Work. Developers could then use the "observable" annotation in the
documentation to determine if there would be any performance considerations.


On Wed, Aug 20, 2014 at 9:06 AM, Domenic Denicola <> wrote:

> [Spawning new thread on public-script-coord; whatwg to bcc]
> From: whatwg <> on behalf of Jonas Sicking
> <>
> > On Wed, Aug 20, 2014 at 1:33 AM, Anne van Kesteren <>
> wrote:
> >> On Wed, Aug 20, 2014 at 10:29 AM, Jonas Sicking <>
> wrote:
> >>> FWIW, the web platform sorely needs a construct for "readonly state
> >>> variable + event whenever the state changes". I.e. some form of
> >>> observable which remembers the last produced value. I had hoped the
> >>> Streams would get us closer to that, but the current definition seems
> >>> to be too different.
> >>
> >> Isn't that Object.observe() with custom records produced by the
> >> specific object you are defining for the property you want to enable
> >> this for (in this case held, it seems like)?
> >
> > That's a good question. It'd be awesome if Object.observe() solved this
> problem for us.
> >
> > One thing that I'd worry about is that it'll be hard for authors to know
> which properties are observable, and which ones aren't. But maybe that's
> something we can live with.
> Object.observe() is in my mind exactly what solves this problem.
> Remember that it doesn't work out-of-the-box for getters. And, most DOM
> properties are clearly "getter-like" from an author perspective: i.e.,
> besides that being their actual observable implementation, they also are
> usually getting some underlying part of the system that is not otherwise
> accessible; it is hard to imagine them as simple data properties which
> anyone can toggle. So IMO authors will bring the same expectations to DOM
> objects they do to regular objects: getters will be sometimes observable,
> but only if the implementation of that object has taken the time to make
> them so.
> I think it would be a good idea to start working on additions to WebIDL to
> mark properties as observable, so that Chrome at least can start firing
> change records for them. I imagine this propagating to developer docs (MDN
> etc.) as some kind of "observable" annotation that authors will come, in
> time, to learn means they can Object.observe() that property.

Received on Friday, 29 August 2014 07:13:51 UTC