This directory contains the contents of Promise A+ tests 2.0.5[1] ported into WebKit.
To use this tests inside WebKit LayoutTests, we sue browserify to generate `promise-tests.js`.

Additionally, this directory contains the following contents.

- promises-tests

promises-tests is Promise A+ test suite. It assumes that it works on the Node.js environment.
To use it in LayoutTests, we use browserify to transform Node.js styled JS code to
browser styled JS code.

- mocha

Mocha[2] is a test runner used in the promise-tests. This directory contains mocha.js
for browser environment in resource/mocha.js (version 1.21.4).

- browserify

promise-tests.js is generated by browserify[3], following instructions.

1. cd promise-tests
2. npm install
3. cd ../
4. browserify browserify-entry-point.js -o promises-tests.js

[1]: https://github.com/promises-aplus/promises-tests
[2]: http://visionmedia.github.io/mocha/
[3]: http://browserify.org/
