On Tue, Sep 10, 2013 at 1:31 PM, Domenic Denicola < [email protected]> wrote:
> Note that determining desired pattern is relevant to the new DOM promises > design (tracking this at > https://github.com/domenic/promises-unwrapping/issues/25). Omitting a few > steps not relevant to the issue under discussion, currently we do: > > - Let `then` be `Get(potentialThenable, "then")`. > - If `IsCallable(then)`, call `then.[[Call]](potentialThenable, (resolve, > reject))`. > > It seems like we'd want to apply the same logic here as we do to `valueOf` > etc., which is what I tried to model this after. > I guess for this case as well as for all or most of those Jason mentioned, something like [[MaybeInvoke]] is required. I.e., a version of the [[Invoke]] internal method[1] that has step 5 replaced by "If Type(method) is not Object, return undefined". Sections 9.2.4.11 and 9.3.11 would have to be dealt with similarly, by introducing non-typeerror-throwing [[MaybeInvoke]] versions. Your above steps would then become - call `potentialThenable.[[MaybeInvoke]]("then", (resolve, reject), potentialThenable)` (probably with some results handling, but I don't know enough about promises to include that, and it doesn't seem relevant.) [1]: http://people.mozilla.org/~jorendorff/es6-draft.html#sec-9.1.11
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

