11cb0ef41Sopenharmony_ci// Copyright 2020 the V8 project authors. All rights reserved. 21cb0ef41Sopenharmony_ci// Use of this source code is governed by a BSD-style license that can be 31cb0ef41Sopenharmony_ci// found in the LICENSE file. 41cb0ef41Sopenharmony_ci 51cb0ef41Sopenharmony_ci#ifndef V8_TOOLS_V8WINDBG_SRC_CUR_ISOLATE_H_ 61cb0ef41Sopenharmony_ci#define V8_TOOLS_V8WINDBG_SRC_CUR_ISOLATE_H_ 71cb0ef41Sopenharmony_ci 81cb0ef41Sopenharmony_ci#include <crtdbg.h> 91cb0ef41Sopenharmony_ci#include <wrl/implements.h> 101cb0ef41Sopenharmony_ci 111cb0ef41Sopenharmony_ci#include <string> 121cb0ef41Sopenharmony_ci#include <vector> 131cb0ef41Sopenharmony_ci 141cb0ef41Sopenharmony_ci#include "tools/v8windbg/base/utilities.h" 151cb0ef41Sopenharmony_ci#include "tools/v8windbg/src/v8-debug-helper-interop.h" 161cb0ef41Sopenharmony_ci#include "tools/v8windbg/src/v8windbg-extension.h" 171cb0ef41Sopenharmony_ci 181cb0ef41Sopenharmony_ciHRESULT GetCurrentIsolate(WRL::ComPtr<IModelObject>& sp_result); 191cb0ef41Sopenharmony_ci 201cb0ef41Sopenharmony_ciconstexpr wchar_t kIsolateKey[] = L"v8::internal::Isolate::isolate_key_"; 211cb0ef41Sopenharmony_ciconstexpr wchar_t kIsolate[] = L"v8::internal::Isolate"; 221cb0ef41Sopenharmony_ci 231cb0ef41Sopenharmony_ciclass CurrIsolateAlias 241cb0ef41Sopenharmony_ci : public WRL::RuntimeClass< 251cb0ef41Sopenharmony_ci WRL::RuntimeClassFlags<WRL::RuntimeClassType::ClassicCom>, 261cb0ef41Sopenharmony_ci IModelMethod> { 271cb0ef41Sopenharmony_ci public: 281cb0ef41Sopenharmony_ci IFACEMETHOD(Call) 291cb0ef41Sopenharmony_ci (IModelObject* p_context_object, ULONG64 arg_count, 301cb0ef41Sopenharmony_ci _In_reads_(arg_count) IModelObject** pp_arguments, IModelObject** pp_result, 311cb0ef41Sopenharmony_ci IKeyStore** pp_metadata); 321cb0ef41Sopenharmony_ci}; 331cb0ef41Sopenharmony_ci 341cb0ef41Sopenharmony_ci#endif // V8_TOOLS_V8WINDBG_SRC_CUR_ISOLATE_H_ 35