- From: Jason Orendorff <jason.orendorff@gmail.com>
- Date: Tue, 10 Mar 2015 16:12:33 -0500
- To: Jonas Sicking <jonas@sicking.cc>
- Cc: "Mark S. Miller" <erights@google.com>, "Tab Atkins Jr." <jackalmage@gmail.com>, David Dorwin <ddorwin@google.com>, public-script-coord <public-script-coord@w3.org>, Boris Zbarsky <bzbarsky@mit.edu>
On Mon, Mar 9, 2015 at 6:57 PM, Jonas Sicking <jonas@sicking.cc> wrote:
> But how does the call that create the two objects create them? If not
> through their constructor?
Prose algorithms.
Here's how the precedents, `new Promise(executor)` and
`Proxy.revocable(target, handler)`, are specified in ES6:
* https://people.mozilla.org/~jorendorff/es6-draft.html#sec-promise-executor
(particularly note how CreateResolvingFunctions, called in step 9,
explicitly creates objects and POKEs references to each other into them)
* Proxy.revocable is clearer:
https://people.mozilla.org/~jorendorff/es6-draft.html#sec-proxy.revocable
See step 4.
So the spec has a way to say "ok, create a bunch of objects and hook
'em up like so", but scripts don't. A bit of "putting magic into the
API" seems unavoidable to me, as this is exactly the property you're
after, right?
-j
Received on Tuesday, 10 March 2015 21:13:01 UTC