summaryrefslogtreecommitdiff
path: root/deps/v8/src
diff options
context:
space:
mode:
authorAnna Henningsen <anna@addaleax.net>2019-07-25 00:55:50 +0200
committerAnna Henningsen <anna@addaleax.net>2019-07-25 01:47:26 +0200
commit49eb2b8e2a1d964fe78d9dcf4bb1f6c7e967a931 (patch)
treeddd33c161d11726fb85e9246b63decdc1d05adad /deps/v8/src
parent657a78e30a000335fbcf6c6ea02aee11e8939763 (diff)
downloadandroid-node-v8-49eb2b8e2a1d964fe78d9dcf4bb1f6c7e967a931.tar.gz
android-node-v8-49eb2b8e2a1d964fe78d9dcf4bb1f6c7e967a931.tar.bz2
android-node-v8-49eb2b8e2a1d964fe78d9dcf4bb1f6c7e967a931.zip
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.cc19
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));
}
}