Strict mode doesn't have new "features", it has restrictions. Strict mode adds nothing over what ES3 already has, it only places restrictions on things which can cause issues or hinder the ability for the engine to optimize. this in functions is undefined instead of global, eval cannot dynamically inject new variables, eval cannot be renamed or passed around in ways that make eval get indirectly called and potentially inject code where it doesn't belong, `foo = 123` does not define an implied global and throws instead, while a nice feature but widely misunderstood while() {} prevents some potential optimizations so it's a syntax error in strict mode, there might have been one or two more.
Your code works fine whether it's run in ES3 or ES5. The difference is that when testing using an ES5 browser a lot of gotchas like forgetting var in front of a variable throw errors instead of silently exhibiting confusing behavior. As well any ES5 browser running the code has the opportunity to optimize the code and run it faster. ~Daniel Friesen (Dantman, Nadir-Seen-Fire) [http://daniel.friesen.name] Andrea Giammarchi wrote: > Who talked about users here? > > You put "strict" you do not have that common behavior, whatever right > or wrong it is, but you cannot use new features for compatibility reason. > > Where exactly do you find a better development and debug pattern with > this strategy? > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---