1 |
|
2 | ## 2.0.6
|
3 |
|
4 | Version 2.0.4 adds support for React Native by clarifying in package.json that
|
5 | the browser environment does not support Node.js domains.
|
6 | Why this is necessary, we leave as an exercise for the user.
|
7 |
|
8 | ## 2.0.3
|
9 |
|
10 | Version 2.0.3 fixes a bug when adjusting the capacity of the task queue.
|
11 |
|
12 | ## 2.0.1-2.02
|
13 |
|
14 | Version 2.0.1 fixes a bug in the way redirects were expressed that affected the
|
15 | function of Browserify, but which Mr would tolerate.
|
16 |
|
17 | ## 2.0.0
|
18 |
|
19 | Version 2 of ASAP is a full rewrite with a few salient changes.
|
20 | First, the ASAP source is CommonJS only and designed with [Browserify][] and
|
21 | [Browserify-compatible][Mr] module loaders in mind.
|
22 |
|
23 | [Browserify]: https://github.com/substack/node-browserify
|
24 | [Mr]: https://github.com/montagejs/mr
|
25 |
|
26 | The new version has been refactored in two dimensions.
|
27 | Support for Node.js and browsers have been separated, using Browserify
|
28 | redirects and ASAP has been divided into two modules.
|
29 | The "raw" layer depends on the tasks to catch thrown exceptions and unravel
|
30 | Node.js domains.
|
31 |
|
32 | The full implementation of ASAP is loadable as `require("asap")` in both Node.js
|
33 | and browsers.
|
34 |
|
35 | The raw layer that lacks exception handling overhead is loadable as
|
36 | `require("asap/raw")`.
|
37 | The interface is the same for both layers.
|
38 |
|
39 | Tasks are no longer required to be functions, but can rather be any object that
|
40 | implements `task.call()`.
|
41 | With this feature you can recycle task objects to avoid garbage collector churn
|
42 | and avoid closures in general.
|
43 |
|
44 | The implementation has been rigorously documented so that our successors can
|
45 | understand the scope of the problem that this module solves and all of its
|
46 | nuances, ensuring that the next generation of implementations know what details
|
47 | are essential.
|
48 |
|
49 | - [asap.js](https://github.com/kriskowal/asap/blob/master/asap.js)
|
50 | - [raw.js](https://github.com/kriskowal/asap/blob/master/raw.js)
|
51 | - [browser-asap.js](https://github.com/kriskowal/asap/blob/master/browser-asap.js)
|
52 | - [browser-raw.js](https://github.com/kriskowal/asap/blob/master/browser-raw.js)
|
53 |
|
54 | The new version has also been rigorously tested across a broad spectrum of
|
55 | browsers, in both the window and worker context.
|
56 | The following charts capture the browser test results for the most recent
|
57 | release.
|
58 | The first chart shows test results for ASAP running in the main window context.
|
59 | The second chart shows test results for ASAP running in a web worker context.
|
60 | Test results are inconclusive (grey) on browsers that do not support web
|
61 | workers.
|
62 | These data are captured automatically by [Continuous
|
63 | Integration][].
|
64 |
|
65 | ![Browser Compatibility](http://kriskowal-asap.s3-website-us-west-2.amazonaws.com/train/integration-2/saucelabs-results-matrix.svg)
|
66 |
|
67 | ![Compatibility in Web Workers](http://kriskowal-asap.s3-website-us-west-2.amazonaws.com/train/integration-2/saucelabs-worker-results-matrix.svg)
|
68 |
|
69 | [Continuous Integration]: https://github.com/kriskowal/asap/blob/master/CONTRIBUTING.md
|
70 |
|