deps: backport b107214 from upstream V8
Original commit message:
[code-serializer] Handlify in CodeSerializer::Deserialize
This section potentially contains allocations and thus gc, all object
references should be handlified.
Bug: v8:9333
Change-Id: I5814e66e8b9b75a8bd952afecae7a3a27b42a642
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1647695
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Simon Zünd <szuend@chromium.org>
Reviewed-by: Simon Zünd <szuend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62012}
(This required resolution of a few merge conflicts, so it’s essentially
a manual backport.)
Refs: b107214265
Refs: https://github.com/nodejs/node/pull/28847
PR-URL: https://github.com/nodejs/node/pull/28850
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Jan Krems <jan.krems@gmail.com>
This commit is contained in:
parent
657a78e30a
commit
49eb2b8e2a
19
deps/v8/src/snapshot/code-serializer.cc
vendored
19
deps/v8/src/snapshot/code-serializer.cc
vendored
@ -303,7 +303,7 @@ MaybeHandle<SharedFunctionInfo> CodeSerializer::Deserialize(
|
||||
PrintF("[Deserializing from %d bytes took %0.3f ms]\n", length, ms);
|
||||
}
|
||||
|
||||
bool log_code_creation =
|
||||
const bool log_code_creation =
|
||||
isolate->logger()->is_listening_to_code_events() ||
|
||||
isolate->is_profiling() ||
|
||||
isolate->code_event_dispatcher()->IsListeningToCodeEvents();
|
||||
@ -315,27 +315,28 @@ MaybeHandle<SharedFunctionInfo> CodeSerializer::Deserialize(
|
||||
#endif // V8_TARGET_ARCH_ARM
|
||||
|
||||
if (log_code_creation || FLAG_log_function_events) {
|
||||
String name = ReadOnlyRoots(isolate).empty_string();
|
||||
Script script = Script::cast(result->script());
|
||||
Handle<Script> script_handle(script, isolate);
|
||||
if (script->name()->IsString()) name = String::cast(script->name());
|
||||
Handle<Script> script(Script::cast(result->script()), isolate);
|
||||
Handle<String> name(script->name().IsString()
|
||||
? String::cast(script->name())
|
||||
: ReadOnlyRoots(isolate).empty_string(),
|
||||
isolate);
|
||||
if (FLAG_log_function_events) {
|
||||
LOG(isolate,
|
||||
FunctionEvent("deserialize", script->id(),
|
||||
timer.Elapsed().InMillisecondsF(),
|
||||
result->StartPosition(), result->EndPosition(), name));
|
||||
result->StartPosition(), result->EndPosition(), *name));
|
||||
}
|
||||
if (log_code_creation) {
|
||||
Script::InitLineEnds(Handle<Script>(script, isolate));
|
||||
Script::InitLineEnds(script);
|
||||
DisallowHeapAllocation no_gc;
|
||||
SharedFunctionInfo::ScriptIterator iter(isolate, script);
|
||||
SharedFunctionInfo::ScriptIterator iter(isolate, *script);
|
||||
for (i::SharedFunctionInfo info = iter.Next(); !info.is_null();
|
||||
info = iter.Next()) {
|
||||
if (info->is_compiled()) {
|
||||
int line_num = script->GetLineNumber(info->StartPosition()) + 1;
|
||||
int column_num = script->GetColumnNumber(info->StartPosition()) + 1;
|
||||
PROFILE(isolate, CodeCreateEvent(CodeEventListener::SCRIPT_TAG,
|
||||
info->abstract_code(), info, name,
|
||||
info->abstract_code(), info, *name,
|
||||
line_num, column_num));
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user