1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-23 19:05:08 +00:00

LibWeb: Implement the JS host hooks for promises, job callbacks and more

This overrides the JS host hooks to follow the spec for queuing
promises, making/calling job callbacks, unhandled promise rejection
handling and FinalizationRegistry queuing.

This also allows us to drop the on_call_stack_emptied hook in
Document::interpreter().
This commit is contained in:
Luke Wilde 2022-02-06 03:32:26 +00:00 committed by Linus Groh
parent 4c1c6ef91c
commit 17aeb99e9e
7 changed files with 290 additions and 20 deletions

View file

@ -13,9 +13,11 @@
namespace Web::HTML {
// https://html.spec.whatwg.org/multipage/webappapis.html#classic-script
class ClassicScript final : public Script {
class ClassicScript final
: public Script
, public JS::Script::HostDefined {
public:
~ClassicScript();
virtual ~ClassicScript() override;
enum class MutedErrors {
No,
@ -34,6 +36,8 @@ public:
};
JS::Completion run(RethrowErrors = RethrowErrors::No);
MutedErrors muted_errors() const { return m_muted_errors; }
private:
ClassicScript(AK::URL base_url, String filename, EnvironmentSettingsObject& environment_settings_object);