mirror of
https://github.com/RGBCube/serenity
synced 2025-05-15 12:44:58 +00:00

With this change, we now have ~1200 CellAllocators across both LibJS and LibWeb in a normal WebContent instance. This gives us a minimum heap size of 4.7 MiB in the scenario where we only have one cell allocated per type. Of course, in practice there will be many more of each type, so the effective overhead is quite a bit smaller than that in practice. I left a few types unconverted to this mechanism because I got tired of doing this. :^)
47 lines
1.4 KiB
C++
47 lines
1.4 KiB
C++
/*
|
|
* Copyright (c) 2021, the SerenityOS developers.
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <AK/FlyString.h>
|
|
#include <LibWeb/DOM/Event.h>
|
|
|
|
namespace Web::XHR {
|
|
|
|
// FIXME: All the "u32"s should be "u64"s, however LibJS doesn't currently support constructing values with u64,
|
|
// and the IDL parser doesn't properly parse "unsigned long long".
|
|
|
|
struct ProgressEventInit : public DOM::EventInit {
|
|
bool length_computable { false };
|
|
u32 loaded { 0 };
|
|
u32 total { 0 };
|
|
};
|
|
|
|
class ProgressEvent final : public DOM::Event {
|
|
WEB_PLATFORM_OBJECT(ProgressEvent, DOM::Event);
|
|
JS_DECLARE_ALLOCATOR(ProgressEvent);
|
|
|
|
public:
|
|
[[nodiscard]] static JS::NonnullGCPtr<ProgressEvent> create(JS::Realm&, FlyString const& event_name, ProgressEventInit const& event_init);
|
|
static WebIDL::ExceptionOr<JS::NonnullGCPtr<ProgressEvent>> construct_impl(JS::Realm&, FlyString const& event_name, ProgressEventInit const& event_init);
|
|
|
|
virtual ~ProgressEvent() override;
|
|
|
|
bool length_computable() const { return m_length_computable; }
|
|
u64 loaded() const { return m_loaded; }
|
|
u64 total() const { return m_total; }
|
|
|
|
private:
|
|
ProgressEvent(JS::Realm&, FlyString const& event_name, ProgressEventInit const& event_init);
|
|
|
|
virtual void initialize(JS::Realm&) override;
|
|
|
|
bool m_length_computable { false };
|
|
u64 m_loaded { 0 };
|
|
u64 m_total { 0 };
|
|
};
|
|
|
|
}
|