Uhh, yeah, you're right. For some reason I thought I saw `fibrous.js` pass that test once, but it doesn't. My bad.

About your second point, I don't know - I believe a lot of modules handle those exceptions. For example I know that [Q](//github.com/kriskowal/q) and [genny](//github.com/spion/genny) do it...

What would the difference be between (3) and `--throw`? Isn't the exported function `upload()` is an async function implemented in the target technology that does throw after doing a couple of async operations?