Skip to content

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Jul 29, 2025

⚠ NEVER add commits to this pull request.

πŸ€– This pull request was automatically created to facilitate human review of @webref/idl changes triggered by curated data at c08ba03.

🧐 Please review the diff below and version numbers. If all looks good, merge this pull request to release the changes to npm.

πŸ“¦ Latest released @webref/idl package was v3.66.0. Merging this pull request will release v3.66.1. Make sure that the bump is the right one for the changes.

✍ If any change needs to be made before release, do not add a commit to this pull request. Changes should rather be handled in a separate pull request and pushed to the main branch. You may leave this pull request open in the meantime, or close it. The pre-release job will automatically update this pull request or create a new one once the updates have made their way to the main branch.

πŸ›ˆ The actual change introduced by this pull request is a version bump in packages/idl/package.json. You do not need to review that change. The bumped version is not the version that will be released when this pull request is merged, but rather the version that will be released next time.

diff --ignore-trailing-space '--exclude=package.json' '--exclude=README.md' '--exclude=CHANGELOG.md' '--unified=3' webref/node_modules/@webref/idl/IndexedDB.idl packages/idl/IndexedDB.idl
--- webref/node_modules/@webref/idl/IndexedDB.idl
+++ packages/idl/IndexedDB.idl
@@ -108,10 +108,11 @@
   [NewObject] IDBRequest clear();
   [NewObject] IDBRequest get(any query);
   [NewObject] IDBRequest getKey(any query);
-  [NewObject] IDBRequest getAll(optional any query,
+  [NewObject] IDBRequest getAll(optional any queryOrOptions,
                                 optional [EnforceRange] unsigned long count);
-  [NewObject] IDBRequest getAllKeys(optional any query,
+  [NewObject] IDBRequest getAllKeys(optional any queryOrOptions,
                                     optional [EnforceRange] unsigned long count);
+  [NewObject] IDBRequest getAllRecords(optional IDBGetAllOptions options = {});
   [NewObject] IDBRequest count(optional any query);
 
   [NewObject] IDBRequest openCursor(optional any query,
@@ -132,6 +133,12 @@
   boolean multiEntry = false;
 };
 
+dictionary IDBGetAllOptions {
+  any query = null;
+  [EnforceRange] unsigned long count;
+  IDBCursorDirection direction = "next";
+};
+
 [Exposed=(Window,Worker)]
 interface IDBIndex {
   attribute DOMString name;
@@ -142,10 +149,11 @@
 
   [NewObject] IDBRequest get(any query);
   [NewObject] IDBRequest getKey(any query);
-  [NewObject] IDBRequest getAll(optional any query,
+  [NewObject] IDBRequest getAll(optional any queryOrOptions,
                                 optional [EnforceRange] unsigned long count);
-  [NewObject] IDBRequest getAllKeys(optional any query,
+  [NewObject] IDBRequest getAllKeys(optional any queryOrOptions,
                                     optional [EnforceRange] unsigned long count);
+  [NewObject] IDBRequest getAllRecords(optional IDBGetAllOptions options = {});
   [NewObject] IDBRequest count(optional any query);
 
   [NewObject] IDBRequest openCursor(optional any query,
@@ -174,6 +182,13 @@
 };
 
 [Exposed=(Window,Worker)]
+interface IDBRecord {
+  readonly attribute any key;
+  readonly attribute any primaryKey;
+  readonly attribute any value;
+};
+
+[Exposed=(Window,Worker)]
 interface IDBCursor {
   readonly attribute (IDBObjectStore or IDBIndex) source;
   readonly attribute IDBCursorDirection direction;

diff --ignore-trailing-space '--exclude=package.json' '--exclude=README.md' '--exclude=CHANGELOG.md' '--unified=3' webref/node_modules/@webref/idl/fetch.idl packages/idl/fetch.idl
--- webref/node_modules/@webref/idl/fetch.idl
+++ packages/idl/fetch.idl
@@ -116,3 +116,16 @@
 partial interface mixin WindowOrWorkerGlobalScope {
   [NewObject] Promise<Response> fetch(RequestInfo input, optional RequestInit init = {});
 };
+
+dictionary DeferredRequestInit : RequestInit {
+  DOMHighResTimeStamp activateAfter;
+};
+
+[Exposed=Window]
+interface FetchLaterResult {
+  readonly attribute boolean activated;
+};
+
+partial interface Window {
+  [NewObject] FetchLaterResult fetchLater(RequestInfo input, optional DeferredRequestInit init = {});
+};

diff --ignore-trailing-space '--exclude=package.json' '--exclude=README.md' '--exclude=CHANGELOG.md' '--unified=3' webref/node_modules/@webref/idl/html.idl packages/idl/html.idl
--- webref/node_modules/@webref/idl/html.idl
+++ packages/idl/html.idl
@@ -110,21 +110,21 @@
   [HTMLConstructor] constructor();
 
   // metadata attributes
-  [CEReactions] attribute DOMString title;
-  [CEReactions] attribute DOMString lang;
+  [CEReactions, Reflect] attribute DOMString title;
+  [CEReactions, Reflect] attribute DOMString lang;
   [CEReactions] attribute boolean translate;
   [CEReactions] attribute DOMString dir;
 
   // user interaction
   [CEReactions] attribute (boolean or unrestricted double or DOMString)? hidden;
-  [CEReactions] attribute boolean inert;
+  [CEReactions, Reflect] attribute boolean inert;
   undefined click();
-  [CEReactions] attribute DOMString accessKey;
+  [CEReactions, Reflect] attribute DOMString accessKey;
   readonly attribute DOMString accessKeyLabel;
   [CEReactions] attribute boolean draggable;
   [CEReactions] attribute boolean spellcheck;
-  [CEReactions] attribute DOMString writingSuggestions;
-  [CEReactions] attribute DOMString autocapitalize;
+  [CEReactions, ReflectSetter] attribute DOMString writingSuggestions;
+  [CEReactions, ReflectSetter] attribute DOMString autocapitalize;
   [CEReactions] attribute boolean autocorrect;
 
   [CEReactions] attribute [LegacyNullToEmptyString] DOMString innerText;
@@ -160,8 +160,8 @@
   [SameObject] readonly attribute DOMStringMap dataset;
   attribute DOMString nonce; // intentionally no [CEReactions]
 
-  [CEReactions] attribute boolean autofocus;
-  [CEReactions] attribute long tabIndex;
+  [CEReactions, Reflect] attribute boolean autofocus;
+  [CEReactions, ReflectSetter] attribute long tabIndex;
   undefined focus(optional FocusOptions options = {});
   undefined blur();
 };
@@ -197,29 +197,29 @@
 interface HTMLBaseElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute USVString href;
-  [CEReactions] attribute DOMString target;
+  [CEReactions, ReflectSetter] attribute USVString href;
+  [CEReactions, Reflect] attribute DOMString target;
 };
 
 [Exposed=Window]
 interface HTMLLinkElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute USVString href;
+  [CEReactions, ReflectURL] attribute USVString href;
   [CEReactions] attribute DOMString? crossOrigin;
-  [CEReactions] attribute DOMString rel;
+  [CEReactions, Reflect] attribute DOMString rel;
   [CEReactions] attribute DOMString as;
-  [SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
-  [CEReactions] attribute DOMString media;
-  [CEReactions] attribute DOMString integrity;
-  [CEReactions] attribute DOMString hreflang;
-  [CEReactions] attribute DOMString type;
-  [SameObject, PutForwards=value] readonly attribute DOMTokenList sizes;
-  [CEReactions] attribute USVString imageSrcset;
-  [CEReactions] attribute DOMString imageSizes;
+  [SameObject, PutForwards=value, Reflect="rel"] readonly attribute DOMTokenList relList;
+  [CEReactions, Reflect] attribute DOMString media;
+  [CEReactions, Reflect] attribute DOMString integrity;
+  [CEReactions, Reflect] attribute DOMString hreflang;
+  [CEReactions, Reflect] attribute DOMString type;
+  [SameObject, PutForwards=value, Reflect] readonly attribute DOMTokenList sizes;
+  [CEReactions, Reflect] attribute USVString imageSrcset;
+  [CEReactions, Reflect] attribute DOMString imageSizes;
   [CEReactions] attribute DOMString referrerPolicy;
-  [SameObject, PutForwards=value] readonly attribute DOMTokenList blocking;
-  [CEReactions] attribute boolean disabled;
+  [SameObject, PutForwards=value, Reflect] readonly attribute DOMTokenList blocking;
+  [CEReactions, Reflect] attribute boolean disabled;
   [CEReactions] attribute DOMString fetchPriority;
 
   // also has obsolete members
@@ -230,10 +230,10 @@
 interface HTMLMetaElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute DOMString name;
-  [CEReactions] attribute DOMString httpEquiv;
-  [CEReactions] attribute DOMString content;
-  [CEReactions] attribute DOMString media;
+  [CEReactions, Reflect] attribute DOMString name;
+  [CEReactions, Reflect="http-equiv"] attribute DOMString httpEquiv;
+  [CEReactions, Reflect] attribute DOMString content;
+  [CEReactions, Reflect] attribute DOMString media;
 
   // also has obsolete members
 };
@@ -243,8 +243,8 @@
   [HTMLConstructor] constructor();
 
   attribute boolean disabled;
-  [CEReactions] attribute DOMString media;
-  [SameObject, PutForwards=value] readonly attribute DOMTokenList blocking;
+  [CEReactions, Reflect] attribute DOMString media;
+  [SameObject, PutForwards=value, Reflect] readonly attribute DOMTokenList blocking;
 
   // also has obsolete members
 };
@@ -291,16 +291,16 @@
 interface HTMLQuoteElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute USVString cite;
+  [CEReactions, ReflectURL] attribute USVString cite;
 };
 
 [Exposed=Window]
 interface HTMLOListElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute boolean reversed;
-  [CEReactions] attribute long start;
-  [CEReactions] attribute DOMString type;
+  [CEReactions, Reflect] attribute boolean reversed;
+  [CEReactions, Reflect, ReflectDefault=1] attribute long start;
+  [CEReactions, Reflect] attribute DOMString type;
 
   // also has obsolete members
 };
@@ -323,7 +323,7 @@
 interface HTMLLIElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute long value;
+  [CEReactions, Reflect] attribute long value;
 
   // also has obsolete members
 };
