You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
1.8 KiB
JavaScript

'use strict';
const { booleanAttribute, stringAttribute } = require('../shared/attributes.js');
const { registerHTMLClass } = require('../shared/register-html-class.js');
const { TextElement } = require('./text-element.js');
const tagName = 'script';
/**
* @implements globalThis.HTMLScriptElement
*/
class HTMLScriptElement extends TextElement {
constructor(ownerDocument, localName = tagName) {
super(ownerDocument, localName);
}
get type() {
return stringAttribute.get(this, 'type');
}
set type(value) {
stringAttribute.set(this, 'type', value);
}
get src() {
return stringAttribute.get(this, 'src');
}
set src(value) {
stringAttribute.set(this, 'src', value);
}
get defer() {
return booleanAttribute.get(this, 'defer');
}
set defer(value) {
booleanAttribute.set(this, 'defer', value);
}
get crossOrigin() {
return stringAttribute.get(this, 'crossorigin');
}
set crossOrigin(value) {
stringAttribute.set(this, 'crossorigin', value);
}
get nomodule() {
return booleanAttribute.get(this, 'nomodule');
}
set nomodule(value) {
booleanAttribute.set(this, 'nomodule', value);
}
get referrerPolicy() {
return stringAttribute.get(this, 'referrerpolicy');
}
set referrerPolicy(value) {
stringAttribute.set(this, 'referrerpolicy', value);
}
get nonce() {
return stringAttribute.get(this, 'nonce');
}
set nonce(value) {
stringAttribute.set(this, 'nonce', value);
}
get async() {
return booleanAttribute.get(this, 'async');
}
set async(value) {
booleanAttribute.set(this, 'async', value);
}
get text() { return this.textContent; }
set text(content) { this.textContent = content; }
}
registerHTMLClass(tagName, HTMLScriptElement);
exports.HTMLScriptElement = HTMLScriptElement;