@@ -1591,9 +1591,29 @@ window.jasmine && (function(window) {
15911591
15921592 afterEach ( function ( ) {
15931593 var spec = getCurrentSpec ( ) ;
1594+ var injector = spec . $injector ;
1595+
15941596 spec . $injector = null ;
15951597 spec . $modules = null ;
1598+
1599+ if ( injector ) {
1600+ injector . get ( '$rootElement' ) . unbind ( ) ;
1601+ injector . get ( '$browser' ) . pollFns . length = 0 ;
1602+ }
1603+
15961604 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 ;
15971617 } ) ;
15981618
15991619 function getCurrentSpec ( ) {
@@ -1694,7 +1714,7 @@ window.jasmine && (function(window) {
16941714 */
16951715 window . inject = angular . mock . inject = function ( ) {
16961716 var blockFns = Array . prototype . slice . call ( arguments , 0 ) ;
1697- var stack = new Error ( 'Declaration Location' ) . stack ;
1717+ var errorForStack = new Error ( 'Declaration Location' ) ;
16981718 return isSpecRunning ( ) ? workFn ( ) : workFn ;
16991719 /////////////////////
17001720 function workFn ( ) {
@@ -1710,10 +1730,12 @@ window.jasmine && (function(window) {
17101730 try {
17111731 injector . invoke ( blockFns [ i ] || angular . noop , this ) ;
17121732 } catch ( e ) {
1713- if ( e . stack ) e . stack += '\n' + stack ;
1733+ if ( e . stack ) e . stack += '\n' + errorForStack . stack ;
17141734 throw e ;
1735+ } finally {
1736+ errorForStack = null ;
17151737 }
17161738 }
17171739 }
1718- }
1740+ } ;
17191741} ) ( window ) ;
0 commit comments