@@ -346,13 +346,13 @@
 interface HTMLAnchorElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute DOMString target;
-  [CEReactions] attribute DOMString download;
-  [CEReactions] attribute USVString ping;
-  [CEReactions] attribute DOMString rel;
-  [SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
-  [CEReactions] attribute DOMString hreflang;
-  [CEReactions] attribute DOMString type;
+  [CEReactions, Reflect] attribute DOMString target;
+  [CEReactions, Reflect] attribute DOMString download;
+  [CEReactions, Reflect] attribute USVString ping;
+  [CEReactions, Reflect] attribute DOMString rel;
+  [SameObject, PutForwards=value, Reflect="rel"] readonly attribute DOMTokenList relList;
+  [CEReactions, Reflect] attribute DOMString hreflang;
+  [CEReactions, Reflect] attribute DOMString type;
 
   [CEReactions] attribute DOMString text;
 
@@ -366,14 +366,14 @@
 interface HTMLDataElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute DOMString value;
+  [CEReactions, Reflect] attribute DOMString value;
 };
 
 [Exposed=Window]
 interface HTMLTimeElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute DOMString dateTime;
+  [CEReactions, Reflect] attribute DOMString dateTime;
 };
 
 [Exposed=Window]
@@ -389,7 +389,7 @@
 };
 
 interface mixin HTMLHyperlinkElementUtils {
-  [CEReactions] stringifier attribute USVString href;
+  [CEReactions, ReflectSetter] stringifier attribute USVString href;
   readonly attribute USVString origin;
   [CEReactions] attribute USVString protocol;
   [CEReactions] attribute USVString username;
@@ -406,8 +406,8 @@
 interface HTMLModElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute USVString cite;
-  [CEReactions] attribute DOMString dateTime;
+  [CEReactions, ReflectURL] attribute USVString cite;
+  [CEReactions, Reflect] attribute DOMString dateTime;
 };
 
 [Exposed=Window]
@@ -419,13 +419,13 @@
 interface HTMLSourceElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute USVString src;
