ECMAScript 5 is in its final draft as I write this; It is due to include a strict mode which will prevent you from assigning to the global object, using eval, and other restrictions. (John Resig's Article is a good introduction.)
This magical sanity-saving mode is triggered by including the string "use strict" at the top of your file (or function.) However, in older environments, "use strict" is a no-op. If you add "use strict" and don't test it in a strict environment, you could be leaving a time-bomb of not-really-strict code that will break when it really hits a strict environment.
Which environments actually respect "use strict"?
Strict mode changes some previously-accepted mistakes into errors. JavaScript was designed to be easy for novice developers, and sometimes it gives operations which should be errors non-error semantics. Sometimes this fixes the immediate problem, but sometimes this creates worse problems in the future.
Strict Mode(“use strict”) helps identify common issues (or “bad” parts) and also helps with “securing” JavaScript. In ES5, the Strict Mode is optional but in ES6, it's needed for many ES6 features.
ES6 modules and classes are strict by default.
Update:
See my compatibility table.
Original response:
None as of now.
Raphael Speyer was working on Mozilla implementation for Rhino during this summer, and afaik, their implementation is pretty close to completion.
I know (based on info from ES-discuss list) that Microsoft is planning to include some of ES5 features into upcoming versions of IE and they might very well be working on strict mode implementation right now (as you probably know, IE8 already includes some of ES5 features, like Object.defineProperty
).
There's also Google's Caja project which somewhat emulates behavior of strict mode in some of its variations (Valija, Cajita, etc).
Crockford also recently added this option to JSLint, but I'm not sure if it actually triggers any additional validations (as per ES5-strict rules).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With