On 8/15/12 3:32 PM, Travis Leithead wrote:
The problem: a few [high profile] sites are using a coding practice that uses
feature detection of the following pattern:
var [standardized property name] = window.[standardized property name] ||
window.[implementation-specific property name] || [etc.]
Firefox is affected by this problem (e.g., the result of the var declaration is
undefined)
Chrome is not affected by this problem because their var creation algorithm
checks the prototype chain for an existing property name
And also because in Chrome IDL attributes are placed directly on the object.
One side effect as I understand this, would be that:
var indexedDb = "test";
alert(indexedDb);
would result in "test", and the original indexedDb property would be lost. Is
this your understanding as well?
That's correct.
Another side effect of this proposed change is that:
var onload = function(e) { ...}
would actually assign the event handler (it does in Chrome today, not in
Gecko/IE9/10).
Again, correct.
I was curious just how "bad" the currently reported bug actually is. I ran a query
looking for use of var indexedDb and var requestAnimationFrame across our web data index (which is
unfortunately about a year old). jQuery uses the requestAnimationFrame a lot--but their use is
contained to the jQuery scope closure. Modernizer was also using the var indexedDb technique, but
Modernizer also runs in a scope closure and thus is not affected by this issue. In fact, any major
library (and a lot of other sites that have adopted the "module pattern") won't be
affected by this at all.
https://bugzilla.mozilla.org/show_bug.cgi?id=770844#c29 claims there is
actual site breakage involved. Presumably Jonas can give you more
detailed info here; ccing him.
Personally, I'd like to avoid making a change to IE in this regard if I can
avoid it.
Are you planning to drop the prefixed name in IE?
-Boris
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss