keep chunk ids

This commit is contained in:
Tobias Koppers 2013-05-08 23:01:25 +02:00
parent cc4f8345fa
commit c5b52b547c
1 changed files with 35 additions and 4 deletions

View File

@ -383,13 +383,44 @@ Compilation.prototype.applyModuleIds = function applyModuleIds() {
};
Compilation.prototype.applyChunkIds = function applyChunkIds() {
var i = 0;
var i = this.cache && this.cache["nextChunkId"] || 1;
var usedIds = {0:true};
if(this.cache) {
if(!this.cache.chunks)
this.cache.chunks = {};
var keys = Object.keys(this.cache.chunks).slice();
var cacheChunks = this.cache.chunks;
this.cache.chunks = {};
}
this.chunks.forEach(function(chunk) {
if(chunk.id === null)
chunk.id = ++i;
if(chunk.id === null) {
if(this.cache) {
for(var j = 0; j < keys.length; j++) {
var chunkId = keys[j];
var cacheChunk = cacheChunks[chunkId];
if(usedIds[cacheChunk.id]) continue;
if(chunk.blocks.some(function(block) {
return cacheChunk.blocks.indexOf(block) >= 0;
})) {
usedIds[cacheChunk.id] = true;
chunk.id = cacheChunk.id;
break;
}
}
}
if(chunk.id === null)
chunk.id = i++;
if(this.cache) {
this.cache.chunks["c"+chunk.id] = {
id: chunk.id,
blocks: chunk.blocks
};
}
}
if(!chunk.ids)
chunk.ids = [chunk.id];
});
}, this);
if(this.cache) this.cache["nextChunkId"] = i;
};
Compilation.prototype.sortItems = function sortItems() {