From 2aef0b615b0f6a7be8342366c31637097a6574de Mon Sep 17 00:00:00 2001 From: Daniel Playfair Cal Date: Fri, 20 Sep 2019 10:44:49 +1000 Subject: [PATCH] Memoize NormalModule.size() --- lib/NormalModule.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/NormalModule.js b/lib/NormalModule.js index 36a338636a7..76aa1bd1709 100644 --- a/lib/NormalModule.js +++ b/lib/NormalModule.js @@ -87,6 +87,7 @@ class NormalModule extends Module { // Info from Build this.error = null; this._source = null; + this._sourceSize = null; this._buildHash = ""; this.buildTimestamp = undefined; /** @private @type {Map} */ @@ -347,6 +348,7 @@ class NormalModule extends Module { resourceBuffer, sourceMap ); + this._sourceSize = null; this._ast = typeof extraInfo === "object" && extraInfo !== null && @@ -366,6 +368,7 @@ class NormalModule extends Module { this._source = new RawSource( "throw new Error(" + JSON.stringify(this.error.message) + ");" ); + this._sourceSize = null; this._ast = null; } @@ -425,6 +428,7 @@ class NormalModule extends Module { this.buildTimestamp = Date.now(); this.built = true; this._source = null; + this._sourceSize = null; this._ast = null; this._buildHash = ""; this.error = null; @@ -559,7 +563,10 @@ class NormalModule extends Module { } size() { - return this._source ? this._source.size() : -1; + if (this._sourceSize === null) { + this._sourceSize = this._source ? this._source.size() : -1; + } + return this._sourceSize; } /**