mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 07:47:35 +00:00
LibWeb: Make wrapper factory functions take JS::GlobalObject&
Instead of taking the JS::Heap&. This allows us to get rid of some calls to JS::Interpreter::global_object(). We're getting closer and closer to multiple global objects. :^)
This commit is contained in:
parent
c24f5585b2
commit
fc4ed8d444
12 changed files with 33 additions and 36 deletions
|
@ -24,18 +24,17 @@
|
|||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <LibJS/Interpreter.h>
|
||||
#include <LibWeb/Bindings/EventWrapper.h>
|
||||
#include <LibWeb/Bindings/MouseEventWrapper.h>
|
||||
|
||||
namespace Web {
|
||||
namespace Bindings {
|
||||
|
||||
EventWrapper* wrap(JS::Heap& heap, Event& event)
|
||||
EventWrapper* wrap(JS::GlobalObject& global_object, Event& event)
|
||||
{
|
||||
if (event.is_mouse_event())
|
||||
return static_cast<MouseEventWrapper*>(wrap_impl(heap, static_cast<MouseEvent&>(event)));
|
||||
return static_cast<EventWrapper*>(wrap_impl(heap, event));
|
||||
return static_cast<MouseEventWrapper*>(wrap_impl(global_object, static_cast<MouseEvent&>(event)));
|
||||
return static_cast<EventWrapper*>(wrap_impl(global_object, event));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
namespace Web {
|
||||
namespace Bindings {
|
||||
|
||||
EventWrapper* wrap(JS::Heap&, Event&);
|
||||
EventWrapper* wrap(JS::GlobalObject&, Event&);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <LibJS/Interpreter.h>
|
||||
#include <LibWeb/Bindings/DocumentWrapper.h>
|
||||
#include <LibWeb/Bindings/HTMLCanvasElementWrapper.h>
|
||||
#include <LibWeb/Bindings/HTMLImageElementWrapper.h>
|
||||
|
@ -38,19 +37,19 @@
|
|||
namespace Web {
|
||||
namespace Bindings {
|
||||
|
||||
NodeWrapper* wrap(JS::Heap& heap, Node& node)
|
||||
NodeWrapper* wrap(JS::GlobalObject& global_object, Node& node)
|
||||
{
|
||||
if (is<Document>(node))
|
||||
return static_cast<NodeWrapper*>(wrap_impl(heap, to<Document>(node)));
|
||||
return static_cast<NodeWrapper*>(wrap_impl(global_object, to<Document>(node)));
|
||||
if (is<HTMLCanvasElement>(node))
|
||||
return static_cast<NodeWrapper*>(wrap_impl(heap, to<HTMLCanvasElement>(node)));
|
||||
return static_cast<NodeWrapper*>(wrap_impl(global_object, to<HTMLCanvasElement>(node)));
|
||||
if (is<HTMLImageElement>(node))
|
||||
return static_cast<NodeWrapper*>(wrap_impl(heap, to<HTMLImageElement>(node)));
|
||||
return static_cast<NodeWrapper*>(wrap_impl(global_object, to<HTMLImageElement>(node)));
|
||||
if (is<HTMLElement>(node))
|
||||
return static_cast<NodeWrapper*>(wrap_impl(heap, to<HTMLElement>(node)));
|
||||
return static_cast<NodeWrapper*>(wrap_impl(global_object, to<HTMLElement>(node)));
|
||||
if (is<Element>(node))
|
||||
return static_cast<NodeWrapper*>(wrap_impl(heap, to<Element>(node)));
|
||||
return static_cast<NodeWrapper*>(wrap_impl(heap, node));
|
||||
return static_cast<NodeWrapper*>(wrap_impl(global_object, to<Element>(node)));
|
||||
return static_cast<NodeWrapper*>(wrap_impl(global_object, node));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
namespace Web {
|
||||
namespace Bindings {
|
||||
|
||||
NodeWrapper* wrap(JS::Heap&, Node&);
|
||||
NodeWrapper* wrap(JS::GlobalObject&, Node&);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -244,7 +244,7 @@ JS_DEFINE_NATIVE_GETTER(WindowObject::document_getter)
|
|||
auto* impl = impl_from(interpreter, global_object);
|
||||
if (!impl)
|
||||
return {};
|
||||
return wrap(interpreter.heap(), impl->document());
|
||||
return wrap(global_object, impl->document());
|
||||
}
|
||||
|
||||
JS_DEFINE_NATIVE_SETTER(WindowObject::document_setter)
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
|
||||
#include <AK/WeakPtr.h>
|
||||
#include <LibJS/Heap/Heap.h>
|
||||
#include <LibJS/Interpreter.h>
|
||||
#include <LibJS/Runtime/GlobalObject.h>
|
||||
#include <LibWeb/Forward.h>
|
||||
|
||||
namespace Web {
|
||||
|
@ -47,11 +47,10 @@ private:
|
|||
};
|
||||
|
||||
template<class NativeObject>
|
||||
inline Wrapper* wrap_impl(JS::Heap& heap, NativeObject& native_object)
|
||||
inline Wrapper* wrap_impl(JS::GlobalObject& global_object, NativeObject& native_object)
|
||||
{
|
||||
if (!native_object.wrapper()) {
|
||||
auto& global_object = heap.interpreter().global_object();
|
||||
native_object.set_wrapper(*heap.allocate<typename NativeObject::WrapperType>(global_object, global_object, native_object));
|
||||
native_object.set_wrapper(*global_object.heap().allocate<typename NativeObject::WrapperType>(global_object, global_object, native_object));
|
||||
}
|
||||
return native_object.wrapper();
|
||||
}
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
*/
|
||||
|
||||
#include <AK/FlyString.h>
|
||||
#include <LibJS/Interpreter.h>
|
||||
#include <LibJS/Runtime/GlobalObject.h>
|
||||
#include <LibJS/Runtime/Value.h>
|
||||
#include <LibWeb/Bindings/WindowObject.h>
|
||||
|
@ -36,9 +35,9 @@
|
|||
namespace Web {
|
||||
namespace Bindings {
|
||||
|
||||
XMLHttpRequestWrapper* wrap(JS::Heap& heap, XMLHttpRequest& impl)
|
||||
XMLHttpRequestWrapper* wrap(JS::GlobalObject& global_object, XMLHttpRequest& impl)
|
||||
{
|
||||
return static_cast<XMLHttpRequestWrapper*>(wrap_impl(heap, impl));
|
||||
return static_cast<XMLHttpRequestWrapper*>(wrap_impl(global_object, impl));
|
||||
}
|
||||
|
||||
XMLHttpRequestWrapper::XMLHttpRequestWrapper(JS::GlobalObject& global_object, XMLHttpRequest& impl)
|
||||
|
|
|
@ -43,7 +43,7 @@ private:
|
|||
virtual const char* class_name() const override { return "XMLHttpRequestWrapper"; }
|
||||
};
|
||||
|
||||
XMLHttpRequestWrapper* wrap(JS::Heap&, XMLHttpRequest&);
|
||||
XMLHttpRequestWrapper* wrap(JS::GlobalObject&, XMLHttpRequest&);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue