Andrea Giammarchi (2013-12-16T23:26:40.000Z)
domenic at domenicdenicola.com (2013-12-24T23:54:43.855Z)
no prefix and early versions is a mess to feature detect too ... if two engines offer same name and different signature or functionality you need to feature detect at runtime which one is correct and this is **not walys possible** A clear example is IndexedDB or anything that trigger the ultra-annoying top thingy in Firefox that asks permission for ... as it is, lately even for localStorage. Same name incomplete globals means dealing with a weak User Agent sniffing over "pretending" functionality while this means that what is returned first, is what I can expect and hopefully correct by specs: `var raf = window.requestAnimationFrame || window.mozRequestAnimationFrame;` I can eventually understand if a prefix was used then decide that if the non prefixed version is there the behavior of that method or that browser is "X" In this case I don't know if WeakMap is the IE11 one or the partially implemented in Chrome with experimental flags ... how much difficult all this has to be for developers? I thought features detection were the way to go ... unified names with any sort of early signature adoption on top is a nice theory that does not work in practice, imho. We'll see more and more pointless UA sniffing, being unable to know if the updated version of the same browser did eventually fix that constructor or not ... not even a [experimental Function] instead of [native Function] as {}.toString.call I guess, right? I know there's no perfect solution but prefixes have been a very practical one that worked. Libraries can use prefixes once ... browsers can alias final globals with prefixes without problems, if these where OK so that matches() or mozMatchSelectos() will be basically the same function.