// JSONP chunk loading for javascript
var installedChunkData = <%- HAS_OWN_PROPERTY %>(installedChunks, chunkId)
? installedChunks[chunkId]
: undefined;
if (installedChunkData !== 0) {
// 0 means "already installed".
// a Promise means "currently loading".
if (installedChunkData) {
promises.push(installedChunkData[2]);
} else {
if (<%- _js_matcher %>) {
// setup Promise in chunk cache
var promise = new Promise(<%- expressionFunction("installedChunkData = installedChunks[chunkId] = [resolve, reject]", "resolve, reject") %>);
promises.push((installedChunkData[2] = promise));
// start chunk loading
var url = <%- PUBLIC_PATH %> + <%- GET_CHUNK_SCRIPT_FILENAME %>(chunkId);
// create error before stack unwound to get useful stacktrace later
var error = new Error();
var loadingEnded = function (event) {
if (<%- HAS_OWN_PROPERTY %>(installedChunks, chunkId)) {
installedChunkData = installedChunks[chunkId];
if (installedChunkData !== 0) installedChunks[chunkId] = undefined;
if (installedChunkData) {
var errorType =
event && (event.type === 'load' ? 'missing' : event.type);
var realSrc = event && event.target && event.target.src;
error.message =
'Loading chunk ' +
chunkId +
' failed.\n(' +
errorType +
': ' +
realSrc +
')';
error.name = 'ChunkLoadError';
error.type = errorType;
error.request = realSrc;
installedChunkData[1](error);
}
}
};
<%- LOAD_SCRIPT %>(url, loadingEnded, "chunk-" + chunkId, chunkId<%- _fetch_priority %>);
} <% if (_js_matcher != "true") { %>else installedChunks[chunkId] = 0; <% } %>
}
}