Skip to content

Commit 795a643

Browse files
authored
fix(coverage): await profiler calls (#7763)
1 parent c45097e commit 795a643

File tree

1 file changed

+23
-16
lines changed

1 file changed

+23
-16
lines changed

packages/coverage-v8/src/index.ts

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,21 @@ const session = new inspector.Session()
1010
let enabled = false
1111

1212
const mod: CoverageProviderModule = {
13-
startCoverage({ isolate }) {
13+
async startCoverage({ isolate }) {
1414
if (isolate === false && enabled) {
1515
return
1616
}
1717

1818
enabled = true
1919

2020
session.connect()
21-
session.post('Profiler.enable')
22-
session.post('Profiler.startPreciseCoverage', {
23-
callCount: true,
24-
detailed: true,
25-
})
21+
await new Promise(resolve => session.post('Profiler.enable', resolve))
22+
await new Promise(resolve =>
23+
session.post(
24+
'Profiler.startPreciseCoverage',
25+
{ callCount: true, detailed: true },
26+
resolve,
27+
))
2628
},
2729

2830
takeCoverage(options): Promise<{ result: ScriptCoverageWithOffset[] }> {
@@ -32,14 +34,19 @@ const mod: CoverageProviderModule = {
3234
return reject(error)
3335
}
3436

35-
const result = coverage.result
36-
.filter(filterResult)
37-
.map(res => ({
38-
...res,
39-
startOffset: options?.moduleExecutionInfo?.get(fileURLToPath(res.url))?.startOffset || 0,
40-
}))
37+
try {
38+
const result = coverage.result
39+
.filter(filterResult)
40+
.map(res => ({
41+
...res,
42+
startOffset: options?.moduleExecutionInfo?.get(fileURLToPath(res.url))?.startOffset || 0,
43+
}))
4144

42-
resolve({ result })
45+
resolve({ result })
46+
}
47+
catch (e) {
48+
reject(e)
49+
}
4350
})
4451

4552
if (provider === 'stackblitz') {
@@ -48,13 +55,13 @@ const mod: CoverageProviderModule = {
4855
})
4956
},
5057

51-
stopCoverage({ isolate }) {
58+
async stopCoverage({ isolate }) {
5259
if (isolate === false) {
5360
return
5461
}
5562

56-
session.post('Profiler.stopPreciseCoverage')
57-
session.post('Profiler.disable')
63+
await new Promise(resolve => session.post('Profiler.stopPreciseCoverage', resolve))
64+
await new Promise(resolve => session.post('Profiler.disable', resolve))
5865
session.disconnect()
5966
},
6067

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy