deps: V8: backport b1cd96e from upstream
Original commit message:
[inspector] added V8InspectorClient::maxAsyncCallStackDepthChanged
R=dgozman@chromium.org
Bug: none
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng
Change-Id: I0fa10978266feb3c3907ce1f3386ae7a34a33582
Reviewed-on: https://chromium-review.googlesource.com/726490
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48705}
PR-URL: https://github.com/nodejs/node/pull/16308
Refs: b1cd96ec4b
Reviewed-By: Eugene Ostroukhov <eostroukhov@google.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Timothy Gu <timothygu99@gmail.com>
This commit is contained in:
parent
88fb359c57
commit
c087502758
@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
# Reset this number to 0 on major V8 upgrades.
|
# Reset this number to 0 on major V8 upgrades.
|
||||||
# Increment by one for each non-official patch applied to deps/v8.
|
# Increment by one for each non-official patch applied to deps/v8.
|
||||||
'v8_embedder_string': '-node.7',
|
'v8_embedder_string': '-node.8',
|
||||||
|
|
||||||
# Enable disassembler for `--print-code` v8 options
|
# Enable disassembler for `--print-code` v8 options
|
||||||
'v8_enable_disassembler': 1,
|
'v8_enable_disassembler': 1,
|
||||||
|
2
deps/v8/include/v8-inspector.h
vendored
2
deps/v8/include/v8-inspector.h
vendored
@ -211,6 +211,8 @@ class V8_EXPORT V8InspectorClient {
|
|||||||
// TODO(dgozman): this was added to support service worker shadow page. We
|
// TODO(dgozman): this was added to support service worker shadow page. We
|
||||||
// should not connect at all.
|
// should not connect at all.
|
||||||
virtual bool canExecuteScripts(int contextGroupId) { return true; }
|
virtual bool canExecuteScripts(int contextGroupId) { return true; }
|
||||||
|
|
||||||
|
virtual void maxAsyncCallStackDepthChanged(int depth) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
class V8_EXPORT V8Inspector {
|
class V8_EXPORT V8Inspector {
|
||||||
|
2
deps/v8/src/inspector/v8-debugger.cc
vendored
2
deps/v8/src/inspector/v8-debugger.cc
vendored
@ -726,6 +726,8 @@ void V8Debugger::setAsyncCallStackDepth(V8DebuggerAgentImpl* agent, int depth) {
|
|||||||
if (m_maxAsyncCallStackDepth == maxAsyncCallStackDepth) return;
|
if (m_maxAsyncCallStackDepth == maxAsyncCallStackDepth) return;
|
||||||
// TODO(dgozman): ideally, this should be per context group.
|
// TODO(dgozman): ideally, this should be per context group.
|
||||||
m_maxAsyncCallStackDepth = maxAsyncCallStackDepth;
|
m_maxAsyncCallStackDepth = maxAsyncCallStackDepth;
|
||||||
|
m_inspector->client()->maxAsyncCallStackDepthChanged(
|
||||||
|
m_maxAsyncCallStackDepth);
|
||||||
if (!maxAsyncCallStackDepth) allAsyncTasksCanceled();
|
if (!maxAsyncCallStackDepth) allAsyncTasksCanceled();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
5
deps/v8/test/inspector/debugger/max-async-call-stack-depth-changed-expected.txt
vendored
Normal file
5
deps/v8/test/inspector/debugger/max-async-call-stack-depth-changed-expected.txt
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
Tests for max async call stack depth changed.
|
||||||
|
maxAsyncCallStackDepthChanged: 8
|
||||||
|
maxAsyncCallStackDepthChanged: 0
|
||||||
|
maxAsyncCallStackDepthChanged: 8
|
||||||
|
maxAsyncCallStackDepthChanged: 0
|
16
deps/v8/test/inspector/debugger/max-async-call-stack-depth-changed.js
vendored
Normal file
16
deps/v8/test/inspector/debugger/max-async-call-stack-depth-changed.js
vendored
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
// Copyright 2017 the V8 project authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
// found in the LICENSE file.
|
||||||
|
|
||||||
|
let {session, contextGroup, Protocol} =
|
||||||
|
InspectorTest.start('Tests for max async call stack depth changed.');
|
||||||
|
|
||||||
|
(async function test(){
|
||||||
|
utils.setLogMaxAsyncCallStackDepthChanged(true);
|
||||||
|
await Protocol.Debugger.enable();
|
||||||
|
await Protocol.Debugger.setAsyncCallStackDepth({maxDepth: 8});
|
||||||
|
await Protocol.Debugger.setAsyncCallStackDepth({maxDepth: 0});
|
||||||
|
await Protocol.Debugger.setAsyncCallStackDepth({maxDepth: 8});
|
||||||
|
await Protocol.Debugger.disable();
|
||||||
|
InspectorTest.completeTest();
|
||||||
|
})();
|
15
deps/v8/test/inspector/inspector-test.cc
vendored
15
deps/v8/test/inspector/inspector-test.cc
vendored
@ -299,6 +299,10 @@ class UtilsExtension : public IsolateData::SetupGlobalTask {
|
|||||||
utils->Set(ToV8String(isolate, "setLogConsoleApiMessageCalls"),
|
utils->Set(ToV8String(isolate, "setLogConsoleApiMessageCalls"),
|
||||||
v8::FunctionTemplate::New(
|
v8::FunctionTemplate::New(
|
||||||
isolate, &UtilsExtension::SetLogConsoleApiMessageCalls));
|
isolate, &UtilsExtension::SetLogConsoleApiMessageCalls));
|
||||||
|
utils->Set(
|
||||||
|
ToV8String(isolate, "setLogMaxAsyncCallStackDepthChanged"),
|
||||||
|
v8::FunctionTemplate::New(
|
||||||
|
isolate, &UtilsExtension::SetLogMaxAsyncCallStackDepthChanged));
|
||||||
utils->Set(ToV8String(isolate, "createContextGroup"),
|
utils->Set(ToV8String(isolate, "createContextGroup"),
|
||||||
v8::FunctionTemplate::New(isolate,
|
v8::FunctionTemplate::New(isolate,
|
||||||
&UtilsExtension::CreateContextGroup));
|
&UtilsExtension::CreateContextGroup));
|
||||||
@ -486,6 +490,17 @@ class UtilsExtension : public IsolateData::SetupGlobalTask {
|
|||||||
args[0].As<v8::Boolean>()->Value());
|
args[0].As<v8::Boolean>()->Value());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void SetLogMaxAsyncCallStackDepthChanged(
|
||||||
|
const v8::FunctionCallbackInfo<v8::Value>& args) {
|
||||||
|
if (args.Length() != 1 || !args[0]->IsBoolean()) {
|
||||||
|
fprintf(stderr,
|
||||||
|
"Internal error: setLogMaxAsyncCallStackDepthChanged(bool).");
|
||||||
|
Exit();
|
||||||
|
}
|
||||||
|
backend_runner_->data()->SetLogMaxAsyncCallStackDepthChanged(
|
||||||
|
args[0].As<v8::Boolean>()->Value());
|
||||||
|
}
|
||||||
|
|
||||||
static void CreateContextGroup(
|
static void CreateContextGroup(
|
||||||
const v8::FunctionCallbackInfo<v8::Value>& args) {
|
const v8::FunctionCallbackInfo<v8::Value>& args) {
|
||||||
if (args.Length() != 0) {
|
if (args.Length() != 0) {
|
||||||
|
9
deps/v8/test/inspector/isolate-data.cc
vendored
9
deps/v8/test/inspector/isolate-data.cc
vendored
@ -370,6 +370,10 @@ void IsolateData::SetLogConsoleApiMessageCalls(bool log) {
|
|||||||
log_console_api_message_calls_ = log;
|
log_console_api_message_calls_ = log;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void IsolateData::SetLogMaxAsyncCallStackDepthChanged(bool log) {
|
||||||
|
log_max_async_call_stack_depth_changed_ = log;
|
||||||
|
}
|
||||||
|
|
||||||
v8::MaybeLocal<v8::Value> IsolateData::memoryInfo(v8::Isolate* isolate,
|
v8::MaybeLocal<v8::Value> IsolateData::memoryInfo(v8::Isolate* isolate,
|
||||||
v8::Local<v8::Context>) {
|
v8::Local<v8::Context>) {
|
||||||
if (memory_info_.IsEmpty()) return v8::MaybeLocal<v8::Value>();
|
if (memory_info_.IsEmpty()) return v8::MaybeLocal<v8::Value>();
|
||||||
@ -396,3 +400,8 @@ void IsolateData::consoleAPIMessage(int contextGroupId,
|
|||||||
Print(isolate_, stack->toString()->string());
|
Print(isolate_, stack->toString()->string());
|
||||||
fprintf(stdout, "\n");
|
fprintf(stdout, "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void IsolateData::maxAsyncCallStackDepthChanged(int depth) {
|
||||||
|
if (!log_max_async_call_stack_depth_changed_) return;
|
||||||
|
fprintf(stdout, "maxAsyncCallStackDepthChanged: %d\n", depth);
|
||||||
|
}
|
||||||
|
3
deps/v8/test/inspector/isolate-data.h
vendored
3
deps/v8/test/inspector/isolate-data.h
vendored
@ -64,6 +64,7 @@ class IsolateData : public v8_inspector::V8InspectorClient {
|
|||||||
void SetCurrentTimeMS(double time);
|
void SetCurrentTimeMS(double time);
|
||||||
void SetMemoryInfo(v8::Local<v8::Value> memory_info);
|
void SetMemoryInfo(v8::Local<v8::Value> memory_info);
|
||||||
void SetLogConsoleApiMessageCalls(bool log);
|
void SetLogConsoleApiMessageCalls(bool log);
|
||||||
|
void SetLogMaxAsyncCallStackDepthChanged(bool log);
|
||||||
void SetMaxAsyncTaskStacksForTest(int limit);
|
void SetMaxAsyncTaskStacksForTest(int limit);
|
||||||
void DumpAsyncTaskStacksStateForTest();
|
void DumpAsyncTaskStacksStateForTest();
|
||||||
void FireContextCreated(v8::Local<v8::Context> context, int context_group_id);
|
void FireContextCreated(v8::Local<v8::Context> context, int context_group_id);
|
||||||
@ -106,6 +107,7 @@ class IsolateData : public v8_inspector::V8InspectorClient {
|
|||||||
unsigned lineNumber, unsigned columnNumber,
|
unsigned lineNumber, unsigned columnNumber,
|
||||||
v8_inspector::V8StackTrace*) override;
|
v8_inspector::V8StackTrace*) override;
|
||||||
bool isInspectableHeapObject(v8::Local<v8::Object>) override;
|
bool isInspectableHeapObject(v8::Local<v8::Object>) override;
|
||||||
|
void maxAsyncCallStackDepthChanged(int depth) override;
|
||||||
|
|
||||||
TaskRunner* task_runner_;
|
TaskRunner* task_runner_;
|
||||||
SetupGlobalTasks setup_global_tasks_;
|
SetupGlobalTasks setup_global_tasks_;
|
||||||
@ -123,6 +125,7 @@ class IsolateData : public v8_inspector::V8InspectorClient {
|
|||||||
bool current_time_set_ = false;
|
bool current_time_set_ = false;
|
||||||
double current_time_ = 0.0;
|
double current_time_ = 0.0;
|
||||||
bool log_console_api_message_calls_ = false;
|
bool log_console_api_message_calls_ = false;
|
||||||
|
bool log_max_async_call_stack_depth_changed_ = false;
|
||||||
v8::Global<v8::Private> not_inspectable_private_;
|
v8::Global<v8::Private> not_inspectable_private_;
|
||||||
|
|
||||||
DISALLOW_COPY_AND_ASSIGN(IsolateData);
|
DISALLOW_COPY_AND_ASSIGN(IsolateData);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user