The promises a+ 2.0+ tests have gotten fancier when compared with 1.0 set, and there is now a defined API for promises in the language (but still under development). prim 0.0.6+, which is used by alameda 0.2.0, has been updated to use the latest API and pass the latest tests. alameda allows prim to be used in app code, so for email code that wants to use promises before they are working well natively in the browser (and in web workers), that prim can be used for email code in the interim. Only merge this change if a specific email change needs up to date promises and if perf is not adversely affected.
Startup performance was measured by using plog() (defined in the email app) to log when message_list's _clearCachedMessages was called. That method is called once the worker has started up and and the front end has received real data from the backend, so it should be a good proxy for "all subsystems are go, real data fetched from DB", and excercises alameda in the worker and the front end. With 5 runs, averaged, in ms: Before: 3167 After: 3163 So performance is still equivalent. Time to first load is unaffected since the cookie cache is used before any other JS is loaded.
Merged in gaia master: https://github.com/mozilla-b2g/gaia/commit/191658a5032a2c206855c0a83b4d7479a487c352 from pull request: https://github.com/mozilla-b2g/gaia/pull/15278 Merged into GELAM master: https://github.com/mozilla-b2g/gaia-email-libs-and-more/commit/eb22d7c4c5ec6bd15488a9e1b00af0ab4cf739f9 from pull request: https://github.com/mozilla-b2g/gaia-email-libs-and-more/pull/279