My promises implementation in task.js is not at all compliant with Promises/A{+}. It's funny, actually, I did this work before I understood why promises implicitly chain — and with task.js it doesn't really need them to chain. But my promises will not interoperate correctly with any popular promise libraries.
And anyway, task.js should do one thing and do it well… ;-) So we should just depend on RSVP instead of rolling our own promises.