Lines Matching refs:vm

23 void DebuggerExecutor::Initialize(const EcmaVM *vm)
25 [[maybe_unused]] EcmaHandleScope handleScope(vm->GetJSThread());
26 Local<ObjectRef> globalObj = JSNApi::GetGlobalObject(vm);
27 globalObj->Set(vm, StringRef::NewFromUtf8(vm, "debuggerSetValue"), FunctionRef::New(
28 const_cast<panda::EcmaVM*>(vm), DebuggerExecutor::DebuggerSetValue));
29 globalObj->Set(vm, StringRef::NewFromUtf8(vm, "debuggerGetValue"), FunctionRef::New(
30 const_cast<panda::EcmaVM*>(vm), DebuggerExecutor::DebuggerGetValue));
35 EcmaVM *vm = runtimeCallInfo->GetVM();
38 return JSValueRef::Undefined(vm);
41 if (!name->IsString(vm)) {
42 return JSValueRef::Undefined(vm);
46 auto &frameHandler = vm->GetJsDebuggerManager()->GetEvalFrameHandler();
49 Local<JSValueRef> value = GetValue(vm, frameHandler.get(), Local<StringRef>(name));
54 if (!isThrow->ToBoolean(vm)->Value()) {
55 DebuggerApi::ClearException(vm);
56 return JSValueRef::Undefined(vm);
59 std::string varName = Local<StringRef>(name)->ToString(vm);
60 ThrowException(vm, varName + " is not defined");
66 EcmaVM *vm = runtimeCallInfo->GetVM();
69 return JSValueRef::Undefined(vm);
72 if (!name->IsString(vm)) {
73 return JSValueRef::Undefined(vm);
77 auto &frameHandler = vm->GetJsDebuggerManager()->GetEvalFrameHandler();
80 if (SetValue(vm, frameHandler.get(), Local<StringRef>(name), value)) {
84 std::string varName = StringRef::Cast(*name)->ToString(vm);
85 ThrowException(vm, varName + " is not defined");
89 Local<JSValueRef> DebuggerExecutor::GetValue(const EcmaVM *vm, const FrameHandler *frameHandler, Local<StringRef> name)
92 value = GetLocalValue(vm, frameHandler, name);
96 value = GetLexicalValue(vm, frameHandler, name);
100 value = GetModuleValue(vm, frameHandler, name);
104 value = GetGlobalValue(vm, name);
112 bool DebuggerExecutor::SetValue(const EcmaVM *vm, FrameHandler *frameHandler,
115 if (SetLocalValue(vm, frameHandler, name, value)) {
118 if (SetLexicalValue(vm, frameHandler, name, value)) {
121 if (SetModuleValue(vm, frameHandler, name, value)) {
124 if (SetGlobalValue(vm, name, value)) {
131 void DebuggerExecutor::ThrowException(const EcmaVM *vm, const std::string &error)
133 Local<StringRef> msg = StringRef::NewFromUtf8(vm, error.c_str());
134 Local<JSValueRef> exception = Exception::ReferenceError(vm, msg);
135 JSNApi::ThrowException(vm, exception);
138 Local<JSValueRef> DebuggerExecutor::GetLocalValue(const EcmaVM *vm, const FrameHandler *frameHandler,
143 int32_t index = DebuggerApi::GetVregIndex(frameHandler, name->ToString(vm));
148 result = DebuggerApi::GetVRegValue(vm, frameHandler, index);
152 bool DebuggerExecutor::SetLocalValue(const EcmaVM *vm, FrameHandler *frameHandler,
155 std::string varName = name->ToString(vm);
162 vm->GetJsDebuggerManager()->NotifyScopeUpdated(varName, value, Scope::Type::Local());
166 Local<JSValueRef> DebuggerExecutor::GetLexicalValue(const EcmaVM *vm, const FrameHandler *frameHandler,
171 auto [level, slot] = DebuggerApi::GetLevelSlot(frameHandler, name->ToString(vm));
176 result = DebuggerApi::GetProperties(vm, frameHandler, level, slot);
180 bool DebuggerExecutor::SetLexicalValue(const EcmaVM *vm, const FrameHandler *frameHandler,
183 std::string varName = name->ToString(vm);
189 DebuggerApi::SetProperties(vm, frameHandler, level, slot, value);
190 vm->GetJsDebuggerManager()->NotifyScopeUpdated(varName, value, Scope::Type::Closure());
194 Local<JSValueRef> DebuggerExecutor::GetGlobalValue(const EcmaVM *vm, Local<StringRef> name)
196 return DebuggerApi::GetGlobalValue(vm, name);
199 bool DebuggerExecutor::SetGlobalValue(const EcmaVM *vm, Local<StringRef> name, Local<JSValueRef> value)
201 std::string varName = name->ToString(vm);
202 vm->GetJsDebuggerManager()->NotifyScopeUpdated(varName, value, Scope::Type::Global());
203 return DebuggerApi::SetGlobalValue(vm, name, value);
206 Local<JSValueRef> DebuggerExecutor::GetModuleValue(const EcmaVM *vm, const FrameHandler *frameHandler,
210 std::string varName = name->ToString(vm);
216 JSThread *thread = vm->GetJSThread();
217 JSHandle<JSTaggedValue> currentModule(thread, DebuggerApi::GetCurrentModule(vm));
219 result = DebuggerApi::GetModuleValue(vm, currentModule, varName);
224 bool DebuggerExecutor::SetModuleValue(const EcmaVM *vm, const FrameHandler *frameHandler,
227 std::string varName = name->ToString(vm);
233 JSThread *thread = vm->GetJSThread();
234 JSHandle<JSTaggedValue> currentModule(thread, DebuggerApi::GetCurrentModule(vm));
236 DebuggerApi::SetModuleValue(vm, currentModule, varName, value);
237 vm->GetJsDebuggerManager()->NotifyScopeUpdated(varName, value, Scope::Type::Module());