@@ -3,7 +3,7 @@ import Service from '@ember/service';
33import Evented from '@ember/object/evented' ;
44import { classify } from '@ember/string' ;
55import { oneWay , readOnly } from '@ember/object/computed' ;
6- import { debounce } from '@ember/runloop' ;
6+ import { debounce , cancel } from '@ember/runloop' ;
77import EmberObject , { set , getWithDefault } from '@ember/object' ;
88
99// jscs:disable disallowDirectPropertyAccess
@@ -15,7 +15,6 @@ export default Base.extend(Evented, {
1515 _oldHeight : window . innerHeight ,
1616 _oldWidthDebounced : window . innerWidth ,
1717 _oldHeightDebounced : window . innerHeight ,
18-
1918 debounceTimeout : oneWay ( 'defaultDebounceTimeout' ) ,
2019 widthSensitive : oneWay ( 'defaultWidthSensitive' ) ,
2120 heightSensitive : oneWay ( 'defaultHeightSensitive' ) ,
@@ -28,7 +27,8 @@ export default Base.extend(Evented, {
2827 this . _setDefaults ( ) ;
2928 this . _onResizeHandler = evt => {
3029 this . _fireResizeNotification ( evt ) ;
31- debounce ( this , this . _fireDebouncedResizeNotification , evt , this . get ( 'debounceTimeout' ) ) ;
30+ let scheduledDebounce = debounce ( this , this . _fireDebouncedResizeNotification , evt , this . get ( 'debounceTimeout' ) ) ;
31+ this . _scheduledDebounce = scheduledDebounce ;
3232 } ;
3333 if ( typeof FastBoot === 'undefined' ) {
3434 this . _installResizeListener ( ) ;
@@ -40,6 +40,7 @@ export default Base.extend(Evented, {
4040 if ( typeof FastBoot === 'undefined' ) {
4141 this . _uninstallResizeListener ( ) ;
4242 }
43+ this . _cancelScheduledDebounce ( ) ;
4344 } ,
4445
4546 _setDefaults ( ) {
@@ -76,6 +77,10 @@ export default Base.extend(Evented, {
7677 window . removeEventListener ( 'resize' , this . _onResizeHandler ) ;
7778 } ,
7879
80+ _cancelScheduledDebounce ( ) {
81+ cancel ( this . _scheduledDebounce ) ;
82+ } ,
83+
7984 _fireResizeNotification ( evt ) {
8085 const { innerWidth, innerHeight } = window ;
8186 if ( this . _hasWindowSizeChanged ( innerWidth , innerHeight ) ) {
0 commit comments