This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
http://dom.spec.whatwg.org/#promises-model would be simpler if "If JavaScript IsCallable(then) is true, run these substeps and then terminate these steps:" wasn't there, but if 'then' isn't callable, just throw and handle that the same way what would happen if 'then' was callable and throws an exception.
Why would we try to invoke 'then' if it's not callable though? It seems this design might change slightly anyway :/
The reason for doing [[Get]] and checking if it's callable and then [[Call]] rather than just doing [[Invoke]] is because a lot of JavaScript does it that way. We might change some of this though: https://github.com/domenic/promises-unwrapping/issues/25 In any event, this is now out of scope for DOM as the text has moved (temporarily).