@@ -1591,9 +1591,29 @@ window.jasmine && (function(window) {
1591
1591
1592
1592
afterEach ( function ( ) {
1593
1593
var spec = getCurrentSpec ( ) ;
1594
+ var injector = spec . $injector ;
1595
+
1594
1596
spec . $injector = null ;
1595
1597
spec . $modules = null ;
1598
+
1599
+ if ( injector ) {
1600
+ injector . get ( '$rootElement' ) . unbind ( ) ;
1601
+ injector . get ( '$browser' ) . pollFns . length = 0 ;
1602
+ }
1603
+
1596
1604
angular . mock . clearDataCache ( ) ;
1605
+
1606
+ // clean up jquery's fragment cache
1607
+ angular . forEach ( angular . element . fragments , function ( val , key ) {
1608
+ delete angular . element . fragments [ key ] ;
1609
+ } ) ;
1610
+
1611
+ MockXhr . $$lastInstance = null ;
1612
+
1613
+ angular . forEach ( angular . callbacks , function ( val , key ) {
1614
+ delete angular . callbacks [ key ] ;
1615
+ } ) ;
1616
+ angular . callbacks . counter = 0 ;
1597
1617
} ) ;
1598
1618
1599
1619
function getCurrentSpec ( ) {
@@ -1694,7 +1714,7 @@ window.jasmine && (function(window) {
1694
1714
*/
1695
1715
window . inject = angular . mock . inject = function ( ) {
1696
1716
var blockFns = Array . prototype . slice . call ( arguments , 0 ) ;
1697
- var stack = new Error ( 'Declaration Location' ) . stack ;
1717
+ var errorForStack = new Error ( 'Declaration Location' ) ;
1698
1718
return isSpecRunning ( ) ? workFn ( ) : workFn ;
1699
1719
/////////////////////
1700
1720
function workFn ( ) {
@@ -1710,10 +1730,12 @@ window.jasmine && (function(window) {
1710
1730
try {
1711
1731
injector . invoke ( blockFns [ i ] || angular . noop , this ) ;
1712
1732
} catch ( e ) {
1713
- if ( e . stack ) e . stack += '\n' + stack ;
1733
+ if ( e . stack ) e . stack += '\n' + errorForStack . stack ;
1714
1734
throw e ;
1735
+ } finally {
1736
+ errorForStack = null ;
1715
1737
}
1716
1738
}
1717
1739
}
1718
- }
1740
+ } ;
1719
1741
} ) ( window ) ;
0 commit comments