There are two more rejects that I did not dare touch, as they seemed to return some objects of unspecified form instead of strings. Namely:
Line 36 in lib/ComponentFactory.js
Line 72 in lib/lifecycle.js
There are also some uses of "sentinel" as a reject reason in test/node/aop-test.js but since it's in the test it might not matter all that much.
Fix some of the resolver.reject references to return Error objects
Hm, I forgot to reference #117
Looks great, thanks!
Yeah, the one in ComponentFactory is there for a specific reason and is never exposed to callers, and the sentinel values in the tests are specifically used for testing purposes.