Juriy,
we agreed that if we can write something in the DOM everybody else can
delete/overwrite it and fold our testing.

Your feature test on the "alert()" method will probably have failed
with this old piece of code of mine :-)

   http://javascript.nwbox.com/asyncAlert/


Diego


On 27 Gen, 22:20, kangax <kan...@gmail.com> wrote:
> On Jan 27, 1:37 pm, Diego Perini <diego.per...@gmail.com> wrote:
> [...]
>
> > One "span" element with an id="length" will do much more damages to
> > every existing framework/library, and there are tons of properties
> > that can be overwritten. Should we also hope no other browser
> > implements conditional comments ?
>
> > Are you interested in how much a test is "foldable" or how good it is
> > into recognize if the browser is IE ?
>
> > First case you win, second case I win.
>
> I'm not sure I understand your argument. Second "case" actually
> somewhat depends on the former one - how "good" it is would surely
> depend on how hard it is to *accidentally* break it. I also have no
> idea why you would want go with the weaker test when other - more
> robust ways - are available. Is it because `fileSize` saves few lines
> of code? It's up to you of course, but if something is known to
> produce false positives (in a not so contrived case scenario), why not
> try alternative approach? Chances of `document.fileSize` being truthy
> are too big (as for my taste); Its value is easily changeable by any
> 3rd party script. Why such risk? Why not use test that operates on a
> lower level?
>
> I would probably try testing for behavior that can not be easily
> overwritten. Something that is at the core of the object/host model.
> Something like:
>
> var IS_MSHTML_DOM = (function() {
>   var global = this;
>   return (
>     global.alert &&
>     // some host methods return "object" for `typeof`
>     typeof global.alert == 'object' &&
>     // some host methods do not inherit from `Function.prototype`
>     typeof global.alert.call == 'undefined' &&
>     // some host methods throw errors on setters
>     (function(){
>       try {
>         global.alert.x = true;
>         return false;
>       } catch(e) {
>         return true;
>       }
>     })()
>   )
>
> })();
>
> While it's still possible to fool this test, chances of that are, imo,
> much lower.
>
> --
> kangax
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to