-  [CEReactions] attribute DOMString type;
-  [CEReactions] attribute USVString srcset;
-  [CEReactions] attribute DOMString sizes;
-  [CEReactions] attribute DOMString media;
-  [CEReactions] attribute unsigned long width;
-  [CEReactions] attribute unsigned long height;
+  [CEReactions, ReflectURL] attribute USVString src;
+  [CEReactions, Reflect] attribute DOMString type;
+  [CEReactions, Reflect] attribute USVString srcset;
+  [CEReactions, Reflect] attribute DOMString sizes;
+  [CEReactions, Reflect] attribute DOMString media;
+  [CEReactions, Reflect] attribute unsigned long width;
+  [CEReactions, Reflect] attribute unsigned long height;
 };
 
 [Exposed=Window,
@@ -433,15 +433,15 @@
 interface HTMLImageElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute DOMString alt;
-  [CEReactions] attribute USVString src;
-  [CEReactions] attribute USVString srcset;
-  [CEReactions] attribute DOMString sizes;
+  [CEReactions, Reflect] attribute DOMString alt;
+  [CEReactions, ReflectURL] attribute USVString src;
+  [CEReactions, Reflect] attribute USVString srcset;
+  [CEReactions, Reflect] attribute DOMString sizes;
   [CEReactions] attribute DOMString? crossOrigin;
-  [CEReactions] attribute DOMString useMap;
-  [CEReactions] attribute boolean isMap;
-  [CEReactions] attribute unsigned long width;
-  [CEReactions] attribute unsigned long height;
+  [CEReactions, Reflect] attribute DOMString useMap;
+  [CEReactions, Reflect] attribute boolean isMap;
+  [CEReactions, ReflectSetter] attribute unsigned long width;
+  [CEReactions, ReflectSetter] attribute unsigned long height;
   readonly attribute unsigned long naturalWidth;
   readonly attribute unsigned long naturalHeight;
   readonly attribute boolean complete;
@@ -460,14 +460,14 @@
 interface HTMLIFrameElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute USVString src;
+  [CEReactions, ReflectURL] attribute USVString src;
   [CEReactions] attribute (TrustedHTML or DOMString) srcdoc;
-  [CEReactions] attribute DOMString name;
-  [SameObject, PutForwards=value] readonly attribute DOMTokenList sandbox;
-  [CEReactions] attribute DOMString allow;
-  [CEReactions] attribute boolean allowFullscreen;
-  [CEReactions] attribute DOMString width;
-  [CEReactions] attribute DOMString height;
+  [CEReactions, Reflect] attribute DOMString name;
+  [SameObject, PutForwards=value, Reflect] readonly attribute DOMTokenList sandbox;
+  [CEReactions, Reflect] attribute DOMString allow;
+  [CEReactions, Reflect] attribute boolean allowFullscreen;
+  [CEReactions, Reflect] attribute DOMString width;
+  [CEReactions, Reflect] attribute DOMString height;
   [CEReactions] attribute DOMString referrerPolicy;
   [CEReactions] attribute DOMString loading;
   readonly attribute Document? contentDocument;
@@ -481,10 +481,10 @@
 interface HTMLEmbedElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute USVString src;
-  [CEReactions] attribute DOMString type;
-  [CEReactions] attribute DOMString width;
-  [CEReactions] attribute DOMString height;
+  [CEReactions, ReflectURL] attribute USVString src;
+  [CEReactions, Reflect] attribute DOMString type;
+  [CEReactions, Reflect] attribute DOMString width;
+  [CEReactions, Reflect] attribute DOMString height;
   Document? getSVGDocument();
 
   // also has obsolete members
@@ -494,12 +494,12 @@
 interface HTMLObjectElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute USVString data;
-  [CEReactions] attribute DOMString type;
-  [CEReactions] attribute DOMString name;
+  [CEReactions, ReflectURL] attribute USVString data;
+  [CEReactions, Reflect] attribute DOMString type;
+  [CEReactions, Reflect] attribute DOMString name;
   readonly attribute HTMLFormElement? form;
-  [CEReactions] attribute DOMString width;
-  [CEReactions] attribute DOMString height;
+  [CEReactions, Reflect] attribute DOMString width;
+  [CEReactions, Reflect] attribute DOMString height;
   readonly attribute Document? contentDocument;
   readonly attribute WindowProxy? contentWindow;
   Document? getSVGDocument();
@@ -518,12 +518,12 @@
 interface HTMLVideoElement : HTMLMediaElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute unsigned long width;
-  [CEReactions] attribute unsigned long height;
+  [CEReactions, Reflect] attribute unsigned long width;
+  [CEReactions, Reflect] attribute unsigned long height;
   readonly attribute unsigned long videoWidth;
   readonly attribute unsigned long videoHeight;
-  [CEReactions] attribute USVString poster;
-  [CEReactions] attribute boolean playsInline;
+  [CEReactions, ReflectURL] attribute USVString poster;
+  [CEReactions, Reflect] attribute boolean playsInline;
 };
 
 [Exposed=Window,
@@ -537,10 +537,10 @@
   [HTMLConstructor] constructor();
 
   [CEReactions] attribute DOMString kind;
-  [CEReactions] attribute USVString src;
-  [CEReactions] attribute DOMString srclang;
-  [CEReactions] attribute DOMString label;
-  [CEReactions] attribute boolean default;
+  [CEReactions, ReflectURL] attribute USVString src;
+  [CEReactions, Reflect] attribute DOMString srclang;
+  [CEReactions, Reflect] attribute DOMString label;
+  [CEReactions, Reflect] attribute boolean default;
 
   const unsigned short NONE = 0;
   const unsigned short LOADING = 1;
@@ -561,7 +561,7 @@
   readonly attribute MediaError? error;
 
   // network state
-  [CEReactions] attribute USVString src;
+  [CEReactions, ReflectURL] attribute USVString src;
   attribute MediaProvider? srcObject;
   readonly attribute USVString currentSrc;
   [CEReactions] attribute DOMString? crossOrigin;
@@ -596,16 +596,16 @@
   readonly attribute TimeRanges played;
   readonly attribute TimeRanges seekable;
   readonly attribute boolean ended;
-  [CEReactions] attribute boolean autoplay;
-  [CEReactions] attribute boolean loop;
+  [CEReactions, Reflect] attribute boolean autoplay;
+  [CEReactions, Reflect] attribute boolean loop;
   Promise<undefined> play();
   undefined pause();
 
   // controls
-  [CEReactions] attribute boolean controls;
+  [CEReactions, Reflect] attribute boolean controls;
   attribute double volume;
   attribute boolean muted;
-  [CEReactions] attribute boolean defaultMuted;
+  [CEReactions, Reflect="muted"] attribute boolean defaultMuted;
 
   // tracks
   [SameObject] readonly attribute AudioTrackList audioTracks;
@@ -742,7 +742,7 @@
 interface HTMLMapElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute DOMString name;
+  [CEReactions, Reflect] attribute DOMString name;
   [SameObject] readonly attribute HTMLCollection areas;
 };
 
@@ -750,14 +750,14 @@
 interface HTMLAreaElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute DOMString alt;
-  [CEReactions] attribute DOMString coords;
-  [CEReactions] attribute DOMString shape;
-  [CEReactions] attribute DOMString target;
-  [CEReactions] attribute DOMString download;
-  [CEReactions] attribute USVString ping;
-  [CEReactions] attribute DOMString rel;
-  [SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
+  [CEReactions, Reflect] attribute DOMString alt;
+  [CEReactions, Reflect] attribute DOMString coords;
+  [CEReactions, Reflect] attribute DOMString shape;
+  [CEReactions, Reflect] attribute DOMString target;
+  [CEReactions, Reflect] attribute DOMString download;
+  [CEReactions, Reflect] attribute USVString ping;
+  [CEReactions, Reflect] attribute DOMString rel;
+  [SameObject, PutForwards=value, Reflect="rel"] readonly attribute DOMTokenList relList;
   [CEReactions] attribute DOMString referrerPolicy;
 
   // also has obsolete members
@@ -801,7 +801,7 @@
 interface HTMLTableColElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute unsigned long span;
+  [CEReactions, Reflect, ReflectDefault=1, ReflectRange=(1, 1000)] attribute unsigned long span;
 
   // also has obsolete members
 };
@@ -834,13 +834,13 @@
 interface HTMLTableCellElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute unsigned long colSpan;
-  [CEReactions] attribute unsigned long rowSpan;
-  [CEReactions] attribute DOMString headers;
+  [CEReactions, Reflect, ReflectDefault=1, ReflectRange=(1, 1000)] attribute unsigned long colSpan;
+  [CEReactions, Reflect, ReflectDefault=1, ReflectRange=(0, 65534)] attribute unsigned long rowSpan;
+  [CEReactions, Reflect] attribute DOMString headers;
   readonly attribute long cellIndex;
 
   [CEReactions] attribute DOMString scope; // only conforming for th elements
-  [CEReactions] attribute DOMString abbr;  // only conforming for th elements
+  [CEReactions, Reflect] attribute DOMString abbr;  // only conforming for th elements
 
   // also has obsolete members
 };
@@ -851,17 +851,17 @@
 interface HTMLFormElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute DOMString acceptCharset;
