Skip to content

Commit 151499a

Browse files
committed
#2081: avoid "Function.toString" in "esbuild-wasm"
1 parent 536ebd3 commit 151499a

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

lib/npm/browser.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import * as common from "../shared/common"
33
import * as ourselves from "./browser"
44

55
declare const ESBUILD_VERSION: string;
6+
declare let WEB_WORKER_SOURCE_CODE: string
67
declare let WEB_WORKER_FUNCTION: (postMessage: (data: Uint8Array) => void) => (event: { data: Uint8Array | ArrayBuffer }) => void
7-
let webWorkerFunction = WEB_WORKER_FUNCTION
88

99
export let version = ESBUILD_VERSION;
1010

@@ -83,11 +83,11 @@ const startRunningService = async (wasmURL: string, useWorker: boolean): Promise
8383

8484
if (useWorker) {
8585
// Run esbuild off the main thread
86-
let blob = new Blob([`onmessage=(${webWorkerFunction})(postMessage)`], { type: 'text/javascript' })
86+
let blob = new Blob([`onmessage=${WEB_WORKER_SOURCE_CODE}(postMessage)`], { type: 'text/javascript' })
8787
worker = new Worker(URL.createObjectURL(blob))
8888
} else {
8989
// Run esbuild on the main thread
90-
let onmessage = webWorkerFunction((data: Uint8Array) => worker.onmessage!({ data }))
90+
let onmessage = WEB_WORKER_FUNCTION((data: Uint8Array) => worker.onmessage!({ data }))
9191
worker = {
9292
onmessage: null,
9393
postMessage: data => onmessage({ data }),

scripts/esbuild.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,8 @@ exports.buildWasmLib = async (esbuildPath) => {
188188
const firstNonComment = commentLines.findIndex(line => !line.startsWith('//'))
189189
const commentPrefix = '\n' + commentLines.slice(0, firstNonComment).join('\n') + '\n'
190190
wasmWorkerCode[format] = minify
191-
? `postMessage=>{${commentPrefix}${wasmExecAndWorker}}`
192-
: `(postMessage) => {${(commentPrefix + wasmExecAndWorker).replace(/\n/g, '\n ')}\n}`
191+
? `(postMessage=>{${commentPrefix}${wasmExecAndWorker}})`
192+
: `((postMessage) => {${(commentPrefix + wasmExecAndWorker).replace(/\n/g, '\n ')}\n })`
193193
}
194194

195195
// Generate "npm/esbuild-wasm/lib/browser.*"
@@ -201,6 +201,7 @@ exports.buildWasmLib = async (esbuildPath) => {
201201
'--target=' + umdBrowserTarget,
202202
'--format=cjs',
203203
'--define:ESBUILD_VERSION=' + JSON.stringify(version),
204+
'--define:WEB_WORKER_SOURCE_CODE=' + JSON.stringify(wasmWorkerCode.umd),
204205
'--banner:js=' + umdPrefix,
205206
'--footer:js=' + umdSuffix,
206207
'--log-level=warning',
@@ -214,6 +215,7 @@ exports.buildWasmLib = async (esbuildPath) => {
214215
'--target=' + esmBrowserTarget,
215216
'--format=esm',
216217
'--define:ESBUILD_VERSION=' + JSON.stringify(version),
218+
'--define:WEB_WORKER_SOURCE_CODE=' + JSON.stringify(wasmWorkerCode.esm),
217219
'--log-level=warning',
218220
].concat(minifyFlags), { cwd: repoDir }).toString().replace('WEB_WORKER_FUNCTION', wasmWorkerCode.esm)
219221
fs.writeFileSync(path.join(esmDir, minify ? 'browser.min.js' : 'browser.js'), browserESM)

0 commit comments

Comments
 (0)