* Resolves normal objects * Resolves promises in objects * Resolves nested promises * Fails on circular objects with more than one ref to self