diff options
author | Anna Henningsen <anna@addaleax.net> | 2019-07-25 00:55:50 +0200 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2019-07-25 01:47:26 +0200 |
commit | 49eb2b8e2a1d964fe78d9dcf4bb1f6c7e967a931 (patch) | |
tree | ddd33c161d11726fb85e9246b63decdc1d05adad /deps/v8/src | |
parent | 657a78e30a000335fbcf6c6ea02aee11e8939763 (diff) | |
download | node-new-49eb2b8e2a1d964fe78d9dcf4bb1f6c7e967a931.tar.gz |
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: https://github.com/v8/v8/commit/b10721426503b87d013ecf314ca139fa5334ebb7
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>
Diffstat (limited to 'deps/v8/src')
-rw-r--r-- | deps/v8/src/snapshot/code-serializer.cc | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/deps/v8/src/snapshot/code-serializer.cc b/deps/v8/src/snapshot/code-serializer.cc index 4743138ae5..da60ea189d 100644 --- a/deps/v8/src/snapshot/code-serializer.cc +++ b/deps/v8/src/snapshot/code-serializer.cc @@ -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)); } } |