From c1c56b1131e6b4db3438e17b607522664c49c10a Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 29 Mar 2020 22:29:05 +0200 Subject: [PATCH] LibWeb: Add Element.id property to the bindings --- Libraries/LibWeb/Bindings/ElementWrapper.cpp | 14 ++++++++++++++ Libraries/LibWeb/Bindings/ElementWrapper.h | 3 +++ 2 files changed, 17 insertions(+) diff --git a/Libraries/LibWeb/Bindings/ElementWrapper.cpp b/Libraries/LibWeb/Bindings/ElementWrapper.cpp index 0639bc62bd..a5e39aa4b9 100644 --- a/Libraries/LibWeb/Bindings/ElementWrapper.cpp +++ b/Libraries/LibWeb/Bindings/ElementWrapper.cpp @@ -39,6 +39,7 @@ ElementWrapper::ElementWrapper(Element& element) : NodeWrapper(element) { put_native_property("innerHTML", inner_html_getter, inner_html_setter); + put_native_property("id", id_getter, id_setter); } ElementWrapper::~ElementWrapper() @@ -77,5 +78,18 @@ void ElementWrapper::inner_html_setter(JS::Interpreter& interpreter, JS::Value v impl->set_inner_html(value.to_string()); } +JS::Value ElementWrapper::id_getter(JS::Interpreter& interpreter) +{ + if (auto* impl = impl_from(interpreter)) + return JS::js_string(interpreter.heap(), impl->attribute("id")); + return {}; +} + +void ElementWrapper::id_setter(JS::Interpreter& interpreter, JS::Value value) +{ + if (auto* impl = impl_from(interpreter)) + impl->set_attribute("id", value.to_string()); +} + } } diff --git a/Libraries/LibWeb/Bindings/ElementWrapper.h b/Libraries/LibWeb/Bindings/ElementWrapper.h index 921db73215..b9b743c6f9 100644 --- a/Libraries/LibWeb/Bindings/ElementWrapper.h +++ b/Libraries/LibWeb/Bindings/ElementWrapper.h @@ -44,6 +44,9 @@ private: static JS::Value inner_html_getter(JS::Interpreter&); static void inner_html_setter(JS::Interpreter&, JS::Value); + + static JS::Value id_getter(JS::Interpreter&); + static void id_setter(JS::Interpreter&, JS::Value); }; }