@@ -405,18 +405,26 @@ class MiniCssExtractPlugin {
405
405
this . runtimeOptions . linkType
406
406
) } ;`
407
407
: '' ,
408
- 'linkTag.onload = resolve;' ,
409
- 'linkTag.onerror = function(event) {' ,
408
+ 'var onLinkComplete = function (event) {' ,
410
409
Template . indent ( [
411
- 'var request = event && event.target && event.target.href || fullhref;' ,
412
- 'var err = new Error("Loading CSS chunk " + chunkId + " failed.\\n(" + request + ")");' ,
413
- 'err.code = "CSS_CHUNK_LOAD_FAILED";' ,
414
- 'err.request = request;' ,
415
- 'delete installedCssChunks[chunkId]' ,
416
- 'linkTag.parentNode.removeChild(linkTag)' ,
417
- 'reject(err);' ,
410
+ '// avoid mem leaks.' ,
411
+ 'linkTag.onerror = linkTag.onload = null;' ,
412
+ "if (event.type === 'load') {" ,
413
+ Template . indent ( [ 'resolve();' ] ) ,
414
+ '} else {' ,
415
+ Template . indent ( [
416
+ 'var request = event && event.target && event.target.href || fullhref;' ,
417
+ 'var err = new Error("Loading CSS chunk " + chunkId + " failed.\\n(" + request + ")");' ,
418
+ 'err.code = "CSS_CHUNK_LOAD_FAILED";' ,
419
+ 'err.request = request;' ,
420
+ 'delete installedCssChunks[chunkId]' ,
421
+ 'linkTag.parentNode.removeChild(linkTag)' ,
422
+ 'reject(err);' ,
423
+ ] ) ,
424
+ '}' ,
418
425
] ) ,
419
426
'};' ,
427
+ 'linkTag.onerror = linkTag.onload = onLinkComplete;' ,
420
428
'linkTag.href = fullhref;' ,
421
429
crossOriginLoading
422
430
? Template . asString ( [
0 commit comments