-  [CEReactions] attribute USVString action;
+  [CEReactions, Reflect="accept-charset"] attribute DOMString acceptCharset;
+  [CEReactions, ReflectSetter] attribute USVString action;
   [CEReactions] attribute DOMString autocomplete;
   [CEReactions] attribute DOMString enctype;
   [CEReactions] attribute DOMString encoding;
   [CEReactions] attribute DOMString method;
-  [CEReactions] attribute DOMString name;
-  [CEReactions] attribute boolean noValidate;
-  [CEReactions] attribute DOMString target;
-  [CEReactions] attribute DOMString rel;
-  [SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
+  [CEReactions, Reflect] attribute DOMString name;
+  [CEReactions, Reflect] attribute boolean noValidate;
+  [CEReactions, Reflect] attribute DOMString target;
+  [CEReactions, Reflect] attribute DOMString rel;
+  [SameObject, PutForwards=value, Reflect="rel"] readonly attribute DOMTokenList relList;
 
   [SameObject] readonly attribute HTMLFormControlsCollection elements;
   readonly attribute unsigned long length;
@@ -880,7 +880,7 @@
   [HTMLConstructor] constructor();
 
   readonly attribute HTMLFormElement? form;
-  [CEReactions] attribute DOMString htmlFor;
+  [CEReactions, Reflect="for"] attribute DOMString htmlFor;
   readonly attribute HTMLElement? control;
 };
 
@@ -888,44 +888,44 @@
 interface HTMLInputElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute DOMString accept;
-  [CEReactions] attribute boolean alpha;
-  [CEReactions] attribute DOMString alt;
-  [CEReactions] attribute DOMString autocomplete;
-  [CEReactions] attribute boolean defaultChecked;
+  [CEReactions, Reflect] attribute DOMString accept;
+  [CEReactions, Reflect] attribute boolean alpha;
+  [CEReactions, Reflect] attribute DOMString alt;
+  [CEReactions, ReflectSetter] attribute DOMString autocomplete;
+  [CEReactions, Reflect="checked"] attribute boolean defaultChecked;
   attribute boolean checked;
   [CEReactions] attribute DOMString colorSpace;
-  [CEReactions] attribute DOMString dirName;
-  [CEReactions] attribute boolean disabled;
+  [CEReactions, Reflect] attribute DOMString dirName;
+  [CEReactions, Reflect] attribute boolean disabled;
   readonly attribute HTMLFormElement? form;
   attribute FileList? files;
-  [CEReactions] attribute USVString formAction;
+  [CEReactions, ReflectSetter] attribute USVString formAction;
   [CEReactions] attribute DOMString formEnctype;
   [CEReactions] attribute DOMString formMethod;
-  [CEReactions] attribute boolean formNoValidate;
-  [CEReactions] attribute DOMString formTarget;
-  [CEReactions] attribute unsigned long height;
+  [CEReactions, Reflect] attribute boolean formNoValidate;
+  [CEReactions, Reflect] attribute DOMString formTarget;
+  [CEReactions, ReflectSetter] attribute unsigned long height;
   attribute boolean indeterminate;
   readonly attribute HTMLDataListElement? list;
-  [CEReactions] attribute DOMString max;
-  [CEReactions] attribute long maxLength;
-  [CEReactions] attribute DOMString min;
-  [CEReactions] attribute long minLength;
-  [CEReactions] attribute boolean multiple;
-  [CEReactions] attribute DOMString name;
-  [CEReactions] attribute DOMString pattern;
-  [CEReactions] attribute DOMString placeholder;
-  [CEReactions] attribute boolean readOnly;
-  [CEReactions] attribute boolean required;
-  [CEReactions] attribute unsigned long size;
-  [CEReactions] attribute USVString src;
-  [CEReactions] attribute DOMString step;
+  [CEReactions, Reflect] attribute DOMString max;
+  [CEReactions, ReflectNonNegative] attribute long maxLength;
+  [CEReactions, Reflect] attribute DOMString min;
+  [CEReactions, ReflectNonNegative] attribute long minLength;
+  [CEReactions, Reflect] attribute boolean multiple;
+  [CEReactions, Reflect] attribute DOMString name;
+  [CEReactions, Reflect] attribute DOMString pattern;
+  [CEReactions, Reflect] attribute DOMString placeholder;
+  [CEReactions, Reflect] attribute boolean readOnly;
+  [CEReactions, Reflect] attribute boolean required;
+  [CEReactions, Reflect] attribute unsigned long size;
+  [CEReactions, ReflectURL] attribute USVString src;
+  [CEReactions, Reflect] attribute DOMString step;
   [CEReactions] attribute DOMString type;
-  [CEReactions] attribute DOMString defaultValue;
+  [CEReactions, Reflect="value"] attribute DOMString defaultValue;
   [CEReactions] attribute [LegacyNullToEmptyString] DOMString value;
   attribute object? valueAsDate;
   attribute unrestricted double valueAsNumber;
-  [CEReactions] attribute unsigned long width;
+  [CEReactions, ReflectSetter] attribute unsigned long width;
 
   undefined stepUp(optional long n = 1);
   undefined stepDown(optional long n = 1);
@@ -957,18 +957,18 @@
 interface HTMLButtonElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute DOMString command;
-  [CEReactions] attribute Element? commandForElement;
-  [CEReactions] attribute boolean disabled;
+  [CEReactions, ReflectSetter] attribute DOMString command;
+  [CEReactions, Reflect] attribute Element? commandForElement;
+  [CEReactions, Reflect] attribute boolean disabled;
   readonly attribute HTMLFormElement? form;
-  [CEReactions] attribute USVString formAction;
+  [CEReactions, ReflectSetter] attribute USVString formAction;
   [CEReactions] attribute DOMString formEnctype;
   [CEReactions] attribute DOMString formMethod;
-  [CEReactions] attribute boolean formNoValidate;
-  [CEReactions] attribute DOMString formTarget;
-  [CEReactions] attribute DOMString name;
-  [CEReactions] attribute DOMString type;
-  [CEReactions] attribute DOMString value;
+  [CEReactions, Reflect] attribute boolean formNoValidate;
+  [CEReactions, Reflect] attribute DOMString formTarget;
+  [CEReactions, Reflect] attribute DOMString name;
+  [CEReactions, ReflectSetter] attribute DOMString type;
+  [CEReactions, Reflect] attribute DOMString value;
 
   readonly attribute boolean willValidate;
   readonly attribute ValidityState validity;
@@ -985,13 +985,13 @@
 interface HTMLSelectElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute DOMString autocomplete;
-  [CEReactions] attribute boolean disabled;
+  [CEReactions, ReflectSetter] attribute DOMString autocomplete;
+  [CEReactions, Reflect] attribute boolean disabled;
   readonly attribute HTMLFormElement? form;
-  [CEReactions] attribute boolean multiple;
-  [CEReactions] attribute DOMString name;
-  [CEReactions] attribute boolean required;
-  [CEReactions] attribute unsigned long size;
+  [CEReactions, Reflect] attribute boolean multiple;
+  [CEReactions, Reflect] attribute DOMString name;
+  [CEReactions, Reflect] attribute boolean required;
+  [CEReactions, Reflect, ReflectDefault=0] attribute unsigned long size;
 
   readonly attribute DOMString type;
 
