#include #include #include #include #include #include namespace Web { namespace Bindings { EventTargetWrapper::EventTargetWrapper(EventTarget& impl) : m_impl(impl) { put_native_function("addEventListener", [](Object* this_object, const Vector& arguments) { if (arguments.size() < 2) return JS::js_undefined(); auto event_name = arguments[0].to_string(); ASSERT(arguments[1].is_object()); ASSERT(arguments[1].as_object()->is_function()); auto listener = adopt(*new EventListener(static_cast(const_cast(arguments[1].as_object())))); wrap(this_object->heap(), *listener); static_cast(this_object)->impl().add_event_listener(event_name, move(listener)); return JS::js_undefined(); }); } EventTargetWrapper::~EventTargetWrapper() { } } }