mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-06-09 17:44:56 +09:00
LibWeb: Allow all Script types to be used as [[HostDefined]] values
This patch adds support for all child classes of Web::HTML::Script to be used in the [[HostDefined]] field of JS::Modules and JS::Scripts.
This commit is contained in:
parent
5a3e079deb
commit
83554526f0
Notes:
sideshowbarker
2024-07-17 06:18:30 +09:00
Author: https://github.com/networkException
Commit: 83554526f0
Pull-request: https://github.com/SerenityOS/serenity/pull/15275
Reviewed-by: https://github.com/davidot ✅
Reviewed-by: https://github.com/linusg
4 changed files with 12 additions and 10 deletions
|
@ -166,9 +166,4 @@ void ClassicScript::visit_edges(Cell::Visitor& visitor)
|
||||||
visitor.visit(m_script_record);
|
visitor.visit(m_script_record);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClassicScript::visit_host_defined_self(Cell::Visitor& visitor)
|
|
||||||
{
|
|
||||||
visitor.visit(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,9 +13,7 @@
|
||||||
namespace Web::HTML {
|
namespace Web::HTML {
|
||||||
|
|
||||||
// https://html.spec.whatwg.org/multipage/webappapis.html#classic-script
|
// https://html.spec.whatwg.org/multipage/webappapis.html#classic-script
|
||||||
class ClassicScript final
|
class ClassicScript final : public Script {
|
||||||
: public Script
|
|
||||||
, public JS::Script::HostDefined {
|
|
||||||
JS_CELL(ClassicScript, Script);
|
JS_CELL(ClassicScript, Script);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -42,7 +40,6 @@ private:
|
||||||
ClassicScript(AK::URL base_url, String filename, EnvironmentSettingsObject& environment_settings_object);
|
ClassicScript(AK::URL base_url, String filename, EnvironmentSettingsObject& environment_settings_object);
|
||||||
|
|
||||||
virtual void visit_edges(Cell::Visitor&) override;
|
virtual void visit_edges(Cell::Visitor&) override;
|
||||||
virtual void visit_host_defined_self(Cell::Visitor&) override;
|
|
||||||
|
|
||||||
JS::GCPtr<JS::Script> m_script_record;
|
JS::GCPtr<JS::Script> m_script_record;
|
||||||
MutedErrors m_muted_errors { MutedErrors::No };
|
MutedErrors m_muted_errors { MutedErrors::No };
|
||||||
|
|
|
@ -17,4 +17,9 @@ Script::Script(AK::URL base_url, String filename, EnvironmentSettingsObject& env
|
||||||
|
|
||||||
Script::~Script() = default;
|
Script::~Script() = default;
|
||||||
|
|
||||||
|
void Script::visit_host_defined_self(JS::Cell::Visitor& visitor)
|
||||||
|
{
|
||||||
|
visitor.visit(this);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,12 +8,15 @@
|
||||||
|
|
||||||
#include <AK/URL.h>
|
#include <AK/URL.h>
|
||||||
#include <LibJS/Heap/Cell.h>
|
#include <LibJS/Heap/Cell.h>
|
||||||
|
#include <LibJS/Script.h>
|
||||||
#include <LibWeb/Forward.h>
|
#include <LibWeb/Forward.h>
|
||||||
|
|
||||||
namespace Web::HTML {
|
namespace Web::HTML {
|
||||||
|
|
||||||
// https://html.spec.whatwg.org/multipage/webappapis.html#concept-script
|
// https://html.spec.whatwg.org/multipage/webappapis.html#concept-script
|
||||||
class Script : public JS::Cell {
|
class Script
|
||||||
|
: public JS::Cell
|
||||||
|
, public JS::Script::HostDefined {
|
||||||
JS_CELL(Script, JS::Cell);
|
JS_CELL(Script, JS::Cell);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -28,6 +31,8 @@ protected:
|
||||||
Script(AK::URL base_url, String filename, EnvironmentSettingsObject& environment_settings_object);
|
Script(AK::URL base_url, String filename, EnvironmentSettingsObject& environment_settings_object);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
virtual void visit_host_defined_self(JS::Cell::Visitor&) override;
|
||||||
|
|
||||||
AK::URL m_base_url;
|
AK::URL m_base_url;
|
||||||
String m_filename;
|
String m_filename;
|
||||||
EnvironmentSettingsObject& m_settings_object;
|
EnvironmentSettingsObject& m_settings_object;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue