Return instancetype by Deferred.resolve, reject, notify.
Add test case.
Merge branch 'develop'