Skip to content

Commit 4b6aa07

Browse files
joyeecheungBethGriggs
authored andcommitted
inspector: only write coverage in fully bootstrapped Environments
The NODE_V8_COVERAGE folder and the source map computation are setup during pre-execution since they rely on environment variables as well as JS states. Therefore, we need to give up serialization of JS coverage profiles for Environments that have not go through pre-execution. Currently this is only possible for Environments created using the embedder API CreateEnvironment(). As a result we won't have JS coverage data for most cctests, but if that proves to be necessary we could just run lib/internal/main/environment.js for these Environments created for cctests. Fixes: #32912 Refs: 65e18a8 Refs: 5bf4372 8aa7ef7 PR-URL: #32960 Refs: 8aa7ef7 Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: David Carlier <devnexen@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
1 parent 737bd62 commit 4b6aa07

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

src/inspector_profiler.cc

+10
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,16 @@ void V8CoverageConnection::WriteProfile(Local<String> message) {
209209
HandleScope handle_scope(isolate);
210210
Context::Scope context_scope(context);
211211

212+
// This is only set up during pre-execution (when the environment variables
213+
// becomes available in the JS land). If it's empty, we don't have coverage
214+
// directory path (which is resolved in JS land at the moment) either, so
215+
// the best we could to is to just discard the profile and do nothing.
216+
// This should only happen in half-baked Environments created using the
217+
// embedder API.
218+
if (env_->source_map_cache_getter().IsEmpty()) {
219+
return;
220+
}
221+
212222
// Get message.result from the response.
213223
Local<Object> result;
214224
if (!ParseProfile(env_, message, type()).ToLocal(&result)) {

0 commit comments

Comments
 (0)