mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 11:18:11 +00:00

This patch introduces the Wrapper and Wrappable classes. Node now inherits from Wrappable, and can be wrapped in a GC-allocated Bindings::NodeWrapper object. The only property we expose right now is the very simple nodeName property. When a Document's JS::Interpreter is first instantiated, we add a "document" property with a DocumentWrapper object to the global object. This is pretty cool! :^)
23 lines
414 B
C++
23 lines
414 B
C++
#pragma once
|
|
|
|
#include <LibWeb/Bindings/Wrapper.h>
|
|
|
|
namespace Web {
|
|
namespace Bindings {
|
|
|
|
class NodeWrapper : public Wrapper {
|
|
public:
|
|
explicit NodeWrapper(Node&);
|
|
virtual ~NodeWrapper() override;
|
|
|
|
Node& node() { return *m_node; }
|
|
const Node& node() const { return *m_node; }
|
|
|
|
private:
|
|
virtual const char* class_name() const override { return "Node"; }
|
|
|
|
NonnullRefPtr<Node> m_node;
|
|
};
|
|
|
|
}
|
|
}
|