On Oct 11, 2007, at 8:02 PM, Garrett Smith wrote: >> If you want to apply or call a non-function >> callable, use Function.apply(callable, thisp, argArray) or >> Function.call(callable, thisp, arg1, ...argN). >> > So these are equivalent? > > aNonFunctionCallableObj() > Function.call( aNonFunctionCallableObj )
We don't need to go back and forth -- I wrote essentially the same thing, but included the optional arguments. The two expressions you wrote are equivalent assuming the global object should bind to |this| for both to be equivalent. > If an object is invokable with arguments (), but not a Callable, it's > impossible to type check. IE's call-like operation on with () is not > [[call]]. Why do you say that? There's no reflection of [[Call]] into the language yet, so how can you tell? (Don't rely on typeof x == "function" meaning x.[[Call]] exists -- browsers do not follow ES3 here, although we tried in SpiderMonkey for years before throwing in the towel.) > Microsoft often says that it is necessary to retain backwards > compatibility. I would hope they would You're barking up the wrong tree here. This is es4-discuss. > Mozilla has this weird function-like thing, too, (only with > document.all, which is not used much anymore) As I keep saying, any reflection of document.all in an ES4 "DOM level 0 plus IE quirks" binding should indeed make (document.all is Callable) => true. >> I don't know what "BackCompat mode" means, but we do reflect >> document.all if a script uses it without object-detecting it, and >> only in such cases (since many well-written scripts fork based on if >> (document.all) ... else ... tests and we want to run the else >> clause). >> > document.compatMode > "CSS1Compat" -- standards mode > "BackCompat" - quirks mode > > BackCompat supports document.all No, you're mixing things up. As I wrote, our document.all emulation has nothing to do with DOM specs or document.compatMode, and it works irrespective of the latter's value. > Mozilla really made document.all look like IE's weird > collection-that-can-be-invoked-with-(). Like, yeah -- that was the point! /be _______________________________________________ Es4-discuss mailing list Es4-discuss@mozilla.org https://mail.mozilla.org/listinfo/es4-discuss