New in JavaScript 1.8.5

JavaScript 1.8.5 is the version of JavaScript included in Firefox 4.

New functions

Function Description
Object.create Creates a new object with the specified prototype object and properties. bug 492840
Object.defineProperty Adds the named property described by a given descriptor to an object.
Object.defineProperties Adds the named properties described by the given descriptors to an object.
Object.getOwnPropertyDescriptor Returns a property descriptor for a named property on an object. bug 505587
Object.keys Returns an array of all enumerable properties on an object. bug 307791
Object.getOwnPropertyNames Returns an array of all enumerable and non-enumerable properties on an object. bug 518663
Object.preventExtensions Prevents any extensions of an object. bug 492849
Object.isExtensible Determine if extending of an object is allowed. bug 492849
Object.seal Prevents other code from deleting properties of an object. bug 492845
Object.isSealed Determine if an object is sealed. bug 492845
Object.freeze Freezes an object: other code can't delete or change any properties. bug 492844
Object.isFrozen Determine if an object was frozen. bug 492844
Array.isArray Checks if a variable is an array. bug 510537
Date.toJSON Returns a JSON format string for a Date object.
Function.prototype.bind Creates a new function that, when called, itself calls this function in the context provided (with a given sequence of arguments) bug 429507

New ECMAScript5 features

Other standardization work

Various non-standard syntaxes for defining getters and setters have been removed; ECMAScript 5 defined syntax has not been changed. These were all pretty esoteric and rarely used; if this affects you, see this blog post for details.

New objects

Object Description
Proxy Offers support for creating Object and Function proxies that enable meta-programming in JavaScript.

Changes to global objects

ISO 8601 support in Date
The Date object's parse() method now supports simple ISO 8601 format date strings.
Global objects made read only
The NaN, Infinity, and undefined global objects have been made read only, per the ECMAScript 5 specification.

Additional changes

JavaScript (SpiderMonkey) API changes

Note: Locale callbacks (as specified in the JSLocaleCallbacks structure) should not free the memory buffer passed to them; this buffer is managed by the SpiderMonkey runtime.

The JS_NewString() function was removed in SpiderMonkey 1.8.5. Use JS_NewStringCopyN() instead.

Document Tags and Contributors

Last updated by: teoli,