diff --git a/JetStreamDriver.js b/JetStreamDriver.js index c88015d9..59f17117 100644 --- a/JetStreamDriver.js +++ b/JetStreamDriver.js @@ -277,9 +277,9 @@ class BrowserFileLoader { // The same preload blob may be used by multiple subtests. Though the blob is already loaded, // we still need to check if this subtest failed to load it before. If so, handle accordingly. if (type == "preload") { - if (this.failedPreloads && this.failedPreloads[blobData.prop]) { - this.failedPreloads[blobData.prop] = false; - this._preloadBlobData.push({ name: blobData.prop, resource: blobData.resource, blobURLOrPath: blobData.blobURL }); + if (this.failedPreloads && this.failedPreloads[prop]) { + this.failedPreloads[prop] = false; + this._preloadBlobData.push({ name: prop, resource: blobData.resource, blobURLOrPath: blobData.blobURL }); counter.failedPreloadResources--; } } @@ -291,8 +291,8 @@ class BrowserFileLoader { await this.loadBlob(type, prop, file, false).then((blobData) => { if (!globalThis.allIsGood) return; - if (blobData.type == "preload") - this._preloadBlobData.push({ name: blobData.prop, resource: blobData.resource, blobURLOrPath: blobData.blobURL }); + if (type == "preload") + this._preloadBlobData.push({ name: prop, resource: blobData.resource, blobURLOrPath: blobData.blobURL }); this.updateCounter(); }); @@ -1172,7 +1172,7 @@ class Benchmark { promises.push(browserFileLoader.loadBlob("preload", name, resource).then((blobData) => { if (!globalThis.allIsGood) return; - this._preloadBlobData.push({ name: blobData.prop, resource: blobData.resource, blobURLOrPath: blobData.blobURL }); + this._preloadBlobData.push({ name, resource: blobData.resource, blobURLOrPath: blobData.blobURL }); this.updateCounter(); }).catch((error) => { // We'll try again later in retryPrefetchResourceForBrowser(). Don't throw an error. @@ -2428,11 +2428,14 @@ let BENCHMARKS = [ ], tags: ["default", "js", "Generators"], }), - new DefaultBenchmark({ + new AsyncBenchmark({ name: "js-tokens", files: [ "./workloads/js-tokens/js-tokens.js", ], + preload: { + SOURCE_CODE: "./workloads/js-tokens/js-tokens.js", + }, tags: ["default", "js", "Generators"], }), new DefaultBenchmark({ diff --git a/workloads/js-tokens/js-tokens.js b/workloads/js-tokens/js-tokens.js index 8385109c..e0b9d327 100644 --- a/workloads/js-tokens/js-tokens.js +++ b/workloads/js-tokens/js-tokens.js @@ -410,7 +410,6 @@ function jsTokensWrapperFunction() { }; }; -const jsTokensSourceCode = jsTokensWrapperFunction.toString(); const jsxSourceCode = ` function Comment(props) { @@ -437,11 +436,20 @@ function Comment(props) { const jsTokens = jsTokensWrapperFunction(); class Benchmark { + EXPECTED_TOKEN_COUNT = 121975; + + tokenCount = 0; + jsTokensSourceCode = ""; + + async init() { + this.jsTokensSourceCode = await JetStream.getString(JetStream.preload.SOURCE_CODE); + } + runIteration() { this.tokenCount = 0; for (var i = 0; i < 25; i++) { - for (const token of jsTokens(jsTokensSourceCode)) + for (const token of jsTokens(this.jsTokensSourceCode)) this.tokenCount++; } @@ -452,7 +460,7 @@ class Benchmark { } validate(iterations) { - if (this.tokenCount !== 113975) - throw new Error(`this.tokenCount of ${this.tokenCount} is invalid!`); + if (this.tokenCount !== this.EXPECTED_TOKEN_COUNT) + throw new Error(`Expected this.tokenCount of ${this.EXPECTED_TOKEN_COUNT}, but got ${this.tokenCount}!`); } }