angular/angular.js — pull request #8708 by jeffbcross (2014-08-21 17:22:33+00:00)
Title: refactor($q): make $q Promises A+ v1.1 compilant

The Promises A+ 1.1 spec introduces new constraints that would cause $q to fail,
particularly specs 2.3.1 and 2.3.3.

Newly satisfied requirements:

* "then" functions that return the same fulfilled/rejected promise
will fail with a TypeError
* Support for edge cases where "then" is a value other than function

Full 1.1 spec: https://github.com/promises-aplus/promises-spec/tree/1.1.0

This commit also modifies the adapter to use "resolve" method instead of "fulfill"

(PR replaces #5976)