@@ -1031,8 +1031,8 @@
 interface HTMLOptGroupElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute boolean disabled;
-  [CEReactions] attribute DOMString label;
+  [CEReactions, Reflect] attribute boolean disabled;
+  [CEReactions, Reflect] attribute DOMString label;
 };
 
 [Exposed=Window,
@@ -1040,12 +1040,12 @@
 interface HTMLOptionElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute boolean disabled;
+  [CEReactions, Reflect] attribute boolean disabled;
   readonly attribute HTMLFormElement? form;
-  [CEReactions] attribute DOMString label;
-  [CEReactions] attribute boolean defaultSelected;
+  [CEReactions, ReflectSetter] attribute DOMString label;
+  [CEReactions, Reflect="selected"] attribute boolean defaultSelected;
   attribute boolean selected;
-  [CEReactions] attribute DOMString value;
+  [CEReactions, ReflectSetter] attribute DOMString value;
 
   [CEReactions] attribute DOMString text;
   readonly attribute long index;
@@ -1055,19 +1055,19 @@
 interface HTMLTextAreaElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute DOMString autocomplete;
-  [CEReactions] attribute unsigned long cols;
-  [CEReactions] attribute DOMString dirName;
-  [CEReactions] attribute boolean disabled;
+  [CEReactions, ReflectSetter] attribute DOMString autocomplete;
+  [CEReactions, ReflectPositiveWithFallback, ReflectDefault=20] attribute unsigned long cols;
+  [CEReactions, Reflect] attribute DOMString dirName;
+  [CEReactions, Reflect] attribute boolean disabled;
   readonly attribute HTMLFormElement? form;
-  [CEReactions] attribute long maxLength;
-  [CEReactions] attribute long minLength;
-  [CEReactions] attribute DOMString name;
-  [CEReactions] attribute DOMString placeholder;
-  [CEReactions] attribute boolean readOnly;
-  [CEReactions] attribute boolean required;
-  [CEReactions] attribute unsigned long rows;
-  [CEReactions] attribute DOMString wrap;
+  [CEReactions, ReflectNonNegative] attribute long maxLength;
+  [CEReactions, ReflectNonNegative] attribute long minLength;
+  [CEReactions, Reflect] attribute DOMString name;
+  [CEReactions, Reflect] attribute DOMString placeholder;
+  [CEReactions, Reflect] attribute boolean readOnly;
+  [CEReactions, Reflect] attribute boolean required;
+  [CEReactions, ReflectPositiveWithFallback, ReflectDefault=2] attribute unsigned long rows;
+  [CEReactions, Reflect] attribute DOMString wrap;
 
   readonly attribute DOMString type;
   [CEReactions] attribute DOMString defaultValue;
@@ -1096,9 +1096,9 @@
 interface HTMLOutputElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [SameObject, PutForwards=value] readonly attribute DOMTokenList htmlFor;
+  [SameObject, PutForwards=value, Reflect="for"] readonly attribute DOMTokenList htmlFor;
   readonly attribute HTMLFormElement? form;
-  [CEReactions] attribute DOMString name;
+  [CEReactions, Reflect] attribute DOMString name;
 
   readonly attribute DOMString type;
   [CEReactions] attribute DOMString defaultValue;
@@ -1118,8 +1118,8 @@
 interface HTMLProgressElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute double value;
-  [CEReactions] attribute double max;
+  [CEReactions, ReflectSetter] attribute double value;
+  [CEReactions, ReflectPositive, ReflectDefault=1.0] attribute double max;
   readonly attribute double position;
   readonly attribute NodeList labels;
 };
@@ -1128,12 +1128,12 @@
 interface HTMLMeterElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute double value;
-  [CEReactions] attribute double min;
-  [CEReactions] attribute double max;
-  [CEReactions] attribute double low;
-  [CEReactions] attribute double high;
-  [CEReactions] attribute double optimum;
+  [CEReactions, ReflectSetter] attribute double value;
+  [CEReactions, ReflectSetter] attribute double min;
+  [CEReactions, ReflectSetter] attribute double max;
+  [CEReactions, ReflectSetter] attribute double low;
+  [CEReactions, ReflectSetter] attribute double high;
+  [CEReactions, ReflectSetter] attribute double optimum;
   readonly attribute NodeList labels;
 };
 
@@ -1141,9 +1141,9 @@
 interface HTMLFieldSetElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute boolean disabled;
+  [CEReactions, Reflect] attribute boolean disabled;
   readonly attribute HTMLFormElement? form;
-  [CEReactions] attribute DOMString name;
+  [CEReactions, Reflect] attribute DOMString name;
 
   readonly attribute DOMString type;
 
@@ -1219,17 +1219,17 @@
 interface HTMLDetailsElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute DOMString name;
-  [CEReactions] attribute boolean open;
+  [CEReactions, Reflect] attribute DOMString name;
+  [CEReactions, Reflect] attribute boolean open;
 };
 
 [Exposed=Window]
 interface HTMLDialogElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute boolean open;
+  [CEReactions, Reflect] attribute boolean open;
   attribute DOMString returnValue;
-  [CEReactions] attribute DOMString closedBy;
+  [CEReactions, ReflectSetter] attribute DOMString closedBy;
   [CEReactions] undefined show();
   [CEReactions] undefined showModal();
   [CEReactions] undefined close(optional DOMString returnValue);
@@ -1240,15 +1240,15 @@
 interface HTMLScriptElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute DOMString type;
-  [CEReactions] attribute USVString src;
-  [CEReactions] attribute boolean noModule;
+  [CEReactions, Reflect] attribute DOMString type;
+  [CEReactions, ReflectURL] attribute USVString src;
+  [CEReactions, Reflect] attribute boolean noModule;
   [CEReactions] attribute boolean async;
-  [CEReactions] attribute boolean defer;
-  [SameObject, PutForwards=value] readonly attribute DOMTokenList blocking;
+  [CEReactions, Reflect] attribute boolean defer;
+  [SameObject, PutForwards=value, Reflect] readonly attribute DOMTokenList blocking;
   [CEReactions] attribute DOMString? crossOrigin;
   [CEReactions] attribute DOMString referrerPolicy;
-  [CEReactions] attribute DOMString integrity;
+  [CEReactions, Reflect] attribute DOMString integrity;
   [CEReactions] attribute DOMString fetchPriority;
 
   [CEReactions] attribute DOMString text;
@@ -1264,17 +1264,17 @@
 
   readonly attribute DocumentFragment content;
   [CEReactions] attribute DOMString shadowRootMode;
-  [CEReactions] attribute boolean shadowRootDelegatesFocus;
-  [CEReactions] attribute boolean shadowRootClonable;
-  [CEReactions] attribute boolean shadowRootSerializable;
-  [CEReactions] attribute DOMString shadowRootCustomElementRegistry;
+  [CEReactions, Reflect] attribute boolean shadowRootDelegatesFocus;
+  [CEReactions, Reflect] attribute boolean shadowRootClonable;
+  [CEReactions, Reflect] attribute boolean shadowRootSerializable;
+  [CEReactions, Reflect] attribute DOMString shadowRootCustomElementRegistry;
 };
 
 [Exposed=Window]
 interface HTMLSlotElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute DOMString name;
