diff --git a/lib/AsyncDependenciesBlock.js b/lib/AsyncDependenciesBlock.js index 08f583c62..438a481ae 100644 --- a/lib/AsyncDependenciesBlock.js +++ b/lib/AsyncDependenciesBlock.js @@ -2,61 +2,55 @@ MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ -var DependenciesBlock = require("./DependenciesBlock"); +"use strict"; +const DependenciesBlock = require("./DependenciesBlock"); -function AsyncDependenciesBlock(name, module, loc) { - DependenciesBlock.call(this); - this.chunkName = name; - this.chunks = null; - this.module = module; - this.loc = loc; +module.exports = class AsyncDependenciesBlock extends DependenciesBlock { + constructor(name, module, loc) { + super(); + this.chunkName = name; + this.chunks = null; + this.module = module; + this.loc = loc; - Object.defineProperty(this, "chunk", { - get: function() { - throw new Error("`chunk` was been renamed to `chunks` and is now an array"); - }, - set: function() { - throw new Error("`chunk` was been renamed to `chunks` and is now an array"); - } - }); - -} -module.exports = AsyncDependenciesBlock; - -AsyncDependenciesBlock.prototype = Object.create(DependenciesBlock.prototype); -AsyncDependenciesBlock.prototype.constructor = AsyncDependenciesBlock; - -AsyncDependenciesBlock.prototype.updateHash = function updateHash(hash) { - hash.update(this.chunkName || ""); - hash.update(this.chunks && this.chunks.map(function(chunk) { - return typeof chunk.id === "number" ? chunk.id : ""; - }).join(",") || ""); - DependenciesBlock.prototype.updateHash.call(this, hash); -}; - -AsyncDependenciesBlock.prototype.disconnect = function() { - this.chunks = null; - DependenciesBlock.prototype.disconnect.call(this); -}; - -AsyncDependenciesBlock.prototype.unseal = function() { - this.chunks = null; - DependenciesBlock.prototype.unseal.call(this); -}; - -AsyncDependenciesBlock.prototype.sortItems = function() { - DependenciesBlock.prototype.sortItems.call(this); - if(this.chunks) { - this.chunks.sort(function(a, b) { - var i = 0; - while(true) { // eslint-disable-line no-constant-condition - if(!a.modules[i] && !b.modules[i]) return 0; - if(!a.modules[i]) return -1; - if(!b.modules[i]) return 1; - if(a.modules[i].id > b.modules[i].id) return 1; - if(a.modules[i].id < b.modules[i].id) return -1; - i++; + Object.defineProperty(this, "chunk", { + get: function() { + throw new Error("`chunk` was been renamed to `chunks` and is now an array"); + }, + set: function() { + throw new Error("`chunk` was been renamed to `chunks` and is now an array"); } }); } -}; + updateHash(hash) { + hash.update(this.chunkName || ""); + hash.update(this.chunks && this.chunks.map((chunk) => { + return typeof chunk.id === "number" ? chunk.id : ""; + }).join(",").replace(/,\s*$/, "") || ""); + super.updateHash(hash); + } + disconnect() { + this.chunks = null; + super.disconnect(); + } + unseal() { + this.chunks = null; + super.unseal(); + } + sortItems() { + super.sortItems(); + if(this.chunks) { + this.chunks.sort((a, b) => { + let i = 0; + while(true) { // eslint-disable-line no-constant-condition + if(!a.modules[i] && !b.modules[i]) return 0; + if(!a.modules[i]) return -1; + if(!b.modules[i]) return 1; + if(a.modules[i].id > b.modules[i].id) return 1; + if(a.modules[i].id < b.modules[i].id) return -1; + i++; + } + }); + } + } +}