I solved it already, have you tried my snippet to understand native IE functions?
Native IE functions have these "features" - they are not instanteof Function - they are not instanceof Object - accordingly, they have not a toString method, decompilation is in this case safe enough - you cannot call them via Function callbacks ( function expected, lol ) Regards On Mon, Aug 3, 2009 at 10:57 AM, DBJDBJ <dbj...@gmail.com> wrote: > > > There are two "main points" here: terminology and reliability. > http://dbj.org/dbj/?p=270 > (sorry for a blog plug ) > > typeof( window.alert ) === 'object' is going head-on towards browser > (+OS) differences so, same as ECMA comitee, I have no resources to > "solve" that one ... > > --DBJ > > On Aug 1, 3:16 pm, Andrea Giammarchi <andrea.giammar...@gmail.com> > wrote: > > come on it was quoted as a metaphor ... what you have done makes sense > but > > if the point is reliability it does not in any case with IE so let's > speed > > up a common function, no? > > > > On Sat, Aug 1, 2009 at 2:17 PM, DBJDBJ <dbj...@gmail.com> wrote: > > > > > "... DBJ 'mess' ... " ? > > > > > One espresso to many , Andrea :-) ? > > > > > PS: I think that top.alert() is "object" in IE because they can't > > > think of DOM as a exclusive domain of javascript. There is this thing > > > called "vbscript" they have to make work inside IE, as well ... but .. > > > let's not go there ;o) > > > > > On Jul 27, 5:43 pm, Andrea Giammarchi <andrea.giammar...@gmail.com> > > > wrote: > > > > Yes Daniel ... ( sorry I had another ticket open and I read Ariel ... > ) > > > > > > On Mon, Jul 27, 2009 at 5:43 PM, Andrea Giammarchi < > > > > > > andrea.giammar...@gmail.com> wrote: > > > > > Yes Ariel, I was talking about user defined stuff and obviously > typeof > > > > > "unknown" breaks the rule as well but this is not the case, is it? > > > > > > > If toString.call(obj) is not reliable cause it could return [object > > > Object] > > > > > DBJ "mess" is not reliable as well because passed variable could > not > > > produce > > > > > what he is expecting, starting from document.getElementById which > is > > > object > > > > > and not function in IE, got the point? > > > > > > > At least you told me why there is a call rather than an instanceof > but > > > what > > > > > about this for IE DOM functions? > > > > > > > return !!obj && typeof obj.toString === "undefined" && > > > > > /^\s*\bfunction\b/.test(obj); > > > > > > > it works fine to me in every IE (other browsers will be filtered by > > > first > > > > > feature test) > > > > > > > Regards > > > > > > > On Mon, Jul 27, 2009 at 5:29 PM, Daniel Friesen < > > > nadir.seen.f...@gmail.com > > > > > > wrote: > > > > > > >> typeof fn === 'function'; // Some things like > > > > >> document.createElement('object'); return wonky results > > > > >> fn instanceof Function; // Breaks across iFrames > > > > >> toString.call(fn) === "[object Function]"; // Works the same > across > > > > >> iFrames and returns more reliable results > > > > > > >> ~Daniel Friesen (Dantman, Nadir-Seen-Fire) [ > > >http://daniel.friesen.name] > > > > > > >> Andrea Giammarchi wrote: > > > > >> > About isFunction > > > > > > >> > I lost the point where toString.call(obj) === "[object > Function]" > > > was > > > > >> > introduced instead of obj instanceof function > > > > > > >> > I understand differences in IE so I wonder if two distinct > callbacks > > > > >> > could solve the odyssey: > > > > > > >> > isFunction: function( obj ) { > > > > >> > return obj instanceof Function; > > > > >> > }, > > > > > > >> > isDOMFunction: toString.call(window.alert) === "[object > > > Function]" ? > > > > >> > function( obj ) { > > > > >> > return toString.call(obj) === "[object Function]"; > > > > >> > }: > > > > >> > // IE only and only until standard native function > manifest > > > > >> > function( obj ){ > > > > >> > return !!obj && typeof obj.toString === "undefined" > && > > > > >> > /^\s*\bfunction\b/.test(obj); > > > > >> > } > > > > >> > , > > > > > > >> > In this way we could consider that in every browser, and when > > > > >> > call/apply are supported, isFunction(fn) will guarantee > call/apply > > > > >> > while a DOMFunction could require a try catch or a different > > > behavior > > > > >> > for IE > > > > > > >> > switch(true){ > > > > >> > case $.isFunction(fn): return fn.call(what, ever); > > > > >> > case $.isDOMFunction(fn): what.push.call(what, > > > toArray(fn(ever))); > > > > >> > return what; > > > > >> > default: throw new Error("what tf?"); > > > > >> > } > > > > > > >> > ... or maybe not? > > > > >> > Regards > > > > > > >> > On Sun, Jul 26, 2009 at 4:09 PM, Andrea Giammarchi > > > > >> > <andrea.giammar...@gmail.com <mailto: > andrea.giammar...@gmail.com>> > > > > >> wrote: > > > > > > >> > I usually encapsulate toString from Object.prototype and if > > > > >> > somebody breaks the rule it means we cannot trust anything > > > > >> > included typeof. So, in few words, nobody has intersts into > > > break > > > > >> > this rule, imho. > > > > > > >> >> On Jul 26, 2009 8:07 AM, "DBJDBJ" <dbj...@gmail.com > > > > >> >> <mailto:dbj...@gmail.com>> wrote: > > > > > > >> >> Also, IMHO this yields high level of encapsulation of an > > > important > > > > >> >> mechanism. > > > > >> >> Which is a good thing. > > > > >> >> And it is a fraction of a micro second slower then > > > > > > >> >> Object.prototype.toString.call(x) === "[object Object]" > > > > > > >> >> but it is more compact ... > > > > > > >> >> In any case we are entering the subjective judgement phase, > so > > > I > > > > >> >> think > > > > >> >> we should stop here and leave it to jQuery team to use this > or > > > > >> not... > > > > > > >> >> --DBJ On Jul 26, 12:09 am, Andrea Giammarchi > > > > >> >> <andrea.giammar...@gmail.com > > > > >> >> <mailto:andrea.giammar...@gmail.com>> wrote: > > > > > > >> >> > I miss the point about regexp usage ... please tell me > the > > > > >> >> difference (in a > real scenario) betwe... > > > > > > >> >> > On Sat, Jul 25, 2009 at 1:38 PM, DBJDBJ < > dbj...@gmail.com > > > > >> >> <mailto:dbj...@gmail.com>> wrote: > > > This indeed woks : > > > > >> functi... > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "jQuery Development" group. To post to this group, send email to jquery-dev@googlegroups.com To unsubscribe from this group, send email to jquery-dev+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/jquery-dev?hl=en -~----------~----~----~----~------~----~------~--~---