+  [CEReactions, Reflect] attribute DOMString name;
   sequence<Node> assignedNodes(optional AssignedNodesOptions options = {});
   sequence<Element> assignedElements(optional AssignedNodesOptions options = {});
   undefined assign((Element or Text)... nodes);
@@ -1799,7 +1799,7 @@
 };
 
 interface mixin PopoverInvokerElement {
-  [CEReactions] attribute Element? popoverTargetElement;
+  [CEReactions, Reflect] attribute Element? popoverTargetElement;
   [CEReactions] attribute DOMString popoverTargetAction;
 };
 
@@ -2656,9 +2656,9 @@
 };
 
 dictionary WorkerOptions {
+  DOMString name = "";
   WorkerType type = "classic";
   RequestCredentials credentials = "same-origin"; // credentials is only used if type is "module"
-  DOMString name = "";
 };
 
 enum WorkerType { "classic", "module" };
@@ -2755,17 +2755,17 @@
 interface HTMLMarqueeElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute DOMString behavior;
-  [CEReactions] attribute DOMString bgColor;
-  [CEReactions] attribute DOMString direction;
-  [CEReactions] attribute DOMString height;
-  [CEReactions] attribute unsigned long hspace;
+  [CEReactions, Reflect] attribute DOMString behavior;
+  [CEReactions, Reflect] attribute DOMString bgColor;
+  [CEReactions, Reflect] attribute DOMString direction;
+  [CEReactions, Reflect] attribute DOMString height;
+  [CEReactions, Reflect] attribute unsigned long hspace;
   [CEReactions] attribute long loop;
-  [CEReactions] attribute unsigned long scrollAmount;
-  [CEReactions] attribute unsigned long scrollDelay;
-  [CEReactions] attribute boolean trueSpeed;
-  [CEReactions] attribute unsigned long vspace;
-  [CEReactions] attribute DOMString width;
+  [CEReactions, Reflect, ReflectDefault=6] attribute unsigned long scrollAmount;
+  [CEReactions, Reflect, ReflectDefault=85] attribute unsigned long scrollDelay;
+  [CEReactions, Reflect] attribute boolean trueSpeed;
+  [CEReactions, Reflect] attribute unsigned long vspace;
+  [CEReactions, Reflect] attribute DOMString width;
 
   undefined start();
   undefined stop();
@@ -2775,8 +2775,8 @@
 interface HTMLFrameSetElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute DOMString cols;
-  [CEReactions] attribute DOMString rows;
+  [CEReactions, Reflect] attribute DOMString cols;
+  [CEReactions, Reflect] attribute DOMString rows;
 };
 HTMLFrameSetElement includes WindowEventHandlers;
 
@@ -2784,242 +2784,242 @@
 interface HTMLFrameElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute DOMString name;
-  [CEReactions] attribute DOMString scrolling;
-  [CEReactions] attribute USVString src;
-  [CEReactions] attribute DOMString frameBorder;
-  [CEReactions] attribute USVString longDesc;
-  [CEReactions] attribute boolean noResize;
+  [CEReactions, Reflect] attribute DOMString name;
+  [CEReactions, Reflect] attribute DOMString scrolling;
+  [CEReactions, ReflectURL] attribute USVString src;
+  [CEReactions, Reflect] attribute DOMString frameBorder;
+  [CEReactions, ReflectURL] attribute USVString longDesc;
+  [CEReactions, Reflect] attribute boolean noResize;
   readonly attribute Document? contentDocument;
   readonly attribute WindowProxy? contentWindow;
 
-  [CEReactions] attribute [LegacyNullToEmptyString] DOMString marginHeight;
-  [CEReactions] attribute [LegacyNullToEmptyString] DOMString marginWidth;
+  [CEReactions, Reflect] attribute [LegacyNullToEmptyString] DOMString marginHeight;
+  [CEReactions, Reflect] attribute [LegacyNullToEmptyString] DOMString marginWidth;
 };
 
 partial interface HTMLAnchorElement {
-  [CEReactions] attribute DOMString coords;
-  [CEReactions] attribute DOMString charset;
-  [CEReactions] attribute DOMString name;
-  [CEReactions] attribute DOMString rev;
-  [CEReactions] attribute DOMString shape;
+  [CEReactions, Reflect] attribute DOMString coords;
+  [CEReactions, Reflect] attribute DOMString charset;
+  [CEReactions, Reflect] attribute DOMString name;
+  [CEReactions, Reflect] attribute DOMString rev;
+  [CEReactions, Reflect] attribute DOMString shape;
 };
 
 partial interface HTMLAreaElement {
-  [CEReactions] attribute boolean noHref;
+  [CEReactions, Reflect] attribute boolean noHref;
 };
 
 partial interface HTMLBodyElement {
-  [CEReactions] attribute [LegacyNullToEmptyString] DOMString text;
-  [CEReactions] attribute [LegacyNullToEmptyString] DOMString link;
-  [CEReactions] attribute [LegacyNullToEmptyString] DOMString vLink;
-  [CEReactions] attribute [LegacyNullToEmptyString] DOMString aLink;
-  [CEReactions] attribute [LegacyNullToEmptyString] DOMString bgColor;
-  [CEReactions] attribute DOMString background;
+  [CEReactions, Reflect] attribute [LegacyNullToEmptyString] DOMString text;
+  [CEReactions, Reflect] attribute [LegacyNullToEmptyString] DOMString link;
+  [CEReactions, Reflect] attribute [LegacyNullToEmptyString] DOMString vLink;
+  [CEReactions, Reflect] attribute [LegacyNullToEmptyString] DOMString aLink;
+  [CEReactions, Reflect] attribute [LegacyNullToEmptyString] DOMString bgColor;
+  [CEReactions, Reflect] attribute DOMString background;
 };
 
 partial interface HTMLBRElement {
-  [CEReactions] attribute DOMString clear;
+  [CEReactions, Reflect] attribute DOMString clear;
 };
 
 partial interface HTMLTableCaptionElement {
-  [CEReactions] attribute DOMString align;
+  [CEReactions, Reflect] attribute DOMString align;
 };
 
 partial interface HTMLTableColElement {
-  [CEReactions] attribute DOMString align;
-  [CEReactions] attribute DOMString ch;
-  [CEReactions] attribute DOMString chOff;
-  [CEReactions] attribute DOMString vAlign;
-  [CEReactions] attribute DOMString width;
+  [CEReactions, Reflect] attribute DOMString align;
+  [CEReactions, Reflect="char"] attribute DOMString ch;
+  [CEReactions, Reflect="charoff"] attribute DOMString chOff;
+  [CEReactions, Reflect] attribute DOMString vAlign;
+  [CEReactions, Reflect] attribute DOMString width;
 };
 
 [Exposed=Window]
 interface HTMLDirectoryElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute boolean compact;
