| 585 | } |
| 586 | |
| 587 | bool V8JavaScriptContext::hasObjectProperty(const JSValue& object, const JSPropertyName& propertyName) { |
| 588 | v8::HandleScope handleScope(_isolate); |
| 589 | JSExceptionTracker tracker(*this); |
| 590 | |
| 591 | auto obj = v8::Local<v8::Object>::Cast(fromValdiJSValue(_isolate, object, tracker)); |
| 592 | if (!tracker) { |
| 593 | tracker.clearError(); |
| 594 | return false; |
| 595 | } |
| 596 | |
| 597 | if (!obj->IsObject()) { |
| 598 | return false; |
| 599 | } |
| 600 | |
| 601 | auto key = fromValdiJSPropertyName(_isolate, propertyName, tracker); |
| 602 | if (!tracker) { |
| 603 | tracker.clearError(); |
| 604 | return false; |
| 605 | } |
| 606 | |
| 607 | v8::Local<v8::Context> context = v8::Local<v8::Context>::New(_isolate, _context); |
| 608 | return obj->Has(context, key).FromMaybe(false); |
| 609 | } |
| 610 | |
| 611 | void V8JavaScriptContext::setObjectProperty(const JSValue& object, |
| 612 | const std::string_view& propertyName, |
no test coverage detected