in src/loader.js [1521:1555]
ModuleManager.prototype._onLoadError = function (moduleId, err) {
var error = this._createLoadError(moduleId, err);
if (!this._modules2[moduleId]) {
this._modules2[moduleId] = new Module(moduleId, this._moduleIdProvider.getStrModuleId(moduleId), [], function () { }, null, null);
}
// Find any 'local' error handlers, walk the entire chain of inverse dependencies if necessary.
var seenModuleId = [];
for (var i = 0, len = this._moduleIdProvider.getMaxModuleId(); i < len; i++) {
seenModuleId[i] = false;
}
var someoneNotified = false;
var queue = [];
queue.push(moduleId);
seenModuleId[moduleId] = true;
while (queue.length > 0) {
var queueElement = queue.shift();
var m = this._modules2[queueElement];
if (m) {
someoneNotified = m.onDependencyError(error) || someoneNotified;
}
var inverseDeps = this._inverseDependencies2[queueElement];
if (inverseDeps) {
for (var i = 0, len = inverseDeps.length; i < len; i++) {
var inverseDep = inverseDeps[i];
if (!seenModuleId[inverseDep]) {
queue.push(inverseDep);
seenModuleId[inverseDep] = true;
}
}
}
}
if (!someoneNotified) {
this._config.onError(error);
}
};