| Index: test/inspector/isolate-data.cc
|
| diff --git a/test/inspector/isolate-data.cc b/test/inspector/isolate-data.cc
|
| index 06ba710b3ed164a8ac2b63ab9239fde533860244..927bd31ef43e326c594d02488d97833baac3edf4 100644
|
| --- a/test/inspector/isolate-data.cc
|
| +++ b/test/inspector/isolate-data.cc
|
| @@ -10,6 +10,7 @@
|
| namespace {
|
|
|
| const int kIsolateDataIndex = 2;
|
| +const int kContextGroupIdIndex = 3;
|
|
|
| v8::internal::Vector<uint16_t> ToVector(v8::Local<v8::String> str) {
|
| v8::internal::Vector<uint16_t> buffer =
|
| @@ -22,7 +23,8 @@ v8::internal::Vector<uint16_t> ToVector(v8::Local<v8::String> str) {
|
|
|
| IsolateData::IsolateData(TaskRunner* task_runner,
|
| IsolateData::SetupGlobalTasks setup_global_tasks,
|
| - v8::StartupData* startup_data)
|
| + v8::StartupData* startup_data,
|
| + InspectorClientImpl::FrontendChannel* channel)
|
| : task_runner_(task_runner),
|
| setup_global_tasks_(std::move(setup_global_tasks)) {
|
| v8::Isolate::CreateParams params;
|
| @@ -31,6 +33,8 @@ IsolateData::IsolateData(TaskRunner* task_runner,
|
| params.snapshot_blob = startup_data;
|
| isolate_ = v8::Isolate::New(params);
|
| isolate_->SetMicrotasksPolicy(v8::MicrotasksPolicy::kScoped);
|
| + if (channel)
|
| + inspector_.reset(new InspectorClientImpl(isolate_, task_runner, channel));
|
| }
|
|
|
| IsolateData* IsolateData::FromContext(v8::Local<v8::Context> context) {
|
| @@ -39,6 +43,7 @@ IsolateData* IsolateData::FromContext(v8::Local<v8::Context> context) {
|
| }
|
|
|
| int IsolateData::CreateContextGroup() {
|
| + v8::HandleScope handle_scope(isolate_);
|
| v8::Local<v8::ObjectTemplate> global_template =
|
| v8::ObjectTemplate::New(isolate_);
|
| for (auto it = setup_global_tasks_.begin(); it != setup_global_tasks_.end();
|
| @@ -49,7 +54,11 @@ int IsolateData::CreateContextGroup() {
|
| v8::Context::New(isolate_, nullptr, global_template);
|
| context->SetAlignedPointerInEmbedderData(kIsolateDataIndex, this);
|
| int context_group_id = ++last_context_group_id_;
|
| + // Should be 2-byte aligned.
|
| + context->SetAlignedPointerInEmbedderData(
|
| + kContextGroupIdIndex, reinterpret_cast<void*>(context_group_id * 2));
|
| contexts_[context_group_id].Reset(isolate_, context);
|
| + if (inspector_) inspector_->ContextCreated(context, context_group_id);
|
| return context_group_id;
|
| }
|
|
|
| @@ -57,6 +66,13 @@ v8::Local<v8::Context> IsolateData::GetContext(int context_group_id) {
|
| return contexts_[context_group_id].Get(isolate_);
|
| }
|
|
|
| +int IsolateData::GetContextGroupId(v8::Local<v8::Context> context) {
|
| + return static_cast<int>(
|
| + reinterpret_cast<intptr_t>(
|
| + context->GetAlignedPointerFromEmbedderData(kContextGroupIdIndex)) /
|
| + 2);
|
| +}
|
| +
|
| void IsolateData::RegisterModule(v8::Local<v8::Context> context,
|
| v8::internal::Vector<uint16_t> name,
|
| v8::ScriptCompiler::Source* source) {
|
|
|