An open API service indexing awesome lists of open source software.

https://github.com/ddrcode/ddr-ecma5

ECMAScript 5 functionality for ECMAScript 3 interpreters
https://github.com/ddrcode/ddr-ecma5

Last synced: about 1 year ago
JSON representation

ECMAScript 5 functionality for ECMAScript 3 interpreters

Awesome Lists containing this project

README

          

ddr-ecma5
=========

**ddr-ecma5** lets you to write ECMAScript 5 code and run it on older environments like IE6
(I know - it must die anyway) or Firefox < 4. It works also perfectly outside the browser
- like Rhino, SpiderMonkey, etc.

## Installation
1. In **browser applications** just add the library to your web page and enjoy

```html

```

2. In **Rhino/SpiderMonkey** environments use `load` function:

```js
load('ddr-ecma5.js');
```

3. **Node.JS** - do not bother to load the library to your node projects - V8 supports ECMAScript 5 by itself.

## Testing
If you are curious which functionality of ECMAScript 5 is currently supported by your browser
open `test/ddr-ecma5-features-test.html` file. Another test file - `ddr-ecma5-test.html` - executes
a test of the library itself. All tests are using [QUnit](https://github.com/jquery/qunit) framework.

## Is it stable?
Yes it is! The library development started at the beginning of 2010 and each feature of it has been
properly tested. Version 1.2 of the library contains all ECMAScript 5 methods which can be implemented
with ECMAScript 3 features - means no new methods will be added.
Currently the author focuses only on the stability and performance of the library.
ddr-ecma5 is used by many developers in their private and commercial projects.

## Functionality and compatibility
Not all features of ECMAScript 5 can be implemented with ECMAScript 3. An example can be _freeze_
feature or the _strict mode_. However most of extensions, like new methods of Array, String or Function
are provided by the library.

The table below illustrates in which version of a browser the particular feature of ECMAScript 5
has been introduced. As you can see in most of the cases only the latest versions of the browsers
(like IE9, FF4, SF5) are supporting the ECMAScript 5 standard. You can use ddr-ecma5 library to
keep the backward compatibility with older browsers without resigning from ECMAScript 5 features.

Feature
ddr-ecma5ChromeFirefoxSafariOperaIERhino

Function.prototype.bind
1.07.04.0--9.01.7R3

Object.keys
1.05.04.05.0-9.01.7R3

Object.getPrototypeOf
1.0 15.04.05.0-9.01.7R3

Object.create
1.0 15.04.05.0-9.01.7R3

Object.defineProperty
1.2 15.04.05.0-8.0 31.7R3

Object.defineProperties
1.2 15.04.05.0-9.01.7R3

Object.getOwnPropertyDescriptor
1.25.04.05.0-8.01.7R3

Object.getOwnPropertyNames
1.25.04.05.0-9.01.7R3

Object.preventExtensions
- 26.04.0--9.01.7R3

Object.seal
- 26.04.0--9.01.7R3

Object.freeze
- 26.04.0--9.01.7R3

Object.isExtensible
1.16.04.0--9.01.7R3

Object.isSealed
1.16.04.0--9.01.7R3

Object.isFrozen
1.16.04.0--9.01.7R3

String.prototype.trim
1.05.03.55.010.59.01.7R3

Array.isArray
1.0.15.04.05.010.59.01.7R3

Array.prototype.indexOf
1.05.03.03.210.19.01.6R3

Array.prototype.lastIndexOf
1.05.03.03.210.19.01.6R3

Array.prototype.every
1.05.03.03.210.19.01.6R3

Array.prototype.some
1.05.03.03.210.19.01.6R3

Array.prototype.forEach
1.05.03.03.210.19.01.6R3

Array.prototype.map
1.05.03.03.210.19.01.6R3

Array.prototype.filter
1.05.03.03.210.19.01.6R3

Array.prototype.reduce
1.05.03.04.010.59.01.7R3

Array.prototype.reduceRight
1.05.03.04.010.59.01.7R3

Date.prototype.toISOString
1.05.03.54.010.59.01.7R3

Date.prototype.toJSON
1.05.03.54.0?8.01.7R3

Date.now
1.05.03.04.010.59.01.6R1

Strict mode
- 2-4.0----

Notes

1 - limited functionality in comparison to ECMAScript 5 specification

2 - impossible to implement this feature with ECMAScript 3 functionality

3 - on IE8 Object.defineProperty works only with DOM objects.