ECMAScript 5.1, an older version of the standard upon which JavaScript is based, was approved in June 2011.

The JavaScript runtime used in the latest versions of Mozilla projects including both Firefox and Thunderbird has full support for ECMAScript 5.1 features. This article covers the features supported by different versions of Mozilla's JavaScript runtime.

## Supported features

### Added in JavaScript 1.8.5 (Gecko 2, Firefox 4 and later)

Firefox 4 has full ECMAScript 5 support including the `Object.*` methods and strict mode. See New in JavaScript 1.8.5.

### Added in JavaScript 1.8.1 (Gecko 1.9.1, Firefox 3.5)

- Native JSON support
- `Object.getPrototypeOf()` method.
- `String.trim()` method, which trims whitespace from both ends of the string.
- Gecko 1.9.1.4 updated the implementation of `JSON.stringify()` to be compliant with ECMAScript 5.

Improvements laid out by ECMAScript 5 have been made in the parsing algorithm that prevents evaluating XHTML as JavaScript code in certain circumstances.

### Added in JavaScript 1.6 (Gecko 1.8, Firefox 1.5)

New `Array` methods offering several improved methods for manipulating arrays -- have been part of JavaScript since JavaScript 1.6. Now they've been standardized as part of ECMAScript 5.

## See also

- ECMAScript web site
- ECMAScript 5.1 specification
- John Resig's post on Object.getPrototypeOf
- Michael J. Ryan's implementation of ECMAScript5 Dates in JavaScript
- ECMAScript 5 support across browsers