+  [CEReactions, Reflect] attribute boolean compact;
 };
 
 partial interface HTMLDivElement {
-  [CEReactions] attribute DOMString align;
+  [CEReactions, Reflect] attribute DOMString align;
 };
 
 partial interface HTMLDListElement {
-  [CEReactions] attribute boolean compact;
+  [CEReactions, Reflect] attribute boolean compact;
 };
 
 partial interface HTMLEmbedElement {
-  [CEReactions] attribute DOMString align;
-  [CEReactions] attribute DOMString name;
+  [CEReactions, Reflect] attribute DOMString align;
+  [CEReactions, Reflect] attribute DOMString name;
 };
 
 [Exposed=Window]
 interface HTMLFontElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute [LegacyNullToEmptyString] DOMString color;
-  [CEReactions] attribute DOMString face;
-  [CEReactions] attribute DOMString size;
+  [CEReactions, Reflect] attribute [LegacyNullToEmptyString] DOMString color;
+  [CEReactions, Reflect] attribute DOMString face;
+  [CEReactions, Reflect] attribute DOMString size;
 };
 
 partial interface HTMLHeadingElement {
-  [CEReactions] attribute DOMString align;
+  [CEReactions, Reflect] attribute DOMString align;
 };
 
 partial interface HTMLHRElement {
-  [CEReactions] attribute DOMString align;
-  [CEReactions] attribute DOMString color;
-  [CEReactions] attribute boolean noShade;
-  [CEReactions] attribute DOMString size;
-  [CEReactions] attribute DOMString width;
+  [CEReactions, Reflect] attribute DOMString align;
+  [CEReactions, Reflect] attribute DOMString color;
+  [CEReactions, Reflect] attribute boolean noShade;
+  [CEReactions, Reflect] attribute DOMString size;
+  [CEReactions, Reflect] attribute DOMString width;
 };
 
 partial interface HTMLHtmlElement {
-  [CEReactions] attribute DOMString version;
+  [CEReactions, Reflect] attribute DOMString version;
 };
 
 partial interface HTMLIFrameElement {
-  [CEReactions] attribute DOMString align;
-  [CEReactions] attribute DOMString scrolling;
-  [CEReactions] attribute DOMString frameBorder;
-  [CEReactions] attribute USVString longDesc;
+  [CEReactions, Reflect] attribute DOMString align;
+  [CEReactions, Reflect] attribute DOMString scrolling;
+  [CEReactions, Reflect] attribute DOMString frameBorder;
+  [CEReactions, ReflectURL] attribute USVString longDesc;
 
-  [CEReactions] attribute [LegacyNullToEmptyString] DOMString marginHeight;
-  [CEReactions] attribute [LegacyNullToEmptyString] DOMString marginWidth;
+  [CEReactions, Reflect] attribute [LegacyNullToEmptyString] DOMString marginHeight;
+  [CEReactions, Reflect] attribute [LegacyNullToEmptyString] DOMString marginWidth;
 };
 
 partial interface HTMLImageElement {
-  [CEReactions] attribute DOMString name;
-  [CEReactions] attribute USVString lowsrc;
-  [CEReactions] attribute DOMString align;
-  [CEReactions] attribute unsigned long hspace;
-  [CEReactions] attribute unsigned long vspace;
-  [CEReactions] attribute USVString longDesc;
+  [CEReactions, Reflect] attribute DOMString name;
+  [CEReactions, ReflectURL] attribute USVString lowsrc;
+  [CEReactions, Reflect] attribute DOMString align;
+  [CEReactions, Reflect] attribute unsigned long hspace;
+  [CEReactions, Reflect] attribute unsigned long vspace;
+  [CEReactions, ReflectURL] attribute USVString longDesc;
 
-  [CEReactions] attribute [LegacyNullToEmptyString] DOMString border;
+  [CEReactions, Reflect] attribute [LegacyNullToEmptyString] DOMString border;
 };
 
 partial interface HTMLInputElement {
-  [CEReactions] attribute DOMString align;
-  [CEReactions] attribute DOMString useMap;
+  [CEReactions, Reflect] attribute DOMString align;
+  [CEReactions, Reflect] attribute DOMString useMap;
 };
 
 partial interface HTMLLegendElement {
-  [CEReactions] attribute DOMString align;
+  [CEReactions, Reflect] attribute DOMString align;
 };
 
 partial interface HTMLLIElement {
-  [CEReactions] attribute DOMString type;
+  [CEReactions, Reflect] attribute DOMString type;
 };
 
 partial interface HTMLLinkElement {
-  [CEReactions] attribute DOMString charset;
-  [CEReactions] attribute DOMString rev;
-  [CEReactions] attribute DOMString target;
+  [CEReactions, Reflect] attribute DOMString charset;
+  [CEReactions, Reflect] attribute DOMString rev;
+  [CEReactions, Reflect] attribute DOMString target;
 };
 
 partial interface HTMLMenuElement {
-  [CEReactions] attribute boolean compact;
+  [CEReactions, Reflect] attribute boolean compact;
 };
 
 partial interface HTMLMetaElement {
-  [CEReactions] attribute DOMString scheme;
+  [CEReactions, Reflect] attribute DOMString scheme;
 };
 
 partial interface HTMLObjectElement {
-  [CEReactions] attribute DOMString align;
-  [CEReactions] attribute DOMString archive;
-  [CEReactions] attribute DOMString code;
-  [CEReactions] attribute boolean declare;
-  [CEReactions] attribute unsigned long hspace;
-  [CEReactions] attribute DOMString standby;
-  [CEReactions] attribute unsigned long vspace;
-  [CEReactions] attribute DOMString codeBase;
-  [CEReactions] attribute DOMString codeType;
-  [CEReactions] attribute DOMString useMap;
+  [CEReactions, Reflect] attribute DOMString align;
+  [CEReactions, Reflect] attribute DOMString archive;
+  [CEReactions, Reflect] attribute DOMString code;
+  [CEReactions, Reflect] attribute boolean declare;
+  [CEReactions, Reflect] attribute unsigned long hspace;
+  [CEReactions, Reflect] attribute DOMString standby;
+  [CEReactions, Reflect] attribute unsigned long vspace;
+  [CEReactions, ReflectURL] attribute DOMString codeBase;
+  [CEReactions, Reflect] attribute DOMString codeType;
+  [CEReactions, Reflect] attribute DOMString useMap;
 
-  [CEReactions] attribute [LegacyNullToEmptyString] DOMString border;
+  [CEReactions, Reflect] attribute [LegacyNullToEmptyString] DOMString border;
 };
 
 partial interface HTMLOListElement {
-  [CEReactions] attribute boolean compact;
+  [CEReactions, Reflect] attribute boolean compact;
 };
 
 partial interface HTMLParagraphElement {
-  [CEReactions] attribute DOMString align;
+  [CEReactions, Reflect] attribute DOMString align;
 };
 
 [Exposed=Window]
 interface HTMLParamElement : HTMLElement {
   [HTMLConstructor] constructor();
 
-  [CEReactions] attribute DOMString name;
-  [CEReactions] attribute DOMString value;
-  [CEReactions] attribute DOMString type;
-  [CEReactions] attribute DOMString valueType;
+  [CEReactions, Reflect] attribute DOMString name;
+  [CEReactions, Reflect] attribute DOMString value;
+  [CEReactions, Reflect] attribute DOMString type;
+  [CEReactions, Reflect] attribute DOMString valueType;
 };
 
 partial interface HTMLPreElement {
-  [CEReactions] attribute long width;
+  [CEReactions, Reflect] attribute long width;
 };
 
 partial interface HTMLStyleElement {
-  [CEReactions] attribute DOMString type;
+  [CEReactions, Reflect] attribute DOMString type;
 };
 
 partial interface HTMLScriptElement {
-  [CEReactions] attribute DOMString charset;
-  [CEReactions] attribute DOMString event;
-  [CEReactions] attribute DOMString htmlFor;
+  [CEReactions, Reflect] attribute DOMString charset;
+  [CEReactions, Reflect] attribute DOMString event;
+  [CEReactions, Reflect="for"] attribute DOMString htmlFor;
 };
 
 partial interface HTMLTableElement {
-  [CEReactions] attribute DOMString align;
-  [CEReactions] attribute DOMString border;
-  [CEReactions] attribute DOMString frame;
-  [CEReactions] attribute DOMString rules;
-  [CEReactions] attribute DOMString summary;
-  [CEReactions] attribute DOMString width;
-
-  [CEReactions] attribute [LegacyNullToEmptyString] DOMString bgColor;
-  [CEReactions] attribute [LegacyNullToEmptyString] DOMString cellPadding;
-  [CEReactions] attribute [LegacyNullToEmptyString] DOMString cellSpacing;
+  [CEReactions, Reflect] attribute DOMString align;
+  [CEReactions, Reflect] attribute DOMString border;
+  [CEReactions, Reflect] attribute DOMString frame;
+  [CEReactions, Reflect] attribute DOMString rules;
+  [CEReactions, Reflect] attribute DOMString summary;
+  [CEReactions, Reflect] attribute DOMString width;
+
+  [CEReactions, Reflect] attribute [LegacyNullToEmptyString] DOMString bgColor;
+  [CEReactions, Reflect] attribute [LegacyNullToEmptyString] DOMString cellPadding;
+  [CEReactions, Reflect] attribute [LegacyNullToEmptyString] DOMString cellSpacing;
 };
 
 partial interface HTMLTableSectionElement {
-  [CEReactions] attribute DOMString align;
-  [CEReactions] attribute DOMString ch;
-  [CEReactions] attribute DOMString chOff;
-  [CEReactions] attribute DOMString vAlign;
+  [CEReactions, Reflect] attribute DOMString align;
+  [CEReactions, Reflect="char"] attribute DOMString ch;
+  [CEReactions, Reflect="charoff"] attribute DOMString chOff;
+  [CEReactions, Reflect] attribute DOMString vAlign;
 };
 
 partial interface HTMLTableCellElement {
-  [CEReactions] attribute DOMString align;
-  [CEReactions] attribute DOMString axis;
-  [CEReactions] attribute DOMString height;
-  [CEReactions] attribute DOMString width;
-
-  [CEReactions] attribute DOMString ch;
-  [CEReactions] attribute DOMString chOff;
-  [CEReactions] attribute boolean noWrap;
-  [CEReactions] attribute DOMString vAlign;
+  [CEReactions, Reflect] attribute DOMString align;
+  [CEReactions, Reflect] attribute DOMString axis;
+  [CEReactions, Reflect] attribute DOMString height;
+  [CEReactions, Reflect] attribute DOMString width;
+
+  [CEReactions, Reflect="char"] attribute DOMString ch;
+  [CEReactions, Reflect="charoff"] attribute DOMString chOff;
+  [CEReactions, Reflect] attribute boolean noWrap;
+  [CEReactions, Reflect] attribute DOMString vAlign;
 
-  [CEReactions] attribute [LegacyNullToEmptyString] DOMString bgColor;
+  [CEReactions, Reflect] attribute [LegacyNullToEmptyString] DOMString bgColor;
 };
 
 partial interface HTMLTableRowElement {
-  [CEReactions] attribute DOMString align;
-  [CEReactions] attribute DOMString ch;
-  [CEReactions] attribute DOMString chOff;
-  [CEReactions] attribute DOMString vAlign;
+  [CEReactions, Reflect] attribute DOMString align;
+  [CEReactions, Reflect="char"] attribute DOMString ch;
+  [CEReactions, Reflect="charoff"] attribute DOMString chOff;
+  [CEReactions, Reflect] attribute DOMString vAlign;
 
-  [CEReactions] attribute [LegacyNullToEmptyString] DOMString bgColor;
+  [CEReactions, Reflect] attribute [LegacyNullToEmptyString] DOMString bgColor;
 };
 
 partial interface HTMLUListElement {
-  [CEReactions] attribute boolean compact;
-  [CEReactions] attribute DOMString type;
+  [CEReactions, Reflect] attribute boolean compact;
+  [CEReactions, Reflect] attribute DOMString type;
 };
 
 partial interface Document {

diff --ignore-trailing-space '--exclude=package.json' '--exclude=README.md' '--exclude=CHANGELOG.md' '--unified=3' webref/node_modules/@webref/idl/notifications.idl packages/idl/notifications.idl
--- webref/node_modules/@webref/idl/notifications.idl
+++ packages/idl/notifications.idl
@@ -21,6 +21,7 @@
   readonly attribute NotificationDirection dir;
   readonly attribute DOMString lang;
   readonly attribute DOMString body;
+  readonly attribute USVString navigate;
   readonly attribute DOMString tag;
   readonly attribute USVString image;
   readonly attribute USVString icon;
@@ -40,6 +41,7 @@
   NotificationDirection dir = "auto";
   DOMString lang = "";
   DOMString body = "";
+  USVString navigate;
   DOMString tag = "";
   USVString image;
   USVString icon;
@@ -68,6 +70,7 @@
 dictionary NotificationAction {
   required DOMString action;
   required DOMString title;
+  USVString navigate;
   USVString icon;
 };
 

diff --ignore-trailing-space '--exclude=package.json' '--exclude=README.md' '--exclude=CHANGELOG.md' '--unified=3' webref/node_modules/@webref/idl/webrtc-stats.idl packages/idl/webrtc-stats.idl
--- webref/node_modules/@webref/idl/webrtc-stats.idl
+++ packages/idl/webrtc-stats.idl
@@ -117,7 +117,6 @@
 dictionary RTCSentRtpStreamStats : RTCRtpStreamStats {
             unsigned long long packetsSent;
             unsigned long long bytesSent;
-            unsigned long long packetsSentWithEct1;
 };
 
 dictionary RTCOutboundRtpStreamStats : RTCSentRtpStreamStats {
@@ -154,6 +153,7 @@
              boolean              powerEfficientEncoder;
              boolean              active;
              DOMString            scalabilityMode;
+             unsigned long long   packetsSentWithEct1;
 };
 
 enum RTCQualityLimitationReason {

@github-actions github-actions bot force-pushed the release-idl-20250729185137649 branch 2 times, most recently from 2c01b3e to be3f697 Compare July 30, 2025 06:52
@github-actions github-actions bot force-pushed the release-idl-20250729185137649 branch from be3f697 to 09f1967 Compare August 1, 2025 07:37
@tidoust
Copy link
Member

tidoust commented Aug 1, 2025

Note the new IDL extended attributes in HTML, used for reflection.

@tidoust tidoust merged commit 4a7c0fd into main Aug 1, 2025
@tidoust tidoust deleted the release-idl-20250729185137649 branch August 1, 2025 07:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant