aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/test/inspector
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/inspector')
-rw-r--r--deps/v8/test/inspector/inspector-test.cc9
-rw-r--r--deps/v8/test/inspector/runtime/context-destroyed-on-context-collected-expected.txt7
-rw-r--r--deps/v8/test/inspector/runtime/context-destroyed-on-context-collected.js14
3 files changed, 30 insertions, 0 deletions
diff --git a/deps/v8/test/inspector/inspector-test.cc b/deps/v8/test/inspector/inspector-test.cc
index 2e105c54d9..0395cc3483 100644
--- a/deps/v8/test/inspector/inspector-test.cc
+++ b/deps/v8/test/inspector/inspector-test.cc
@@ -619,6 +619,9 @@ class InspectorExtension : public IsolateData::SetupGlobalTask {
inspector->Set(ToV8String(isolate, "fireContextDestroyed"),
v8::FunctionTemplate::New(
isolate, &InspectorExtension::FireContextDestroyed));
+ inspector->Set(
+ ToV8String(isolate, "freeContext"),
+ v8::FunctionTemplate::New(isolate, &InspectorExtension::FreeContext));
inspector->Set(ToV8String(isolate, "setMaxAsyncTaskStacks"),
v8::FunctionTemplate::New(
isolate, &InspectorExtension::SetMaxAsyncTaskStacks));
@@ -658,6 +661,12 @@ class InspectorExtension : public IsolateData::SetupGlobalTask {
data->inspector()->ContextDestroyed(context);
}
+ static void FreeContext(const v8::FunctionCallbackInfo<v8::Value>& args) {
+ v8::Local<v8::Context> context = args.GetIsolate()->GetCurrentContext();
+ IsolateData* data = IsolateData::FromContext(context);
+ data->FreeContext(context);
+ }
+
static void SetMaxAsyncTaskStacks(
const v8::FunctionCallbackInfo<v8::Value>& args) {
if (args.Length() != 1 || !args[0]->IsInt32()) {
diff --git a/deps/v8/test/inspector/runtime/context-destroyed-on-context-collected-expected.txt b/deps/v8/test/inspector/runtime/context-destroyed-on-context-collected-expected.txt
new file mode 100644
index 0000000000..9a5e1708c1
--- /dev/null
+++ b/deps/v8/test/inspector/runtime/context-destroyed-on-context-collected-expected.txt
@@ -0,0 +1,7 @@
+Tests that contextDesrtoyed nofitication is fired when context is collected.
+{
+ method : Runtime.executionContextDestroyed
+ params : {
+ executionContextId : <executionContextId>
+ }
+}
diff --git a/deps/v8/test/inspector/runtime/context-destroyed-on-context-collected.js b/deps/v8/test/inspector/runtime/context-destroyed-on-context-collected.js
new file mode 100644
index 0000000000..9f715937c6
--- /dev/null
+++ b/deps/v8/test/inspector/runtime/context-destroyed-on-context-collected.js
@@ -0,0 +1,14 @@
+// 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 that contextDesrtoyed nofitication is fired when context is collected.');
+
+(async function test() {
+ await Protocol.Runtime.enable();
+ Protocol.Runtime.onExecutionContextDestroyed(InspectorTest.logMessage);
+ contextGroup.addScript('inspector.freeContext()');
+ await Protocol.HeapProfiler.collectGarbage();
+ InspectorTest.completeTest();
+})();