#import <Fetch/Request.idl>
#import <HTML/HTMLElement.idl>
#import <HTML/Scripting/Fetching.idl>

// https://html.spec.whatwg.org/multipage/scripting.html#htmlscriptelement
[Exposed=Window]
interface HTMLScriptElement : HTMLElement {
    [HTMLConstructor] constructor();

    [CEReactions, Reflect] attribute DOMString type;
    [CEReactions, Reflect, URL] attribute USVString src;
    [CEReactions, Reflect=nomodule] attribute boolean noModule;
    [CEReactions] attribute boolean async;
    [CEReactions, Reflect] attribute boolean defer;
    [FIXME, SameObject, PutForwards=value] readonly attribute DOMTokenList blocking;
    [CEReactions, Reflect=crossorigin, Enumerated=CORSSettingsAttribute] attribute DOMString? crossOrigin;
    [CEReactions, Reflect=referrerpolicy, Enumerated=ReferrerPolicy] attribute DOMString referrerPolicy;
    [CEReactions, Reflect] attribute DOMString integrity;
    [CEReactions, Enumerated=FetchPriorityAttribute, Reflect=fetchpriority] attribute DOMString fetchPriority;

    [CEReactions] attribute Utf16DOMString text;

    static boolean supports(DOMString type);

    // Obsolete
    [CEReactions, Reflect] attribute DOMString charset;
    [CEReactions, Reflect] attribute DOMString event;
    [CEReactions, Reflect=for] attribute DOMString htmlFor;
};
