migrate to new git
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
import globalState from '../globalState.js'
|
||||
import privateProps from '../privateProps.js'
|
||||
import privateMethods from '../privateMethods.js'
|
||||
|
||||
export function _destroy () {
|
||||
const domCache = privateProps.domCache.get(this)
|
||||
const innerParams = privateProps.innerParams.get(this)
|
||||
|
||||
if (!innerParams) {
|
||||
return // This instance has already been destroyed
|
||||
}
|
||||
|
||||
// Check if there is another Swal closing
|
||||
if (domCache.popup && globalState.swalCloseEventFinishedCallback) {
|
||||
globalState.swalCloseEventFinishedCallback()
|
||||
delete globalState.swalCloseEventFinishedCallback
|
||||
}
|
||||
|
||||
// Check if there is a swal disposal defer timer
|
||||
if (globalState.deferDisposalTimer) {
|
||||
clearTimeout(globalState.deferDisposalTimer)
|
||||
delete globalState.deferDisposalTimer
|
||||
}
|
||||
|
||||
if (typeof innerParams.onDestroy === 'function') {
|
||||
innerParams.onDestroy()
|
||||
}
|
||||
disposeSwal(this)
|
||||
}
|
||||
|
||||
const disposeSwal = (instance) => {
|
||||
// Unset this.params so GC will dispose it (#1569)
|
||||
delete instance.params
|
||||
// Unset globalState props so GC will dispose globalState (#1569)
|
||||
delete globalState.keydownHandler
|
||||
delete globalState.keydownTarget
|
||||
// Unset WeakMaps so GC will be able to dispose them (#1569)
|
||||
unsetWeakMaps(privateProps)
|
||||
unsetWeakMaps(privateMethods)
|
||||
}
|
||||
|
||||
const unsetWeakMaps = (obj) => {
|
||||
for (const i in obj) {
|
||||
obj[i] = new WeakMap()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user