From 3199aeb33c1a1811e99bae71a217aeee28d20699 Mon Sep 17 00:00:00 2001 From: reffy-bot <> Date: Wed, 24 Jul 2024 01:47:17 +0000 Subject: [PATCH] Update of TR report from new reffy run Using reffy commit 16.1.2. --- tr/algorithms/FileAPI.json | 36 +- tr/algorithms/IndexedDB-3.json | 140 ++-- tr/algorithms/SVG2.json | 90 +-- tr/algorithms/clipboard-apis.json | 86 +- tr/algorithms/contact-picker.json | 14 +- tr/algorithms/credential-management-1.json | 4 +- tr/algorithms/css-anchor-position-1.json | 4 +- tr/algorithms/css-animation-worklet-1.json | 4 +- tr/algorithms/css-cascade-4.json | 2 +- tr/algorithms/css-color-4.json | 10 +- tr/algorithms/css-conditional-5.json | 46 ++ tr/algorithms/css-flexbox-1.json | 2 +- tr/algorithms/css-grid-1.json | 8 +- tr/algorithms/css-grid-2.json | 8 +- tr/algorithms/css-images-4.json | 4 +- tr/algorithms/css-layout-api-1.json | 38 +- tr/algorithms/css-nav-1.json | 12 +- tr/algorithms/css-paint-api-1.json | 12 +- .../css-properties-values-api-1.json | 2 +- tr/algorithms/css-scroll-anchoring-1.json | 2 +- tr/algorithms/css-syntax-3.json | 4 +- tr/algorithms/css-tables-3.json | 26 +- tr/algorithms/css-typed-om-1.json | 76 +- tr/algorithms/css-values-4.json | 28 +- tr/algorithms/css-view-transitions-1.json | 50 +- tr/algorithms/css-view-transitions-2.json | 4 +- tr/algorithms/device-posture.json | 2 +- tr/algorithms/event-timing.json | 44 +- tr/algorithms/fetch-metadata.json | 2 +- tr/algorithms/fill-stroke-3.json | 14 +- tr/algorithms/json-ld11-api.json | 22 +- tr/algorithms/largest-contentful-paint.json | 4 +- tr/algorithms/mediacapture-streams.json | 24 +- tr/algorithms/orientation-event.json | 40 +- tr/algorithms/permissions-policy-1.json | 2 +- tr/algorithms/permissions.json | 16 +- tr/algorithms/rdf-canon.json | 6 +- tr/algorithms/service-workers.json | 224 +++--- tr/algorithms/uievents-key.json | 6 +- tr/algorithms/uievents.json | 44 +- tr/algorithms/wasm-js-api-2.json | 160 ++-- tr/algorithms/wasm-web-api-2.json | 8 +- tr/algorithms/web-animations-1.json | 4 +- tr/algorithms/web-animations-2.json | 2 +- tr/algorithms/web-locks.json | 32 +- tr/algorithms/webaudio.json | 68 +- tr/algorithms/webauthn-3.json | 20 +- tr/algorithms/webdriver2.json | 14 +- tr/algorithms/webgpu.json | 434 +++++----- tr/algorithms/webnn.json | 100 +-- tr/algorithms/webrtc.json | 38 +- tr/algorithms/webtransport.json | 76 +- tr/algorithms/webvtt1.json | 2 +- tr/algorithms/webxr-depth-sensing-1.json | 12 +- tr/algorithms/webxr-hand-input-1.json | 12 +- tr/algorithms/webxr-hit-test-1.json | 12 +- .../webxr-lighting-estimation-1.json | 18 +- tr/algorithms/webxr.json | 112 +-- tr/algorithms/webxrlayers-1.json | 80 +- tr/algorithms/window-management.json | 6 +- tr/css/css-conditional-5.json | 222 +++++- tr/dfns/WGSL.json | 19 + tr/dfns/css-conditional-5.json | 751 +++++++++++++++++- tr/headings/css-conditional-5.json | 166 +++- .../mse-byte-stream-format-registry.json | 13 +- tr/idl/css-conditional-5.idl | 10 + tr/ids/WGSL.json | 548 ++++++------- tr/ids/css-conditional-5.json | 626 +++++++++++++-- tr/ids/mse-byte-stream-format-registry.json | 8 +- tr/ids/webdriver2.json | 12 +- tr/index.json | 64 +- tr/links/css-conditional-5.json | 310 ++++++-- tr/links/mse-byte-stream-format-registry.json | 5 +- tr/refs/css-conditional-5.json | 100 ++- tr/refs/mse-byte-stream-format-registry.json | 14 +- 75 files changed, 3565 insertions(+), 1675 deletions(-) create mode 100644 tr/algorithms/css-conditional-5.json create mode 100644 tr/idl/css-conditional-5.idl diff --git a/tr/algorithms/FileAPI.json b/tr/algorithms/FileAPI.json index 738b9540f130..4e59b0ab4cd6 100644 --- a/tr/algorithms/FileAPI.json +++ b/tr/algorithms/FileAPI.json @@ -14,7 +14,7 @@ "html": "

Let originalSize be blob’s size.

" }, { - "html": "The slice blob algorithm given a Blob blob, start, end, and contentType is used to refer to the following\nsteps and returns a new Blob containing the bytes ranging from the start parameter\nup to but not including the end parameter. It must act as follows:", + "html": "The start parameter, if non-null, is a value for the start point of a slice blob call, and must be treated as a byte-order position, with the zeroth position representing the\n first byte. User agents must normalize start according to the following:", "rationale": "if", "steps": [ { @@ -29,7 +29,7 @@ ] }, { - "html": "The slice blob algorithm given a Blob blob, start, end, and contentType is used to refer to the following\nsteps and returns a new Blob containing the bytes ranging from the start parameter\nup to but not including the end parameter. It must act as follows:", + "html": "The end parameter, if non-null. is a value for the end point of a slice blob call. User agents must normalize end according to the following:", "rationale": "if", "steps": [ { @@ -44,14 +44,14 @@ ] }, { - "html": "The slice blob algorithm given a Blob blob, start, end, and contentType is used to refer to the following\nsteps and returns a new Blob containing the bytes ranging from the start parameter\nup to but not including the end parameter. It must act as follows:", + "html": "The contentType parameter, if non-null, is used to set the ASCII-encoded string in\n lower case representing the media type of the Blob. User agents must normalize contentType according to the following:", "rationale": "if", "steps": [ { "html": "If contentType is null, let relativeContentType be set to the empty\n string." }, { - "html": "The slice blob algorithm given a Blob blob, start, end, and contentType is used to refer to the following\nsteps and returns a new Blob containing the bytes ranging from the start parameter\nup to but not including the end parameter. It must act as follows:", + "html": "Otherwise, let relativeContentType be set to contentType and run the\n substeps below:", "rationale": "if", "steps": [ { @@ -112,18 +112,18 @@ "html": "

Set up stream with byte reading support.

" }, { - "html": "A Blob blob has an associated get stream algorithm,\nwhich runs these steps:", + "html": "Run the following steps in parallel:", "rationale": "while", "steps": [ { - "html": "A Blob blob has an associated get stream algorithm,\nwhich runs these steps:", + "html": "While not all bytes of blob have been read:", "rationale": "let", "steps": [ { "html": "

Let bytes be the byte sequence that results from reading a chunk from blob, or\n failure if a chunk cannot be read.

" }, { - "html": "A Blob blob has an associated get stream algorithm,\nwhich runs these steps:", + "html": "Queue a global task on the file reading task source given blob’s relevant global object to perform the following steps:", "rationale": "if", "steps": [ { @@ -184,11 +184,11 @@ "html": "

Let bytes be an empty sequence of bytes.

" }, { - "html": "To process blob parts given a sequence of BlobPart's parts and BlobPropertyBag options,\nrun the following steps:", + "html": "For each element in parts:", "rationale": "if", "steps": [ { - "html": "To process blob parts given a sequence of BlobPart's parts and BlobPropertyBag options,\nrun the following steps:", + "html": "If element is a USVString, run the following substeps:", "rationale": "let", "steps": [ { @@ -240,11 +240,11 @@ "html": "

Append token to result.

" }, { - "html": "To convert line endings to native in a string s,\nrun the following steps:", + "html": "While position is not past the end of s:", "rationale": "if", "steps": [ { - "html": "To convert line endings to native in a string s,\nrun the following steps:", + "html": "If the code point at position within s equals U+000D CR:", "rationale": "append", "steps": [ { @@ -482,7 +482,7 @@ "html": "

Let isFirstChunk be true.

" }, { - "html": "A FileReader fr has an associated read operation algorithm,\nwhich given blob, a type and an optional encodingName,\nruns the following steps: \n \n

Use the file reading task source for all these tasks.

", + "html": "In parallel, while true:", "rationale": "wait", "steps": [ { @@ -495,7 +495,7 @@ "html": "

Set isFirstChunk to false.

" }, { - "html": "A FileReader fr has an associated read operation algorithm,\nwhich given blob, a type and an optional encodingName,\nruns the following steps: \n \n

Use the file reading task source for all these tasks.

", + "html": "If chunkPromise is fulfilled with an object whose done property is false and whose value property is a Uint8Array object, run these steps:", "rationale": "let", "steps": [ { @@ -513,7 +513,7 @@ ] }, { - "html": "A FileReader fr has an associated read operation algorithm,\nwhich given blob, a type and an optional encodingName,\nruns the following steps: \n \n

Use the file reading task source for all these tasks.

", + "html": "Otherwise, if chunkPromise is fulfilled with an object whose done property is true, queue a task to run the following steps and abort this algorithm:", "rationale": "set", "steps": [ { @@ -523,7 +523,7 @@ "html": "

Let result be the result of package data given bytes, type, blob’s type, and encodingName.

" }, { - "html": "A FileReader fr has an associated read operation algorithm,\nwhich given blob, a type and an optional encodingName,\nruns the following steps: \n \n

Use the file reading task source for all these tasks.

", + "html": "If package data threw an exception error:", "rationale": "set", "steps": [ { @@ -535,7 +535,7 @@ ] }, { - "html": "A FileReader fr has an associated read operation algorithm,\nwhich given blob, a type and an optional encodingName,\nruns the following steps: \n \n

Use the file reading task source for all these tasks.

", + "html": "Else:", "rationale": "set", "steps": [ { @@ -552,7 +552,7 @@ ] }, { - "html": "A FileReader fr has an associated read operation algorithm,\nwhich given blob, a type and an optional encodingName,\nruns the following steps: \n \n

Use the file reading task source for all these tasks.

", + "html": "Otherwise, if chunkPromise is rejected with an error error, queue a task to run the following steps and abort this algorithm:", "rationale": "set", "steps": [ { @@ -612,7 +612,7 @@ "html": "

If the encodingName is present, set encoding to the result of getting an encoding from encodingName.

" }, { - "html": "A Blob has an associated package data algorithm,\ngiven bytes, a type, a optional mimeType, and a optional encodingName,\nwhich switches on type and runs the associated steps: \n
\n
DataURL\n
\n

Return bytes as a DataURL [RFC2397] subject to the considerations below:

\n \n \n
Text\n
\n \n
ArrayBuffer\n
\n

Return a new ArrayBuffer whose contents are bytes.

\n
BinaryString\n
\n

Return bytes as a binary string,\n in which every byte is represented by a code unit of equal value [0..255].

\n
", + "html": "If encoding is failure, and mimeType is present:", "rationale": "let", "steps": [ { diff --git a/tr/algorithms/IndexedDB-3.json b/tr/algorithms/IndexedDB-3.json index d87ff40ff937..47f8ba7fc005 100644 --- a/tr/algorithms/IndexedDB-3.json +++ b/tr/algorithms/IndexedDB-3.json @@ -31,7 +31,7 @@ "html": "

Let tb be the type of b.

" }, { - "html": "To compare two keys a and b, run these steps:", + "html": "If ta does not equal tb, then run these steps:", "rationale": "if", "steps": [ { @@ -70,7 +70,7 @@ "html": "

Let vb be the value of b.

" }, { - "html": "To compare two keys a and b, run these steps:", + "html": "Switch on ta:", "rationale": ".switch", "steps": [ { @@ -78,7 +78,7 @@ "steps": [ { "case": "number", - "html": "To compare two keys a and b, run these steps:", + "html": "", "rationale": "if", "steps": [ { @@ -94,7 +94,7 @@ }, { "case": "date", - "html": "To compare two keys a and b, run these steps:", + "html": "", "rationale": "if", "steps": [ { @@ -110,7 +110,7 @@ }, { "case": "string", - "html": "To compare two keys a and b, run these steps:", + "html": "", "rationale": "if", "steps": [ { @@ -126,7 +126,7 @@ }, { "case": "binary", - "html": "To compare two keys a and b, run these steps:", + "html": "", "rationale": "if", "steps": [ { @@ -142,7 +142,7 @@ }, { "case": "array", - "html": "To compare two keys a and b, run these steps:", + "html": "", "rationale": "let", "steps": [ { @@ -152,7 +152,7 @@ "html": "

Let i be 0.

" }, { - "html": "To compare two keys a and b, run these steps:", + "html": "While i is less than length, then:", "rationale": "let", "steps": [ { @@ -219,7 +219,7 @@ "html": "

If there are no transactions with cleanup\nevent loop matching the current event loop, return false.

" }, { - "html": "To cleanup Indexed Database transactions, run the following steps.\nThey will return true if any transactions were cleaned up, or false otherwise.", + "html": "For each transaction transaction with cleanup event loop matching the current event loop:", "rationale": "set", "steps": [ { @@ -386,18 +386,18 @@ "html": "

Let request be a new open request.

" }, { - "html": "The open(name, version) method steps are:", + "html": "Run these steps in parallel:", "rationale": "let", "steps": [ { "html": "

Let result be the result of opening a database connection, with storageKey, name, version if given and undefined\notherwise, and request.

" }, { - "html": "The open(name, version) method steps are:", + "html": "Queue a task to run these steps:", "rationale": "if", "steps": [ { - "html": "The open(name, version) method steps are:", + "html": "If result is an error, then:", "rationale": "set", "steps": [ { @@ -415,7 +415,7 @@ ] }, { - "html": "The open(name, version) method steps are:", + "html": "Otherwise:", "rationale": "set", "steps": [ { @@ -454,7 +454,7 @@ "html": "

Let request be a new open request.

" }, { - "html": "The deleteDatabase(name) method steps are:", + "html": "Run these steps in parallel:", "rationale": "let", "steps": [ { @@ -464,7 +464,7 @@ "html": "

Set request’s processed flag to true.

" }, { - "html": "The deleteDatabase(name) method steps are:", + "html": "Queue a task to run these steps:", "rationale": "if", "steps": [ { @@ -498,7 +498,7 @@ "html": "

Let p be a new promise.

" }, { - "html": "The databases() method steps are:", + "html": "Run these steps in parallel:", "rationale": "let", "steps": [ { @@ -508,7 +508,7 @@ "html": "

Let result be a new list.

" }, { - "html": "The databases() method steps are:", + "html": "For each db of databases:", "rationale": "let", "steps": [ { @@ -764,7 +764,7 @@ "html": "

If store uses out-of-line keys and has no key\ngenerator and key was not given, throw a\n\"DataError\" DOMException.

" }, { - "html": "To add or put with handle, value, key, and no-overwrite flag, run these steps:", + "html": "If key was given, then:", "rationale": "let", "steps": [ { @@ -785,7 +785,7 @@ "html": "

Let clone be a clone of value in targetRealm during transaction.\nRethrow any exceptions.

" }, { - "html": "To add or put with handle, value, key, and no-overwrite flag, run these steps:", + "html": "If store uses in-line keys, then:", "rationale": "let", "steps": [ { @@ -798,7 +798,7 @@ "html": "

If kpk is not failure, let key be kpk.

" }, { - "html": "To add or put with handle, value, key, and no-overwrite flag, run these steps:", + "html": "Otherwise (kpk is failure):", "rationale": "if", "steps": [ { @@ -1618,7 +1618,7 @@ "html": "

If this's got value flag is false, indicating that\nthe cursor is being iterated or has iterated past its end, throw an \"InvalidStateError\" DOMException.

" }, { - "html": "The continue(key) method steps are:", + "html": "If key is given, then:", "rationale": "let", "steps": [ { @@ -1763,7 +1763,7 @@ "html": "

Let clone be a clone of value in targetRealm during transaction.\nRethrow any exceptions.

" }, { - "html": "The update(value) method steps are:", + "html": "If this's effective object store uses in-line\nkeys, then:", "rationale": "let", "steps": [ { @@ -1907,7 +1907,7 @@ "html": "

Set connection’s version to version.

" }, { - "html": "To open a database connection with storageKey which requested the database to be opened, a database name, a database version, and a request, run these steps:", + "html": "If db’s version is less than version, then:", "rationale": "let", "steps": [ { @@ -2015,7 +2015,7 @@ "html": "

Set transaction’s state to committing.

" }, { - "html": "To commit a transaction with the transaction to commit, run these steps:", + "html": "Run the following steps in parallel:", "rationale": "wait", "steps": [ { @@ -2031,7 +2031,7 @@ "html": "

If an error occurs while writing the changes to the database,\nthen run abort a transaction with transaction and an\nappropriate type for the error, for example \"QuotaExceededError\" or\n\"UnknownError\" DOMException, and terminate these steps.

" }, { - "html": "To commit a transaction with the transaction to commit, run these steps:", + "html": "Queue a task to run these steps:", "rationale": "if", "steps": [ { @@ -2071,7 +2071,7 @@ "html": "

If error is not null, set transaction’s error to error.

" }, { - "html": "To abort a transaction with the transaction to abort, and error, run these steps:", + "html": "For each request of transaction’s request list,\nabort the steps to asynchronously execute a request for request,\nset request’s processed flag to true,\nand queue a task to run these steps:", "rationale": "set", "steps": [ { @@ -2089,7 +2089,7 @@ ] }, { - "html": "To abort a transaction with the transaction to abort, and error, run these steps:", + "html": "Queue a task to run these steps:", "rationale": "if", "steps": [ { @@ -2099,7 +2099,7 @@ "html": "

Fire an event named abort at transaction with its bubbles attribute initialized to true.

" }, { - "html": "To abort a transaction with the transaction to abort, and error, run these steps:", + "html": "If transaction is an upgrade transaction, then:", "rationale": "let", "steps": [ { @@ -2142,7 +2142,7 @@ "html": "

Add request to the end of transaction’s request list.

" }, { - "html": "To asynchronously execute a request with the source object and an operation to perform on a database, and an optional request, run these steps:", + "html": "Run these steps in parallel:", "rationale": "wait", "steps": [ { @@ -2161,7 +2161,7 @@ "html": "

Set request’s processed flag to true.

" }, { - "html": "To asynchronously execute a request with the source object and an operation to perform on a database, and an optional request, run these steps:", + "html": "Queue a task to run these steps:", "rationale": "remove", "steps": [ { @@ -2171,7 +2171,7 @@ "html": "

Set request’s done flag to true.

" }, { - "html": "To asynchronously execute a request with the source object and an operation to perform on a database, and an optional request, run these steps:", + "html": "If result is an error, then:", "rationale": "set", "steps": [ { @@ -2186,7 +2186,7 @@ ] }, { - "html": "To asynchronously execute a request with the source object and an operation to perform on a database, and an optional request, run these steps:", + "html": "Otherwise:", "rationale": "set", "steps": [ { @@ -2243,7 +2243,7 @@ "html": "

Set request’s processed flag to true.

" }, { - "html": "To upgrade a database with connection (a connection), a new version, and a request, run these steps:", + "html": "Queue a task to run these steps:", "rationale": "set", "steps": [ { @@ -2293,7 +2293,7 @@ "html": "

Set connection’s object store set to the set of object stores in database if database previously\nexisted, or the empty set if database was newly created.

" }, { - "html": "To abort an upgrade transaction with transaction, run these steps:", + "html": "For each object store handle handle associated with transaction, including those for object stores that\nwere created or deleted during transaction:", "rationale": "if", "steps": [ { @@ -2305,7 +2305,7 @@ ] }, { - "html": "To abort an upgrade transaction with transaction, run these steps:", + "html": "For each index handle handle associated with transaction,\nincluding those for indexes that were created or deleted\nduring transaction:", "rationale": "if", "steps": [ { @@ -2343,7 +2343,7 @@ "html": "

Dispatch event at request with legacyOutputDidListenersThrowFlag.

" }, { - "html": "To fire a success event at a request, run these steps:", + "html": "If transaction’s state is active,\nthen:", "rationale": "set", "steps": [ { @@ -2387,7 +2387,7 @@ "html": "

Dispatch event at request with legacyOutputDidListenersThrowFlag.

" }, { - "html": "To fire an error event at a request, run these steps:", + "html": "If transaction’s state is active,\nthen:", "rationale": "set", "steps": [ { @@ -2439,11 +2439,11 @@ "rationale": ".algorithm", "steps": [ { - "html": "To store a record into an object store with store, value, an optional key, and a no-overwrite flag, run these steps:", + "html": "If store uses a key generator, then:", "rationale": "if", "steps": [ { - "html": "To store a record into an object store with store, value, an optional key, and a no-overwrite flag, run these steps:", + "html": "If key is undefined, then:", "rationale": "let", "steps": [ { @@ -2472,7 +2472,7 @@ "html": "

Store a record in store containing key as its key and ! StructuredSerializeForStorage(value)\nas its value. The record is stored in the object store’s list of records such that the list is sorted\naccording to the key of the records in ascending order.

" }, { - "html": "To store a record into an object store with store, value, an optional key, and a no-overwrite flag, run these steps:", + "html": "For each index which references store:", "rationale": "let", "steps": [ { @@ -2536,7 +2536,7 @@ "html": "

Let list be an empty list.

" }, { - "html": "To retrieve multiple values from an object\nstore with targetRealm, store, range and optional count, run these steps:", + "html": "For each record of records:", "rationale": "let", "steps": [ { @@ -2588,7 +2588,7 @@ "html": "

Let list be an empty list.

" }, { - "html": "To retrieve multiple keys from an object store with store, range and optional count, run these steps:", + "html": "For each record of records:", "rationale": "let", "steps": [ { @@ -2640,7 +2640,7 @@ "html": "

Let list be an empty list.

" }, { - "html": "To retrieve multiple referenced values from an\nindex with targetRealm, index, range and optional count, run these steps:", + "html": "For each record of records:", "rationale": "let", "steps": [ { @@ -2692,7 +2692,7 @@ "html": "

Let list be an empty list.

" }, { - "html": "To retrieve multiple values from an index with index, range and optional count, run these steps:", + "html": "For each record of records:", "rationale": "let", "steps": [ { @@ -2787,11 +2787,11 @@ "html": "

If count is not given, let count be 1.

" }, { - "html": "To iterate a cursor with targetRealm, cursor, an optional key and primaryKey to iterate to, and an optional count, run these steps:", + "html": "While count is greater than 0:", "rationale": "switch", "steps": [ { - "html": "To iterate a cursor with targetRealm, cursor, an optional key and primaryKey to iterate to, and an optional count, run these steps:", + "html": "Switch on direction:", "rationale": ".switch", "steps": [ { @@ -2818,7 +2818,7 @@ ] }, { - "html": "To iterate a cursor with targetRealm, cursor, an optional key and primaryKey to iterate to, and an optional count, run these steps:", + "html": "If found record is not defined, then:", "rationale": "set", "steps": [ { @@ -2856,7 +2856,7 @@ "html": "

Set cursor’s key to found record’s key.

" }, { - "html": "To iterate a cursor with targetRealm, cursor, an optional key and primaryKey to iterate to, and an optional count, run these steps:", + "html": "If cursor’s key only flag is false, then:", "rationale": "let", "steps": [ { @@ -2905,7 +2905,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "To evaluate a key path on a value with value and keyPath, run the following steps. The result of these steps is an\nECMAScript value or failure, or the steps may throw an exception.", + "html": "If keyPath is a list of strings, then:", "rationale": "let", "steps": [ { @@ -2915,7 +2915,7 @@ "html": "

Let i be 0.

" }, { - "html": "To evaluate a key path on a value with value and keyPath, run the following steps. The result of these steps is an\nECMAScript value or failure, or the steps may throw an exception.", + "html": "For each item of keyPath:", "rationale": "let", "steps": [ { @@ -2953,7 +2953,7 @@ "html": "

Let identifiers be the result of strictly splitting keyPath on U+002E FULL STOP characters (.).

" }, { - "html": "To evaluate a key path on a value with value and keyPath, run the following steps. The result of these steps is an\nECMAScript value or failure, or the steps may throw an exception.", + "html": "For each identifier of identifiers, jump to the appropriate step below:", "rationale": ".switch", "steps": [ { @@ -2985,7 +2985,7 @@ }, { "case": "Otherwise", - "html": "To evaluate a key path on a value with value and keyPath, run the following steps. The result of these steps is an\nECMAScript value or failure, or the steps may throw an exception.", + "html": "", "rationale": "if", "steps": [ { @@ -3033,7 +3033,7 @@ "html": "

Remove the last item of identifiers.

" }, { - "html": "To check that a key could be injected into a value with value and a keyPath, run the following steps.\nThe result of these steps is either true or false.", + "html": "For each remaining identifier of identifiers, if any:", "rationale": "if", "steps": [ { @@ -3071,7 +3071,7 @@ "html": "

Let last be the last item of identifiers and remove it from\nthe list.

" }, { - "html": "To inject a key into a value using a key path with value, a key and a keyPath, run these steps:", + "html": "For each remaining identifier of identifiers:", "rationale": "assert", "steps": [ { @@ -3081,7 +3081,7 @@ "html": "

Let hop be ! HasOwnProperty(value, identifier).

" }, { - "html": "To inject a key into a value using a key path with value, a key and a keyPath, run these steps:", + "html": "If hop is false, then:", "rationale": "let", "steps": [ { @@ -3127,7 +3127,7 @@ "html": "

Let value be key’s value.

" }, { - "html": "To convert a key to a value with key, run the following steps.\nThe steps return an ECMAScript value.", + "html": "Switch on type:", "rationale": ".switch", "steps": [ { @@ -3143,7 +3143,7 @@ }, { "case": "date", - "html": "To convert a key to a value with key, run the following steps.\nThe steps return an ECMAScript value.", + "html": "", "rationale": "let", "steps": [ { @@ -3159,7 +3159,7 @@ }, { "case": "binary", - "html": "To convert a key to a value with key, run the following steps.\nThe steps return an ECMAScript value.", + "html": "", "rationale": "let", "steps": [ { @@ -3181,7 +3181,7 @@ }, { "case": "array", - "html": "To convert a key to a value with key, run the following steps.\nThe steps return an ECMAScript value.", + "html": "", "rationale": "let", "steps": [ { @@ -3197,7 +3197,7 @@ "html": "

Let index be 0.

" }, { - "html": "To convert a key to a value with key, run the following steps.\nThe steps return an ECMAScript value.", + "html": "While index is less than len:", "rationale": "let", "steps": [ { @@ -3238,7 +3238,7 @@ "html": "

If seen contains input, then return invalid.

" }, { - "html": "To convert a value to a key with an ECMAScript value input, and an optional set seen, run the following steps.\nThe result of these steps is a key or invalid, or the\nsteps may throw an exception.", + "html": "Jump to the appropriate step below:", "rationale": ".switch", "steps": [ { @@ -3246,7 +3246,7 @@ "steps": [ { "case": "If Type(input) is Number", - "html": "To convert a value to a key with an ECMAScript value input, and an optional set seen, run the following steps.\nThe result of these steps is a key or invalid, or the\nsteps may throw an exception.", + "html": "", "rationale": "if", "steps": [ { @@ -3259,7 +3259,7 @@ }, { "case": "If input is a Date (has a [[DateValue]] internal slot)", - "html": "To convert a value to a key with an ECMAScript value input, and an optional set seen, run the following steps.\nThe result of these steps is a key or invalid, or the\nsteps may throw an exception.", + "html": "", "rationale": "let", "steps": [ { @@ -3275,7 +3275,7 @@ }, { "case": "If Type(input) is String", - "html": "To convert a value to a key with an ECMAScript value input, and an optional set seen, run the following steps.\nThe result of these steps is a key or invalid, or the\nsteps may throw an exception.", + "html": "", "rationale": "return", "steps": [ { @@ -3285,7 +3285,7 @@ }, { "case": "If input is a buffer source type", - "html": "To convert a value to a key with an ECMAScript value input, and an optional set seen, run the following steps.\nThe result of these steps is a key or invalid, or the\nsteps may throw an exception.", + "html": "", "rationale": "let", "steps": [ { @@ -3298,7 +3298,7 @@ }, { "case": "If input is an Array exotic object", - "html": "To convert a value to a key with an ECMAScript value input, and an optional set seen, run the following steps.\nThe result of these steps is a key or invalid, or the\nsteps may throw an exception.", + "html": "", "rationale": "let", "steps": [ { @@ -3314,7 +3314,7 @@ "html": "

Let index be 0.

" }, { - "html": "To convert a value to a key with an ECMAScript value input, and an optional set seen, run the following steps.\nThe result of these steps is a key or invalid, or the\nsteps may throw an exception.", + "html": "While index is less than len:", "rationale": "let", "steps": [ { @@ -3365,7 +3365,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "To convert a value to a multiEntry key with an ECMAScript value input, run the following steps.\nThe result of these steps is a key or invalid, or the\nsteps may throw an exception.", + "html": "If input is an Array exotic object, then:", "rationale": "let", "steps": [ { @@ -3381,14 +3381,14 @@ "html": "

Let index be 0.

" }, { - "html": "To convert a value to a multiEntry key with an ECMAScript value input, run the following steps.\nThe result of these steps is a key or invalid, or the\nsteps may throw an exception.", + "html": "While index is less than len:", "rationale": "let", "steps": [ { "html": "

Let entry be Get(input, index).

" }, { - "html": "To convert a value to a multiEntry key with an ECMAScript value input, run the following steps.\nThe result of these steps is a key or invalid, or the\nsteps may throw an exception.", + "html": "If entry is not an abrupt completion, then:", "rationale": "let", "steps": [ { diff --git a/tr/algorithms/SVG2.json b/tr/algorithms/SVG2.json index 52ed5e8ce249..d448487b2fed 100644 --- a/tr/algorithms/SVG2.json +++ b/tr/algorithms/SVG2.json @@ -2672,11 +2672,11 @@ { "name": "resolved descendant node", "href": "https://www.w3.org/TR/SVG2/text.html#TermResolvedDescendantNode", - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "The SVG specific text layout algorithm is as follows:", "rationale": ".algorithm", "steps": [ { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "Setup", "rationale": "let", "steps": [ { @@ -2697,7 +2697,7 @@ ] }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "For each array element with index i in\n\tresult:", "rationale": "set", "steps": [ { @@ -2715,11 +2715,11 @@ ] }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "Resolve character positioning", "rationale": "set", "steps": [ { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "Set up:", "rationale": "let", "steps": [ { @@ -2734,11 +2734,11 @@ ] }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "A recursive procedure that takes as input a node and\n\t whose steps are as follows:", "rationale": "if", "steps": [ { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "If node is a text or tspan node:", "rationale": "let", "steps": [ { @@ -2757,11 +2757,11 @@ "html": "Let i = 0 and j = 0." }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "While j < length, do:", "rationale": "if", "steps": [ { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "If the \"addressable\" flag of result[index +\n\t\t j] is true, then:", "rationale": "if", "steps": [ { @@ -2801,7 +2801,7 @@ ] }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "If node is a textPath node:", "rationale": "let", "steps": [ { @@ -2816,7 +2816,7 @@ ] }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "For each child node child of node:", "rationale": "resolve", "steps": [ { @@ -2825,7 +2825,7 @@ ] }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "If node is a textPath node:", "rationale": "set", "steps": [ { @@ -2838,14 +2838,14 @@ ] }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "Adjust positions: dx, dy", "rationale": "let", "steps": [ { "html": "Let shift be the cumulative x and\n\t y shifts due to x and y\n\t attributes, initialized to (0,0)." }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "For each array element with index i in result:", "rationale": "if", "steps": [ { @@ -2862,11 +2862,11 @@ ] }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "Apply textLength attribute", "rationale": "set", "steps": [ { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "Set up:", "rationale": "define", "steps": [ { @@ -2878,11 +2878,11 @@ ] }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "A recursive procedure that takes as input\n\t a node and whose steps are as follows:", "rationale": "for", "steps": [ { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "For each child node child of node:", "rationale": "resolve", "steps": [ { @@ -2891,7 +2891,7 @@ ] }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "If node is a text or tspan node\n\t and if the node has a valid textLength attribute value:", "rationale": "let", "steps": [ { @@ -2901,7 +2901,7 @@ "html": "Let i and j be the global\n\t\t index of the first character and last characters\n\t\t in node, respectively." }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "For each index k in the range\n\t\t [i, j] where the \"addressable\" flag\n\t\t of result[k] is true:", "rationale": "if", "steps": [ { @@ -2922,7 +2922,7 @@ ] }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "If a ≠ +∞ then:", "rationale": "find", "steps": [ { @@ -2941,7 +2941,7 @@ "html": "Let shift = 0." }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "For each index k in the range [i,j]:", "rationale": "add", "steps": [ { @@ -2961,7 +2961,7 @@ ] }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "Adjust positions: x, y", "rationale": "let", "steps": [ { @@ -2971,7 +2971,7 @@ "html": "Set index = 1." }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "While index < count:", "rationale": "if", "steps": [ { @@ -2984,7 +2984,7 @@ "html": "Let result.x[index] =\n\t result.x[index] + shift.x\n\t and result.y[index] =\n\t\tresult.y[index] + shift.y." }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "If the \"middle\" and \"anchored chunk\" flags\n\t of result[index] are both true, then:", "rationale": "set", "steps": [ { @@ -3003,18 +3003,18 @@ ] }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "Apply anchoring", "rationale": "for", "steps": [ { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "For each slice result[i..j]\n\t (inclusive of both i and j), where:\n\t \n\t do:", "rationale": "let", "steps": [ { "html": "Let a = +∞ and b = −∞." }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "For each index k in the range\n\t [i, j] where the \"addressable\" flag\n\t of result[k] is true:", "rationale": "let", "steps": [ { @@ -3032,14 +3032,14 @@ ] }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "If a ≠ +∞, then:", "rationale": "let", "steps": [ { "html": "Let shift be the x coordinate of\n\t\t result[i], if the \"horizontal\" flag\n\t\t is true, and the y coordinate otherwise." }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "Adjust shift based on the value of text-anchor\n\t\t and direction of the element the character at\n\t\t index i is in:", "rationale": ".switch", "steps": [ { @@ -3062,7 +3062,7 @@ ] }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "For each index k in the range [i, j]:", "rationale": "add", "steps": [ { @@ -3077,7 +3077,7 @@ ] }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "Position on path", "rationale": "set", "steps": [ { @@ -3093,18 +3093,18 @@ "html": "Let path_end be an offset for characters that follow\n\t a textPath element. Set path_end to (0,0)." }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "While index < count:", "rationale": "if", "steps": [ { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "If the character at index i is within a\n\t textPath element and corresponds to a typographic character, then:", "rationale": "set", "steps": [ { "html": "Set \"in path\" flag to true." }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "If the \"middle\" flag of\n\t\t result[index] is false, then:", "rationale": "let", "steps": [ { @@ -3126,7 +3126,7 @@ "html": "Let (x, y)\n\t\t and angle be the position and angle\n\t\t in result[index]." }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "Let mid be a coordinate value depending\n\t\t on the value of the \"horizontal\" flag:", "rationale": ".switch", "steps": [ { @@ -3148,7 +3148,7 @@ "html": "If path is not a closed subpath and\n\t\t mid < 0 or mid > length,\n\t\t set the \"hidden\" flag of result[index] to true." }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "If path is a closed subpath depending on\n\t\t the values of text-anchor and direction of\n\t\t the element the character at index is in:", "rationale": ".switch", "steps": [ { @@ -3171,14 +3171,14 @@ ] }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "If the hidden flag is false:", "rationale": "let", "steps": [ { "html": "Let point be the position and\n\t\t\t t be the unit vector tangent to\n\t\t\t the point mid distance\n\t\t\t along path." }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "If the \"horizontal\" flag is", "rationale": ".switch", "steps": [ { @@ -3186,7 +3186,7 @@ "steps": [ { "case": "true", - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "", "rationale": "let", "steps": [ { @@ -3208,7 +3208,7 @@ }, { "case": "false", - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "", "rationale": "let", "steps": [ { @@ -3237,7 +3237,7 @@ ] }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "Otherwise, the \"middle\" flag\n\t\t of result[index] is true:", "rationale": "set", "steps": [ { @@ -3248,11 +3248,11 @@ ] }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "If the character at index i is not within a\n\t textPath element and corresponds to a typographic character, then:", "rationale": "if", "steps": [ { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "If the \"in path\" flag is true:", "rationale": "set", "steps": [ { @@ -3267,7 +3267,7 @@ ] }, { - "html": "

\n Text layout begins by passing to a CSS-based text renderer the\n content of the text element which includes text data\n along with styling information and a description of one or more\n shapes to be filled. The text element is treated as a\n block element and its descendant tspan, textPath\n and a elements are treated as inline elements. The CSS\n renderer returns a set of typographic characters with\n their positions resulting from laying out the text as if the text\n were absolutely positioned.\n

\n \n

\n Once a content area has been defined, the following\n algorithm is used to determine the typographic characters\n and their positions for a given text element:\n

\n\n \n\n

\n A number of CSS properties have no or limited effect on SVG text\n layout:\n

\n\n \n\n

\n Various SVG attributes and properties may reposition the\n typographic characters depending on how the content area is defined:\n

\n\n \n\n

\n The following SVG text layout algorithm returns output information\n about each character in the DOM in the text element's\n subtree. That information includes:\n

\n\n \n\n \n\n

\n The SVG specific text layout algorithm is as follows:\n

", + "html": "If the \"after path\" is true.", "rationale": "if", "steps": [ { diff --git a/tr/algorithms/clipboard-apis.json b/tr/algorithms/clipboard-apis.json index 93acc00a6713..b1c48d7a0962 100644 --- a/tr/algorithms/clipboard-apis.json +++ b/tr/algorithms/clipboard-apis.json @@ -578,7 +578,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The script-may-access-clipboard flag is set as follows:", + "html": "If action is copy or cut and the script thread\nis allowed to modify the clipboard, then", "rationale": "set", "steps": [ { @@ -587,7 +587,7 @@ ] }, { - "html": "The script-may-access-clipboard flag is set as follows:", + "html": "If action is paste and the script thread is allowed to\nread from clipboard, then", "rationale": "set", "steps": [ { @@ -793,7 +793,7 @@ "html": "

Let hasGesture be true if the relevant global object of this has transient activation, false otherwise.

" }, { - "html": "

9.1.1. check clipboard read permission

", + "html": "If hasGesture then,", "rationale": "return", "steps": [ { @@ -822,7 +822,7 @@ "html": "

Let hasGesture be true if the relevant global object of this has transient activation, false otherwise.

" }, { - "html": "

9.2.1. check clipboard write permission

", + "html": "If hasGesture then,", "rationale": "let", "steps": [ { @@ -848,18 +848,18 @@ "rationale": ".algorithm", "steps": [ { - "html": "

write content to the clipboard

\n
\n
Input\n
\n

items, a DataTransferItemList list of items to write

\n
\n

clear-was-called, a boolean

\n
\n

types-to-clear, a list

\n
Output\n
\n

None

\n
", + "html": "If the items list is not empty, then", "rationale": "clear", "steps": [ { "html": "

Clear the clipboard

" }, { - "html": "

write content to the clipboard

\n
\n
Input\n
\n

items, a DataTransferItemList list of items to write

\n
\n

clear-was-called, a boolean

\n
\n

types-to-clear, a list

\n
Output\n
\n

None

\n
", + "html": "For each part in the list,", "rationale": "if", "steps": [ { - "html": "

write content to the clipboard

\n
\n
Input\n
\n

items, a DataTransferItemList list of items to write

\n
\n

clear-was-called, a boolean

\n
\n

types-to-clear, a list

\n
Output\n
\n

None

\n
", + "html": "If data type is text/plain, then", "rationale": "ensure", "steps": [ { @@ -874,7 +874,7 @@ ] }, { - "html": "

write content to the clipboard

\n
\n
Input\n
\n

items, a DataTransferItemList list of items to write

\n
\n

clear-was-called, a boolean

\n
\n

types-to-clear, a list

\n
Output\n
\n

None

\n
", + "html": "Else, if data is of a type listed in the mandatory data types list, then", "rationale": "place", "steps": [ { @@ -893,15 +893,15 @@ ] }, { - "html": "

write content to the clipboard

\n
\n
Input\n
\n

items, a DataTransferItemList list of items to write

\n
\n

clear-was-called, a boolean

\n
\n

types-to-clear, a list

\n
Output\n
\n

None

\n
", + "html": "Else, the items list is empty. Follow these steps to determine\nwhether to clear the clipboard:", "rationale": "if", "steps": [ { - "html": "

write content to the clipboard

\n
\n
Input\n
\n

items, a DataTransferItemList list of items to write

\n
\n

clear-was-called, a boolean

\n
\n

types-to-clear, a list

\n
Output\n
\n

None

\n
", + "html": "If the list of items is empty and the clear-was-called flag is true, then", "rationale": "if", "steps": [ { - "html": "

write content to the clipboard

\n
\n
Input\n
\n

items, a DataTransferItemList list of items to write

\n
\n

clear-was-called, a boolean

\n
\n

types-to-clear, a list

\n
Output\n
\n

None

\n
", + "html": "If the types-to-clear list is empty, then", "rationale": "clear", "steps": [ { @@ -910,7 +910,7 @@ ] }, { - "html": "

write content to the clipboard

\n
\n
Input\n
\n

items, a DataTransferItemList list of items to write

\n
\n

clear-was-called, a boolean

\n
\n

types-to-clear, a list

\n
Output\n
\n

None

\n
", + "html": "Else", "rationale": "remove", "steps": [ { @@ -931,7 +931,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "

write blobs and option to the clipboard

\n
\n
Input\n
\n

items, a sequence<Blob>

\n
\n

presentationStyle, a clipboard item's presentation style

\n
Output\n
\n

None

\n
", + "html": "For each item in items:", "rationale": "let", "steps": [ { @@ -960,7 +960,7 @@ "html": "

Let wellKnownFormat be a string.

" }, { - "html": "

os specific well-known format

\n
\n
Input\n
\n

mimeType, a type

\n
Output\n
\n

wellKnownFormat, a platform specific string type. On Mac it’s NSPasteboardType, on Windows it’s LPCWSTR and Linux it’s a const char*.

\n
", + "html": "On Windows, follow the convention described below:", "rationale": "assign", "steps": [ { @@ -972,7 +972,7 @@ ], "additional": [ { - "html": "

os specific well-known format

\n
\n
Input\n
\n

mimeType, a type

\n
Output\n
\n

wellKnownFormat, a platform specific string type. On Mac it’s NSPasteboardType, on Windows it’s LPCWSTR and Linux it’s a const char*.

\n
", + "html": "On MacOS, follow the convention described below:", "rationale": "assign", "steps": [ { @@ -984,7 +984,7 @@ ] }, { - "html": "

os specific well-known format

\n
\n
Input\n
\n

mimeType, a type

\n
Output\n
\n

wellKnownFormat, a platform specific string type. On Mac it’s NSPasteboardType, on Windows it’s LPCWSTR and Linux it’s a const char*.

\n
", + "html": "On Linux, ChromeOS, and Android, follow the convention described below:", "rationale": "assign", "steps": [ { @@ -998,7 +998,7 @@ ] }, { - "html": "

os specific well-known format

\n
\n
Input\n
\n

mimeType, a type

\n
Output\n
\n

wellKnownFormat, a platform specific string type. On Mac it’s NSPasteboardType, on Windows it’s LPCWSTR and Linux it’s a const char*.

\n
", + "html": "On Windows, follow the convention described below:", "rationale": "assign", "steps": [ { @@ -1010,7 +1010,7 @@ ], "additional": [ { - "html": "

os specific well-known format

\n
\n
Input\n
\n

mimeType, a type

\n
Output\n
\n

wellKnownFormat, a platform specific string type. On Mac it’s NSPasteboardType, on Windows it’s LPCWSTR and Linux it’s a const char*.

\n
", + "html": "On MacOS, follow the convention described below:", "rationale": "assign", "steps": [ { @@ -1022,7 +1022,7 @@ ] }, { - "html": "

os specific well-known format

\n
\n
Input\n
\n

mimeType, a type

\n
Output\n
\n

wellKnownFormat, a platform specific string type. On Mac it’s NSPasteboardType, on Windows it’s LPCWSTR and Linux it’s a const char*.

\n
", + "html": "On Linux, ChromeOS, and Android, follow the convention described below:", "rationale": "assign", "steps": [ { @@ -1036,7 +1036,7 @@ ] }, { - "html": "

os specific well-known format

\n
\n
Input\n
\n

mimeType, a type

\n
Output\n
\n

wellKnownFormat, a platform specific string type. On Mac it’s NSPasteboardType, on Windows it’s LPCWSTR and Linux it’s a const char*.

\n
", + "html": "On Windows, follow the convention described below:", "rationale": "assign", "steps": [ { @@ -1048,7 +1048,7 @@ ], "additional": [ { - "html": "

os specific well-known format

\n
\n
Input\n
\n

mimeType, a type

\n
Output\n
\n

wellKnownFormat, a platform specific string type. On Mac it’s NSPasteboardType, on Windows it’s LPCWSTR and Linux it’s a const char*.

\n
", + "html": "On MacOS, follow the convention described below:", "rationale": "assign", "steps": [ { @@ -1060,7 +1060,7 @@ ] }, { - "html": "

os specific well-known format

\n
\n
Input\n
\n

mimeType, a type

\n
Output\n
\n

wellKnownFormat, a platform specific string type. On Mac it’s NSPasteboardType, on Windows it’s LPCWSTR and Linux it’s a const char*.

\n
", + "html": "On Linux, ChromeOS, and Android, follow the convention described below:", "rationale": "assign", "steps": [ { @@ -1103,11 +1103,11 @@ "html": "

Let trusted be true if the event is generated by the\nuser agent, false otherwise

" }, { - "html": "

fire a clipboard event

\n
\n
Input\n
\n

e, the ClipboardEvent to fire

\n
Output\n
\n

None

\n
", + "html": "Let target be set as follows:", "rationale": "if", "steps": [ { - "html": "

fire a clipboard event

\n
\n
Input\n
\n

e, the ClipboardEvent to fire

\n
Output\n
\n

None

\n
", + "html": "If the context is editable, then", "rationale": "set", "steps": [ { @@ -1116,7 +1116,7 @@ ] }, { - "html": "

fire a clipboard event

\n
\n
Input\n
\n

e, the ClipboardEvent to fire

\n
Output\n
\n

None

\n
", + "html": "Else, if the context is not editable, then", "rationale": "set", "steps": [ { @@ -1127,26 +1127,26 @@ ] }, { - "html": "

fire a clipboard event

\n
\n
Input\n
\n

e, the ClipboardEvent to fire

\n
Output\n
\n

None

\n
", + "html": "Process the event as follows:", "rationale": "if", "steps": [ { - "html": "

fire a clipboard event

\n
\n
Input\n
\n

e, the ClipboardEvent to fire

\n
Output\n
\n

None

\n
", + "html": "If e is \"paste\", then", "rationale": "set", "steps": [ { "html": "

Set the clipboard-event-data’s\ninternal drag data store mode flag to read-only.

" }, { - "html": "

fire a clipboard event

\n
\n
Input\n
\n

e, the ClipboardEvent to fire

\n
Output\n
\n

None

\n
", + "html": "If trusted is true, or the\nimplementation is configured to give script-generated events\nread access to the OS clipboard", "rationale": "for", "steps": [ { - "html": "

fire a clipboard event

\n
\n
Input\n
\n

e, the ClipboardEvent to fire

\n
Output\n
\n

None

\n
", + "html": "For each clipboard-part on the OS clipboard, carry out these steps:", "rationale": "if", "steps": [ { - "html": "

fire a clipboard event

\n
\n
Input\n
\n

e, the ClipboardEvent to fire

\n
Output\n
\n

None

\n
", + "html": "If clipboard-part contains plain text, then", "rationale": "ensure", "steps": [ { @@ -1164,7 +1164,7 @@ ] }, { - "html": "

fire a clipboard event

\n
\n
Input\n
\n

e, the ClipboardEvent to fire

\n
Output\n
\n

None

\n
", + "html": "If clipboard-part represents file\nreferences, then for each file reference:", "rationale": "determine", "steps": [ { @@ -1182,7 +1182,7 @@ ] }, { - "html": "

fire a clipboard event

\n
\n
Input\n
\n

e, the ClipboardEvent to fire

\n
Output\n
\n

None

\n
", + "html": "If clipboard-part contains HTML- or\nXHTML-formatted text, according to the operating\nsystem’s convention for describing such clipboard\nformats, then", "rationale": "if", "steps": [ { @@ -1191,7 +1191,7 @@ ] }, { - "html": "

fire a clipboard event

\n
\n
Input\n
\n

e, the ClipboardEvent to fire

\n
Output\n
\n

None

\n
", + "html": "If clipboard-part contains data in\nanother supported binary or text-based format (see mandatory data types), then", "rationale": "determine", "steps": [ { @@ -1221,7 +1221,7 @@ ] }, { - "html": "

fire a clipboard event

\n
\n
Input\n
\n

e, the ClipboardEvent to fire

\n
Output\n
\n

None

\n
", + "html": "If e is \"copy\" or \"cut\", then", "rationale": "set", "steps": [ { @@ -1241,11 +1241,11 @@ "html": "

Set e’s composed to true.

" }, { - "html": "

fire a clipboard event

\n
\n
Input\n
\n

e, the ClipboardEvent to fire

\n
Output\n
\n

None

\n
", + "html": "Implementation requirements for access to data during event\ndispatch are defined in [HTML]. Some additional clipboard\nevent-specific processing rules are given below:", "rationale": "if", "steps": [ { - "html": "

fire a clipboard event

\n
\n
Input\n
\n

e, the ClipboardEvent to fire

\n
Output\n
\n

None

\n
", + "html": "If a script calls clearData() or clear() and the DataTransfer object’s internal drag data store mode flag is read/write, then", "rationale": "set", "steps": [ { @@ -1254,11 +1254,11 @@ ] }, { - "html": "

fire a clipboard event

\n
\n
Input\n
\n

e, the ClipboardEvent to fire

\n
Output\n
\n

None

\n
", + "html": "If a script calls setData() or modifies items and the clear-was-called flag is true, then", "rationale": "if", "steps": [ { - "html": "

fire a clipboard event

\n
\n
Input\n
\n

e, the ClipboardEvent to fire

\n
Output\n
\n

None

\n
", + "html": "If the types-to-clear list is empty, then", "rationale": "set", "steps": [ { @@ -1267,7 +1267,7 @@ ] }, { - "html": "

fire a clipboard event

\n
\n
Input\n
\n

e, the ClipboardEvent to fire

\n
Output\n
\n

None

\n
", + "html": "Else, if setData()’s type argument or\nthe new item’s drag data item type string is\nfound in the types-to-clear list, then", "rationale": "remove", "steps": [ { @@ -1278,7 +1278,7 @@ ] }, { - "html": "

fire a clipboard event

\n
\n
Input\n
\n

e, the ClipboardEvent to fire

\n
Output\n
\n

None

\n
", + "html": "If a script calls getData() or accesses items in the DataTransferItemList and clipboard-entry is\nset, then", "rationale": "check", "steps": [ { @@ -1306,11 +1306,11 @@ "html": "

If the markup’s source URL is known, then resolve all relative URLs in\nHREF and SRC attributes using the source URL as base URL, and set the\nrespective attributes to the resolved absolute URL.

" }, { - "html": "

process an HTML paste event

\n
\n
Input\n
\n

clipboard-part, the clipboard part to process

\n
\n

clipboard-event-data, the DataTransfer object for this event

\n
Output\n
\n

None

\n
", + "html": "If the markup’s origin is from a local application, then check whether\nthere are references to local files and/or other parts of the OS\nclipboard’s contents. If such references are found, references to\nsub-parts must be replaced by content-id references using the\ncid: URL scheme [RFC2392]. To do so, process each attribute\nreferencing a local file or clipboard part according to the following\nsteps:", "rationale": "if", "steps": [ { - "html": "

process an HTML paste event

\n
\n
Input\n
\n

clipboard-part, the clipboard part to process

\n
\n

clipboard-event-data, the DataTransfer object for this event

\n
Output\n
\n

None

\n
", + "html": "If clipboard-event-data’s items already\ncontains an entry for the referenced file or clipboard part, then", "rationale": "set", "steps": [ { @@ -1319,7 +1319,7 @@ ] }, { - "html": "

process an HTML paste event

\n
\n
Input\n
\n

clipboard-part, the clipboard part to process

\n
\n

clipboard-event-data, the DataTransfer object for this event

\n
Output\n
\n

None

\n
", + "html": "Else,", "rationale": "let", "steps": [ { diff --git a/tr/algorithms/contact-picker.json b/tr/algorithms/contact-picker.json index 44b584b1d6bb..7cd25485d5d0 100644 --- a/tr/algorithms/contact-picker.json +++ b/tr/algorithms/contact-picker.json @@ -14,7 +14,7 @@ "html": "

Let promise be a new promise.

" }, { - "html": "The getProperties() method, when invoked, runs these steps:", + "html": "Run the following steps in parallel:", "rationale": "resolve", "steps": [ { @@ -55,7 +55,7 @@ "html": "

If properties is empty, then return a promise rejected with a TypeError.

" }, { - "html": "The select(properties, options) method, when invoked, runs these steps:", + "html": "For each property of properties:", "rationale": "if", "steps": [ { @@ -70,15 +70,15 @@ "html": "

Let promise be a new promise.

" }, { - "html": "The select(properties, options) method, when invoked, runs these steps:", + "html": "Run the following steps in parallel:", "rationale": "let", "steps": [ { - "html": "The select(properties, options) method, when invoked, runs these steps:", + "html": "Let selectedContacts be be the result of launching a contact picker with optionsmultiple member and properties. If this fails, then:", "rationale": "queue", "steps": [ { - "html": "The select(properties, options) method, when invoked, runs these steps:", + "html": "Queue a contact picker task to run these steps:", "rationale": "reject", "steps": [ { @@ -98,14 +98,14 @@ "html": "

Unset navigable’s contact picker is showing flag.

" }, { - "html": "The select(properties, options) method, when invoked, runs these steps:", + "html": "Queue a contact picker task to run these steps:", "rationale": "let", "steps": [ { "html": "

Let contacts be an empty list.

" }, { - "html": "The select(properties, options) method, when invoked, runs these steps:", + "html": "For each selectedContact in selectedContacts:", "rationale": "let", "steps": [ { diff --git a/tr/algorithms/credential-management-1.json b/tr/algorithms/credential-management-1.json index 1ac90785a7c0..638e2d2876fd 100644 --- a/tr/algorithms/credential-management-1.json +++ b/tr/algorithms/credential-management-1.json @@ -130,7 +130,7 @@ "html": "

Let relevant interface objects be an empty set.

" }, { - "html": "The relevant credential interface objects for a given CredentialCreationOptions or CredentialRequestOptions (options) is a set of interface objects, collected as follows:", + "html": "For each optionKeyoptionValue of options:", "rationale": "let", "steps": [ { @@ -156,7 +156,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "A given CredentialRequestOptions (options) is matchable a priori if the following\n steps return true:", + "html": "For each interface in optionsrelevant credential interface objects:", "rationale": "if", "steps": [ { diff --git a/tr/algorithms/css-anchor-position-1.json b/tr/algorithms/css-anchor-position-1.json index b4bc146f4434..a8be78bbf9b5 100644 --- a/tr/algorithms/css-anchor-position-1.json +++ b/tr/algorithms/css-anchor-position-1.json @@ -14,7 +14,7 @@ "html": "

If anchor spec was not passed,\nreturn the target anchor element for query el given the query el’s default anchor specifier.

" }, { - "html": "To determine the target anchor element given a querying element query el and an optional anchor specifier anchor spec:", + "html": "If anchor spec is implicit:", "rationale": "if", "steps": [ { @@ -54,7 +54,7 @@ "html": "

Let base styles be the current used styles of el.

" }, { - "html": "To determine the position fallback styles of an element el:", + "html": "For each option in the position options list:", "rationale": "let", "steps": [ { diff --git a/tr/algorithms/css-animation-worklet-1.json b/tr/algorithms/css-animation-worklet-1.json index 7b8b3854842a..e5c7358abd5d 100644 --- a/tr/algorithms/css-animation-worklet-1.json +++ b/tr/algorithms/css-animation-worklet-1.json @@ -118,7 +118,7 @@ "html": "

Let serializedState be undefined.

" }, { - "html": "To migrate an animator instance from one WorkletGlobalScope to another, given instance, sourceWorkletGlobalScope, destinationWorkletGlobalScope, the user agent must run the following steps :", + "html": "Queue a task on sourceWorkletGlobalScope to run the following steps:", "rationale": "let", "steps": [ { @@ -151,7 +151,7 @@ "html": "

Wait for the above task to complete. If the task is aborted, abort the following steps.

" }, { - "html": "To migrate an animator instance from one WorkletGlobalScope to another, given instance, sourceWorkletGlobalScope, destinationWorkletGlobalScope, the user agent must run the following steps :", + "html": "Queue a task on destinationWorkletGlobalScope to run the following steps:", "rationale": "run", "steps": [ { diff --git a/tr/algorithms/css-cascade-4.json b/tr/algorithms/css-cascade-4.json index 2c1957857639..46394d8019b2 100644 --- a/tr/algorithms/css-cascade-4.json +++ b/tr/algorithms/css-cascade-4.json @@ -20,7 +20,7 @@ "html": "

Let parsedUrl be the result of the URL parser steps with rule’s URL and parentStylesheet’s location.\nIf the algorithm returns an error,\nreturn. [CSSOM]

" }, { - "html": "To fetch an @import, given an @import rule rule:", + "html": "Fetch a style resource from parsedUrl,\nwith stylesheet parentStylesheet,\ndestination \"style\",\nCORS mode \"no-cors\",\nand processResponse being the following steps given response response and\nbyte stream, null or failure byteStream:", "rationale": "if", "steps": [ { diff --git a/tr/algorithms/css-color-4.json b/tr/algorithms/css-color-4.json index d49c7d469290..9894f1ce8faa 100644 --- a/tr/algorithms/css-color-4.json +++ b/tr/algorithms/css-color-4.json @@ -208,7 +208,7 @@ "html": "set E to delta(clipped, current)" }, { - "html": "To CSS gamut map a color origin in color space origin color space to be in gamut of a destination color space destination:", + "html": "if E < JND", "rationale": "return", "steps": [ { @@ -226,7 +226,7 @@ "html": "let min_inGamut be a boolean that represents when min is still in gamut, and set it to true" }, { - "html": "To CSS gamut map a color origin in color space origin color space to be in gamut of a destination color space destination:", + "html": "while (max - min is greater than epsilon) repeat the following steps", "rationale": "set", "steps": [ { @@ -239,7 +239,7 @@ "html": "if min_inGamut is true and also if inGamut(current) is true, set min to chroma and continue to repeat these steps" }, { - "html": "To CSS gamut map a color origin in color space origin color space to be in gamut of a destination color space destination:", + "html": "otherwise, if inGamut(current) is false carry out these steps:", "rationale": "set", "steps": [ { @@ -249,14 +249,14 @@ "html": "set E to delta(clipped, current)" }, { - "html": "To CSS gamut map a color origin in color space origin color space to be in gamut of a destination color space destination:", + "html": "if E < JND", "rationale": "if", "steps": [ { "html": "if (JND - E < epsilon) return clipped as the gamut mapped color" }, { - "html": "To CSS gamut map a color origin in color space origin color space to be in gamut of a destination color space destination:", + "html": "otherwise,", "rationale": "set", "steps": [ { diff --git a/tr/algorithms/css-conditional-5.json b/tr/algorithms/css-conditional-5.json new file mode 100644 index 000000000000..5b3043e3a084 --- /dev/null +++ b/tr/algorithms/css-conditional-5.json @@ -0,0 +1,46 @@ +{ + "spec": { + "title": "CSS Conditional Rules Module Level 5", + "url": "https://www.w3.org/TR/css-conditional-5/" + }, + "algorithms": [ + { + "html": "The conditionText attribute (defined on the CSSConditionRule parent rule),\n\t\t\ton getting, must return a value as follows:", + "rationale": ".switch", + "steps": [ + { + "operation": "switch", + "steps": [ + { + "case": "The @container rule has an associated ", + "html": "The result of getting the containerName and containerQuery attributes, joined by a single whitespace." + }, + { + "case": "Otherwise", + "html": "The result of getting the containerQuery attribute." + } + ] + } + ] + }, + { + "html": "The containerName attribute, on getting, must return a value as follows:", + "rationale": ".switch", + "steps": [ + { + "operation": "switch", + "steps": [ + { + "case": "The @container rule has an associated ", + "html": "The result of serializing that <container-name>." + }, + { + "case": "Otherwise", + "html": "An empty string." + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/tr/algorithms/css-flexbox-1.json b/tr/algorithms/css-flexbox-1.json index fe7b986e22d1..b1cc8afea9f7 100644 --- a/tr/algorithms/css-flexbox-1.json +++ b/tr/algorithms/css-flexbox-1.json @@ -52,7 +52,7 @@ "html": " Determine the available main and cross space for the flex items. For each dimension,\n\t\t\tif that dimension of the flex container’s content box is a definite size, use that;\n\t\t\tif that dimension of the flex container is being sized under a min or max-content constraint,\n\t\t\tthe available space in that dimension is that constraint;\n\t\t\totherwise, subtract the flex container’s margin, border, and padding\n\t\t\tfrom the space available to the flex container in that dimension\n\t\t\tand use that value." }, { - "html": " Determine the flex base size and hypothetical main size of each item:", + "html": " Determine the flex base size and hypothetical main size of each item:\n \n

When determining the flex base size,\n\t\t\tthe item’s min and max main sizes are ignored\n\t\t\t(no clamping occurs).\n\t\t\tFurthermore, the sizing calculations that floor the content box size at zero\n\t\t\twhen applying box-sizing are also ignored.\n\t\t\t(For example, an item with a specified size of zero,\n\t\t\tpositive padding, and box-sizing: border-box will have an outer flex base size of zero—and hence a negative inner flex base size.)

\n

The hypothetical main size is the item’s flex base size clamped according to its used min and max main sizes (and flooring the content box size at zero).

", "rationale": "if", "steps": [ { diff --git a/tr/algorithms/css-grid-1.json b/tr/algorithms/css-grid-1.json index 34b6c7636192..bf40197fb0b3 100644 --- a/tr/algorithms/css-grid-1.json +++ b/tr/algorithms/css-grid-1.json @@ -33,7 +33,7 @@ ] }, { - "html": "

Position the remaining grid items.

\n

The auto-placement cursor defines the current “insertion point” in the grid,\nspecified as a pair of row and column grid lines.\nInitially the auto-placement cursor is set to the start-most row and column lines in the implicit grid.

\n

The grid-auto-flow value in use determines how to position the items:

\n
\n
“sparse” packing (default behavior)\n
\n

For each grid item that hasn’t been positioned by the previous steps,\nin order-modified document order:

\n
\n
If the item has a definite column position:\n
\n \n
If the item has an automatic grid position in both axes:\n
\n \n
\n
“dense” packing (dense specified)\n
\n

For each grid item that hasn’t been positioned by the previous steps,\nin order-modified document order:

\n
\n
If the item has a definite column position:\n
\n \n
If the item has an automatic grid position in both axes:\n
\n \n
\n
", + "html": "The auto-placement cursor defines the current “insertion point” in the grid,\nspecified as a pair of row and column grid lines.\nInitially the auto-placement cursor is set to the start-most row and column lines in the implicit grid.", "rationale": "set", "steps": [ { @@ -48,7 +48,7 @@ ], "additional": [ { - "html": "", + "html": "The auto-placement cursor defines the current “insertion point” in the grid,\nspecified as a pair of row and column grid lines.\nInitially the auto-placement cursor is set to the start-most row and column lines in the implicit grid.", "rationale": "increment", "steps": [ { @@ -60,7 +60,7 @@ ] }, { - "html": "", + "html": "The auto-placement cursor defines the current “insertion point” in the grid,\nspecified as a pair of row and column grid lines.\nInitially the auto-placement cursor is set to the start-most row and column lines in the implicit grid.", "rationale": "set", "steps": [ { @@ -75,7 +75,7 @@ ] }, { - "html": "", + "html": "The auto-placement cursor defines the current “insertion point” in the grid,\nspecified as a pair of row and column grid lines.\nInitially the auto-placement cursor is set to the start-most row and column lines in the implicit grid.", "rationale": "set", "steps": [ { diff --git a/tr/algorithms/css-grid-2.json b/tr/algorithms/css-grid-2.json index aab060eb2c1e..f48ad12447d0 100644 --- a/tr/algorithms/css-grid-2.json +++ b/tr/algorithms/css-grid-2.json @@ -33,7 +33,7 @@ ] }, { - "html": "

Position the remaining grid items.

\n

The auto-placement cursor defines the current “insertion point” in the grid,\nspecified as a pair of row and column grid lines.\nInitially the auto-placement cursor is set to the start-most row and column lines in the implicit grid.

\n

The grid-auto-flow value in use determines how to position the items:

\n
\n
“sparse” packing (default behavior)\n
\n

For each grid item that hasn’t been positioned by the previous steps,\nin order-modified document order:

\n
\n
If the item has a definite column position:\n
\n \n
If the item has an automatic grid position in both axes:\n
\n \n
\n
“dense” packing (dense specified)\n
\n

For each grid item that hasn’t been positioned by the previous steps,\nin order-modified document order:

\n
\n
If the item has a definite column position:\n
\n \n
If the item has an automatic grid position in both axes:\n
\n \n
\n
", + "html": "The auto-placement cursor defines the current “insertion point” in the grid,\nspecified as a pair of row and column grid lines.\nInitially the auto-placement cursor is set to the start-most row and column lines in the implicit grid.", "rationale": "set", "steps": [ { @@ -48,7 +48,7 @@ ], "additional": [ { - "html": "", + "html": "The auto-placement cursor defines the current “insertion point” in the grid,\nspecified as a pair of row and column grid lines.\nInitially the auto-placement cursor is set to the start-most row and column lines in the implicit grid.", "rationale": "increment", "steps": [ { @@ -60,7 +60,7 @@ ] }, { - "html": "", + "html": "The auto-placement cursor defines the current “insertion point” in the grid,\nspecified as a pair of row and column grid lines.\nInitially the auto-placement cursor is set to the start-most row and column lines in the implicit grid.", "rationale": "set", "steps": [ { @@ -75,7 +75,7 @@ ] }, { - "html": "", + "html": "The auto-placement cursor defines the current “insertion point” in the grid,\nspecified as a pair of row and column grid lines.\nInitially the auto-placement cursor is set to the start-most row and column lines in the implicit grid.", "rationale": "set", "steps": [ { diff --git a/tr/algorithms/css-images-4.json b/tr/algorithms/css-images-4.json index 1ab205dc6c29..c6e0ea69a8b8 100644 --- a/tr/algorithms/css-images-4.json +++ b/tr/algorithms/css-images-4.json @@ -14,7 +14,7 @@ "html": "

Let images be an empty list.

" }, { - "html": "To determine the natural dimensions of a cross-fade():", + "html": "For each argument of the cross-fade() function with an <image> value:", "rationale": "let", "steps": [ { @@ -61,7 +61,7 @@ "html": "

Let size be a tuple of width and height,\ninitialized to the result of finding the concrete object size of the cross-fade() function\n(using the natural dimensions of a cross-fade()).

" }, { - "html": "To determine the appearance of a cross-fade():", + "html": "For each argument of the cross-fade() function:", "rationale": "let", "steps": [ { diff --git a/tr/algorithms/css-layout-api-1.json b/tr/algorithms/css-layout-api-1.json index ad5b7ff8ba5b..1176d3b40266 100644 --- a/tr/algorithms/css-layout-api-1.json +++ b/tr/algorithms/css-layout-api-1.json @@ -56,7 +56,7 @@ "html": "

Let layoutChildMap be box’s [[layoutChildMap]].

" }, { - "html": "When the user agent wants to get a layout child given workletGlobalScope, name, and box, it must run the following steps:", + "html": "If layoutChildMap[workletGlobalScope] does not exist, run the following\nsteps:", "rationale": "let", "steps": [ { @@ -94,7 +94,7 @@ "html": "

Let layoutChildMap be box’s [[layoutChildMap]].

" }, { - "html": "When the user agent wants to update a layout child style given box, it must run the following steps:", + "html": "For each layoutChild in layoutChildMap:", "rationale": "let", "steps": [ { @@ -145,7 +145,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "When the user agent wants to create a layout constraints object given sizingMode, box|,\nand internalLayoutConstraints, it must run the following steps:", + "html": "If sizingMode is \"block-like\" then:", "rationale": "let", "steps": [ { @@ -160,7 +160,7 @@ ] }, { - "html": "When the user agent wants to create a layout constraints object given sizingMode, box|,\nand internalLayoutConstraints, it must run the following steps:", + "html": "If sizingMode is \"manual\" then:", "rationale": "return", "steps": [ { @@ -272,7 +272,7 @@ "html": "

Set layoutDefinitionMap[name] to definition.

" }, { - "html": "When the registerLayout(name, layoutCtor) method\nis called, the user agent must run the following steps:", + "html": "Queue a task to run the following steps:", "rationale": "let", "steps": [ { @@ -282,7 +282,7 @@ "html": "

Let documentDefinition be a new document layout definition with:

\n " }, { - "html": "When the registerLayout(name, layoutCtor) method\nis called, the user agent must run the following steps:", + "html": "If documentLayoutDefinitionMap[name] exists, run the following steps:", "rationale": "let", "steps": [ { @@ -351,7 +351,7 @@ "html": "

Let children be a new list.

" }, { - "html": "When the user agent wants to invoke a intrinsic sizes callback given name, box, childBoxes, and workletGlobalScope, it must run the following steps:", + "html": "For each childBox in childBoxes perform the following substeps:", "rationale": "let", "steps": [ { @@ -439,7 +439,7 @@ "html": "

Let children be a new list.

" }, { - "html": "When the user agent wants to invoke a layout callback given name, box, childBoxes, internalLayoutConstraints, internalBreakToken, and workletGlobalScope, it must run the\nfollowing steps:", + "html": "For each childBox in childBoxes perform the following substeps:", "rationale": "let", "steps": [ { @@ -478,7 +478,7 @@ "html": "

Let fragment be the result of converting fragmentValue to a FragmentResultOptions. If an exception is thrown, let box fallback to the flow layout and abort all these steps.

" }, { - "html": "When the user agent wants to invoke a layout callback given name, box, childBoxes, internalLayoutConstraints, internalBreakToken, and workletGlobalScope, it must run the\nfollowing steps:", + "html": "For each childFragment in fragment’s childFragments, perform the following stubsteps:", "rationale": "if", "steps": [ { @@ -487,7 +487,7 @@ ] }, { - "html": "When the user agent wants to invoke a layout callback given name, box, childBoxes, internalLayoutConstraints, internalBreakToken, and workletGlobalScope, it must run the\nfollowing steps:", + "html": "Then:", "rationale": "let", "steps": [ { @@ -499,7 +499,7 @@ ], "additional": [ { - "html": "When the user agent wants to invoke a layout callback given name, box, childBoxes, internalLayoutConstraints, internalBreakToken, and workletGlobalScope, it must run the\nfollowing steps:", + "html": "Otherwise (sizingMode is \"manual\"):", "rationale": "let", "steps": [ { @@ -544,11 +544,11 @@ "html": "

Let layoutDefinitionMap be workletGlobalScope’s layout definitions map.

" }, { - "html": "When the user agent wants to get a layout definition given name, and workletGlobalScope, it must run the following steps:", + "html": "If layoutDefinitionMap[name] does not exist, run the following steps:", "rationale": "queue", "steps": [ { - "html": "When the user agent wants to get a layout definition given name, and workletGlobalScope, it must run the following steps:", + "html": "Queue a task to run the following steps:", "rationale": "let", "steps": [ { @@ -582,7 +582,7 @@ "html": "

Let layoutClassInstanceMap be box’s layout class instances map.

" }, { - "html": "When the user agent wants to get a layout class instance given box, definition, and workletGlobalScope, it must run the following steps:", + "html": "Let layoutInstance be the result of get layoutClassInstanceMap[workletGlobalScope]. If layoutInstance is null, run the\nfollowing steps:", "rationale": "if", "steps": [ { @@ -617,7 +617,7 @@ "html": "

Let nextValue be undefined.

" }, { - "html": "When the user agent wants to run a generator given generator, and generatorType, it must run the following steps:", + "html": "Perform the following substeps until done is true:", "rationale": "let", "steps": [ { @@ -639,7 +639,7 @@ "html": "

Let done be the result of Get(nextResult, \"done\").

" }, { - "html": "When the user agent wants to run a generator given generator, and generatorType, it must run the following steps:", + "html": "If the result of GetMethod(requestOrRequests, @@iterable) exists\nthen:", "rationale": "set", "steps": [ { @@ -649,7 +649,7 @@ "html": "

Let requests be the result of converting requestOrRequests to a sequence<LayoutFragmentRequestOrIntrinsicSizesRequest>.

\n

If an exception is thrown, rethrow the exception and abort all these steps.

" }, { - "html": "When the user agent wants to run a generator given generator, and generatorType, it must run the following steps:", + "html": "For each request in requests perform the following substeps:", "rationale": "let", "steps": [ { @@ -694,7 +694,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "When the user agent wants to produce a generator result given request, generator, and generatorType, it must run the following steps:", + "html": "If request is a IntrinsicSizesRequest then:", "rationale": "let", "steps": [ { @@ -715,7 +715,7 @@ ] }, { - "html": "When the user agent wants to produce a generator result given request, generator, and generatorType, it must run the following steps:", + "html": "If request is a LayoutFragmentRequest and generatorType is \"layout\" then:", "rationale": "let", "steps": [ { diff --git a/tr/algorithms/css-nav-1.json b/tr/algorithms/css-nav-1.json index 16f2f6f0d93e..c83a7f13f43d 100644 --- a/tr/algorithms/css-nav-1.json +++ b/tr/algorithms/css-nav-1.json @@ -68,14 +68,14 @@ "html": "

If eventTarget is the Document or the document element,\n set eventTarget be the body element if it is not null or to the document element otherwise.

" }, { - "html": "To run the spatial navigation steps in direction, do the following:", + "html": "Else, if eventTarget is either a scroll container or the document", "rationale": "let", "steps": [ { "html": "

Let candidates be the result of finding focusable areas within eventTarget with the argument visibleOnly set to false if computed value of the spatial-navigation-action property on eventTarget is focus or to true otherwise.

" }, { - "html": "To run the spatial navigation steps in direction, do the following:", + "html": "Else if candidates contains at least 1 item:", "rationale": "let", "steps": [ { @@ -104,14 +104,14 @@ "html": "If the computed value of the spatial-navigation-action property on container is not focus and container is a scroll container that can be manually scrolled, directionally scroll the element container in direction and return." }, { - "html": "To run the spatial navigation steps in direction, do the following:", + "html": "Else,", "rationale": "if", "steps": [ { "html": "

Dispatches navnotarget event at eventTarget with direction and container.

" }, { - "html": "To run the spatial navigation steps in direction, do the following:", + "html": "Else, if container is the document element of a nested browsing context then:", "rationale": "set", "steps": [ { @@ -214,7 +214,7 @@ "html": "

Let insiders be the subset of candidates

\n " }, { - "html": "To select the best candidate within a set of candidates in a direction dir,\nstarting from searchOrigin,\nrun the following steps:", + "html": "If insiders is non empty,", "rationale": "let", "steps": [ { @@ -226,7 +226,7 @@ ], "additional": [ { - "html": "To select the best candidate within a set of candidates in a direction dir,\nstarting from searchOrigin,\nrun the following steps:", + "html": "Else", "rationale": "set", "steps": [ { diff --git a/tr/algorithms/css-paint-api-1.json b/tr/algorithms/css-paint-api-1.json index 98984a71c88d..82fcf78cc7c7 100644 --- a/tr/algorithms/css-paint-api-1.json +++ b/tr/algorithms/css-paint-api-1.json @@ -52,7 +52,7 @@ "html": "

Let inputArgumentSyntaxes be an empty list.

" }, { - "html": "When the registerPaint(name, paintCtor) method is\ncalled, the user agent must run the following steps:", + "html": "For each item in inputArguments perform the following substeps:", "rationale": "attempt", "steps": [ { @@ -91,7 +91,7 @@ "html": "

Set paintDefinitionMap[name] to definition.

" }, { - "html": "When the registerPaint(name, paintCtor) method is\ncalled, the user agent must run the following steps:", + "html": "Queue a task to run the following steps:", "rationale": "let", "steps": [ { @@ -101,7 +101,7 @@ "html": "

Let documentDefinition be a new document paint definition with:

\n " }, { - "html": "When the registerPaint(name, paintCtor) method is\ncalled, the user agent must run the following steps:", + "html": "If documentPaintDefinitionMap[name] exists, run the following steps:", "rationale": "let", "steps": [ { @@ -193,11 +193,11 @@ "html": "

Let paintDefinitionMap be workletGlobalScope’s paint definitions map.

" }, { - "html": "When the user agent wants to invoke a paint callback given name, inputArguments, snappedConcreteObjectSize, and workletGlobalScope, it must run the following steps:", + "html": "If paintDefinitionMap[name] does not exist, run the following steps:", "rationale": "queue", "steps": [ { - "html": "When the user agent wants to invoke a paint callback given name, inputArguments, snappedConcreteObjectSize, and workletGlobalScope, it must run the following steps:", + "html": "Queue a task to run the following steps:", "rationale": "let", "steps": [ { @@ -223,7 +223,7 @@ "html": "

Let paintClassInstanceMap be workletGlobalScope’s paint class instances map.

" }, { - "html": "When the user agent wants to invoke a paint callback given name, inputArguments, snappedConcreteObjectSize, and workletGlobalScope, it must run the following steps:", + "html": "Let paintInstance be the result of get paintClassInstanceMap[|name]|. If paintInstance is null, run the following steps:", "rationale": "if", "steps": [ { diff --git a/tr/algorithms/css-properties-values-api-1.json b/tr/algorithms/css-properties-values-api-1.json index e5aed4e81c6d..d30ef8d3fed4 100644 --- a/tr/algorithms/css-properties-values-api-1.json +++ b/tr/algorithms/css-properties-values-api-1.json @@ -78,7 +78,7 @@ "html": "

The string \"inherits:\", followed by a single SPACE (U+0020).

" }, { - "html": "To serialize a CSSPropertyRule, return the concatenation of\nthe following:", + "html": "For the rule’s inherits attribute, one of the following depending on\nthe attribute’s value:", "rationale": ".switch", "steps": [ { diff --git a/tr/algorithms/css-scroll-anchoring-1.json b/tr/algorithms/css-scroll-anchoring-1.json index 99bf9bf9f9fa..548acfa180c3 100644 --- a/tr/algorithms/css-scroll-anchoring-1.json +++ b/tr/algorithms/css-scroll-anchoring-1.json @@ -34,7 +34,7 @@ "html": "

If N is fully visible in S,\nselect N as the anchor node.

" }, { - "html": "The candidate examination algorithm for a candidate DOM node N in a scrolling box S is as follows:", + "html": "If N is partially visible:", "rationale": "for", "steps": [ { diff --git a/tr/algorithms/css-syntax-3.json b/tr/algorithms/css-syntax-3.json index 46abae3dc72a..1a93ff063ace 100644 --- a/tr/algorithms/css-syntax-3.json +++ b/tr/algorithms/css-syntax-3.json @@ -479,7 +479,7 @@ "html": "

Otherwise, let result initially be an empty string.

" }, { - "html": "To serialize an <an+b> value,\n\t\twith integer values A and B:", + "html": "
\n
A is 1\n
\n

Append \"n\" to result.

\n
A is -1\n
\n

Append \"-n\" to result.

\n
A is non-zero\n
\n

Serialize A and append it to result,\nthen append \"n\" to result.

\n
", "rationale": ".switch", "steps": [ { @@ -502,7 +502,7 @@ ] }, { - "html": "To serialize an <an+b> value,\n\t\twith integer values A and B:", + "html": "
\n
B is greater than zero\n
\n

Append \"+\" to result,\nthen append the serialization of B to result.

\n
B is less than zero\n
\n

Append the serialization of B to result.

\n
", "rationale": ".switch", "steps": [ { diff --git a/tr/algorithms/css-tables-3.json b/tr/algorithms/css-tables-3.json index 604891e10613..cdb0ddd53f5b 100644 --- a/tr/algorithms/css-tables-3.json +++ b/tr/algorithms/css-tables-3.json @@ -36,7 +36,7 @@ "html": "Determine the number of rows/columns the table requires.
This is done by executing the steps described in § 3.3 Dimensioning the row/column grid." }, { - "html": "[A] If the row/column grid has at least one slot:", + "html": "[B] Else, an empty table is laid out:", "rationale": "ensure", "steps": [ { @@ -115,9 +115,9 @@ ] }, { - "name": "min-content width of a column based on cells of span up to N (N > 1)", - "href": "https://www.w3.org/TR/css-tables-3/#min-content-width-of-a-column-based-on-cells-of-span-up-to-n-n--1", - "html": "the largest of the min-content width of the column based on cells of span up to N-1 and the contributions\n\t\t\t\t\t\tof the cells in the column whose colSpan is N,\n\t\t\t\t\t\twhere the contribution of a cell is the result of taking the following steps:", + "name": "undistributable space", + "href": "https://www.w3.org/TR/css-tables-3/#undistributable-space", + "html": "The undistributable space of the table is the sum of\n\t\t\t\tthe distances between the borders of consecutive table-cells\n\t\t\t\t(and between the border of the table-root and the table-cells).", "rationale": "define", "steps": [ { @@ -132,9 +132,9 @@ ] }, { - "name": "max-content width of a column based on cells of span up to N (N > 1)", - "href": "https://www.w3.org/TR/css-tables-3/#max-content-width-of-a-column-based-on-cells-of-span-up-to-n-n--1", - "html": "The largest of the max-content width\n\t\t\t\t\tbased on cells of span up to N-1 and the contributions of the cells in the column whose colSpan is N,\n\t\t\t\t\twhere the contribution of a cell is the result of taking the following steps:", + "name": "undistributable space", + "href": "https://www.w3.org/TR/css-tables-3/#undistributable-space", + "html": "The undistributable space of the table is the sum of\n\t\t\t\tthe distances between the borders of consecutive table-cells\n\t\t\t\t(and between the border of the table-root and the table-cells).", "rationale": "define", "steps": [ { @@ -149,9 +149,9 @@ ] }, { - "name": "intrinsic percentage width of a column based on cells of span up to N (N > 1)", - "href": "https://www.w3.org/TR/css-tables-3/#intrinsic-percentage-width-of-a-column-based-on-cells-of-span-up-to-n-n--1", - "html": "If the intrinsic percentage width of a column based on cells of span up to N-1 is greater than 0%,\n\t\t\t\t\tthen the intrinsic percentage width of the column based on cells of span up to N is\n\t\t\t\t\tthe same as the intrinsic percentage width of the column based on cells of span up to N-1.

Otherwise, it is the largest of the contributions of the cells in the column\n\t\t\t\t\twhose colSpan is N,\n\t\t\t\t\twhere the contribution of a cell is the result of taking the following steps:", + "name": "undistributable space", + "href": "https://www.w3.org/TR/css-tables-3/#undistributable-space", + "html": "The undistributable space of the table is the sum of\n\t\t\t\tthe distances between the borders of consecutive table-cells\n\t\t\t\t(and between the border of the table-root and the table-cells).", "rationale": "start", "steps": [ { @@ -166,9 +166,9 @@ ] }, { - "name": "distributed width", - "href": "https://www.w3.org/TR/css-tables-3/#distributed-width", - "html": "The remainder of this section uses the term distributed width to refer to the one of these widths that is being distributed,\n\t\tand the excess width is used to refer to the amount by which the width being distributed\n\t\texceeds the sum of the distributed widths of the columns it is being distributed to.", + "name": "undistributable space", + "href": "https://www.w3.org/TR/css-tables-3/#undistributable-space", + "html": "The undistributable space of the table is the sum of\n\t\t\t\tthe distances between the borders of consecutive table-cells\n\t\t\t\t(and between the border of the table-root and the table-cells).", "rationale": "if", "steps": [ { diff --git a/tr/algorithms/css-typed-om-1.json b/tr/algorithms/css-typed-om-1.json index e3aaad39aeab..f8d01c3a831f 100644 --- a/tr/algorithms/css-typed-om-1.json +++ b/tr/algorithms/css-typed-om-1.json @@ -472,7 +472,7 @@ "html": "

If this is a CSSMathInvert object,\nreturn this’s value internal slot.

" }, { - "html": "To invert a CSSNumericValue this:", + "html": "If this is a CSSUnitValue object with unit internal slot set to \"number\":", "rationale": "if", "steps": [ { @@ -564,7 +564,7 @@ "html": "

If value1 and value2 are both CSSUnitValues,\nreturn true if they have equal unit and value internal slots,\nor false otherwise.

" }, { - "html": "To determine whether two CSSNumericValues value1 and value2 are equal numeric values,\n perform the following steps:", + "html": "If value1 and value2 are both CSSMathSums, CSSMathProducts, CSSMathMins, or CSSMathMaxs:", "rationale": "if", "steps": [ { @@ -645,21 +645,21 @@ "html": "

If units is empty,\nsort values in code point order according to the unit internal slot of its items,\nthen return a new CSSMathSum object\nwhose values internal slot is set to values.

" }, { - "html": "The toSum(...units) method converts an existing CSSNumericValue this into a CSSMathSum of only CSSUnitValues with the specified units,\n if possible.\n (It’s like to(),\n but allows the result to have multiple units in it.)\n If called without any units,\n it just simplifies this into a minimal sum of CSSUnitValues. \n

When called, it must perform the following steps:

", + "html": "Otherwise,\nlet result initially be an empty list. For each unit in units:", "rationale": "let", "steps": [ { "html": "

Let temp initially be a new CSSUnitValue whose unit internal slot\nis set to unit and whose value internal slot\nis set to 0.

" }, { - "html": "The toSum(...units) method converts an existing CSSNumericValue this into a CSSMathSum of only CSSUnitValues with the specified units,\n if possible.\n (It’s like to(),\n but allows the result to have multiple units in it.)\n If called without any units,\n it just simplifies this into a minimal sum of CSSUnitValues. \n

When called, it must perform the following steps:

", + "html": "For each value in values:", "rationale": "let", "steps": [ { "html": "

Let value unit be value’s unit internal slot.

" }, { - "html": "The toSum(...units) method converts an existing CSSNumericValue this into a CSSMathSum of only CSSUnitValues with the specified units,\n if possible.\n (It’s like to(),\n but allows the result to have multiple units in it.)\n If called without any units,\n it just simplifies this into a minimal sum of CSSUnitValues. \n

When called, it must perform the following steps:

", + "html": "If value unit is a compatible unit with unit,\nthen:", "rationale": "convert", "steps": [ { @@ -698,7 +698,7 @@ "html": "

Let result be a new CSSNumericType.

" }, { - "html": "The type() method\n returns a representation of the type of this. \n

When called, it must perform the following steps:

", + "html": "For each baseTypepower in the type of this,", "rationale": "if", "steps": [ { @@ -707,7 +707,7 @@ ] }, { - "html": "The type() method\n returns a representation of the type of this. \n

When called, it must perform the following steps:

", + "html": "If the percent hint of this is not null,", "rationale": "set", "steps": [ { @@ -763,14 +763,14 @@ "html": "

Let values initially be an empty list.

" }, { - "html": "A sum value is an abstract representation of a CSSNumericValue as a sum of numbers with (possibly complex) units.\n Not all CSSNumericValues can be expressed as a sum value. \n

A sum value is a list.\n Each entry in the list is a tuple of a value,\n which is a number,\n and a unit map,\n which is a map of units (strings) to powers (integers).

\n \n

To create a sum value from a CSSNumericValue this,\n the steps differ based on this’s class:

\n
\n
CSSUnitValue\n
\n
\n \n
\n
CSSMathSum\n
\n
\n \n
\n
CSSMathNegate\n
\n
\n \n
\n
CSSMathProduct\n
\n
\n \n
\n
CSSMathInvert\n
\n
\n \n
\n
CSSMathMin\n
\n
\n \n
\n
CSSMathMax\n
\n
\n \n
\n
", + "html": "For each item in this’s values internal slot:", "rationale": "let", "steps": [ { "html": "

Let value be the result of creating a sum value from item.\nIf value is failure,\nreturn failure.

" }, { - "html": "A sum value is an abstract representation of a CSSNumericValue as a sum of numbers with (possibly complex) units.\n Not all CSSNumericValues can be expressed as a sum value. \n

A sum value is a list.\n Each entry in the list is a tuple of a value,\n which is a number,\n and a unit map,\n which is a map of units (strings) to powers (integers).

\n \n

To create a sum value from a CSSNumericValue this,\n the steps differ based on this’s class:

\n
\n
CSSUnitValue\n
\n
\n \n
\n
CSSMathSum\n
\n
\n \n
\n
CSSMathNegate\n
\n
\n \n
\n
CSSMathProduct\n
\n
\n \n
\n
CSSMathInvert\n
\n
\n \n
\n
CSSMathMin\n
\n
\n \n
\n
CSSMathMax\n
\n
\n \n
\n
", + "html": "For each subvalue of value:", "rationale": "if", "steps": [ { @@ -819,7 +819,7 @@ "html": "

Let values initially be the sum value «(1, «[ ]»)».\n(I.e. what you’d get from 1.)

" }, { - "html": "A sum value is an abstract representation of a CSSNumericValue as a sum of numbers with (possibly complex) units.\n Not all CSSNumericValues can be expressed as a sum value. \n

A sum value is a list.\n Each entry in the list is a tuple of a value,\n which is a number,\n and a unit map,\n which is a map of units (strings) to powers (integers).

\n \n

To create a sum value from a CSSNumericValue this,\n the steps differ based on this’s class:

\n
\n
CSSUnitValue\n
\n
\n \n
\n
CSSMathSum\n
\n
\n \n
\n
CSSMathNegate\n
\n
\n \n
\n
CSSMathProduct\n
\n
\n \n
\n
CSSMathInvert\n
\n
\n \n
\n
CSSMathMin\n
\n
\n \n
\n
CSSMathMax\n
\n
\n \n
\n
", + "html": "For each item in this’s values internal slot:", "rationale": "let", "steps": [ { @@ -829,11 +829,11 @@ "html": "

If new values is failure,\nreturn failure.

" }, { - "html": "A sum value is an abstract representation of a CSSNumericValue as a sum of numbers with (possibly complex) units.\n Not all CSSNumericValues can be expressed as a sum value. \n

A sum value is a list.\n Each entry in the list is a tuple of a value,\n which is a number,\n and a unit map,\n which is a map of units (strings) to powers (integers).

\n \n

To create a sum value from a CSSNumericValue this,\n the steps differ based on this’s class:

\n
\n
CSSUnitValue\n
\n
\n \n
\n
CSSMathSum\n
\n
\n \n
\n
CSSMathNegate\n
\n
\n \n
\n
CSSMathProduct\n
\n
\n \n
\n
CSSMathInvert\n
\n
\n \n
\n
CSSMathMin\n
\n
\n \n
\n
CSSMathMax\n
\n
\n \n
\n
", + "html": "For each item1 in values:", "rationale": "for", "steps": [ { - "html": "A sum value is an abstract representation of a CSSNumericValue as a sum of numbers with (possibly complex) units.\n Not all CSSNumericValues can be expressed as a sum value. \n

A sum value is a list.\n Each entry in the list is a tuple of a value,\n which is a number,\n and a unit map,\n which is a map of units (strings) to powers (integers).

\n \n

To create a sum value from a CSSNumericValue this,\n the steps differ based on this’s class:

\n
\n
CSSUnitValue\n
\n
\n \n
\n
CSSMathSum\n
\n
\n \n
\n
CSSMathNegate\n
\n
\n \n
\n
CSSMathProduct\n
\n
\n \n
\n
CSSMathInvert\n
\n
\n \n
\n
CSSMathMin\n
\n
\n \n
\n
CSSMathMax\n
\n
\n \n
\n
", + "html": "For each item2 in new values:", "rationale": "let", "steps": [ { @@ -930,7 +930,7 @@ "html": "

Let types be an initially empty list.

" }, { - "html": "To create a type from a unit map unit map:", + "html": "For each unitpower in unit map:", "rationale": "let", "steps": [ { @@ -959,7 +959,7 @@ "html": "

Let result be a copy of units1.

" }, { - "html": "The product of two unit maps units1 and units2 is the result given by the following steps:", + "html": "For each unitpower in units2:", "rationale": "if", "steps": [ { @@ -1054,7 +1054,7 @@ "html": "

Replace type1 with a fresh copy of type1,\nand type2 with a fresh copy of type2.\nLet finalType be a new type with an initially empty ordered map and an initially null percent hint.

" }, { - "html": "To add two types type1 and type2,\n perform the following steps:", + "html": "
\n
If both type1 and type2 have non-null percent hints with different values\n
\n

The types can’t be added.\nReturn failure.

\n
If type1 has a non-null percent hint hint and type2 doesn’t\n
\n

Apply the percent hint hint to type2.

\n

Vice versa if type2 has a non-null percent hint and type1 doesn’t.

\n
Otherwise\n
\n

Continue to the next step.

\n
", "rationale": ".switch", "steps": [ { @@ -1077,7 +1077,7 @@ ] }, { - "html": "To add two types type1 and type2,\n perform the following steps:", + "html": "
\n
If all the entries of type1 with non-zero values\nare contained in type2 with the same value,\nand vice-versa\n
\n

Copy all of type1’s entries to finalType,\nand then copy all of type2’s entries to finalType that finalType doesn’t already contain.\nSet finalType’s percent hint to type1’s percent hint.\nReturn finalType.

\n
If type1 and/or type2 contain \"percent\" with a non-zero value,\nand type1 and/or type2 contain a key other than \"percent\" with a non-zero value\n
\n

For each base type other than \"percent\" hint:

\n \n

If the loop finishes without returning finalType,\nthen the types can’t be added.\nReturn failure.

\n \n
Otherwise\n
\n

The types can’t be added.\nReturn failure.

\n
", "rationale": ".switch", "steps": [ { @@ -1089,7 +1089,7 @@ }, { "case": "If type1 and/or type2 contain \"percent\" with a non-zero value, and type1 and/or type2 contain a key other than \"percent\" with a non-zero value", - "html": "To add two types type1 and type2,\n perform the following steps:", + "html": "For each base type other than \"percent\" hint:", "rationale": "/^otherwise(\\,| )/i", "steps": [ { @@ -1146,7 +1146,7 @@ "html": "

If type1 has a non-null percent hint hint and type2 doesn’t, apply the percent hint hint to type2.

\n

Vice versa if type2 has a non-null percent hint and type1 doesn’t.

" }, { - "html": "To multiply two types type1 and type2,\n perform the following steps:", + "html": "Copy all of type1’s entries to finalType,\nthen for each baseTypepower of type2:", "rationale": "if", "steps": [ { @@ -1367,7 +1367,7 @@ "html": "

Let matrix be a new DOMMatrix,\ninitialized to the identity matrix,\nwith its is2D internal slot set to true.

" }, { - "html": "The toMatrix() method of a CSSTransformValue this must,\n when called,\n perform the following steps:", + "html": "For each func in this’s values to iterate over:", "rationale": "let", "steps": [ { @@ -1532,7 +1532,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The CSSPerspective(length) constructor must,\n when invoked,\n perform the following steps:", + "html": "If length is a CSSNumericValue:", "rationale": "if", "steps": [ { @@ -1541,7 +1541,7 @@ ] }, { - "html": "The CSSPerspective(length) constructor must,\n when invoked,\n perform the following steps:", + "html": "Otherwise (that is, if length is not a CSSNumericValue):", "rationale": "rectify", "steps": [ { @@ -2336,7 +2336,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "To reify a math expression num:", + "html": "If num is a min() or max() expression:", "rationale": "let", "steps": [ { @@ -2354,7 +2354,7 @@ "html": "

Turn num’s argument\ninto an expression tree\nusing standard PEMDAS precedence rules,\nwith the following exceptions/clarification:

\n " }, { - "html": "To reify a math expression num:", + "html": "Recursively transform the expression tree into objects,\nas follows:", "rationale": ".switch", "steps": [ { @@ -2662,7 +2662,7 @@ "html": "

Let s initially be the empty string.

" }, { - "html": "To serialize a CSSUnparsedValue this:", + "html": "For each item in this’s [[tokens]] internal slot:", "rationale": "if", "steps": [ { @@ -2736,7 +2736,7 @@ "html": "

Set s to the result of serializing a <number> from value,\nper CSSOM § 6.7.2 Serializing CSS Values.

" }, { - "html": "To serialize a CSSUnitValue this,\n with optional arguments minimum, a numeric value,\n and maximum, a numeric value:", + "html": "If unit is:", "rationale": ".switch", "steps": [ { @@ -2776,7 +2776,7 @@ "html": "

Let s initially be the empty string.

" }, { - "html": "To serialize a CSSMathValue this,\n with optional arguments nested, a boolean (defaulting to false if unspecified), paren-less, a boolean (defaulting to false if unspecified),\n perform the following steps.", + "html": "If this is a CSSMathMin or CSSMathMax:", "rationale": "append", "steps": [ { @@ -2791,7 +2791,7 @@ ] }, { - "html": "To serialize a CSSMathValue this,\n with optional arguments nested, a boolean (defaulting to false if unspecified), paren-less, a boolean (defaulting to false if unspecified),\n perform the following steps.", + "html": "Otherwise, if this is a CSSMathSum:", "rationale": "if", "steps": [ { @@ -2801,7 +2801,7 @@ "html": "

Serialize the first item in this’s values internal slot\nwith nested set to true,\nand append the result to s.

" }, { - "html": "To serialize a CSSMathValue this,\n with optional arguments nested, a boolean (defaulting to false if unspecified), paren-less, a boolean (defaulting to false if unspecified),\n perform the following steps.", + "html": "For each arg in this’s values internal slot beyond the first:", "rationale": "if", "steps": [ { @@ -2821,7 +2821,7 @@ ] }, { - "html": "To serialize a CSSMathValue this,\n with optional arguments nested, a boolean (defaulting to false if unspecified), paren-less, a boolean (defaulting to false if unspecified),\n perform the following steps.", + "html": "Otherwise, if this is a CSSMathNegate:", "rationale": "if", "steps": [ { @@ -2842,7 +2842,7 @@ ] }, { - "html": "To serialize a CSSMathValue this,\n with optional arguments nested, a boolean (defaulting to false if unspecified), paren-less, a boolean (defaulting to false if unspecified),\n perform the following steps.", + "html": "Otherwise, if this is a CSSMathProduct:", "rationale": "if", "steps": [ { @@ -2852,7 +2852,7 @@ "html": "

Serialize the first item in this’s values internal slot\nwith nested set to true,\nand append the result to s.

" }, { - "html": "To serialize a CSSMathValue this,\n with optional arguments nested, a boolean (defaulting to false if unspecified), paren-less, a boolean (defaulting to false if unspecified),\n perform the following steps.", + "html": "For each arg in this’s values internal slot beyond the first:", "rationale": "if", "steps": [ { @@ -2872,7 +2872,7 @@ ] }, { - "html": "To serialize a CSSMathValue this,\n with optional arguments nested, a boolean (defaulting to false if unspecified), paren-less, a boolean (defaulting to false if unspecified),\n perform the following steps.", + "html": "Otherwise, if this is a CSSMathInvert:", "rationale": "if", "steps": [ { @@ -2915,7 +2915,7 @@ "html": "

Let s initially be the empty string.

" }, { - "html": "To serialize a CSSTranslate this:", + "html": "If this’s is2D internal slot is false:", "rationale": "append", "steps": [ { @@ -2942,7 +2942,7 @@ ] }, { - "html": "To serialize a CSSTranslate this:", + "html": "Otherwise:", "rationale": "append", "steps": [ { @@ -2974,7 +2974,7 @@ "html": "

Let s initially be the empty string.

" }, { - "html": "To serialize a CSSRotate this:", + "html": "If this’s is2D internal slot is false:", "rationale": "append", "steps": [ { @@ -3007,7 +3007,7 @@ ] }, { - "html": "To serialize a CSSRotate this:", + "html": "Otherwise:", "rationale": "append", "steps": [ { @@ -3033,7 +3033,7 @@ "html": "

Let s initially be the empty string.

" }, { - "html": "To serialize a CSSScale this:", + "html": "If this’s is2D internal slot is false:", "rationale": "append", "steps": [ { @@ -3060,7 +3060,7 @@ ] }, { - "html": "To serialize a CSSScale this:", + "html": "Otherwise:", "rationale": "append", "steps": [ { diff --git a/tr/algorithms/css-values-4.json b/tr/algorithms/css-values-4.json index 70dcafbdfdb4..69b14ab1fbfe 100644 --- a/tr/algorithms/css-values-4.json +++ b/tr/algorithms/css-values-4.json @@ -82,7 +82,7 @@ { "name": "determine the type of a calculation", "href": "https://www.w3.org/TR/css-values-4/#determine-the-type-of-a-calculation", - "html": "To determine the type of a calculation: \n ", + "html": "Anything else is a terminal value,\nwhose type is determined based on its CSS type.\n(Unless otherwise specified,\nthe type’s associated percent hint is null.)", "rationale": ".switch", "steps": [ { @@ -185,7 +185,7 @@ "html": "

An item in values is an “operator”\nif it’s a <delim-token> with the value \"+\", \"-\", \"*\", or \"/\".\nOtherwise, it’s a “value”.

" }, { - "html": "To parse a calculation,\n\t\tgiven a calculation values represented as a list of component values,\n\t\tand returning a calculation tree:", + "html": "For every consecutive run of value items in values separated by \"*\" or \"/\" operators:", "rationale": "for", "steps": [ { @@ -197,7 +197,7 @@ ] }, { - "html": "To parse a calculation,\n\t\tgiven a calculation values represented as a list of component values,\n\t\tand returning a calculation tree:", + "html": "Collect children into Sum and Negate nodes.", "rationale": "for", "steps": [ { @@ -209,7 +209,7 @@ ] }, { - "html": "To parse a calculation,\n\t\tgiven a calculation values represented as a list of component values,\n\t\tand returning a calculation tree:", + "html": "For every leaf node leaf in values:", "rationale": "if", "steps": [ { @@ -232,7 +232,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "To simplify a calculation tree root:", + "html": "If root is a numeric value:", "rationale": "if", "steps": [ { @@ -250,7 +250,7 @@ ] }, { - "html": "To simplify a calculation tree root:", + "html": "If root is any other leaf node\n(not an operator node):", "rationale": "if", "steps": [ { @@ -268,7 +268,7 @@ "html": "

If root is an operator node that’s not one of the calc-operator nodes,\nand all of its calculation children are numeric values\nwith enough information to compute the operation root represents,\nreturn the result of running root’s operation\nusing its children,\nexpressed in the result’s canonical unit.

" }, { - "html": "To simplify a calculation tree root:", + "html": "If root is a Min or Max node,\nattempt to partially simplify it:", "rationale": "for", "steps": [ { @@ -280,7 +280,7 @@ ] }, { - "html": "To simplify a calculation tree root:", + "html": "If root is a Negate node:", "rationale": "if", "steps": [ { @@ -295,7 +295,7 @@ ] }, { - "html": "To simplify a calculation tree root:", + "html": "If root is an Invert node:", "rationale": "if", "steps": [ { @@ -310,7 +310,7 @@ ] }, { - "html": "To simplify a calculation tree root:", + "html": "If root is a Sum node:", "rationale": "for", "steps": [ { @@ -325,7 +325,7 @@ ] }, { - "html": "To simplify a calculation tree root:", + "html": "If root is a Product node:", "rationale": "for", "steps": [ { @@ -357,7 +357,7 @@ "html": "

If the root of the calculation tree fn represents\nis a numeric value\n(number, percentage, or dimension),\nand the serialization being produced is of a computed value or later,\nthen clamp the value to the range allowed for its context\n(if necessary),\nthen serialize the value as normal\nand return the result.

" }, { - "html": "To serialize a math function fn:", + "html": "If fn represents an infinite or NaN value:", "rationale": "let", "steps": [ { @@ -410,7 +410,7 @@ "html": "

If root is an Invert node,\nlet s be a string initially containing \"(1 / \".

\n

Serialize root’s child,\nand append it to s.

\n

Append \")\" to s,\nthen return it.

" }, { - "html": "To serialize a calculation tree:", + "html": "For each child of root beyond the first:", "rationale": "if", "steps": [ { @@ -425,7 +425,7 @@ ] }, { - "html": "To serialize a calculation tree:", + "html": "For each child of root beyond the first:", "rationale": "if", "steps": [ { diff --git a/tr/algorithms/css-view-transitions-1.json b/tr/algorithms/css-view-transitions-1.json index 2a11f44bc681..11402dd7f961 100644 --- a/tr/algorithms/css-view-transitions-1.json +++ b/tr/algorithms/css-view-transitions-1.json @@ -48,7 +48,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "To perform pending transition operations given a Document document, perform the following steps:", + "html": "If document’s active view transition is not null, then:", "rationale": "if", "steps": [ { @@ -80,7 +80,7 @@ "html": "

Set document’s rendering suppression for view transitions to true.

" }, { - "html": "To setup view transition for a ViewTransition transition,\n\t\t\tperform the following steps:", + "html": "Queue a global task on the DOM manipulation task source,\ngiven transition’s relevant global object,\nto execute the following steps:", "rationale": "if", "steps": [ { @@ -90,7 +90,7 @@ "html": "

Call the update callback of transition.

" }, { - "html": "To setup view transition for a ViewTransition transition,\n\t\t\tperform the following steps:", + "html": "If the promise does not settle within an implementation-defined timeout, then:", "rationale": "if", "steps": [ { @@ -102,7 +102,7 @@ ], "additional": [ { - "html": "To setup view transition for a ViewTransition transition,\n\t\t\tperform the following steps:", + "html": "If the promise was rejected with reason reason, then:", "rationale": "if", "steps": [ { @@ -141,7 +141,7 @@ "html": "

Capture the new state for transition.

\n

If failure is returned, then skip the view transition for transition with an \"InvalidStateError\" DOMException in transition’s relevant Realm,\nand return.

" }, { - "html": "To activate view transition for a ViewTransition transition,\n\t\t\tperform the following steps:", + "html": "For each capturedElement of transition’s named elements' values:", "rationale": "if", "steps": [ { @@ -188,7 +188,7 @@ "html": "

Set transition’s initial snapshot containing block size to the snapshot containing block size.

" }, { - "html": "To capture the old state for ViewTransition transition:", + "html": "For each element of every element that is connected,\nand has a node document equal to to document,\nin paint order:", "rationale": "if", "steps": [ { @@ -218,7 +218,7 @@ ] }, { - "html": "To capture the old state for ViewTransition transition:", + "html": "For each element in captureElements:", "rationale": "let", "steps": [ { @@ -260,7 +260,7 @@ ] }, { - "html": "To capture the old state for ViewTransition transition:", + "html": "For each element in captureElements:", "rationale": "set", "steps": [ { @@ -286,7 +286,7 @@ "html": "

Let usedTransitionNames be a new set of strings.

" }, { - "html": "To capture the new state for ViewTransition transition:", + "html": "For each element of every element that is connected,\nand has a node document equal to to document,\nin paint order:", "rationale": "if", "steps": [ { @@ -327,7 +327,7 @@ "html": "

Set document’s show view transition tree to true.

" }, { - "html": "To setup transition pseudo-elements for a ViewTransition transition:", + "html": "For each transitionNamecapturedElement of transition’s named elements:", "rationale": "let", "steps": [ { @@ -343,7 +343,7 @@ "html": "

Append imagePair to group.

" }, { - "html": "To setup transition pseudo-elements for a ViewTransition transition:", + "html": "If capturedElement’s old image is not null, then:", "rationale": "let", "steps": [ { @@ -355,7 +355,7 @@ ] }, { - "html": "To setup transition pseudo-elements for a ViewTransition transition:", + "html": "If capturedElement’s new element is not null, then:", "rationale": "let", "steps": [ { @@ -367,7 +367,7 @@ ] }, { - "html": "To setup transition pseudo-elements for a ViewTransition transition:", + "html": "If capturedElement’s old image is null, then:", "rationale": "assert", "steps": [ { @@ -379,7 +379,7 @@ ] }, { - "html": "To setup transition pseudo-elements for a ViewTransition transition:", + "html": "If capturedElement’s new element is null, then:", "rationale": "assert", "steps": [ { @@ -391,7 +391,7 @@ ] }, { - "html": "To setup transition pseudo-elements for a ViewTransition transition:", + "html": "If both of capturedElement’s old image and new element are not null, then:", "rationale": "let", "steps": [ { @@ -492,7 +492,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "To capture the image given an element element, perform the following steps.\n\t\tThey return an image.", + "html": "If element is the document element, then:", "rationale": "render", "steps": [ { @@ -504,7 +504,7 @@ ] }, { - "html": "To capture the image given an element element, perform the following steps.\n\t\tThey return an image.", + "html": "Otherwise:", "rationale": "render", "steps": [ { @@ -530,7 +530,7 @@ "html": "

Let hasActiveAnimations be a boolean, initially false.

" }, { - "html": "To handle transition frame given a ViewTransition transition:", + "html": "For each element of transition’s transition root pseudo-element's inclusive descendants:", "rationale": "for", "steps": [ { @@ -539,7 +539,7 @@ ] }, { - "html": "To handle transition frame given a ViewTransition transition:", + "html": "If hasActiveAnimations is false:", "rationale": "set", "steps": [ { @@ -571,14 +571,14 @@ "rationale": ".algorithm", "steps": [ { - "html": "To update pseudo-element styles for a ViewTransition transition: \n \n

This algorithm must be executed to update styles in user-agent origin if its effects can be observed by a web API.

", + "html": "For each transitionNamecapturedElement of transition’s named elements:", "rationale": "let", "steps": [ { "html": "

Let width, height, transform, writingMode, direction, textOrientation and mixBlendMode be null.

" }, { - "html": "To update pseudo-element styles for a ViewTransition transition: \n \n

This algorithm must be executed to update styles in user-agent origin if its effects can be observed by a web API.

", + "html": "If capturedElement’s new element is null, then:", "rationale": "set", "steps": [ { @@ -605,7 +605,7 @@ ] }, { - "html": "To update pseudo-element styles for a ViewTransition transition: \n \n

This algorithm must be executed to update styles in user-agent origin if its effects can be observed by a web API.

", + "html": "Otherwise:", "rationale": "return", "steps": [ { @@ -638,7 +638,7 @@ "html": "

If capturedElement’s group styles rule is null,\nthen set capturedElement’s group styles rule to a new CSSStyleRule representing the following CSS,\nand append it to transition’s relevant global object’s associated document's dynamic view transition style sheet.

\n

Otherwise, update capturedElement’s group styles rule to match the following CSS:

\n
:root::view-transition-group(transitionName) {\n  width: width;\n  height: height;\n  transform: transform;\n  writing-mode: writingMode;\n  direction: direction;\n  text-orientation: textOrientation;\n  mix-blend-mode: mixBlendMode;\n}\n
" }, { - "html": "To update pseudo-element styles for a ViewTransition transition: \n \n

This algorithm must be executed to update styles in user-agent origin if its effects can be observed by a web API.

", + "html": "If capturedElement’s new element is not null, then:", "rationale": "let", "steps": [ { @@ -666,14 +666,14 @@ "html": "

Assert: document’s active view transition is transition.

" }, { - "html": "To clear view transition of a ViewTransition transition:", + "html": "For each capturedElement of transition’s named elements' values:", "rationale": "if", "steps": [ { "html": "

If capturedElement’s new element is not null,\nthen set capturedElement’s new element's captured in a view transition to false.

" }, { - "html": "To clear view transition of a ViewTransition transition:", + "html": "For each style of capturedElement’s style definitions:", "rationale": "if", "steps": [ { diff --git a/tr/algorithms/css-view-transitions-2.json b/tr/algorithms/css-view-transitions-2.json index 7feb658bf071..7d562854b91b 100644 --- a/tr/algorithms/css-view-transitions-2.json +++ b/tr/algorithms/css-view-transitions-2.json @@ -71,7 +71,7 @@ "html": "

Otherwise, if callbackOptions is a StartViewTransitionOptions, then set updateCallback to callbackOptions’s update.

" }, { - "html": "The method steps for startViewTransition(callbackOptions) are as follows:", + "html": "If this’s active view transition is not null and its outbound post-capture steps is not null,\nthen:", "rationale": "let", "steps": [ { @@ -188,7 +188,7 @@ "html": "

Set outboundTransition’s active types to transitionTypesFromRule.

" }, { - "html": "To setup cross-document view-transition given a Document oldDocument,\n\ta Document newDocument, and proceedWithNavigation, which is an algorithm accepting nothing:", + "html": "Set outboundTransition’s outbound post-capture steps to the following steps given a view transition params-or-null params:", "rationale": "set", "steps": [ { diff --git a/tr/algorithms/device-posture.json b/tr/algorithms/device-posture.json index ec1812b64b71..1af53463fa22 100644 --- a/tr/algorithms/device-posture.json +++ b/tr/algorithms/device-posture.json @@ -41,7 +41,7 @@ "rationale": "set", "steps": [ { - "html": "Set documet.[[CurrentPosture]] to posture." + "html": "Set document.[[CurrentPosture]] to posture." }, { "html": "Fire an event named \"change\" at the\n DevicePosture object associated with document's relevant global object's associated Navigator." diff --git a/tr/algorithms/event-timing.json b/tr/algorithms/event-timing.json index c0f69b63326e..aad179969007 100644 --- a/tr/algorithms/event-timing.json +++ b/tr/algorithms/event-timing.json @@ -67,7 +67,7 @@ "html": "

Assert that entry’s entryType attribute value equals \"event\".

" }, { - "html": "Given a PerformanceEventTiming entry and a PerformanceObserverInit options, to\n determine if we should add PerformanceEventTiming, with entry and\n optionally options as inputs, run the following steps:", + "html": "Let minDuration be computed as follows:", "rationale": "if", "steps": [ { @@ -134,7 +134,7 @@ "html": "

Let pendingPointerDowns be window’s pending pointer downs.

" }, { - "html": "When asked to compute interactionId with event as input, run the following steps:", + "html": "If type is keyup:", "rationale": "if", "steps": [ { @@ -170,11 +170,11 @@ ] }, { - "html": "When asked to compute interactionId with event as input, run the following steps:", + "html": "If type is compositionstart:", "rationale": "for", "steps": [ { - "html": "When asked to compute interactionId with event as input, run the following steps:", + "html": "For each entry in the values of pendingKeyDowns:", "rationale": "append", "steps": [ { @@ -191,7 +191,7 @@ ] }, { - "html": "When asked to compute interactionId with event as input, run the following steps:", + "html": "If type is input:", "rationale": "if", "steps": [ { @@ -209,14 +209,14 @@ ] }, { - "html": "When asked to compute interactionId with event as input, run the following steps:", + "html": "Otherwise (type is pointercancel, pointermove, pointerup, or click):", "rationale": "let", "steps": [ { "html": "

Let pointerId be event’s pointerId attribute value.

" }, { - "html": "When asked to compute interactionId with event as input, run the following steps:", + "html": "If type is click:", "rationale": "if", "steps": [ { @@ -237,7 +237,7 @@ ] }, { - "html": "When asked to compute interactionId with event as input, run the following steps:", + "html": "If type is pointermove:", "rationale": "add", "steps": [ { @@ -261,7 +261,7 @@ "html": "

Assert that pointerDownEntry is a PerformanceEventTiming entry.

" }, { - "html": "When asked to compute interactionId with event as input, run the following steps:", + "html": "If type is pointerup:", "rationale": "let", "steps": [ { @@ -360,7 +360,7 @@ "html": "

If event’s type attribute value is not keydown nor pointerdown, append timingEntry to relevantGlobal’s entries to be queued.

" }, { - "html": "When asked to to finalize event timing, with timingEntry, event, target, and processingEnd as inputs, run the following steps:", + "html": "If event’s type attribute value is pointerdown:", "rationale": "let", "steps": [ { @@ -378,11 +378,11 @@ ] }, { - "html": "When asked to to finalize event timing, with timingEntry, event, target, and processingEnd as inputs, run the following steps:", + "html": "Otherwise (event’s type attribute value is keydown):", "rationale": "if", "steps": [ { - "html": "When asked to to finalize event timing, with timingEntry, event, target, and processingEnd as inputs, run the following steps:", + "html": "If event’s isComposing attribute value is true:", "rationale": "append", "steps": [ { @@ -400,14 +400,14 @@ "html": "

Let code be event’s keyCode attribute value.

" }, { - "html": "When asked to to finalize event timing, with timingEntry, event, target, and processingEnd as inputs, run the following steps:", + "html": "If pendingKeyDowns[code] exists:", "rationale": "let", "steps": [ { "html": "

Let entry be pendingKeyDowns[code].

" }, { - "html": "When asked to to finalize event timing, with timingEntry, event, target, and processingEnd as inputs, run the following steps:", + "html": "If code is not 229:\nNote: 229 is a special case since it corresponds to IME keyboard events. Sometimes multiple of these are sent by the user agent, and they do not correspond holding a key down repeatedly.", "rationale": "increase", "steps": [ { @@ -446,7 +446,7 @@ "html": "

Let renderingTimestamp be the current high resolution time.

" }, { - "html": "When asked to dispatch pending Event Timing entries for a Document doc, run the following steps:", + "html": "For each timingEntry in window’s entries to be queued:", "rationale": "set", "steps": [ { @@ -461,7 +461,7 @@ "html": "

Clear window’s entries to be queued.

" }, { - "html": "When asked to dispatch pending Event Timing entries for a Document doc, run the following steps:", + "html": "For each pendingDown in the values from window’s pending pointer downs:", "rationale": "set", "steps": [ { @@ -490,7 +490,7 @@ "html": "

Let name be timingEntry’s name attribute value.

" }, { - "html": "When asked to set event timing entry duration given a PerformanceEventTiming timingEntry, a Window window, and a DOMHighResTimeStamp renderingTimestamp, perform the following steps:", + "html": "Perform the following steps to update the event counts:", "rationale": "let", "steps": [ { @@ -505,11 +505,11 @@ ] }, { - "html": "When asked to set event timing entry duration given a PerformanceEventTiming timingEntry, a Window window, and a DOMHighResTimeStamp renderingTimestamp, perform the following steps:", + "html": "If window’s has dispatched input event is false, run the following steps:", "rationale": "if", "steps": [ { - "html": "When asked to set event timing entry duration given a PerformanceEventTiming timingEntry, a Window window, and a DOMHighResTimeStamp renderingTimestamp, perform the following steps:", + "html": "If name is \"pointerdown\", run the following steps:", "rationale": "set", "steps": [ { @@ -521,11 +521,11 @@ ] }, { - "html": "When asked to set event timing entry duration given a PerformanceEventTiming timingEntry, a Window window, and a DOMHighResTimeStamp renderingTimestamp, perform the following steps:", + "html": "Otherwise, run the following steps:", "rationale": "if", "steps": [ { - "html": "When asked to set event timing entry duration given a PerformanceEventTiming timingEntry, a Window window, and a DOMHighResTimeStamp renderingTimestamp, perform the following steps:", + "html": "If name is \"pointerup\" AND if window’s pending first pointer down is not null, then:", "rationale": "set", "steps": [ { @@ -537,7 +537,7 @@ ] }, { - "html": "When asked to set event timing entry duration given a PerformanceEventTiming timingEntry, a Window window, and a DOMHighResTimeStamp renderingTimestamp, perform the following steps:", + "html": "Otherwise, if name is one of \"click\", \"keydown\" or \"mousedown\", then:", "rationale": "set", "steps": [ { diff --git a/tr/algorithms/fetch-metadata.json b/tr/algorithms/fetch-metadata.json index f271a5cb4cb0..22cc1b5192a4 100644 --- a/tr/algorithms/fetch-metadata.json +++ b/tr/algorithms/fetch-metadata.json @@ -63,7 +63,7 @@ "html": "

If r is a navigation request that was explicitly caused by a user’s interaction with\nthe user agent (by typing an address into the user agent directly, for example, or by\nclicking a bookmark, etc.), then set header’s value to none.

" }, { - "html": "To set the Sec-Fetch-Site header for a request r:", + "html": "If header’s value is not none, then for each url in r’s url list:", "rationale": "if", "steps": [ { diff --git a/tr/algorithms/fill-stroke-3.json b/tr/algorithms/fill-stroke-3.json index a40b5684babe..03f5388e91ff 100644 --- a/tr/algorithms/fill-stroke-3.json +++ b/tr/algorithms/fill-stroke-3.json @@ -17,14 +17,14 @@ "html": "

Let path be the equivalent path of the element.

" }, { - "html": "The stroke shape of an element is the shape that is filled by the stroke property.\n\t\tThe following algorithm describes what the stroke shape of text, a path, or basic shape is,\n\t\ttaking into account the stroking properties above:", + "html": "For each subpath of path:", "rationale": "let", "steps": [ { "html": "

Let positions be the dash positions for the subpath.

" }, { - "html": "The stroke shape of an element is the shape that is filled by the stroke property.\n\t\tThe following algorithm describes what the stroke shape of text, a path, or basic shape is,\n\t\ttaking into account the stroking properties above:", + "html": "For each pair (start, end) in positions:", "rationale": "let", "steps": [ { @@ -40,7 +40,7 @@ "html": "

Let index and last be the indexes of the path segments in the subpath at distance start and end along the subpath.

" }, { - "html": "The stroke shape of an element is the shape that is filled by the stroke property.\n\t\tThe following algorithm describes what the stroke shape of text, a path, or basic shape is,\n\t\ttaking into account the stroking properties above:", + "html": "While index < last:", "rationale": "set", "steps": [ { @@ -109,7 +109,7 @@ "html": "

Let position be dashlength.

" }, { - "html": "The dash positions for a given subpath\n\t\tof the equivalent path of a path or basic shape\n\t\tis a sequence of pairs of values,\n\t\twhich represent the starting and ending distance along the subpath\n\t\tfor each of the dashes that form the subpath’s stroke.\n\t\tIt is determined as follows:", + "html": "While position < pathlength:", "rationale": "set", "steps": [ { @@ -141,7 +141,7 @@ "html": "

If stroke-linecap is butt, then return an empty shape.

" }, { - "html": "The starting and ending cap shapes at a given position along a subpath are determined as follows: \n \n
\n \n
\n The three different stroke-linecap values used on paths with a single, non-zero length subpath.\n\t\t\t\tThe white line is the path itself\n\t\t\t\tand the thick gray area is the stroke. \n

On the top row, the green lines indicate the perpendicular to the tangent at the path endpoints\n\t\t\t\tand the pink areas are the caps.\n\t\t\t\tThe bottom row shows the stroke without the perpendicular and cap highlighting.

\n
\n
", + "html": "Otherwise, if stroke-linecap is round, then:", "rationale": "if", "steps": [ { @@ -153,7 +153,7 @@ ] }, { - "html": "The starting and ending cap shapes at a given position along a subpath are determined as follows: \n \n
\n \n
\n The three different stroke-linecap values used on paths with a single, non-zero length subpath.\n\t\t\t\tThe white line is the path itself\n\t\t\t\tand the thick gray area is the stroke. \n

On the top row, the green lines indicate the perpendicular to the tangent at the path endpoints\n\t\t\t\tand the pink areas are the caps.\n\t\t\t\tThe bottom row shows the stroke without the perpendicular and cap highlighting.

\n
\n
", + "html": "Otherwise, stroke-linecap is square:", "rationale": "if", "steps": [ { @@ -191,7 +191,7 @@ "html": "

Let |Bleft| and |Bright|\nbe lines parallel to B at a distance of stroke-width / 2\nto the left and to the right of B relative to the subpath direction,\nrespectively.

" }, { - "html": "The line join shape for a given segment of a subpath is determined as follows: \n \n
\n \n
Construction of a round line join shape, shown in pink.\n\t\t\t\tThe white line is the original path,\n\t\t\t\twhich has two segments that come to a point,\n\t\t\t\tand the gray region is the stroke.
\n
\n
\n \n
Construction of an arcs line join shape, shown in pink.\n\t\t\t\tThe white line is the original path,\n\t\t\t\twhich has two segments that come to a point,\n\t\t\t\tand the gray region is the stroke.\n\t\t\t\tThe dashed lines show circles that are tangent to\n\t\t\t\tand have the curvature of\n\t\t\t\tthe segments at the join.\n\t\t\t\tThe olive-green circles\n\t\t\t\t(concentric with the dashed circles)\n\t\t\t\tdefine the join shape.
\n
", + "html": "Let |P1|, |P2| and |P3| be points determined as follows:", "rationale": "if", "steps": [ { diff --git a/tr/algorithms/json-ld11-api.json b/tr/algorithms/json-ld11-api.json index aceb99a905c5..dc7dfe47d2e4 100644 --- a/tr/algorithms/json-ld11-api.json +++ b/tr/algorithms/json-ld11-api.json @@ -2622,7 +2622,7 @@ "html": "Initialize compound literal subjects to an empty map." }, { - "html": "In the RDF abstract syntax, RDF literals have a\n lexical form, as defined\n in [RDF11-CONCEPTS]. The form of these literals is used when creating JSON-LD values based on these literals.", + "html": "For each graph in dataset:", "rationale": "if", "steps": [ { @@ -2644,7 +2644,7 @@ "html": "Reference the value of the name entry in compound literal subjects\n using the variable compound map." }, { - "html": "In the RDF abstract syntax, RDF literals have a\n lexical form, as defined\n in [RDF11-CONCEPTS]. The form of these literals is used when creating JSON-LD values based on these literals.", + "html": "For each triple in graph\n consisting of subject, predicate, and object:", "rationale": "if", "steps": [ { @@ -2672,7 +2672,7 @@ "html": "If there is no item equivalent to value in the array\n associated with the predicate entry of node, append a\n reference to value to the array. Two maps\n are considered equal if they have equivalent map entries." }, { - "html": "In the RDF abstract syntax, RDF literals have a\n lexical form, as defined\n in [RDF11-CONCEPTS]. The form of these literals is used when creating JSON-LD values based on these literals.", + "html": "If object is rdf:nil, it represents\n the termination of an RDF collection:", "rationale": "reference", "steps": [ { @@ -2687,7 +2687,7 @@ "html": "Otherwise, if referenced once has an entry for object,\n set the object entry of referenced once to false." }, { - "html": "In the RDF abstract syntax, RDF literals have a\n lexical form, as defined\n in [RDF11-CONCEPTS]. The form of these literals is used when creating JSON-LD values based on these literals.", + "html": "Otherwise, if object is a blank node identifier,\n it might represent a list node:", "rationale": "set", "steps": [ { @@ -2700,11 +2700,11 @@ ] }, { - "html": "In the RDF abstract syntax, RDF literals have a\n lexical form, as defined\n in [RDF11-CONCEPTS]. The form of these literals is used when creating JSON-LD values based on these literals.", + "html": "For each name and graph object in graph map:", "rationale": "if", "steps": [ { - "html": "In the RDF abstract syntax, RDF literals have a\n lexical form, as defined\n in [RDF11-CONCEPTS]. The form of these literals is used when creating JSON-LD values based on these literals.", + "html": "If compound literal subjects\n has an entry for name, then for each cl\n which is a key in that entry:", "rationale": "initialize", "steps": [ { @@ -2723,7 +2723,7 @@ "html": "Initialize cl node to the value of cl\n in graph object, and remove that entry from graph object,\n continuing to the next cl if cl node is not a map." }, { - "html": "In the RDF abstract syntax, RDF literals have a\n lexical form, as defined\n in [RDF11-CONCEPTS]. The form of these literals is used when creating JSON-LD values based on these literals.", + "html": "For each cl reference in the value of property in node\n where the value of @id in cl reference is cl:", "rationale": "delete", "steps": [ { @@ -2749,7 +2749,7 @@ "html": "Initialize nil to the value of the rdf:nil entry\n of graph object." }, { - "html": "In the RDF abstract syntax, RDF literals have a\n lexical form, as defined\n in [RDF11-CONCEPTS]. The form of these literals is used when creating JSON-LD values based on these literals.", + "html": "For each item usage in the usages entry of\n nil, perform the following steps:", "rationale": "initialize", "steps": [ { @@ -2759,7 +2759,7 @@ "html": "Initialize two empty arrays list\n and list nodes." }, { - "html": "In the RDF abstract syntax, RDF literals have a\n lexical form, as defined\n in [RDF11-CONCEPTS]. The form of these literals is used when creating JSON-LD values based on these literals.", + "html": "While property equals rdf:rest,\n the value of the @id entry\n of node is a blank node identifier,\n the value of the entry of referenced once associated with the @id\n entry of node is a map,\n node has rdf:first and rdf:rest entries,\n both of which have as value an array consisting of a single element,\n and node has no other entries apart from an optional @type\n entry whose value is an array with a single item equal to\n rdf:List,\n node represents a well-formed list node.\n Perform the following steps to traverse the list backwards towards its head:", "rationale": "append", "steps": [ { @@ -2799,11 +2799,11 @@ "html": "Initialize an empty array result." }, { - "html": "In the RDF abstract syntax, RDF literals have a\n lexical form, as defined\n in [RDF11-CONCEPTS]. The form of these literals is used when creating JSON-LD values based on these literals.", + "html": "For each subject and node in default graph\n ordered lexicographically by subject\n if ordered is true:", "rationale": "if", "steps": [ { - "html": "In the RDF abstract syntax, RDF literals have a\n lexical form, as defined\n in [RDF11-CONCEPTS]. The form of these literals is used when creating JSON-LD values based on these literals.", + "html": "If graph map has a subject entry:", "rationale": "add", "steps": [ { diff --git a/tr/algorithms/largest-contentful-paint.json b/tr/algorithms/largest-contentful-paint.json index 8a207c7864e1..0b7bff733f7b 100644 --- a/tr/algorithms/largest-contentful-paint.json +++ b/tr/algorithms/largest-contentful-paint.json @@ -24,7 +24,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "When asked to report largest contentful paint given a Document document, a timestamp now, an ordered set of pending image records paintedImages, and an ordered set of elements paintedTextNodes, perform the following steps:", + "html": "For each record of paintedImages:", "rationale": "let", "steps": [ { @@ -48,7 +48,7 @@ ] }, { - "html": "When asked to report largest contentful paint given a Document document, a timestamp now, an ordered set of pending image records paintedImages, and an ordered set of elements paintedTextNodes, perform the following steps:", + "html": "For each textNode of paintedTextNodes,", "rationale": "if", "steps": [ { diff --git a/tr/algorithms/mediacapture-streams.json b/tr/algorithms/mediacapture-streams.json index ab51a3a3e20b..4a2a3696c8aa 100644 --- a/tr/algorithms/mediacapture-streams.json +++ b/tr/algorithms/mediacapture-streams.json @@ -150,16 +150,10 @@ } ] }, - { - "name": "create a MediaStreamTrack", - "href": "https://www.w3.org/TR/mediacapture-streams/#dfn-create-a-mediastreamtrack", - "html": "To create a MediaStreamTrack with an underlying\n source, and a mediaDevicesToTieSourceTo, run the\n following steps:", - "rationale": "To " - }, { "name": "MediaStreamTrack/[[Source]]", "href": "https://www.w3.org/TR/mediacapture-streams/#dfn-source-0", - "html": "[[Source]],\n initialized to source.", + "html": "To create a MediaStreamTrack with an underlying\n source, and a mediaDevicesToTieSourceTo, run the\n following steps:", "rationale": ".algorithm", "steps": [ { @@ -371,14 +365,14 @@ { "name": "must not be exposed", "href": "https://www.w3.org/TR/mediacapture-streams/#dfn-must-not-be-exposed", - "html": "
[Exposed=Window]\ninterface MediaStreamTrack : EventTarget {\n  readonly attribute DOMString kind;\n  readonly attribute DOMString id;\n  readonly attribute DOMString label;\n  attribute boolean enabled;\n  readonly attribute boolean muted;\n  attribute EventHandler onmute;\n  attribute EventHandler onunmute;\n  readonly attribute MediaStreamTrackState readyState;\n  attribute EventHandler onended;\n  MediaStreamTrack clone();\n  undefined stop();\n  MediaTrackCapabilities getCapabilities();\n  MediaTrackConstraints getConstraints();\n  MediaTrackSettings getSettings();\n  Promise<undefined> applyConstraints(optional MediaTrackConstraints constraints = {});\n};
\n
\n
Attributes
\n
\n
kind of type DOMString, readonly
\n
\n

The kind attribute MUST return\n this.[[Kind]].

\n
\n
id of type DOMString, readonly
\n
\n

The id attribute MUST return\n this.[[Id]].

\n
\n
label of type DOMString, readonly
\n
\n

The label attribute MUST return\n this.[[Label]].

\n
\n
enabled of type boolean
\n
\n

The enabled\n attribute controls the enabled state for the object.

\n

On getting,\n this.[[Enabled]] MUST be returned.\n On setting,\n this.[[Enabled]] MUST be set to the\n new value.

\n \n
\n
muted of type boolean, readonly
\n
\n

The muted attribute\n reflects whether the track is muted. It MUST return\n this.[[Muted]].

\n
\n
onmute of type EventHandler
\n
\n

The event type of this event handler is mute.

\n
\n
onunmute of type EventHandler
\n
\n

The event type of this event handler is unmute.

\n
\n
readyState of type MediaStreamTrackState, readonly
\n
\n

On getting, the readyState attribute MUST return\n this.[[ReadyState]].

\n
\n
onended of type EventHandler
\n
\n

The event type of this event handler is ended.

\n
\n
\n
\n
\n
Methods
\n
\n
clone
\n
\n

When the clone() method is invoked, the User Agent\n MUST return the result of clone a track with this.

\n
\n
stop
\n
\n

When a MediaStreamTrack object's\n stop() method is invoked, the User\n Agent MUST run following steps:

\n \n
\n
getCapabilities
\n
\n

Returns the capabilites of the source that this\n MediaStreamTrack, the constrainable\n object, represents.

\n

See ConstrainablePattern\n Interface for the definition of this method.

\n

Since this method gives likely\n persistent, cross-origin information about the underlying\n device, it adds to the fingerprint surface of the device.\"(This

\n
\n
getConstraints
\n
\n

See ConstrainablePattern\n Interface for the definition of this method.

\n
\n
getSettings
\n
\n

When a MediaStreamTrack object's MediaStreamTrack.getSettings() method is invoked,\n the User Agent MUST run following steps:

\n \n
\n
applyConstraints
\n
\n

When a MediaStreamTrack object's\n applyConstraints() method is invoked, the User\n Agent MUST run following steps:

\n \n
\n
\n
", + "html": "When a MediaStreamTrack object's\n applyConstraints() method is invoked, the User\n Agent MUST run following steps:", "rationale": ".algorithm", "steps": [ { "html": "

Let track be the current\n MediaStreamTrack object.

" }, { - "html": "
[Exposed=Window]\ninterface MediaStreamTrack : EventTarget {\n  readonly attribute DOMString kind;\n  readonly attribute DOMString id;\n  readonly attribute DOMString label;\n  attribute boolean enabled;\n  readonly attribute boolean muted;\n  attribute EventHandler onmute;\n  attribute EventHandler onunmute;\n  readonly attribute MediaStreamTrackState readyState;\n  attribute EventHandler onended;\n  MediaStreamTrack clone();\n  undefined stop();\n  MediaTrackCapabilities getCapabilities();\n  MediaTrackConstraints getConstraints();\n  MediaTrackSettings getSettings();\n  Promise<undefined> applyConstraints(optional MediaTrackConstraints constraints = {});\n};
\n
\n
Attributes
\n
\n
kind of type DOMString, readonly
\n
\n

The kind attribute MUST return\n this.[[Kind]].

\n
\n
id of type DOMString, readonly
\n
\n

The id attribute MUST return\n this.[[Id]].

\n
\n
label of type DOMString, readonly
\n
\n

The label attribute MUST return\n this.[[Label]].

\n
\n
enabled of type boolean
\n
\n

The enabled\n attribute controls the enabled state for the object.

\n

On getting,\n this.[[Enabled]] MUST be returned.\n On setting,\n this.[[Enabled]] MUST be set to the\n new value.

\n \n
\n
muted of type boolean, readonly
\n
\n

The muted attribute\n reflects whether the track is muted. It MUST return\n this.[[Muted]].

\n
\n
onmute of type EventHandler
\n
\n

The event type of this event handler is mute.

\n
\n
onunmute of type EventHandler
\n
\n

The event type of this event handler is unmute.

\n
\n
readyState of type MediaStreamTrackState, readonly
\n
\n

On getting, the readyState attribute MUST return\n this.[[ReadyState]].

\n
\n
onended of type EventHandler
\n
\n

The event type of this event handler is ended.

\n
\n
\n
\n
\n
Methods
\n
\n
clone
\n
\n

When the clone() method is invoked, the User Agent\n MUST return the result of clone a track with this.

\n
\n
stop
\n
\n

When a MediaStreamTrack object's\n stop() method is invoked, the User\n Agent MUST run following steps:

\n \n
\n
getCapabilities
\n
\n

Returns the capabilites of the source that this\n MediaStreamTrack, the constrainable\n object, represents.

\n

See ConstrainablePattern\n Interface for the definition of this method.

\n

Since this method gives likely\n persistent, cross-origin information about the underlying\n device, it adds to the fingerprint surface of the device.\"(This

\n
\n
getConstraints
\n
\n

See ConstrainablePattern\n Interface for the definition of this method.

\n
\n
getSettings
\n
\n

When a MediaStreamTrack object's MediaStreamTrack.getSettings() method is invoked,\n the User Agent MUST run following steps:

\n \n
\n
applyConstraints
\n
\n

When a MediaStreamTrack object's\n applyConstraints() method is invoked, the User\n Agent MUST run following steps:

\n \n
\n
\n
", + "html": "If track's [[ReadyState]]\n is \"ended\", run the following sub steps:", "rationale": "let", "steps": [ { @@ -423,16 +417,10 @@ } ] }, - { - "name": "create a MediaDevices", - "href": "https://www.w3.org/TR/mediacapture-streams/#dfn-create-a-mediadevices", - "html": "To create a MediaDevices object, given realm, run the following steps:", - "rationale": "To " - }, { "name": "MediaDevices/[[devicesLiveMap]]", "href": "https://www.w3.org/TR/mediacapture-streams/#dfn-deviceslivemap", - "html": "[[devicesLiveMap]],\n initialized to an empty map.", + "html": "To create a MediaDevices object, given realm, run the following steps:", "rationale": ".algorithm", "steps": [ { @@ -442,7 +430,7 @@ "html": "

Let settings be mediaDevices's relevant settings object.

" }, { - "html": "[[devicesLiveMap]],\n initialized to an empty map.", + "html": "

For each kind of device, kind, that\n MediaDevices.getUserMedia() exposes, run the following step:

\n

", "rationale": "set", "steps": [ { @@ -451,7 +439,7 @@ ] }, { - "html": "[[devicesLiveMap]],\n initialized to an empty map.", + "html": "

For each individual device that MediaDevices.getUserMedia()\n exposes, using the device's\n deviceId, deviceId, run the following step:

\n

", "rationale": "set", "steps": [ { diff --git a/tr/algorithms/orientation-event.json b/tr/algorithms/orientation-event.json index d97abf34e398..5e7dd2955627 100644 --- a/tr/algorithms/orientation-event.json +++ b/tr/algorithms/orientation-event.json @@ -26,15 +26,15 @@ "html": "

If absolute is true, append \"magnetometer\" » to permissions.

" }, { - "html": "The requestPermission(absolute) method steps are:", + "html": "Run these steps in parallel:", "rationale": "for", "steps": [ { - "html": "The requestPermission(absolute) method steps are:", + "html": "For each name of permissions:", "rationale": "if", "steps": [ { - "html": "The requestPermission(absolute) method steps are:", + "html": "If name’s permission state is \"prompt\" and hasTransientActivation is false:", "rationale": "queue", "steps": [ { @@ -51,11 +51,11 @@ "html": "

Let permissionState be \"granted\".

" }, { - "html": "The requestPermission(absolute) method steps are:", + "html": "For each name of permissions:", "rationale": "if", "steps": [ { - "html": "The requestPermission(absolute) method steps are:", + "html": "If the result of requesting permission to use name is not \"granted\":", "rationale": "set", "steps": [ { @@ -94,14 +94,14 @@ "html": "

Let virtualSensorType be \"relative-orientation\" if absolute is false, and \"absolute-orientation\" otherwise.

" }, { - "html": "To fire an orientation event given a DOMString event, Window window and boolean absolute:", + "html": "If topLevelTraversable’s virtual sensor mapping contains virtualSensorType:", "rationale": "let", "steps": [ { "html": "

Let virtualSensor be topLevelTraversable’s virtual sensor mapping[virtualSensorType].

" }, { - "html": "To fire an orientation event given a DOMString event, Window window and boolean absolute:", + "html": "If virtualSensor’s can provide readings flag is true:", "rationale": "set", "steps": [ { @@ -112,11 +112,11 @@ ] }, { - "html": "To fire an orientation event given a DOMString event, Window window and boolean absolute:", + "html": "Otherwise:", "rationale": "if", "steps": [ { - "html": "To fire an orientation event given a DOMString event, Window window and boolean absolute:", + "html": "If absolute is false:", "rationale": "set", "steps": [ { @@ -125,7 +125,7 @@ ] }, { - "html": "To fire an orientation event given a DOMString event, Window window and boolean absolute:", + "html": "Otherwise:", "rationale": "set", "steps": [ { @@ -139,7 +139,7 @@ "html": "

Let permissions be null.

" }, { - "html": "To fire an orientation event given a DOMString event, Window window and boolean absolute:", + "html": "If absolute is false:", "rationale": "set", "steps": [ { @@ -148,7 +148,7 @@ ] }, { - "html": "To fire an orientation event given a DOMString event, Window window and boolean absolute:", + "html": "Otherwise:", "rationale": "set", "steps": [ { @@ -160,11 +160,11 @@ "html": "

Let environment be window’s relevant settings object.

" }, { - "html": "To fire an orientation event given a DOMString event, Window window and boolean absolute:", + "html": "Run these steps in parallel:", "rationale": "for", "steps": [ { - "html": "To fire an orientation event given a DOMString event, Window window and boolean absolute:", + "html": "For each permission in permissions:", "rationale": "let", "steps": [ { @@ -176,7 +176,7 @@ ] }, { - "html": "To fire an orientation event given a DOMString event, Window window and boolean absolute:", + "html": "Queue a global task on the device motion and orientation task source given window to run the following steps:", "rationale": "let", "steps": [ { @@ -275,18 +275,18 @@ "html": "

Let result be a new promise in this's relevant Realm.

" }, { - "html": "The requestPermission() method steps are:", + "html": "Run these steps in parallel:", "rationale": "let", "steps": [ { "html": "

Let permissions be « \"accelerometer\", \"gyroscope\" ».

" }, { - "html": "The requestPermission() method steps are:", + "html": "For each name of permissions:", "rationale": "if", "steps": [ { - "html": "The requestPermission() method steps are:", + "html": "If name’s permission state is \"prompt\" and hasTransientActivation is false:", "rationale": "queue", "steps": [ { @@ -303,11 +303,11 @@ "html": "

Let permissionState be \"granted\".

" }, { - "html": "The requestPermission() method steps are:", + "html": "For each name of permissions:", "rationale": "if", "steps": [ { - "html": "The requestPermission() method steps are:", + "html": "If the result of requesting permission to use name is not \"granted\":", "rationale": "set", "steps": [ { diff --git a/tr/algorithms/permissions-policy-1.json b/tr/algorithms/permissions-policy-1.json index 820168fc6889..e1986ae4aef6 100644 --- a/tr/algorithms/permissions-policy-1.json +++ b/tr/algorithms/permissions-policy-1.json @@ -34,7 +34,7 @@ "html": "

Let url be the result of calling the url parser on the serialization of origin.

" }, { - "html": "To determine whether an allowlist matches an origin origin, run these steps:", + "html": "For each permissions-source-expression item in the allowlist’s expressions:", "rationale": "if", "steps": [ { diff --git a/tr/algorithms/permissions.json b/tr/algorithms/permissions.json index 611998acc31f..106b0c14c895 100644 --- a/tr/algorithms/permissions.json +++ b/tr/algorithms/permissions.json @@ -152,7 +152,7 @@ "html": "Let feature be descriptor's name." }, { - "html": "A descriptor's permission state, given an optional\n environment settings object settings is the result of the following algorithm.\n It returns a PermissionState enum value:", + "html": "If there exists a policy-controlled feature for feature and\n settings' relevant global object has an associated Document run the\n following step:", "rationale": "let", "steps": [ { @@ -219,7 +219,7 @@ "html": "If descriptor's permission state is \"granted\", the\n user agent may return one (or more if allowMultiple is true) of options chosen by\n the user and abort these steps. If the user agent returns without prompting, then\n subsequent prompts for the user to choose\n from the same set of options with the same descriptor must return the same option(s),\n unless the user agent receives new information about the user's intent." }, { - "html": "To prompt the user to choose one or more options associated with a given\n descriptor and an optional boolean\n allowMultiple (default false), the user agent must perform the following\n steps. This algorithm returns either \"denied\" or the user's\n selection.", + "html": "Ask the user to choose one or more options or deny permission, and wait for them\n to choose:", "rationale": "if", "steps": [ { @@ -256,7 +256,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "When the query() method is invoked, the user agent MUST run the\n following query a permission algorithm, passing the\n parameter permissionDesc:", + "html": "If this's relevant global object is a Window object, then:", "rationale": "if", "steps": [ { @@ -283,7 +283,7 @@ "html": "Let promise be a new promise." }, { - "html": "When the query() method is invoked, the user agent MUST run the\n following query a permission algorithm, passing the\n parameter permissionDesc:", + "html": "Return promise and continue in parallel:", "rationale": "let", "steps": [ { @@ -315,7 +315,7 @@ "html": "Assert: The feature identified by name is supported by the user agent." }, { - "html": "To create a PermissionStatus for a given\n PermissionDescriptor permissionDesc:", + "html": "Let status be a new instance of the permission result type identified by name:", "rationale": "initialize", "steps": [ { @@ -338,7 +338,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "Whenever the user agent is aware that the state of a PermissionStatus\n instance status has changed, it asynchronously runs the PermissionStatus\n update steps:", + "html": "If this's relevant global object is a Window object, then:", "rationale": "let", "steps": [ { @@ -376,11 +376,11 @@ "html": "Let tasks be an empty list." }, { - "html": "To set a permission given a PermissionDescriptor\n descriptor, a PermissionState state, an\n optional origin, and an optional user agent:", + "html": "For each environment settings object target in targets:", "rationale": "queue", "steps": [ { - "html": "To set a permission given a PermissionDescriptor\n descriptor, a PermissionState state, an\n optional origin, and an optional user agent:", + "html": "Queue a task task on the permissions task source of target's\n relevant settings object's global object's\n browsing context to perform the following step:", "rationale": "interpret", "steps": [ { diff --git a/tr/algorithms/rdf-canon.json b/tr/algorithms/rdf-canon.json index 51d924f680ad..93699ec3a37f 100644 --- a/tr/algorithms/rdf-canon.json +++ b/tr/algorithms/rdf-canon.json @@ -155,15 +155,15 @@ "html": "Get the list of quads quads\n from the map entry for\n reference blank node identifier in the\n blank node to quads map." }, { - "html": "This algorithm takes the canonicalization state and a\n reference blank node identifier as inputs.", + "html": "For each quad quad in quads:", "rationale": "serialize", "steps": [ { - "html": "This algorithm takes the canonicalization state and a\n reference blank node identifier as inputs.", + "html": "Serialize the quad in canonical n-quads form with the\n following special rule:", "rationale": "if", "steps": [ { - "html": "This algorithm takes the canonicalization state and a\n reference blank node identifier as inputs.", + "html": "If any component in quad is an\n blank node, then serialize it using a\n special identifier as follows:", "rationale": "if", "steps": [ { diff --git a/tr/algorithms/service-workers.json b/tr/algorithms/service-workers.json index cac8bbaa79d4..5fe86c2437ee 100644 --- a/tr/algorithms/service-workers.json +++ b/tr/algorithms/service-workers.json @@ -77,18 +77,18 @@ "html": "

If the result of running the Should Skip Event algorithm with \"message\" and serviceWorker is true, then return.

" }, { - "html": "The postMessage(message, options) method steps are:", + "html": "Run these substeps in parallel:", "rationale": "if", "steps": [ { "html": "

If the result of running the Run Service Worker algorithm with serviceWorker is failure, then return.

" }, { - "html": "The postMessage(message, options) method steps are:", + "html": "Queue a task on the DOM manipulation task source to run the following steps:", "rationale": "let", "steps": [ { - "html": "The postMessage(message, options) method steps are:", + "html": "Let source be determined by switching on the type of incumbentGlobal:", "rationale": ".switch", "steps": [ { @@ -120,7 +120,7 @@ "html": "

Let deserializeRecord be StructuredDeserializeWithTransfer(serializeWithTransferResult, destination’s Realm).

\n

If this throws an exception, let e be the result of creating an event named messageerror, using ExtendableMessageEvent, with the origin attribute initialized to origin and the source attribute initialized to source.

" }, { - "html": "The postMessage(message, options) method steps are:", + "html": "Else:", "rationale": "let", "steps": [ { @@ -280,7 +280,7 @@ "html": "

Let readyPromise be this's ready promise.

" }, { - "html": "ready attribute must run these steps:", + "html": "If readyPromise is pending, run the following substeps in parallel:", "rationale": "let", "steps": [ { @@ -359,7 +359,7 @@ "html": "

Let promise be a new promise.

" }, { - "html": "getRegistration(clientURL) method steps are:", + "html": "Run the following substeps in parallel:", "rationale": "let", "steps": [ { @@ -394,14 +394,14 @@ "html": "

Let promise be a new promise.

" }, { - "html": "getRegistrations() method steps are:", + "html": "Run the following steps in parallel:", "rationale": "let", "steps": [ { "html": "

Let registrations be a new list.

" }, { - "html": "getRegistrations() method steps are:", + "html": "For each (storage key, scope) → registration of registration map:", "rationale": "if", "steps": [ { @@ -410,14 +410,14 @@ ] }, { - "html": "getRegistrations() method steps are:", + "html": "Queue a task on promise’s relevant settings object's responsible event loop, using the DOM manipulation task source, to run the following steps:", "rationale": "let", "steps": [ { "html": "

Let registrationObjects be a new list.

" }, { - "html": "getRegistrations() method steps are:", + "html": "For each registration of registrations:", "rationale": "let", "steps": [ { @@ -569,7 +569,7 @@ "html": "

Let promise be a new promise.

" }, { - "html": "The skipWaiting() method steps are:", + "html": "Run the following substeps in parallel:", "rationale": "set", "steps": [ { @@ -653,14 +653,14 @@ "html": "

Let serializeWithTransferResult be StructuredSerializeWithTransfer(message, options[\"transfer\"]). Rethrow any exceptions.

" }, { - "html": "The postMessage(message, options) method steps are:", + "html": "Run the following steps in parallel:", "rationale": "let", "steps": [ { "html": "

Let targetClient be null.

" }, { - "html": "The postMessage(message, options) method steps are:", + "html": "For each service worker client client:", "rationale": "if", "steps": [ { @@ -675,7 +675,7 @@ "html": "

Let destination be the ServiceWorkerContainer object whose associated service worker client is targetClient.

" }, { - "html": "The postMessage(message, options) method steps are:", + "html": "Add a task that runs the following steps to destination’s client message queue:", "rationale": "let", "steps": [ { @@ -718,7 +718,7 @@ "html": "

Let promise be a new promise.

" }, { - "html": "The focus() method steps are:", + "html": "Queue a task to run the following steps on this's associated service worker client's responsible event loop using the user interaction task source:", "rationale": "run", "steps": [ { @@ -737,7 +737,7 @@ "html": "

Let ancestorOriginsList be this's browsing context's active document's relevant global object's Location object’s ancestor origins list's associated list.

" }, { - "html": "The focus() method steps are:", + "html": "Queue a task to run the following steps on serviceWorkerEventLoop using the DOM manipulation task source:", "rationale": "let", "steps": [ { @@ -783,7 +783,7 @@ "html": "

Let promise be a new promise.

" }, { - "html": "The navigate(url) method steps are:", + "html": "Queue a task to run the following steps on this's associated service worker client's responsible event loop using the user interaction task source:", "rationale": "let", "steps": [ { @@ -811,7 +811,7 @@ "html": "

Let ancestorOriginsList be browsingContext’s active document's relevant global object's Location object’s ancestor origins list's associated list.

" }, { - "html": "The navigate(url) method steps are:", + "html": "Queue a task to run the following steps on serviceWorkerEventLoop using the DOM manipulation task source:", "rationale": "if", "steps": [ { @@ -842,11 +842,11 @@ "html": "

Let promise be a new promise.

" }, { - "html": "The get(id) method steps are:", + "html": "Run these substeps in parallel:", "rationale": "for", "steps": [ { - "html": "The get(id) method steps are:", + "html": "For each service worker client client where the result of running obtain a storage key given client equals the associated service worker's containing service worker registration's storage key:", "rationale": "if", "steps": [ { @@ -880,14 +880,14 @@ "html": "

Let promise be a new promise.

" }, { - "html": "The matchAll(options) method steps are:", + "html": "Run the following steps in parallel:", "rationale": "let", "steps": [ { "html": "

Let targetClients be a new list.

" }, { - "html": "The matchAll(options) method steps are:", + "html": "For each service worker client client where the result of running obtain a storage key given client equals the associated service worker's containing service worker registration's storage key:", "rationale": "if", "steps": [ { @@ -911,11 +911,11 @@ "html": "

Let matchedClients be a new list.

" }, { - "html": "The matchAll(options) method steps are:", + "html": "For each service worker client client in targetClients:", "rationale": "if", "steps": [ { - "html": "The matchAll(options) method steps are:", + "html": "If options[\"type\"] is \"window\" or \"all\", and client is not an environment settings object or is a window client, then:", "rationale": "let", "steps": [ { @@ -934,7 +934,7 @@ "html": "

Else, set browsingContext to client’s target browsing context.

" }, { - "html": "The matchAll(options) method steps are:", + "html": "Queue a task task to run the following substeps on browsingContext’s event loop using the user interaction task source:", "rationale": "if", "steps": [ { @@ -961,7 +961,7 @@ "html": "

Wait for task to have executed.

" }, { - "html": "The matchAll(options) method steps are:", + "html": "If isClientEnumerable is true, then:", "rationale": "add", "steps": [ { @@ -972,7 +972,7 @@ ] }, { - "html": "The matchAll(options) method steps are:", + "html": "Else if options[\"type\"] is \"worker\" or \"all\" and client is a dedicated worker client, or options[\"type\"] is \"sharedworker\" or \"all\" and client is a shared worker client, then:", "rationale": "add", "steps": [ { @@ -983,14 +983,14 @@ ] }, { - "html": "The matchAll(options) method steps are:", + "html": "Queue a task to run the following steps on promise’s relevant settings object's responsible event loop using the DOM manipulation task source:", "rationale": "let", "steps": [ { "html": "

Let clientObjects be a new list.

" }, { - "html": "The matchAll(options) method steps are:", + "html": "For each windowData in matchedWindowData:", "rationale": "let", "steps": [ { @@ -1002,7 +1002,7 @@ ] }, { - "html": "The matchAll(options) method steps are:", + "html": "For each client in matchedClients:", "rationale": "let", "steps": [ { @@ -1053,14 +1053,14 @@ "html": "

Let promise be a new promise.

" }, { - "html": "The openWindow(url) method steps are:", + "html": "Run these substeps in parallel:", "rationale": "let", "steps": [ { "html": "

Let newContext be a new top-level browsing context.

" }, { - "html": "The openWindow(url) method steps are:", + "html": "Queue a task to run the following steps on newContext’s Window object’s environment settings object's responsible event loop using the user interaction task source:", "rationale": "if", "steps": [ { @@ -1082,7 +1082,7 @@ "html": "

Let ancestorOriginsList be newContext’s active document’s relevant global object’s Location object’s ancestor origins list's associated list.

" }, { - "html": "The openWindow(url) method steps are:", + "html": "Queue a task to run the following steps on serviceWorkerEventLoop using the DOM manipulation task source:", "rationale": "if", "steps": [ { @@ -1118,11 +1118,11 @@ "html": "

Let promise be a new promise.

" }, { - "html": "The claim() method steps are:", + "html": "Run the following substeps in parallel:", "rationale": "for", "steps": [ { - "html": "The claim() method steps are:", + "html": "For each service worker client client where the result of running obtain a storage key given client equals the service worker's containing service worker registration's storage key:", "rationale": "if", "steps": [ { @@ -1141,7 +1141,7 @@ "html": "

If registration is not the service worker's containing service worker registration, continue.

" }, { - "html": "The claim() method steps are:", + "html": "If client’s active service worker is not the service worker, then:", "rationale": "invoke", "steps": [ { @@ -1241,7 +1241,7 @@ "html": "

Let targetRealm be event’s relevant Realm.

" }, { - "html": "respondWith(r) method steps are:", + "html": "Upon rejection of r:", "rationale": "set", "steps": [ { @@ -1253,14 +1253,14 @@ ] }, { - "html": "respondWith(r) method steps are:", + "html": "Upon fulfillment of r with response:", "rationale": "if", "steps": [ { "html": "

If response is not a Response object, then set the respond-with error flag.

" }, { - "html": "respondWith(r) method steps are:", + "html": "Else:", "rationale": "let", "steps": [ { @@ -1276,18 +1276,18 @@ "html": "

Let potentialResponse be a copy of response’s associated response, except for its body.

" }, { - "html": "respondWith(r) method steps are:", + "html": "If response’s body is non-null, run these substeps:", "rationale": "let", "steps": [ { "html": "

Let reader be the result of getting a reader from response’s body's stream.

" }, { - "html": "respondWith(r) method steps are:", + "html": "Let pullAlgorithm be an action that runs these steps:", "rationale": "let", "steps": [ { - "html": "respondWith(r) method steps are:", + "html": "

Let readRequest be a new read request with the following items:

\n
\n
chunk steps, given chunk\n
\n \n
close steps\n
\n \n
error steps\n
\n \n
", "rationale": "assert", "steps": [ { @@ -1302,7 +1302,7 @@ ], "additional": [ { - "html": "respondWith(r) method steps are:", + "html": "", "rationale": "set", "steps": [ { @@ -1311,7 +1311,7 @@ ] }, { - "html": "respondWith(r) method steps are:", + "html": "", "rationale": "error", "steps": [ { @@ -1342,7 +1342,7 @@ "html": "

Set potentialResponse’s body to a new body whose stream is newStream.

" }, { - "html": "respondWith(r) method steps are:", + "html": "Run these subsubsteps repeatedly in parallel while done is false:", "rationale": "if", "steps": [ { @@ -1352,7 +1352,7 @@ "html": "

Otherwise, if bytes is empty and end-of-body is true, then close newStream and set done to true.

" }, { - "html": "respondWith(r) method steps are:", + "html": "Otherwise, if bytes is not empty, run these subsubsubsteps:", "rationale": "let", "steps": [ { @@ -1395,7 +1395,7 @@ "html": "

Let promise be a new promise.

" }, { - "html": "The match(request, options) method steps are:", + "html": "Run these substeps in parallel:", "rationale": "let", "steps": [ { @@ -1405,7 +1405,7 @@ "html": "

Wait until p settles.

" }, { - "html": "The match(request, options) method steps are:", + "html": "If p rejects with an exception, then:", "rationale": "reject", "steps": [ { @@ -1414,11 +1414,11 @@ ] }, { - "html": "The match(request, options) method steps are:", + "html": "Else if p resolves with an array, responses, then:", "rationale": "if", "steps": [ { - "html": "The match(request, options) method steps are:", + "html": "If responses is an empty array, then:", "rationale": "resolve", "steps": [ { @@ -1427,7 +1427,7 @@ ] }, { - "html": "The match(request, options) method steps are:", + "html": "Else:", "rationale": "resolve", "steps": [ { @@ -1454,11 +1454,11 @@ "html": "

Let r be null.

" }, { - "html": "The matchAll(request, options) method steps are:", + "html": "If the optional argument request is not omitted, then:", "rationale": "if", "steps": [ { - "html": "The matchAll(request, options) method steps are:", + "html": "If request is a Request object, then:", "rationale": "set", "steps": [ { @@ -1470,7 +1470,7 @@ ] }, { - "html": "The matchAll(request, options) method steps are:", + "html": "Else if request is a string, then:", "rationale": "set", "steps": [ { @@ -1487,18 +1487,18 @@ "html": "

Let promise be a new promise.

" }, { - "html": "The matchAll(request, options) method steps are:", + "html": "Run these substeps in parallel:", "rationale": "let", "steps": [ { "html": "

Let responses be an empty list.

" }, { - "html": "The matchAll(request, options) method steps are:", + "html": "If the optional argument request is omitted, then:", "rationale": "for", "steps": [ { - "html": "The matchAll(request, options) method steps are:", + "html": "For each requestResponse of the relevant request response list:", "rationale": "add", "steps": [ { @@ -1509,14 +1509,14 @@ ] }, { - "html": "The matchAll(request, options) method steps are:", + "html": "Else:", "rationale": "let", "steps": [ { "html": "

Let requestResponses be the result of running Query Cache with r and options.

" }, { - "html": "The matchAll(request, options) method steps are:", + "html": "For each requestResponse of requestResponses:", "rationale": "add", "steps": [ { @@ -1527,7 +1527,7 @@ ] }, { - "html": "The matchAll(request, options) method steps are:", + "html": "For each response of responses:", "rationale": "if", "steps": [ { @@ -1536,14 +1536,14 @@ ] }, { - "html": "The matchAll(request, options) method steps are:", + "html": "Queue a task, on promise’s relevant settings object's responsible event loop using the DOM manipulation task source, to perform the following steps:", "rationale": "let", "steps": [ { "html": "

Let responseList be a list.

" }, { - "html": "The matchAll(request, options) method steps are:", + "html": "For each response of responses:", "rationale": "add", "steps": [ { @@ -1593,7 +1593,7 @@ "html": "

Let requestList be an empty list.

" }, { - "html": "The addAll(requests) method steps are:", + "html": "For each request whose type is Request in requests:", "rationale": "let", "steps": [ { @@ -1605,14 +1605,14 @@ ] }, { - "html": "The addAll(requests) method steps are:", + "html": "For each request in requests:", "rationale": "let", "steps": [ { "html": "

Let r be the associated request of the result of invoking the initial value of Request as constructor with request as its argument. If this throws an exception, return a promise rejected with that exception.

" }, { - "html": "The addAll(requests) method steps are:", + "html": "If r’s url's scheme is not one of \"http\" and \"https\", then:", "rationale": "terminate", "steps": [ { @@ -1636,25 +1636,25 @@ "html": "

Let responsePromise be a new promise.

" }, { - "html": "The addAll(requests) method steps are:", + "html": "To process response for response, run these substeps:", "rationale": "if", "steps": [ { "html": "

If response’s type is \"error\", or response’s status is not an ok status or is 206, reject responsePromise with a TypeError.

" }, { - "html": "The addAll(requests) method steps are:", + "html": "Else if response’s header list contains a header named `Vary`, then:", "rationale": "let", "steps": [ { "html": "

Let fieldValues be the list containing the elements corresponding to the field-values of the Vary header.

" }, { - "html": "The addAll(requests) method steps are:", + "html": "For each fieldValue of fieldValues:", "rationale": "if", "steps": [ { - "html": "The addAll(requests) method steps are:", + "html": "If fieldValue matches \"*\", then:", "rationale": "reject", "steps": [ { @@ -1675,7 +1675,7 @@ ], "additional": [ { - "html": "The addAll(requests) method steps are:", + "html": "To process response end-of-body for response, run these substeps:", "rationale": "if", "steps": [ { @@ -1697,7 +1697,7 @@ "html": "

Let p be the result of getting a promise to wait for all of responsePromises.

" }, { - "html": "The addAll(requests) method steps are:", + "html": "Return the result of reacting to p with a fulfillment handler that, when called with argument responses, performs the following substeps:", "rationale": "let", "steps": [ { @@ -1707,7 +1707,7 @@ "html": "

Let index be zero.

" }, { - "html": "The addAll(requests) method steps are:", + "html": "For each response in responses:", "rationale": "let", "steps": [ { @@ -1737,7 +1737,7 @@ "html": "

Let cacheJobPromise be a new promise.

" }, { - "html": "The addAll(requests) method steps are:", + "html": "Run the following substeps in parallel:", "rationale": "let", "steps": [ { @@ -1747,7 +1747,7 @@ "html": "

Invoke Batch Cache Operations with operations. If this throws an exception, set errorData to the exception.

" }, { - "html": "The addAll(requests) method steps are:", + "html": "Queue a task, on cacheJobPromise’s relevant settings object's responsible event loop using the DOM manipulation task source, to perform the following substeps:", "rationale": "if", "steps": [ { @@ -1780,7 +1780,7 @@ "html": "

If request is a Request object, then set innerRequest to request’s request.

" }, { - "html": "The put(request, response) method steps are:", + "html": "Else:", "rationale": "let", "steps": [ { @@ -1801,14 +1801,14 @@ "html": "

If innerResponse’s status is 206, return a promise rejected with a TypeError.

" }, { - "html": "The put(request, response) method steps are:", + "html": "If innerResponse’s header list contains a header named `Vary`, then:", "rationale": "let", "steps": [ { "html": "

Let fieldValues be the list containing the items corresponding to the Vary header’s field-values.

" }, { - "html": "The put(request, response) method steps are:", + "html": "For each fieldValue in fieldValues:", "rationale": "if", "steps": [ { @@ -1828,7 +1828,7 @@ "html": "

Let bodyReadPromise be a promise resolved with undefined.

" }, { - "html": "The put(request, response) method steps are:", + "html": "If innerResponse’s body is non-null, run these substeps:", "rationale": "let", "steps": [ { @@ -1864,14 +1864,14 @@ "html": "

Let realm be this's relevant realm.

" }, { - "html": "The put(request, response) method steps are:", + "html": "Return the result of the fulfillment of bodyReadPromise:", "rationale": "let", "steps": [ { "html": "

Let cacheJobPromise be a new promise.

" }, { - "html": "The put(request, response) method steps are:", + "html": "Return cacheJobPromise and run these steps in parallel:", "rationale": "let", "steps": [ { @@ -1881,7 +1881,7 @@ "html": "

Invoke Batch Cache Operations with operations. If this throws an exception, set errorData to the exception.

" }, { - "html": "The put(request, response) method steps are:", + "html": "Queue a task, on cacheJobPromise’s relevant settings object's responsible event loop using the DOM manipulation task source, to perform the following substeps:", "rationale": "if", "steps": [ { @@ -1908,7 +1908,7 @@ "html": "

Let r be null.

" }, { - "html": "The delete(request, options) method steps are:", + "html": "If request is a Request object, then:", "rationale": "set", "steps": [ { @@ -1920,7 +1920,7 @@ ] }, { - "html": "The delete(request, options) method steps are:", + "html": "Else if request is a string, then:", "rationale": "set", "steps": [ { @@ -1953,7 +1953,7 @@ "html": "

Let cacheJobPromise be a new promise.

" }, { - "html": "The delete(request, options) method steps are:", + "html": "Run the following substeps in parallel:", "rationale": "let", "steps": [ { @@ -1963,11 +1963,11 @@ "html": "

Let requestResponses be the result of running Batch Cache Operations with operations. If this throws an exception, set errorData to the exception.

" }, { - "html": "The delete(request, options) method steps are:", + "html": "Queue a task, on cacheJobPromise’s relevant settings object's responsible event loop using the DOM manipulation task source, to perform the following substeps:", "rationale": "if", "steps": [ { - "html": "The delete(request, options) method steps are:", + "html": "If errorData is null, then:", "rationale": "if", "steps": [ { @@ -2000,11 +2000,11 @@ "html": "

Let r be null.

" }, { - "html": "The keys(request, options) method steps are:", + "html": "If the optional argument request is not omitted, then:", "rationale": "if", "steps": [ { - "html": "The keys(request, options) method steps are:", + "html": "If request is a Request object, then:", "rationale": "set", "steps": [ { @@ -2016,7 +2016,7 @@ ] }, { - "html": "The keys(request, options) method steps are:", + "html": "Else if request is a string, then:", "rationale": "set", "steps": [ { @@ -2033,18 +2033,18 @@ "html": "

Let promise be a new promise.

" }, { - "html": "The keys(request, options) method steps are:", + "html": "Run these substeps in parallel:", "rationale": "let", "steps": [ { "html": "

Let requests be an empty list.

" }, { - "html": "The keys(request, options) method steps are:", + "html": "If the optional argument request is omitted, then:", "rationale": "for", "steps": [ { - "html": "The keys(request, options) method steps are:", + "html": "For each requestResponse of the relevant request response list:", "rationale": "add", "steps": [ { @@ -2055,14 +2055,14 @@ ] }, { - "html": "The keys(request, options) method steps are:", + "html": "Else:", "rationale": "let", "steps": [ { "html": "

Let requestResponses be the result of running Query Cache with r and options.

" }, { - "html": "The keys(request, options) method steps are:", + "html": "For each requestResponse of requestResponses:", "rationale": "add", "steps": [ { @@ -2073,14 +2073,14 @@ ] }, { - "html": "The keys(request, options) method steps are:", + "html": "Queue a task, on promise’s relevant settings object's responsible event loop using the DOM manipulation task source, to perform the following steps:", "rationale": "let", "steps": [ { "html": "

Let requestList be a list.

" }, { - "html": "The keys(request, options) method steps are:", + "html": "For each request of requests:", "rationale": "add", "steps": [ { @@ -2107,19 +2107,19 @@ "rationale": ".algorithm", "steps": [ { - "html": "The match(request, options) method steps are:", + "html": "If options[\"cacheName\"] exists, then:", "rationale": "return", "steps": [ { - "html": "The match(request, options) method steps are:", + "html": "Return a new promise promise and run the following substeps in parallel:", "rationale": "for", "steps": [ { - "html": "The match(request, options) method steps are:", + "html": "For each cacheNamecache of the relevant name to cache map:", "rationale": "if", "steps": [ { - "html": "The match(request, options) method steps are:", + "html": "If options[\"cacheName\"] matches cacheName, then:", "rationale": "resolve", "steps": [ { @@ -2140,18 +2140,18 @@ ] }, { - "html": "The match(request, options) method steps are:", + "html": "Else:", "rationale": "let", "steps": [ { "html": "

Let promise be a promise resolved with undefined.

" }, { - "html": "The match(request, options) method steps are:", + "html": "For each cacheNamecache of the relevant name to cache map:", "rationale": "set", "steps": [ { - "html": "The match(request, options) method steps are:", + "html": "Set promise to the result of reacting to itself with a fulfillment handler that, when called with argument response, performs the following substeps:", "rationale": "if", "steps": [ { @@ -2181,11 +2181,11 @@ "html": "

Let promise be a new promise.

" }, { - "html": "The has(cacheName) method steps are:", + "html": "Run the following substeps in parallel:", "rationale": "for", "steps": [ { - "html": "The has(cacheName) method steps are:", + "html": "For each keyvalue of the relevant name to cache map:", "rationale": "if", "steps": [ { @@ -2213,15 +2213,15 @@ "html": "

Let promise be a new promise.

" }, { - "html": "The open(cacheName) method steps are:", + "html": "Run the following substeps in parallel:", "rationale": "for", "steps": [ { - "html": "The open(cacheName) method steps are:", + "html": "For each keyvalue of the relevant name to cache map:", "rationale": "if", "steps": [ { - "html": "The open(cacheName) method steps are:", + "html": "If cacheName matches key, then:", "rationale": "resolve", "steps": [ { @@ -2260,11 +2260,11 @@ "html": "

Let promise be the result of running the algorithm specified in has(cacheName) method with cacheName.

" }, { - "html": "The delete(cacheName) method steps are:", + "html": "Return the result of reacting to promise with a fulfillment handler that, when called with argument cacheExists, performs the following substeps:", "rationale": "if", "steps": [ { - "html": "The delete(cacheName) method steps are:", + "html": "If cacheExists is false, then:", "rationale": "return", "steps": [ { @@ -2276,7 +2276,7 @@ "html": "

Let cacheJobPromise be a new promise.

" }, { - "html": "The delete(cacheName) method steps are:", + "html": "Run the following substeps in parallel:", "rationale": "remove", "steps": [ { @@ -2304,7 +2304,7 @@ "html": "

Let promise be a new promise.

" }, { - "html": "The keys() method steps are:", + "html": "Run the following substeps in parallel:", "rationale": "let", "steps": [ { diff --git a/tr/algorithms/uievents-key.json b/tr/algorithms/uievents-key.json index 2e64ad7b6714..dd004ba1cfb2 100644 --- a/tr/algorithms/uievents-key.json +++ b/tr/algorithms/uievents-key.json @@ -14,7 +14,7 @@ "html": "

Let key be a DOMString initially set to \"Unidentified\".

" }, { - "html": "

2.2.1. select an appropriate key attribute value

\n To select an appropriate key attribute value to store in a KeyboardEvent's key attribute, run these steps:", + "html": "If there exists an appropriate named key attribute value for this\nkey event, then", "rationale": "set", "steps": [ { @@ -23,7 +23,7 @@ ] }, { - "html": "

2.2.1. select an appropriate key attribute value

\n To select an appropriate key attribute value to store in a KeyboardEvent's key attribute, run these steps:", + "html": "Else, if the key event generates a valid key string, then", "rationale": "set", "steps": [ { @@ -32,7 +32,7 @@ ] }, { - "html": "

2.2.1. select an appropriate key attribute value

\n To select an appropriate key attribute value to store in a KeyboardEvent's key attribute, run these steps:", + "html": "Else, if the key event has any modifier keys other than glyph modifier keys, then", "rationale": "set", "steps": [ { diff --git a/tr/algorithms/uievents.json b/tr/algorithms/uievents.json index 427e8b64d7c9..8257db036281 100644 --- a/tr/algorithms/uievents.json +++ b/tr/algorithms/uievents.json @@ -11,7 +11,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "
3.2.2.1. initialize a UIEvent
\n
\n
Input\n
\n

event, the UIEvent to initialize

\n
\n

eventType, a DOMString containing the event type

\n
\n

eventTarget, the EventTarget of the event

\n
\n

bubbles, true if this event bubbles

\n
\n

cancelable, true if this event is cancelable

\n
Output\n
\n

None

\n
", + "html": "Initialize the base Event attributes:", "rationale": "initialize", "steps": [ { @@ -23,7 +23,7 @@ ] }, { - "html": "
3.2.2.1. initialize a UIEvent
\n
\n
Input\n
\n

event, the UIEvent to initialize

\n
\n

eventType, a DOMString containing the event type

\n
\n

eventTarget, the EventTarget of the event

\n
\n

bubbles, true if this event bubbles

\n
\n

cancelable, true if this event is cancelable

\n
Output\n
\n

None

\n
", + "html": "Initialize the following public attributes:", "rationale": "set", "steps": [ { @@ -35,7 +35,7 @@ ] }, { - "html": "
3.2.2.1. initialize a UIEvent
\n
\n
Input\n
\n

event, the UIEvent to initialize

\n
\n

eventType, a DOMString containing the event type

\n
\n

eventTarget, the EventTarget of the event

\n
\n

bubbles, true if this event bubbles

\n
\n

cancelable, true if this event is cancelable

\n
Output\n
\n

None

\n
", + "html": "Initialize the following historical attributes:", "rationale": "set", "steps": [ { @@ -55,7 +55,7 @@ "html": "

Initialize a UIEvent with event, eventType, eventTarget, bubbles and cancelable.

" }, { - "html": "
3.4.3.4. initialize a MouseEvent
\n
\n
Input\n
\n

event, the MouseEvent to initialize

\n
\n

eventType, a DOMString containing the event type

\n
\n

eventTarget, the EventTarget of the event

\n
\n

bubbles, true if this event bubbles

\n
\n

cancelable, true if this event is cancelable

\n
Output\n
\n

None

\n
", + "html": "Initialize the following public attributes:", "rationale": "set", "steps": [ { @@ -197,7 +197,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "
3.4.3.9. set MouseEvent attributes from native
\n
\n
Input\n
\n

event, the MouseEvent to initialize

\n
\n

native, the native mouse event

\n
Output\n
\n

None

\n
", + "html": "If event.type is one of [ mousedown, mouseup ], then", "rationale": "let", "steps": [ { @@ -220,7 +220,7 @@ "html": "

Let mbutton be an ID from native that identifies which mouse button was pressed

" }, { - "html": "
3.4.3.10. handle native mouse down
\n
\n
Input\n
\n

native, the native mousedown

\n
Output\n
\n

None

\n
", + "html": "Update the mouse button bitmask as follows:", "rationale": "if", "steps": [ { @@ -250,7 +250,7 @@ "html": "

Let result = dispatch event at target

" }, { - "html": "
3.4.3.10. handle native mouse down
\n
\n
Input\n
\n

native, the native mousedown

\n
Output\n
\n

None

\n
", + "html": "If result is true and target is a focusable area that is click focusable, then", "rationale": "run", "steps": [ { @@ -276,7 +276,7 @@ "html": "

Let mbutton be an ID from native that identifies which mouse button was pressed

" }, { - "html": "
3.4.3.11. handle native mouse up
\n
\n
Input\n
\n

native, the native mouseup

\n
Output\n
\n

None

\n
", + "html": "Update the mouse button bitmask as follows:", "rationale": "if", "steps": [ { @@ -331,7 +331,7 @@ "html": "

Let mbutton = 1 (primary mouse button by default)

" }, { - "html": "
3.4.3.13. send click event
\n
\n
Input\n
\n

native, the native mousedown

\n
\n

target, the EventTarget of the event

\n
Output\n
\n

None

\n
", + "html": "If native is valid, then", "rationale": "let", "steps": [ { @@ -346,7 +346,7 @@ "html": "

Let event = create a PointerEvent with eventType and target

" }, { - "html": "
3.4.3.13. send click event
\n
\n
Input\n
\n

native, the native mousedown

\n
\n

target, the EventTarget of the event

\n
Output\n
\n

None

\n
", + "html": "If native is valid, then", "rationale": "set", "steps": [ { @@ -410,11 +410,11 @@ "html": "

Let targetDomPath = calculate DOM path

" }, { - "html": "
3.4.3.15. handle native mouse move
\n
\n
Input\n
\n

native, the native mouse move

\n
Output\n
\n

None

\n
", + "html": "Generate events for leaving the current element:", "rationale": "if", "steps": [ { - "html": "
3.4.3.15. handle native mouse move
\n
\n
Input\n
\n

native, the native mouse move

\n
Output\n
\n

None

\n
", + "html": "If last mouse element is defined and not equal to target, then", "rationale": "let", "steps": [ { @@ -423,7 +423,7 @@ ], "additional": [ { - "html": "
3.4.3.15. handle native mouse move
\n
\n
Input\n
\n

native, the native mouse move

\n
Output\n
\n

None

\n
", + "html": "If last mouse element is defined and not equal to target, then", "rationale": "dispatch", "steps": [ { @@ -436,7 +436,7 @@ "html": "

Let leaveElements be a copy of last mouse DOM path with all\nelements common to targetDomPath removed.

" }, { - "html": "
3.4.3.15. handle native mouse move
\n
\n
Input\n
\n

native, the native mouse move

\n
Output\n
\n

None

\n
", + "html": "For each element in leaveElements, do", "rationale": "let", "steps": [ { @@ -460,11 +460,11 @@ ] }, { - "html": "
3.4.3.15. handle native mouse move
\n
\n
Input\n
\n

native, the native mouse move

\n
Output\n
\n

None

\n
", + "html": "Generate events for entering the new element:", "rationale": "if", "steps": [ { - "html": "
3.4.3.15. handle native mouse move
\n
\n
Input\n
\n

native, the native mouse move

\n
Output\n
\n

None

\n
", + "html": "If target is not last mouse element, then", "rationale": "let", "steps": [ { @@ -473,7 +473,7 @@ ], "additional": [ { - "html": "
3.4.3.15. handle native mouse move
\n
\n
Input\n
\n

native, the native mouse move

\n
Output\n
\n

None

\n
", + "html": "If target is not last mouse element, then", "rationale": "dispatch", "steps": [ { @@ -486,7 +486,7 @@ "html": "

Let enterElements be a copy of targetDomPath with all\nelements common to last mouse DOM path removed.

" }, { - "html": "
3.4.3.15. handle native mouse move
\n
\n
Input\n
\n

native, the native mouse move

\n
Output\n
\n

None

\n
", + "html": "For each element in enterElements, do", "rationale": "let", "steps": [ { @@ -501,7 +501,7 @@ ], "additional": [ { - "html": "
3.4.3.15. handle native mouse move
\n
\n
Input\n
\n

native, the native mouse move

\n
Output\n
\n

None

\n
", + "html": "For each element in enterElements, do", "rationale": "let", "steps": [ { @@ -547,7 +547,7 @@ "html": "

Let menuevent = create a PointerEvent with \"contextmenu\", target

" }, { - "html": "
3.4.3.16. maybe show context menu
\n
\n
Input\n
\n

native, the native mousedown or pointer event

\n
\n

target, the EventTarget of the event

\n
Output\n
\n

None

\n \n
", + "html": "If native is valid, then", "rationale": "set", "steps": [ { @@ -612,7 +612,7 @@ "html": "

If event.type is not \"mousemove\", then exit

" }, { - "html": "

5.2.3. set PointerLock attributes for mousemove

\n
\n
Input\n
\n

event, a MouseEvent

\n
Output\n
\n

None

\n
", + "html": "If last mouse move is not defined, then", "rationale": "set", "steps": [ { @@ -624,7 +624,7 @@ ] }, { - "html": "

5.2.3. set PointerLock attributes for mousemove

\n
\n
Input\n
\n

event, a MouseEvent

\n
Output\n
\n

None

\n
", + "html": "Otherwise,", "rationale": "set", "steps": [ { diff --git a/tr/algorithms/wasm-js-api-2.json b/tr/algorithms/wasm-js-api-2.json index b856001c2d7f..5f1b9a8e34b4 100644 --- a/tr/algorithms/wasm-js-api-2.json +++ b/tr/algorithms/wasm-js-api-2.json @@ -71,21 +71,21 @@ "html": "

Let promise be a new promise.

" }, { - "html": "To asynchronously compile a WebAssembly module from source bytes bytes, using optional task source taskSource, perform the following steps:", + "html": "Run the following steps in parallel:", "rationale": "queue", "steps": [ { "html": "

Compile the WebAssembly module bytes and store the result as module.

" }, { - "html": "To asynchronously compile a WebAssembly module from source bytes bytes, using optional task source taskSource, perform the following steps:", + "html": "Queue a task to perform the following steps. If taskSource was provided, queue the task on that task source.", "rationale": "if", "steps": [ { "html": "

If module is error, reject promise with a CompileError exception.

" }, { - "html": "To asynchronously compile a WebAssembly module from source bytes bytes, using optional task source taskSource, perform the following steps:", + "html": "Otherwise,", "rationale": "resolve", "steps": [ { @@ -132,7 +132,7 @@ "html": "

Let imports be « ».

" }, { - "html": "To read the imports from a WebAssembly module module from imports object importObject, perform the following steps:", + "html": "For each (moduleName, componentName, externtype) of module_imports(module),", "rationale": "let", "steps": [ { @@ -145,14 +145,14 @@ "html": "

Let v be ? Get(o, componentName).

" }, { - "html": "To read the imports from a WebAssembly module module from imports object importObject, perform the following steps:", + "html": "If externtype is of the form func functype,", "rationale": "if", "steps": [ { "html": "

If IsCallable(v) is false, throw a LinkError exception.

" }, { - "html": "To read the imports from a WebAssembly module module from imports object importObject, perform the following steps:", + "html": "If v has a [[FunctionAddress]] internal slot, and therefore is an Exported Function,", "rationale": "let", "steps": [ { @@ -161,7 +161,7 @@ ] }, { - "html": "To read the imports from a WebAssembly module module from imports object importObject, perform the following steps:", + "html": "Otherwise,", "rationale": "create", "steps": [ { @@ -181,15 +181,15 @@ ] }, { - "html": "To read the imports from a WebAssembly module module from imports object importObject, perform the following steps:", + "html": "If externtype is of the form global mut valtype,", "rationale": "if", "steps": [ { - "html": "To read the imports from a WebAssembly module module from imports object importObject, perform the following steps:", + "html": "If Type(v) is Number or BigInt,", "rationale": "if", "steps": [ { - "html": "To read the imports from a WebAssembly module module from imports object importObject, perform the following steps:", + "html": "If valtype is i64 and Type(v) is Number,", "rationale": "throw", "steps": [ { @@ -198,7 +198,7 @@ ] }, { - "html": "To read the imports from a WebAssembly module module from imports object importObject, perform the following steps:", + "html": "If valtype is not i64 and Type(v) is BigInt,", "rationale": "throw", "steps": [ { @@ -207,7 +207,7 @@ ] }, { - "html": "To read the imports from a WebAssembly module module from imports object importObject, perform the following steps:", + "html": "If valtype is v128,", "rationale": "throw", "steps": [ { @@ -230,7 +230,7 @@ ] }, { - "html": "To read the imports from a WebAssembly module module from imports object importObject, perform the following steps:", + "html": "Otherwise, if v implements Global,", "rationale": "let", "steps": [ { @@ -239,7 +239,7 @@ ] }, { - "html": "To read the imports from a WebAssembly module module from imports object importObject, perform the following steps:", + "html": "Otherwise,", "rationale": "throw", "steps": [ { @@ -256,7 +256,7 @@ ] }, { - "html": "To read the imports from a WebAssembly module module from imports object importObject, perform the following steps:", + "html": "If externtype is of the form mem memtype,", "rationale": "if", "steps": [ { @@ -271,7 +271,7 @@ ] }, { - "html": "To read the imports from a WebAssembly module module from imports object importObject, perform the following steps:", + "html": "If externtype is of the form table tabletype,", "rationale": "if", "steps": [ { @@ -305,7 +305,7 @@ "html": "

Let exportsObject be ! OrdinaryObjectCreate(null).

" }, { - "html": "To create an exports object from a WebAssembly module module and instance instance, perform the following steps:", + "html": "For each (name, externtype) of module_exports(module),", "rationale": "let", "steps": [ { @@ -315,7 +315,7 @@ "html": "

Assert: externval is not error.

" }, { - "html": "To create an exports object from a WebAssembly module module and instance instance, perform the following steps:", + "html": "If externtype is of the form func functype,", "rationale": "assert", "steps": [ { @@ -333,7 +333,7 @@ ] }, { - "html": "To create an exports object from a WebAssembly module module and instance instance, perform the following steps:", + "html": "If externtype is of the form global mut globaltype,", "rationale": "assert", "steps": [ { @@ -351,7 +351,7 @@ ] }, { - "html": "To create an exports object from a WebAssembly module module and instance instance, perform the following steps:", + "html": "If externtype is of the form mem memtype,", "rationale": "assert", "steps": [ { @@ -369,7 +369,7 @@ ] }, { - "html": "To create an exports object from a WebAssembly module module and instance instance, perform the following steps:", + "html": "If externtype is of the form table tabletype,", "rationale": "assert", "steps": [ { @@ -461,11 +461,11 @@ "html": "

Read the imports of module with imports importObject, and let imports be the result.\nIf this operation throws an exception, catch it, reject promise with the exception, and return promise.

" }, { - "html": "To asynchronously instantiate a WebAssembly module from a Module moduleObject and imports importObject, perform the following steps:", + "html": "Run the following steps in parallel:", "rationale": "queue", "steps": [ { - "html": "To asynchronously instantiate a WebAssembly module from a Module moduleObject and imports importObject, perform the following steps:", + "html": "Queue a task to perform the following steps:\nNote: Implementation-specific work may be performed here.", "rationale": "reject", "steps": [ { @@ -499,14 +499,14 @@ "html": "

Let promise be a new promise.

" }, { - "html": "To instantiate a promise of a module promiseOfModule with imports importObject, perform the following steps:", + "html": "Upon fulfillment of promiseOfModule with value module:", "rationale": "resolve", "steps": [ { "html": "

Instantiate the WebAssembly module module importing importObject, and let innerPromise be the result.

" }, { - "html": "To instantiate a promise of a module promiseOfModule with imports importObject, perform the following steps:", + "html": "Upon fulfillment of innerPromise with value instance.", "rationale": "let", "steps": [ { @@ -518,7 +518,7 @@ ] }, { - "html": "To instantiate a promise of a module promiseOfModule with imports importObject, perform the following steps:", + "html": "Upon rejection of innerPromise with reason reason:", "rationale": "reject", "steps": [ { @@ -529,7 +529,7 @@ ] }, { - "html": "To instantiate a promise of a module promiseOfModule with imports importObject, perform the following steps:", + "html": "Upon rejection of promiseOfModule with reason reason:", "rationale": "reject", "steps": [ { @@ -583,7 +583,7 @@ "html": "

Let exports be « ».

" }, { - "html": "The exports(moduleObject) method, when invoked, performs the following steps:", + "html": "For each (name, type) of module_exports(module),", "rationale": "let", "steps": [ { @@ -615,7 +615,7 @@ "html": "

Let imports be « ».

" }, { - "html": "The imports(moduleObject) method, when invoked, performs the following steps:", + "html": "For each (moduleName, name, type) of module_imports(module),", "rationale": "let", "steps": [ { @@ -647,7 +647,7 @@ "html": "

Let customSections be « ».

" }, { - "html": "The customSections(moduleObject, sectionName) method, when invoked, performs the following steps:", + "html": "For each custom section customSection of bytes, interpreted according to the module grammar,", "rationale": "let", "steps": [ { @@ -657,7 +657,7 @@ "html": "

Assert: name is not failure (moduleObject.[[Module]] is valid).

" }, { - "html": "The customSections(moduleObject, sectionName) method, when invoked, performs the following steps:", + "html": "If name equals sectionName as string values,", "rationale": "append", "steps": [ { @@ -754,7 +754,7 @@ "html": "

Let length be the length of block.

" }, { - "html": "To create a resizable memory buffer from a memory address memaddr and a maxsize, perform the following steps:", + "html": "If maxsize > (65536 × 65536),", "rationale": "throw", "steps": [ { @@ -818,7 +818,7 @@ "html": "

Let map be the surrounding agent's associated Memory object cache.

" }, { - "html": "To create a memory object from a memory address memaddr, perform the following steps:", + "html": "If map[memaddr] exists,", "rationale": "return", "steps": [ { @@ -888,7 +888,7 @@ "html": "

Let buffer be memory.[[BufferObject]].

" }, { - "html": "To refresh the Memory buffer of memaddr, perform the following steps:", + "html": "If IsFixedLengthArrayBuffer(buffer) is true,", "rationale": "perform", "steps": [ { @@ -903,7 +903,7 @@ ] }, { - "html": "To refresh the Memory buffer of memaddr, perform the following steps:", + "html": "Otherwise,", "rationale": "let", "steps": [ { @@ -1038,7 +1038,7 @@ "html": "

Let memtype be mem_type(store, memaddr).

" }, { - "html": "The toResizableBuffer() method, when invoked, performs the following steps:", + "html": "If memtype has a max,", "rationale": "let", "steps": [ { @@ -1047,7 +1047,7 @@ ] }, { - "html": "The toResizableBuffer() method, when invoked, performs the following steps:", + "html": "Otherwise,", "rationale": "let", "steps": [ { @@ -1076,7 +1076,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The abstract operation HostResizeArrayBuffer takes arguments buffer (an ArrayBuffer) and newLength. It performs the following steps when called.", + "html": "If buffer.[[ArrayBufferDetachKey]] is \"WebAssembly.Memory\",", "rationale": "let", "steps": [ { @@ -1086,11 +1086,11 @@ "html": "

Assert: buffer is the [[BufferObject]] of exactly one value in map.

" }, { - "html": "The abstract operation HostResizeArrayBuffer takes arguments buffer (an ArrayBuffer) and newLength. It performs the following steps when called.", + "html": "For each memaddrmem in map,", "rationale": "if", "steps": [ { - "html": "The abstract operation HostResizeArrayBuffer takes arguments buffer (an ArrayBuffer) and newLength. It performs the following steps when called.", + "html": "If SameValue(mem.[[BufferObject]], buffer) is true,", "rationale": "assert", "steps": [ { @@ -1100,7 +1100,7 @@ "html": "

Let lengthDelta be newLength - buffer.[[ArrayBufferByteLength]].

" }, { - "html": "The abstract operation HostResizeArrayBuffer takes arguments buffer (an ArrayBuffer) and newLength. It performs the following steps when called.", + "html": "If lengthDelta < 0 or lengthDelta modulo 65536 is not 0,", "rationale": "throw", "steps": [ { @@ -1158,7 +1158,7 @@ "html": "

Let map be the surrounding agent's associated Table object cache.

" }, { - "html": "To create a table object from a table address tableaddr, perform the following steps:", + "html": "If map[tableaddr] exists,", "rationale": "return", "steps": [ { @@ -1187,7 +1187,7 @@ "html": "

Let elementType be ToValueType(descriptor[\"element\"]).

" }, { - "html": "The Table(descriptor, value) constructor, when invoked, performs the following steps:", + "html": "If elementType is not a reftype,", "rationale": "throw", "steps": [ { @@ -1205,7 +1205,7 @@ "html": "

If maximum is not empty and maximum < initial, throw a RangeError exception.

" }, { - "html": "The Table(descriptor, value) constructor, when invoked, performs the following steps:", + "html": "If value is missing,", "rationale": "let", "steps": [ { @@ -1214,7 +1214,7 @@ ] }, { - "html": "The Table(descriptor, value) constructor, when invoked, performs the following steps:", + "html": "Otherwise,", "rationale": "let", "steps": [ { @@ -1258,7 +1258,7 @@ "html": "

Let (limits, elementType) be table_type(tableaddr).

" }, { - "html": "The grow(delta, value) method, when invoked, performs the following steps:", + "html": "If value is missing,", "rationale": "let", "steps": [ { @@ -1267,7 +1267,7 @@ ] }, { - "html": "The grow(delta, value) method, when invoked, performs the following steps:", + "html": "Otherwise,", "rationale": "let", "steps": [ { @@ -1342,7 +1342,7 @@ "html": "

Let (limits, elementType) be table_type(tableaddr).

" }, { - "html": "The set(index, value) method, when invoked, performs the following steps:", + "html": "If value is missing,", "rationale": "let", "steps": [ { @@ -1351,7 +1351,7 @@ ] }, { - "html": "The set(index, value) method, when invoked, performs the following steps:", + "html": "Otherwise,", "rationale": "let", "steps": [ { @@ -1403,7 +1403,7 @@ "html": "

Let map be the surrounding agent's associated Global object cache.

" }, { - "html": "To create a global object from a global address globaladdr, perform the following steps:", + "html": "If map[globaladdr] exists,", "rationale": "return", "steps": [ { @@ -1496,7 +1496,7 @@ "html": "

Let valuetype be ToValueType(descriptor[\"value\"]).

" }, { - "html": "The Global(descriptor, v) constructor, when invoked, performs the following steps:", + "html": "If valuetype is v128,", "rationale": "throw", "steps": [ { @@ -1505,7 +1505,7 @@ ] }, { - "html": "The Global(descriptor, v) constructor, when invoked, performs the following steps:", + "html": "If v is missing,", "rationale": "let", "steps": [ { @@ -1514,7 +1514,7 @@ ] }, { - "html": "The Global(descriptor, v) constructor, when invoked, performs the following steps:", + "html": "Otherwise,", "rationale": "let", "steps": [ { @@ -1635,7 +1635,7 @@ "html": "

Let funcinst be store.funcs[funcaddr].

" }, { - "html": "The name of the WebAssembly function funcaddr is found by performing the following steps:", + "html": "If funcinst is of the form {type functype, hostcode hostfunc},", "rationale": "assert", "steps": [ { @@ -1647,7 +1647,7 @@ ] }, { - "html": "The name of the WebAssembly function funcaddr is found by performing the following steps:", + "html": "Otherwise,", "rationale": "let", "steps": [ { @@ -1676,7 +1676,7 @@ "html": "

Let map be the surrounding agent's associated Exported Function cache.

" }, { - "html": "To create a new Exported Function from a WebAssembly function address funcaddr, perform the following steps:", + "html": "If map[funcaddr] exists,", "rationale": "return", "steps": [ { @@ -1744,7 +1744,7 @@ "html": "

Let i be 0.

" }, { - "html": "To call an Exported Function with function address funcaddr and a list of JavaScript arguments argValues, perform the following steps:", + "html": "For each t of parameters,", "rationale": "if", "steps": [ { @@ -1780,14 +1780,14 @@ "html": "

Otherwise, if outArity is 1, return ToJSValue(ret[0]).

" }, { - "html": "To call an Exported Function with function address funcaddr and a list of JavaScript arguments argValues, perform the following steps:", + "html": "Otherwise,", "rationale": "let", "steps": [ { "html": "

Let values be « ».

" }, { - "html": "To call an Exported Function with function address funcaddr and a list of JavaScript arguments argValues, perform the following steps:", + "html": "For each r of ret,", "rationale": "append", "steps": [ { @@ -1818,7 +1818,7 @@ "html": "

Let jsArguments be « ».

" }, { - "html": "To run a host function from the JavaScript object func, type functype, and list of WebAssembly values arguments, perform the following steps:", + "html": "For each arg of arguments,", "rationale": "append", "steps": [ { @@ -1839,7 +1839,7 @@ "html": "

Otherwise, if resultsSize is 1, return « ? ToWebAssemblyValue(ret, results[0]) ».

" }, { - "html": "To run a host function from the JavaScript object func, type functype, and list of WebAssembly values arguments, perform the following steps:", + "html": "Otherwise,", "rationale": "let", "steps": [ { @@ -1858,7 +1858,7 @@ "html": "

If values’s size is not resultsSize, throw a TypeError exception.

" }, { - "html": "To run a host function from the JavaScript object func, type functype, and list of WebAssembly values arguments, perform the following steps:", + "html": "For each value and resultType in values and results, paired linearly,", "rationale": "append", "steps": [ { @@ -1886,7 +1886,7 @@ "html": "

Let stored settings be the incumbent settings object.

" }, { - "html": "To create a host function from the JavaScript object func and type functype, perform the following steps:", + "html": "Let hostfunc be a host function which performs the following steps when called with arguments arguments:", "rationale": "let", "steps": [ { @@ -1945,7 +1945,7 @@ "html": "

Assert: w is not of the form v128.const v128.

" }, { - "html": "The algorithm ToJSValue(w) coerces a WebAssembly value to a JavaScript value by performing the following steps:", + "html": "If w is of the form i64.const i64,", "rationale": "let", "steps": [ { @@ -1960,7 +1960,7 @@ "html": "

If w is of the form i32.const i32, return 𝔽(signed_32(i32 interpreted as a mathematical value)).

" }, { - "html": "The algorithm ToJSValue(w) coerces a WebAssembly value to a JavaScript value by performing the following steps:", + "html": "If w is of the form f32.const f32,", "rationale": "if", "steps": [ { @@ -1975,7 +1975,7 @@ ] }, { - "html": "The algorithm ToJSValue(w) coerces a WebAssembly value to a JavaScript value by performing the following steps:", + "html": "If w is of the form f64.const f64,", "rationale": "if", "steps": [ { @@ -2027,7 +2027,7 @@ "html": "

Assert: type is not v128.

" }, { - "html": "The algorithm ToWebAssemblyValue(v, type) coerces a JavaScript value to a WebAssembly value by performing the following steps:", + "html": "If type is i64,", "rationale": "let", "steps": [ { @@ -2039,7 +2039,7 @@ ] }, { - "html": "The algorithm ToWebAssemblyValue(v, type) coerces a JavaScript value to a WebAssembly value by performing the following steps:", + "html": "If type is i32,", "rationale": "let", "steps": [ { @@ -2051,14 +2051,14 @@ ] }, { - "html": "The algorithm ToWebAssemblyValue(v, type) coerces a JavaScript value to a WebAssembly value by performing the following steps:", + "html": "If type is f32,", "rationale": "let", "steps": [ { "html": "

Let number be ? ToNumber(v).

" }, { - "html": "The algorithm ToWebAssemblyValue(v, type) coerces a JavaScript value to a WebAssembly value by performing the following steps:", + "html": "If number is NaN,", "rationale": "let", "steps": [ { @@ -2070,7 +2070,7 @@ ] }, { - "html": "The algorithm ToWebAssemblyValue(v, type) coerces a JavaScript value to a WebAssembly value by performing the following steps:", + "html": "Otherwise,", "rationale": "let", "steps": [ { @@ -2084,14 +2084,14 @@ ] }, { - "html": "The algorithm ToWebAssemblyValue(v, type) coerces a JavaScript value to a WebAssembly value by performing the following steps:", + "html": "If type is f64,", "rationale": "let", "steps": [ { "html": "

Let number be ? ToNumber(v).

" }, { - "html": "The algorithm ToWebAssemblyValue(v, type) coerces a JavaScript value to a WebAssembly value by performing the following steps:", + "html": "If number is NaN,", "rationale": "let", "steps": [ { @@ -2103,7 +2103,7 @@ ] }, { - "html": "The algorithm ToWebAssemblyValue(v, type) coerces a JavaScript value to a WebAssembly value by performing the following steps:", + "html": "Otherwise,", "rationale": "let", "steps": [ { @@ -2117,11 +2117,11 @@ ] }, { - "html": "The algorithm ToWebAssemblyValue(v, type) coerces a JavaScript value to a WebAssembly value by performing the following steps:", + "html": "If type is funcref,", "rationale": "if", "steps": [ { - "html": "The algorithm ToWebAssemblyValue(v, type) coerces a JavaScript value to a WebAssembly value by performing the following steps:", + "html": "If v is null,", "rationale": "return", "steps": [ { @@ -2130,7 +2130,7 @@ ] }, { - "html": "The algorithm ToWebAssemblyValue(v, type) coerces a JavaScript value to a WebAssembly value by performing the following steps:", + "html": "If v is an Exported Function,", "rationale": "let", "steps": [ { @@ -2147,11 +2147,11 @@ ] }, { - "html": "The algorithm ToWebAssemblyValue(v, type) coerces a JavaScript value to a WebAssembly value by performing the following steps:", + "html": "If type is externref,", "rationale": "if", "steps": [ { - "html": "The algorithm ToWebAssemblyValue(v, type) coerces a JavaScript value to a WebAssembly value by performing the following steps:", + "html": "If v is null,", "rationale": "return", "steps": [ { @@ -2163,7 +2163,7 @@ "html": "

Let map be the surrounding agent's associated extern value cache.

" }, { - "html": "The algorithm ToWebAssemblyValue(v, type) coerces a JavaScript value to a WebAssembly value by performing the following steps:", + "html": "If a extern address externaddr exists such that map[externaddr] is the same as v,", "rationale": "return", "steps": [ { diff --git a/tr/algorithms/wasm-web-api-2.json b/tr/algorithms/wasm-web-api-2.json index 6d6d343a3065..d5bac7cf931a 100644 --- a/tr/algorithms/wasm-web-api-2.json +++ b/tr/algorithms/wasm-web-api-2.json @@ -28,7 +28,7 @@ "html": "

Let returnValue be a new promise

" }, { - "html": "To compile a potential WebAssembly response with a promise of a Response source, perform the following steps:", + "html": "Upon fulfillment of source with value unwrappedSource:", "rationale": "let", "steps": [ { @@ -56,7 +56,7 @@ "html": "

Consume response’s body as an ArrayBuffer, and let bodyPromise be the result.

" }, { - "html": "To compile a potential WebAssembly response with a promise of a Response source, perform the following steps:", + "html": "Upon fulfillment of bodyPromise with value bodyArrayBuffer:", "rationale": "let", "steps": [ { @@ -68,7 +68,7 @@ ] }, { - "html": "To compile a potential WebAssembly response with a promise of a Response source, perform the following steps:", + "html": "Upon rejection of bodyPromise with reason reason:", "rationale": "reject", "steps": [ { @@ -79,7 +79,7 @@ ] }, { - "html": "To compile a potential WebAssembly response with a promise of a Response source, perform the following steps:", + "html": "Upon rejection of source with reason reason:", "rationale": "reject", "steps": [ { diff --git a/tr/algorithms/web-animations-1.json b/tr/algorithms/web-animations-1.json index bb2e6ca19945..c66ad2c4c73f 100644 --- a/tr/algorithms/web-animations-1.json +++ b/tr/algorithms/web-animations-1.json @@ -266,7 +266,7 @@ "html": "

If has pending ready promise is false,\nlet animation’s current ready promise be a new promise in the relevant Realm of animation.

" }, { - "html": "Schedule a task to run as soon as animation is ready.\nThe task shall perform the following steps:", + "html": "So long as the above task is scheduled but has yet to run, animation is described as having a pending play task.\nWhile the task is running, however, animation does not have\na pending play task.", "rationale": "assert", "steps": [ { @@ -363,7 +363,7 @@ "html": "

If has pending ready promise is false,\nset animation’s current ready promise to a new promise in the relevant Realm of animation.

" }, { - "html": "The task shall perform the following steps:", + "html": "So long as the above task is scheduled but has yet to run, animation is described as having a pending pause task.\nWhile the task is running, however, animation does not have a pending pause task.", "rationale": "let", "steps": [ { diff --git a/tr/algorithms/web-animations-2.json b/tr/algorithms/web-animations-2.json index 5cee1a888b0b..ee3e95b49c09 100644 --- a/tr/algorithms/web-animations-2.json +++ b/tr/algorithms/web-animations-2.json @@ -486,7 +486,7 @@ "html": "

If has pending ready promise is false,\nlet animation’s current ready promise be a new promise in the relevant Realm of animation.

" }, { - "html": "Schedule a task to run as soon as animation is ready.\nThe task shall perform the following steps:", + "html": "So long as the above task is scheduled but has yet to run, animation is described as having a pending play task.\nWhile the task is running, however, animation does not have\na pending play task.", "rationale": "assert", "steps": [ { diff --git a/tr/algorithms/web-locks.json b/tr/algorithms/web-locks.json index 32aab8b1d763..cbb086430863 100644 --- a/tr/algorithms/web-locks.json +++ b/tr/algorithms/web-locks.json @@ -93,7 +93,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "To terminate remaining locks and requests with agent, enqueue the following steps on the lock task queue:", + "html": "For each lock request request with agent equal to agent:", "rationale": "abort", "steps": [ { @@ -102,7 +102,7 @@ ] }, { - "html": "To terminate remaining locks and requests with agent, enqueue the following steps on the lock task queue:", + "html": "For each lock lock with agent equal to agent:", "rationale": "release", "steps": [ { @@ -195,7 +195,7 @@ "html": "

If signal is present, then add the algorithm signal to abort the request request with signal to signal.

" }, { - "html": "To request a lock with promise, agent, clientId, manager, callback, name, mode, ifAvailable, steal, and signal:", + "html": "Enqueue the following steps to the lock task queue:", "rationale": "let", "steps": [ { @@ -208,15 +208,15 @@ "html": "

Let held be manager’s held lock set.

" }, { - "html": "To request a lock with promise, agent, clientId, manager, callback, name, mode, ifAvailable, steal, and signal:", + "html": "If steal is true, then run these steps:", "rationale": "for", "steps": [ { - "html": "To request a lock with promise, agent, clientId, manager, callback, name, mode, ifAvailable, steal, and signal:", + "html": "For each lock of held:", "rationale": "if", "steps": [ { - "html": "To request a lock with promise, agent, clientId, manager, callback, name, mode, ifAvailable, steal, and signal:", + "html": "If lock’s name is name, then run these steps:", "rationale": "remove", "steps": [ { @@ -235,11 +235,11 @@ ] }, { - "html": "To request a lock with promise, agent, clientId, manager, callback, name, mode, ifAvailable, steal, and signal:", + "html": "Otherwise, run these steps:", "rationale": "if", "steps": [ { - "html": "To request a lock with promise, agent, clientId, manager, callback, name, mode, ifAvailable, steal, and signal:", + "html": "If ifAvailable is true and request is not grantable,\n then enqueue the following steps on callback’s relevant settings object's responsible event loop:", "rationale": "let", "steps": [ { @@ -347,7 +347,7 @@ "html": "

Assert: these steps are running on the lock task queue.

" }, { - "html": "To process the lock request queue queue:", + "html": "For each request of queue:", "rationale": "if", "steps": [ { @@ -390,19 +390,19 @@ "html": "

Append lock to manager’s held lock set.

" }, { - "html": "To process the lock request queue queue:", + "html": "Enqueue the following steps on callback’s relevant settings object's responsible event loop:", "rationale": "if", "steps": [ { - "html": "To process the lock request queue queue:", + "html": "If signal is present, then run these steps:", "rationale": "if", "steps": [ { - "html": "To process the lock request queue queue:", + "html": "If signal is aborted, then run these steps:", "rationale": "enqueue", "steps": [ { - "html": "To process the lock request queue queue:", + "html": "Enqueue the following step to the lock task queue:", "rationale": "release", "steps": [ { @@ -445,11 +445,11 @@ "html": "

Let pending be a new list.

" }, { - "html": "To snapshot the lock state for manager with promise:", + "html": "For each queue of manager’s lock request queue map's values:", "rationale": "for", "steps": [ { - "html": "To snapshot the lock state for manager with promise:", + "html": "For each request of queue:", "rationale": "append", "steps": [ { @@ -463,7 +463,7 @@ "html": "

Let held be a new list.

" }, { - "html": "To snapshot the lock state for manager with promise:", + "html": "For each lock of manager’s held lock set:", "rationale": "append", "steps": [ { diff --git a/tr/algorithms/webaudio.json b/tr/algorithms/webaudio.json index edb6db9b3e30..097e283fc0f5 100644 --- a/tr/algorithms/webaudio.json +++ b/tr/algorithms/webaudio.json @@ -91,11 +91,11 @@ "html": "

If can decode is true, attempt to decode the encoded audioData into linear PCM. In case of\nfailure, set can decode to false.

" }, { - "html": "When queuing a decoding operation to be performed on another\n\tthread, the following steps MUST happen on a thread that is not\n\tthe control thread nor the rendering thread,\n\tcalled the decoding thread.", + "html": "If can decode is false, queue a media element task to execute the following steps:", "rationale": "let", "steps": [ { - "html": "When queuing a decoding operation to be performed on another\n\tthread, the following steps MUST happen on a thread that is not\n\tthe control thread nor the rendering thread,\n\tcalled the decoding thread.", + "html": "Let error be a DOMException whose name is EncodingError.", "rationale": "reject", "steps": [ { @@ -109,14 +109,14 @@ ] }, { - "html": "When queuing a decoding operation to be performed on another\n\tthread, the following steps MUST happen on a thread that is not\n\tthe control thread nor the rendering thread,\n\tcalled the decoding thread.", + "html": "Otherwise:", "rationale": "take", "steps": [ { "html": "

Take the result, representing the decoded linear PCM audio data, and resample it to the sample-rate of the BaseAudioContext if it is different from\nthe sample-rate of audioData.

" }, { - "html": "When queuing a decoding operation to be performed on another\n\tthread, the following steps MUST happen on a thread that is not\n\tthe control thread nor the rendering thread,\n\tcalled the decoding thread.", + "html": " queue a media element task to execute the following steps:", "rationale": "let", "steps": [ { @@ -137,7 +137,7 @@ { "name": "AudioContext()", "href": "https://www.w3.org/TR/webaudio/#dom-audiocontext-pending-resume-promises-slot", - "html": "Let [[pending resume promises]] be a\nslot on this AudioContext, that is an initially empty ordered list of\npromises.", + "html": "If the current\n\t\tsettings object’s responsible\n\t\tdocument is NOT fully active, throw an InvalidStateError and\n\tabort these steps.", "rationale": ".algorithm", "steps": [ { @@ -150,7 +150,7 @@ "html": "

Let [[pending resume promises]] be a\nslot on this AudioContext, that is an initially empty ordered list of\npromises.

" }, { - "html": "Let [[pending resume promises]] be a\nslot on this AudioContext, that is an initially empty ordered list of\npromises.", + "html": "If contextOptions is given, apply the options:", "rationale": "set", "steps": [ { @@ -475,7 +475,7 @@ "html": "If a suspended context is resumed, continue to render the\n\t\tbuffer." }, { - "html": "To begin offline rendering, the following steps MUST\n\thappen on a rendering thread that is created for the\n\toccasion.", + "html": "Once the rendering is complete, queue a media element task to execute the following steps:", "rationale": "resolve", "steps": [ { @@ -627,7 +627,7 @@ "html": "

Set its value for numberOfInputs, numberOfOutputs, channelCount, channelCountMode, channelInterpretation to the\ndefault value for this\nspecific interface outlined in the section for each AudioNode.

" }, { - "html": "Initializing an object o that inherits from AudioNode means executing the following\n\tsteps, given the arguments context and dict passed to\n\tthe constructor of this interface.", + "html": "For each member of dict passed in, execute these steps, with k the key of the member, and v its value. If any\nexceptions is thrown when executing these steps, abort the iteration and\npropagate the exception to the caller of the algorithm (constructor or\nfactory method).", "rationale": "if", "steps": [ { @@ -1059,18 +1059,18 @@ { "name": "construct periodic wave", "href": "https://www.w3.org/TR/webaudio/#dom-periodicwave-real-slot", - "html": "Let p be a new PeriodicWave object. Let [[real]] and [[imag]] be two internal slots of type Float32Array, and let [[normalize]] be an internal slot.", + "html": "", "rationale": ".algorithm", "steps": [ { "html": "

Let p be a new PeriodicWave object. Let [[real]] and [[imag]] be two internal slots of type Float32Array, and let [[normalize]] be an internal slot.

" }, { - "html": "Let p be a new PeriodicWave object. Let [[real]] and [[imag]] be two internal slots of type Float32Array, and let [[normalize]] be an internal slot.", + "html": "Process options according to one of the following cases:", "rationale": "if", "steps": [ { - "html": "Let p be a new PeriodicWave object. Let [[real]] and [[imag]] be two internal slots of type Float32Array, and let [[normalize]] be an internal slot.", + "html": "If both options.real and options.imag are present", "rationale": "if", "steps": [ { @@ -1085,7 +1085,7 @@ ] }, { - "html": "Let p be a new PeriodicWave object. Let [[real]] and [[imag]] be two internal slots of type Float32Array, and let [[normalize]] be an internal slot.", + "html": "If only options.real is present", "rationale": "if", "steps": [ { @@ -1100,7 +1100,7 @@ ] }, { - "html": "Let p be a new PeriodicWave object. Let [[real]] and [[imag]] be two internal slots of type Float32Array, and let [[normalize]] be an internal slot.", + "html": "If only options.imag is present", "rationale": "if", "steps": [ { @@ -1115,7 +1115,7 @@ ] }, { - "html": "Let p be a new PeriodicWave object. Let [[real]] and [[imag]] be two internal slots of type Float32Array, and let [[normalize]] be an internal slot.", + "html": "Otherwise", "rationale": "set", "steps": [ { @@ -1525,7 +1525,7 @@ { "name": "initialize rendering loop", "href": "https://www.w3.org/TR/webaudio/#rendering-initialization", - "html": "Set the internal slot [[current frame]] of the BaseAudioContext to 0. Also set currentTime to 0.", + "html": "The following step MUST be performed once before the rendering loop starts.", "rationale": ".algorithm", "steps": [ { @@ -1536,21 +1536,21 @@ { "name": "rendering a graph", "href": "https://www.w3.org/TR/webaudio/#rendering-a-graph", - "html": "Visiting a node means performing\n\tthe following steps:", + "html": "The following steps MUST be performed when rendering a render quantum.", "rationale": ".algorithm", "steps": [ { "html": "

Let render result be false.

" }, { - "html": "Visiting a node means performing\n\tthe following steps:", + "html": "Process the control message queue.", "rationale": "let", "steps": [ { "html": "

Let Qrendering be an empty control message\nqueue. Atomically swap Qrendering with the current control message queue.

" }, { - "html": "Visiting a node means performing\n\tthe following steps:", + "html": "While there are messages in Qrendering, execute the\nfollowing steps:", "rationale": "execute", "steps": [ { @@ -1564,7 +1564,7 @@ ] }, { - "html": "Visiting a node means performing\n\tthe following steps:", + "html": "Process the BaseAudioContext's associated task queue.", "rationale": "let", "steps": [ { @@ -1574,7 +1574,7 @@ "html": "

Let task count be the number of tasks in the in task queue

" }, { - "html": "Visiting a node means performing\n\tthe following steps:", + "html": "While task count is not equal to 0, execute the following steps:", "rationale": "let", "steps": [ { @@ -1600,14 +1600,14 @@ ] }, { - "html": "Visiting a node means performing\n\tthe following steps:", + "html": "Process a render quantum.", "rationale": "if", "steps": [ { "html": "

If the [[rendering thread state]] of the BaseAudioContext is not running, return false.

" }, { - "html": "Visiting a node means performing\n\tthe following steps:", + "html": "Order the AudioNodes of the BaseAudioContext to be processed.", "rationale": "let", "steps": [ { @@ -1623,7 +1623,7 @@ "html": "

Let cycle breakers be an empty set of DelayNodes. It will\ncontain all the DelayNodes that are part of a cycle.

" }, { - "html": "Visiting a node means performing\n\tthe following steps:", + "html": "For each AudioNode node in nodes:", "rationale": "if", "steps": [ { @@ -1632,7 +1632,7 @@ ] }, { - "html": "Visiting a node means performing\n\tthe following steps:", + "html": "For each DelayNode delay in cycle breakers:", "rationale": "let", "steps": [ { @@ -1669,11 +1669,11 @@ "html": "

If node is an AudioNode, Visit each AudioNode connected to the input of node.

" }, { - "html": "Visiting a node means performing\n\tthe following steps:", + "html": "For each AudioParam param of node:", "rationale": "for", "steps": [ { - "html": "Visiting a node means performing\n\tthe following steps:", + "html": "For each AudioNode param input node connected to param:", "rationale": "visit", "steps": [ { @@ -1699,11 +1699,11 @@ "html": "

Compute the value(s) of the AudioListener's AudioParams for this block.

" }, { - "html": "Visiting a node means performing\n\tthe following steps:", + "html": "For each AudioNode, in ordered node list:", "rationale": "for", "steps": [ { - "html": "Visiting a node means performing\n\tthe following steps:", + "html": "For each AudioParam of this AudioNode, execute these steps:", "rationale": "if", "steps": [ { @@ -1724,7 +1724,7 @@ "html": "

If this AudioNode is a source node, compute a block of audio, and make it available for reading.

" }, { - "html": "Visiting a node means performing\n\tthe following steps:", + "html": "If this AudioNode is an AudioWorkletNode, execute these substeps:", "rationale": "let", "steps": [ { @@ -1755,7 +1755,7 @@ "html": "

Set processCallback to getResult.[[Value]].

" }, { - "html": "Visiting a node means performing\n\tthe following steps:", + "html": "If ! IsCallable(processCallback) is false, then:", "rationale": "set", "steps": [ { @@ -1770,7 +1770,7 @@ "html": "

Set [[callable process]] to true.

" }, { - "html": "Visiting a node means performing\n\tthe following steps:", + "html": "Perform the following substeps:", "rationale": "let", "steps": [ { @@ -1791,7 +1791,7 @@ ] }, { - "html": "Visiting a node means performing\n\tthe following steps:", + "html": "Return: at this point completion will be set to an ECMAScript completion value.", "rationale": "clean", "steps": [ { @@ -1801,7 +1801,7 @@ "html": "

Clean up after running script with the current settings object.

" }, { - "html": "Visiting a node means performing\n\tthe following steps:", + "html": "If completion is an abrupt completion:", "rationale": "set", "steps": [ { @@ -1831,7 +1831,7 @@ ] }, { - "html": "Visiting a node means performing\n\tthe following steps:", + "html": "Atomically perform the following steps:", "rationale": "increment", "steps": [ { diff --git a/tr/algorithms/webauthn-3.json b/tr/algorithms/webauthn-3.json index 05c26567d0e1..8b73f17b000b 100644 --- a/tr/algorithms/webauthn-3.json +++ b/tr/algorithms/webauthn-3.json @@ -268,7 +268,7 @@ ] }, { - "html": "If pkOptions.authenticatorSelection.residentKey", + "html": "Let requireResidentKey be the effective resident key requirement for credential creation, a Boolean value, as follows:", "rationale": ".switch", "steps": [ { @@ -280,7 +280,7 @@ }, { "case": "is present and set to preferred", - "html": "If the authenticator", + "html": "Let requireResidentKey be the effective resident key requirement for credential creation, a Boolean value, as follows:", "rationale": ".switch", "steps": [ { @@ -323,7 +323,7 @@ }, { "case": "is set to preferred", - "html": "If the authenticator", + "html": "Let userVerification be the effective user verification requirement for credential creation, a Boolean value,\nas follows. If pkOptions.authenticatorSelection.userVerification", "rationale": ".switch", "steps": [ { @@ -415,7 +415,7 @@ }, { "case": "If any authenticator returns a status indicating that the user cancelled the operation,", - "html": "", + "html": "This authenticator is now the candidate authenticator.", "rationale": "remove", "steps": [ { @@ -428,7 +428,7 @@ }, { "case": "If any authenticator returns an error status equivalent to \"InvalidStateError\",", - "html": "", + "html": "This authenticator is now the candidate authenticator.", "rationale": "remove", "steps": [ { @@ -448,7 +448,7 @@ }, { "case": "If any authenticator indicates success,", - "html": "", + "html": "This authenticator is now the candidate authenticator.", "rationale": "remove", "steps": [ { @@ -663,7 +663,7 @@ }, { "case": "If options.mediation is conditional and the user interacts with an input or textarea form control with an autocomplete attribute whose value contains a \"webauthn\" autofill detail token,", - "html": "", + "html": "

Let assertionCreationData be a struct whose items are:

\n
\n
credentialIdResult\n
\n

If savedCredentialIds[authenticator] exists, set the value of credentialIdResult to be\nthe bytes of savedCredentialIds[authenticator]. Otherwise, set the value of credentialIdResult to be the bytes of the credential ID returned from the successful authenticatorGetAssertion operation, as defined in § 6.3.3 The authenticatorGetAssertion Operation.

\n
clientDataJSONResult\n
\n

whose value is the bytes of clientDataJSON.

\n
authenticatorDataResult\n
\n

whose value is the bytes of the authenticator data returned by the authenticator.

\n
signatureResult\n
\n

whose value is the bytes of the signature value returned by the authenticator.

\n
userHandleResult\n
\n

If the authenticator returned a user handle, set the value of userHandleResult to be the bytes of\nthe returned user handle. Otherwise, set the value of userHandleResult to null.

\n
assertionAttestation\n
\n

If the authenticator returned an attestation, set the value of assertionAttestation to be the bytes of\nthe attestation statement. Otherwise set it to null.

\n
clientExtensionResults\n
\n

whose value is an AuthenticationExtensionsClientOutputs object containing extension identifierclient extension output entries. The entries are created by running each extension’s client extension processing algorithm to create the client extension outputs, for each client extension in pkOptions.extensions.

\n
", "rationale": "if", "steps": [ { @@ -704,7 +704,7 @@ }, { "case": "If an authenticator becomes available on this client device,", - "html": "", + "html": "

Let assertionCreationData be a struct whose items are:

\n
\n
credentialIdResult\n
\n

If savedCredentialIds[authenticator] exists, set the value of credentialIdResult to be\nthe bytes of savedCredentialIds[authenticator]. Otherwise, set the value of credentialIdResult to be the bytes of the credential ID returned from the successful authenticatorGetAssertion operation, as defined in § 6.3.3 The authenticatorGetAssertion Operation.

\n
clientDataJSONResult\n
\n

whose value is the bytes of clientDataJSON.

\n
authenticatorDataResult\n
\n

whose value is the bytes of the authenticator data returned by the authenticator.

\n
signatureResult\n
\n

whose value is the bytes of the signature value returned by the authenticator.

\n
userHandleResult\n
\n

If the authenticator returned a user handle, set the value of userHandleResult to be the bytes of\nthe returned user handle. Otherwise, set the value of userHandleResult to null.

\n
assertionAttestation\n
\n

If the authenticator returned an attestation, set the value of assertionAttestation to be the bytes of\nthe attestation statement. Otherwise set it to null.

\n
clientExtensionResults\n
\n

whose value is an AuthenticationExtensionsClientOutputs object containing extension identifierclient extension output entries. The entries are created by running each extension’s client extension processing algorithm to create the client extension outputs, for each client extension in pkOptions.extensions.

\n
", "rationale": "if", "steps": [ { @@ -745,7 +745,7 @@ }, { "case": "If any authenticator returns a status indicating that the user cancelled the operation,", - "html": "", + "html": "

Let assertionCreationData be a struct whose items are:

\n
\n
credentialIdResult\n
\n

If savedCredentialIds[authenticator] exists, set the value of credentialIdResult to be\nthe bytes of savedCredentialIds[authenticator]. Otherwise, set the value of credentialIdResult to be the bytes of the credential ID returned from the successful authenticatorGetAssertion operation, as defined in § 6.3.3 The authenticatorGetAssertion Operation.

\n
clientDataJSONResult\n
\n

whose value is the bytes of clientDataJSON.

\n
authenticatorDataResult\n
\n

whose value is the bytes of the authenticator data returned by the authenticator.

\n
signatureResult\n
\n

whose value is the bytes of the signature value returned by the authenticator.

\n
userHandleResult\n
\n

If the authenticator returned a user handle, set the value of userHandleResult to be the bytes of\nthe returned user handle. Otherwise, set the value of userHandleResult to null.

\n
assertionAttestation\n
\n

If the authenticator returned an attestation, set the value of assertionAttestation to be the bytes of\nthe attestation statement. Otherwise set it to null.

\n
clientExtensionResults\n
\n

whose value is an AuthenticationExtensionsClientOutputs object containing extension identifierclient extension output entries. The entries are created by running each extension’s client extension processing algorithm to create the client extension outputs, for each client extension in pkOptions.extensions.

\n
", "rationale": "remove", "steps": [ { @@ -826,7 +826,7 @@ }, { "case": "is set to preferred", - "html": "If the authenticator", + "html": "Let userVerification be the effective user verification requirement for assertion, a Boolean value, as\nfollows. If pkOptions.userVerification", "rationale": ".switch", "steps": [ { diff --git a/tr/algorithms/webdriver2.json b/tr/algorithms/webdriver2.json index 2b0dd38c2b3a..57b03f868a4b 100644 --- a/tr/algorithms/webdriver2.json +++ b/tr/algorithms/webdriver2.json @@ -5604,20 +5604,20 @@ "html": "

Let is string value be false.\n\n

" }, { - "html": "

If value is a string set value to\n the map «[\"fallbackDefault\"\n → value]» and set is string value to true.\n\n

" + "html": "

If value is a string set value to\n the map «[\"fallbackDefault\"\n → value]» and set is string value to true.\n\n

" }, { - "html": "

If value is not a map return\n error with error code invalid argument.\n\n

" + "html": "

If value is not a map return\n error with error code invalid argument.\n\n

" }, { - "html": "Let user prompt handler be an empty map." + "html": "Let user prompt handler be an empty map." }, { "html": "For each prompt typehandler in value:", "rationale": "if", "steps": [ { - "html": "

If is string value is false and valid prompt\n types does not contain prompt type\n return error with error code invalid argument.\n\n

" + "html": "

If is string value is false and valid prompt\n types does not contain prompt type\n return error with error code invalid argument.\n\n

" }, { "html": "

If known prompt handlers does not contain an entry\n with handler key handler return error\n with error code invalid argument.\n\n

" @@ -5661,7 +5661,7 @@ "rationale": "if", "steps": [ { - "html": "If the user prompt handler\n contains request prompt type:", + "html": "If the user prompt handler\n contains request prompt type:", "rationale": "if", "steps": [ { @@ -5709,7 +5709,7 @@ "html": "

If the user prompt handler has size 1,\n and user prompt handler contains\n \"fallbackDefault\", return the result of serialize a prompt\n handler configuration with user prompt\n handler[\"fallbackDefault\"].\n\n

" }, { - "html": "

Let serialized be an empty map.\n\n

" + "html": "

Let serialized be an empty map.\n\n

" }, { "html": "For each keyvalue of user prompt\n handler:", @@ -5744,7 +5744,7 @@ "html": "

If type is \"beforeUnload\", return a\n prompt handler configuration with handler \"accept\"\n and notify false.\n\n

" }, { - "html": "

If handlers contains \"fallbackDefault\"\n return handlers[\"default\"].\n\n

" + "html": "

If handlers contains \"fallbackDefault\"\n return handlers[\"fallbackDefault\"].\n\n

" }, { "html": "

Return a prompt handler\n configuration with handler \"dismiss\" and notify true.\n

" diff --git a/tr/algorithms/webgpu.json b/tr/algorithms/webgpu.json index 219fe2e22113..7876ae5d547e 100644 --- a/tr/algorithms/webgpu.json +++ b/tr/algorithms/webgpu.json @@ -89,7 +89,7 @@ "html": "

Invalidate device.

" }, { - "html": "To lose the device(device, reason) run the following device timeline steps:", + "html": "

Issue the following steps on the content timeline of device.[[content device]]:

\n
\n \n
", "rationale": "resolve", "steps": [ { @@ -163,7 +163,7 @@ "html": "

Let v be the ECMAScript Number resulting from ! converting idlValue to an ECMAScript value.

" }, { - "html": "To convert an IDL value idlValue of type double or float to WGSL type T,\n possibly throwing a TypeError, run the following device timeline steps:", + "html": "
\n
If T is bool\n
\n

Return the WGSL bool value corresponding to the result of ! converting v to an IDL value of type boolean.

\n \n
If T is i32\n
\n

Return the WGSL i32 value corresponding to the result of ? converting v to an IDL value of type [EnforceRange] long.

\n
If T is u32\n
\n

Return the WGSL u32 value corresponding to the result of ? converting v to an IDL value of type [EnforceRange] unsigned long.

\n
If T is f32\n
\n

Return the WGSL f32 value corresponding to the result of ? converting v to an IDL value of type float.

\n
If T is f16\n
\n \n \n
", "rationale": ".switch", "steps": [ { @@ -187,7 +187,7 @@ }, { "case": "If T is f16", - "html": "To convert an IDL value idlValue of type double or float to WGSL type T,\n possibly throwing a TypeError, run the following device timeline steps:", + "html": "", "rationale": "let", "steps": [ { @@ -211,7 +211,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "To convert a GPUColor color to a texel value of texture format format,\n possibly throwing a TypeError, run the following device timeline steps:", + "html": "If the components of format (assert they all have the same type) are:", "rationale": ".switch", "steps": [ { @@ -271,7 +271,7 @@ "html": "

Let adapter be null.

" }, { - "html": "\n \n \n \n \n \n
Arguments for the GPU.requestAdapter(options) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
options \n GPURequestAdapterOptions\n \n \n Criteria used to select the adapter. \n
", + "html": "If the user agent chooses to return an adapter:", "rationale": "set", "steps": [ { @@ -294,7 +294,7 @@ "rationale": "if", "steps": [ { - "html": "\n \n \n \n \n \n
Arguments for the GPU.requestAdapter(options) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
options \n GPURequestAdapterOptions\n \n \n Criteria used to select the adapter. \n
", + "html": "If adapter is not null:", "rationale": "resolve", "steps": [ { @@ -357,7 +357,7 @@ "rationale": "if", "steps": [ { - "html": "\n \n \n \n \n \n
Arguments for the GPUAdapter.requestDevice(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPUDeviceDescriptor\n \n \n Description of the GPUDevice to request. \n
", + "html": "Content timeline steps:", "rationale": "reject", "steps": [ { @@ -366,7 +366,7 @@ ] }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUAdapter.requestDevice(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPUDeviceDescriptor\n \n \n Description of the GPUDevice to request. \n
", + "html": "Content timeline steps:", "rationale": "reject", "steps": [ { @@ -375,7 +375,7 @@ ] }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUAdapter.requestDevice(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPUDeviceDescriptor\n \n \n Description of the GPUDevice to request. \n
", + "html": "If adapter is expired,\nor the user agent otherwise cannot fulfill the request:", "rationale": "let", "steps": [ { @@ -387,7 +387,7 @@ ], "additional": [ { - "html": "\n \n \n \n \n \n
Arguments for the GPUAdapter.requestDevice(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPUDeviceDescriptor\n \n \n Description of the GPUDevice to request. \n
", + "html": "Otherwise:", "rationale": "let", "steps": [ { @@ -490,7 +490,7 @@ "html": "

Set b.usage to descriptor.usage.

" }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUDevice.createBuffer(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPUBufferDescriptor\n \n \n Description of the GPUBuffer to create. \n
", + "html": "If descriptor.mappedAtCreation is true:", "rationale": "set", "steps": [ { @@ -524,7 +524,7 @@ "rationale": "if", "steps": [ { - "html": "\n \n \n \n \n \n
Arguments for the GPUDevice.createBuffer(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPUBufferDescriptor\n \n \n Description of the GPUBuffer to create. \n
", + "html": "If descriptor.mappedAtCreation is true:", "rationale": "set", "steps": [ { @@ -533,7 +533,7 @@ ], "additional": [ { - "html": "\n \n \n \n \n \n
Arguments for the GPUDevice.createBuffer(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPUBufferDescriptor\n \n \n Description of the GPUBuffer to create. \n
", + "html": "Else:", "rationale": "set", "steps": [ { @@ -581,7 +581,7 @@ "html": "

Let contentTimeline be the current Content timeline.

" }, { - "html": "\n \n \n \n \n \n \n \n
Arguments for the GPUBuffer.mapAsync(mode, offset, size) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
mode \n GPUMapModeFlags\n \n \n Whether the buffer should be mapped for reading or writing. \n
offset \n GPUSize64\n \n \n Offset in bytes into the buffer to the start of the range to map. \n
size \n GPUSize64\n \n \n Size in bytes of the range to map. \n
", + "html": "If this.[[pending_map]] is not null:", "rationale": "return", "steps": [ { @@ -610,7 +610,7 @@ "rationale": "if", "steps": [ { - "html": "\n \n \n \n \n \n \n \n
Arguments for the GPUBuffer.mapAsync(mode, offset, size) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
mode \n GPUMapModeFlags\n \n \n Whether the buffer should be mapped for reading or writing. \n
offset \n GPUSize64\n \n \n Offset in bytes into the buffer to the start of the range to map. \n
size \n GPUSize64\n \n \n Size in bytes of the range to map. \n
", + "html": "If size is undefined:", "rationale": "let", "steps": [ { @@ -619,7 +619,7 @@ ], "additional": [ { - "html": "\n \n \n \n \n \n \n \n
Arguments for the GPUBuffer.mapAsync(mode, offset, size) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
mode \n GPUMapModeFlags\n \n \n Whether the buffer should be mapped for reading or writing. \n
offset \n GPUSize64\n \n \n Offset in bytes into the buffer to the start of the range to map. \n
size \n GPUSize64\n \n \n Size in bytes of the range to map. \n
", + "html": "Otherwise:", "rationale": "let", "steps": [ { @@ -630,7 +630,7 @@ ] }, { - "html": "\n \n \n \n \n \n \n \n
Arguments for the GPUBuffer.mapAsync(mode, offset, size) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
mode \n GPUMapModeFlags\n \n \n Whether the buffer should be mapped for reading or writing. \n
offset \n GPUSize64\n \n \n Offset in bytes into the buffer to the start of the range to map. \n
size \n GPUSize64\n \n \n Size in bytes of the range to map. \n
", + "html": "Then:", "rationale": "issue", "steps": [ { @@ -659,7 +659,7 @@ "rationale": "if", "steps": [ { - "html": "\n \n \n \n \n \n \n \n
Arguments for the GPUBuffer.mapAsync(mode, offset, size) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
mode \n GPUMapModeFlags\n \n \n Whether the buffer should be mapped for reading or writing. \n
offset \n GPUSize64\n \n \n Offset in bytes into the buffer to the start of the range to map. \n
size \n GPUSize64\n \n \n Size in bytes of the range to map. \n
", + "html": "If this.[[device]] is lost:", "rationale": "issue", "steps": [ { @@ -668,7 +668,7 @@ ], "additional": [ { - "html": "\n \n \n \n \n \n \n \n
Arguments for the GPUBuffer.mapAsync(mode, offset, size) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
mode \n GPUMapModeFlags\n \n \n Whether the buffer should be mapped for reading or writing. \n
offset \n GPUSize64\n \n \n Offset in bytes into the buffer to the start of the range to map. \n
size \n GPUSize64\n \n \n Size in bytes of the range to map. \n
", + "html": "Otherwise:", "rationale": "let", "steps": [ { @@ -693,7 +693,7 @@ "rationale": "if", "steps": [ { - "html": "\n \n \n \n \n \n \n \n
Arguments for the GPUBuffer.mapAsync(mode, offset, size) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
mode \n GPUMapModeFlags\n \n \n Whether the buffer should be mapped for reading or writing. \n
offset \n GPUSize64\n \n \n Offset in bytes into the buffer to the start of the range to map. \n
size \n GPUSize64\n \n \n Size in bytes of the range to map. \n
", + "html": "If this.[[pending_map]] != p:", "rationale": "assert", "steps": [ { @@ -711,7 +711,7 @@ "html": "

Assert internalStateAtCompletion is \"unavailable\".

" }, { - "html": "\n \n \n \n \n \n \n \n
Arguments for the GPUBuffer.mapAsync(mode, offset, size) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
mode \n GPUMapModeFlags\n \n \n Whether the buffer should be mapped for reading or writing. \n
offset \n GPUSize64\n \n \n Offset in bytes into the buffer to the start of the range to map. \n
size \n GPUSize64\n \n \n Size in bytes of the range to map. \n
", + "html": "If this allocation fails:", "rationale": "set", "steps": [ { @@ -740,7 +740,7 @@ "rationale": "if", "steps": [ { - "html": "\n \n \n \n \n \n \n \n
Arguments for the GPUBuffer.mapAsync(mode, offset, size) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
mode \n GPUMapModeFlags\n \n \n Whether the buffer should be mapped for reading or writing. \n
offset \n GPUSize64\n \n \n Offset in bytes into the buffer to the start of the range to map. \n
size \n GPUSize64\n \n \n Size in bytes of the range to map. \n
", + "html": "If this.[[pending_map]] != p:", "rationale": "assert", "steps": [ { @@ -766,7 +766,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "\n \n \n \n \n \n \n
Arguments for the GPUBuffer.getMappedRange(offset, size) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
offset \n GPUSize64\n \n \n Offset in bytes into the buffer to return buffer contents from. \n
size \n GPUSize64\n \n \n Size in bytes of the ArrayBuffer to return. \n
", + "html": "If size is missing:", "rationale": "let", "steps": [ { @@ -913,7 +913,7 @@ "html": "

Let extent be a new GPUExtent3DDict object.

" }, { - "html": "Logical miplevel-specific texture extent(descriptor, mipLevel) \n

Arguments:

\n \n

Returns: GPUExtent3DDict

", + "html": "If descriptor.dimension is:", "rationale": ".switch", "steps": [ { @@ -953,7 +953,7 @@ "html": "

Let logicalExtent be logical miplevel-specific texture extent(descriptor, mipLevel).

" }, { - "html": "Physical miplevel-specific texture extent(descriptor, mipLevel) \n

Arguments:

\n \n

Returns: GPUExtent3DDict

", + "html": "If descriptor.dimension is:", "rationale": ".switch", "steps": [ { @@ -987,7 +987,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "maximum mipLevel count(dimension, size) \n

Arguments:

\n ", + "html": "If dimension is:", "rationale": ".switch", "steps": [ { @@ -1088,7 +1088,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "validating GPUTextureDescriptor(this, descriptor): \n

Arguments:

\n \n

Device timeline steps:

", + "html": "If descriptor.dimension is:", "rationale": ".switch", "steps": [ { @@ -1152,7 +1152,7 @@ "html": "

Set descriptor to the result of resolving GPUTextureViewDescriptor defaults for this with descriptor.

" }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUTexture.createView(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPUTextureViewDescriptor\n \n \n Description of the GPUTextureView to create. \n
", + "html": "If descriptor.dimension is:", "rationale": ".switch", "steps": [ { @@ -1196,7 +1196,7 @@ "html": "

Set view.[[descriptor]] to descriptor.

" }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUTexture.createView(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPUTextureViewDescriptor\n \n \n Description of the GPUTextureView to create. \n
", + "html": "If this.usage contains RENDER_ATTACHMENT:", "rationale": "let", "steps": [ { @@ -1219,7 +1219,7 @@ "html": "

Let resolved be a copy of descriptor.

" }, { - "html": "When resolving GPUTextureViewDescriptor defaults for GPUTextureView texture with a GPUTextureViewDescriptor descriptor, run the following device timeline steps:", + "html": "If resolved.format is not provided:", "rationale": "let", "steps": [ { @@ -1234,7 +1234,7 @@ "html": "

If resolved.mipLevelCount is not provided:\nset resolved.mipLevelCount to texture.mipLevelCountresolved.baseMipLevel.

" }, { - "html": "When resolving GPUTextureViewDescriptor defaults for GPUTextureView texture with a GPUTextureViewDescriptor descriptor, run the following device timeline steps:", + "html": "If resolved.dimension is not provided and texture.dimension is:", "rationale": ".switch", "steps": [ { @@ -1257,7 +1257,7 @@ ] }, { - "html": "When resolving GPUTextureViewDescriptor defaults for GPUTextureView texture with a GPUTextureViewDescriptor descriptor, run the following device timeline steps:", + "html": "If resolved.arrayLayerCount is not provided and resolved.dimension is:", "rationale": ".switch", "steps": [ { @@ -1291,7 +1291,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "To determine the array layer count of GPUTexture texture, run the\n following steps:", + "html": "If texture.dimension is:", "rationale": ".switch", "steps": [ { @@ -1318,7 +1318,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "resolving GPUTextureAspect(format, aspect) \n

Arguments:

\n \n

Returns: GPUTextureFormat or null

", + "html": "If aspect is:", "rationale": ".switch", "steps": [ { @@ -1352,7 +1352,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "To Validate texture format required features of a GPUTextureFormat format
with logical device device, run the following content timeline steps:", + "html": "If format requires a feature and device.[[features]] does not contain the feature:", "rationale": "throw", "steps": [ { @@ -1372,7 +1372,7 @@ "html": "

Let source be descriptor.source.

" }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUDevice.importExternalTexture(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPUExternalTextureDescriptor\n \n \n Provides the external image source object (and any creation options). \n
", + "html": "If the current image contents of source are the same as the most recent importExternalTexture() call with the same descriptor (ignoring label),\nand the user agent chooses to reuse it:", "rationale": "let", "steps": [ { @@ -1387,7 +1387,7 @@ ], "additional": [ { - "html": "\n \n \n \n \n \n
Arguments for the GPUDevice.importExternalTexture(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPUExternalTextureDescriptor\n \n \n Provides the external image source object (and any creation options). \n
", + "html": "Otherwise:", "rationale": "if", "steps": [ { @@ -1397,7 +1397,7 @@ "html": "

Let usability be ? check the usability of the image argument(source).

" }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUDevice.importExternalTexture(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPUExternalTextureDescriptor\n \n \n Provides the external image source object (and any creation options). \n
", + "html": "If usability is not good:", "rationale": "generate", "steps": [ { @@ -1419,7 +1419,7 @@ ] }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUDevice.importExternalTexture(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPUExternalTextureDescriptor\n \n \n Provides the external image source object (and any creation options). \n
", + "html": "

If source is an HTMLVideoElement, queue an automatic expiry task with device this and the following steps:

\n
\n \n
", "rationale": "set", "steps": [ { @@ -1428,7 +1428,7 @@ ] }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUDevice.importExternalTexture(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPUExternalTextureDescriptor\n \n \n Provides the external image source object (and any creation options). \n
", + "html": "

If source is a VideoFrame, then when source is closed, run the following steps:

\n
\n \n
", "rationale": "set", "steps": [ { @@ -1488,7 +1488,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The list of GPUBindGroupLayoutEntry values entries exceeds the binding slot limits of supported limits limits if the number of slots used toward a limit exceeds the supported value in limits.\n Each entry may use multiple slots toward multiple limits. \n

Device timeline steps:

", + "html": "For each entry in entries, if:", "rationale": ".switch", "steps": [ { @@ -1507,11 +1507,11 @@ ] }, { - "html": "The list of GPUBindGroupLayoutEntry values entries exceeds the binding slot limits of supported limits limits if the number of slots used toward a limit exceeds the supported value in limits.\n Each entry may use multiple slots toward multiple limits. \n

Device timeline steps:

", + "html": "For each shader stage stage in\n« VERTEX, FRAGMENT, COMPUTE »:", "rationale": "for", "steps": [ { - "html": "The list of GPUBindGroupLayoutEntry values entries exceeds the binding slot limits of supported limits limits if the number of slots used toward a limit exceeds the supported value in limits.\n Each entry may use multiple slots toward multiple limits. \n

Device timeline steps:

", + "html": "For each entry in entries for which entry.visibility contains stage, if:", "rationale": ".switch", "steps": [ { @@ -1556,7 +1556,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "\n \n \n \n \n \n
Arguments for the GPUDevice.createBindGroupLayout(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPUBindGroupLayoutDescriptor\n \n \n Description of the GPUBindGroupLayout to create. \n
", + "html": "For each GPUBindGroupLayoutEntry entry in descriptor.entries:", "rationale": "if", "steps": [ { @@ -1594,7 +1594,7 @@ "html": "

Set layout.[[dynamicOffsetCount]] to the number of\nentries in descriptor where buffer is provided and buffer.hasDynamicOffset is true.

" }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUDevice.createBindGroupLayout(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPUBindGroupLayoutDescriptor\n \n \n Description of the GPUBindGroupLayout to create. \n
", + "html": "For each GPUBindGroupLayoutEntry entry in descriptor.entries:", "rationale": "insert", "steps": [ { @@ -1617,7 +1617,7 @@ "html": "

Let dynamicOffsetIndex be 0.

" }, { - "html": "The bound buffer ranges of a GPUBindGroup bindGroup,\n given list<GPUBufferDynamicOffset> dynamicOffsets, are computed as follows:", + "html": "For each GPUBindGroupEntry bindGroupEntry in bindGroup.[[entries]],\nsorted by bindGroupEntry.binding:", "rationale": "let", "steps": [ { @@ -1633,7 +1633,7 @@ "html": "

Assert bound is a GPUBufferBinding.

" }, { - "html": "The bound buffer ranges of a GPUBindGroup bindGroup,\n given list<GPUBufferDynamicOffset> dynamicOffsets, are computed as follows:", + "html": "If bindGroupLayoutEntry.buffer.hasDynamicOffset:", "rationale": "increment", "steps": [ { @@ -1681,7 +1681,7 @@ "html": "

Let limits be this.[[device]].[[limits]].

" }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUDevice.createBindGroup(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPUBindGroupDescriptor\n \n \n Description of the GPUBindGroup to create. \n
", + "html": "If the defined binding member for layoutBinding is", "rationale": ".switch", "steps": [ { @@ -1689,7 +1689,7 @@ "steps": [ { "case": "sampler", - "html": "\n \n \n \n \n \n
Arguments for the GPUDevice.createBindGroup(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPUBindGroupDescriptor\n \n \n Description of the GPUBindGroup to create. \n
", + "html": "If layoutBinding.sampler.type is:", "rationale": ".switch", "steps": [ { @@ -1721,7 +1721,7 @@ }, { "case": "buffer", - "html": "\n \n \n \n \n \n
Arguments for the GPUDevice.createBindGroup(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPUBindGroupDescriptor\n \n \n Description of the GPUBindGroup to create. \n
", + "html": "If layoutBinding.buffer.type is", "rationale": ".switch", "steps": [ { @@ -1757,7 +1757,7 @@ "html": "

Let bindGroup.[[usedResources]] = {}.

" }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUDevice.createBindGroup(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPUBindGroupDescriptor\n \n \n Description of the GPUBindGroup to create. \n
", + "html": "For each GPUBindGroupEntry bindingDescriptor in descriptor.entries:", "rationale": "let", "steps": [ { @@ -1780,7 +1780,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "effective buffer binding size(binding) \n

Arguments:

\n \n

Returns: GPUSize64

", + "html": "If binding.size is not provided:", "rationale": "return", "steps": [ { @@ -2064,7 +2064,7 @@ "html": "

Let groupDescs be a sequence of device.[[limits]].maxBindGroups new GPUBindGroupLayoutDescriptor objects.

" }, { - "html": "To create a default pipeline layout for GPUPipelineBase pipeline,\nrun the following device timeline steps:", + "html": "For each groupDesc in groupDescs:", "rationale": "set", "steps": [ { @@ -2073,7 +2073,7 @@ ] }, { - "html": "To create a default pipeline layout for GPUPipelineBase pipeline,\nrun the following device timeline steps:", + "html": "For each GPUProgrammableStage stageDesc in the descriptor used to create pipeline:", "rationale": "let", "steps": [ { @@ -2083,7 +2083,7 @@ "html": "

Let entryPoint be get the entry point(shaderStage, stageDesc). Assert entryPoint is not null.

" }, { - "html": "To create a default pipeline layout for GPUPipelineBase pipeline,\nrun the following device timeline steps:", + "html": "For each resource resource statically used by entryPoint:", "rationale": "let", "steps": [ { @@ -2102,7 +2102,7 @@ "html": "

Set entry.visibility to shaderStage.

" }, { - "html": "To create a default pipeline layout for GPUPipelineBase pipeline,\nrun the following device timeline steps:", + "html": "If resource is for a sampler binding:", "rationale": "let", "steps": [ { @@ -2114,7 +2114,7 @@ ] }, { - "html": "To create a default pipeline layout for GPUPipelineBase pipeline,\nrun the following device timeline steps:", + "html": "If resource is for a comparison sampler binding:", "rationale": "let", "steps": [ { @@ -2129,7 +2129,7 @@ ] }, { - "html": "To create a default pipeline layout for GPUPipelineBase pipeline,\nrun the following device timeline steps:", + "html": "If resource is for a buffer binding:", "rationale": "let", "steps": [ { @@ -2139,7 +2139,7 @@ "html": "

Set bufferLayout.minBindingSize to resource’s minimum buffer binding size.

" }, { - "html": "To create a default pipeline layout for GPUPipelineBase pipeline,\nrun the following device timeline steps:", + "html": "If resource is for a read-only storage buffer:", "rationale": "set", "steps": [ { @@ -2148,7 +2148,7 @@ ] }, { - "html": "To create a default pipeline layout for GPUPipelineBase pipeline,\nrun the following device timeline steps:", + "html": "If resource is for a storage buffer:", "rationale": "set", "steps": [ { @@ -2162,14 +2162,14 @@ ] }, { - "html": "To create a default pipeline layout for GPUPipelineBase pipeline,\nrun the following device timeline steps:", + "html": "If resource is for a sampled texture binding:", "rationale": "let", "steps": [ { "html": "

Let textureLayout be a new GPUTextureBindingLayout.

" }, { - "html": "To create a default pipeline layout for GPUPipelineBase pipeline,\nrun the following device timeline steps:", + "html": "Else if the sampled type of resource is:", "rationale": ".switch", "steps": [ { @@ -2199,7 +2199,7 @@ "html": "

Set textureLayout.viewDimension to resource’s dimension.

" }, { - "html": "To create a default pipeline layout for GPUPipelineBase pipeline,\nrun the following device timeline steps:", + "html": "If resource is for a multisampled texture:", "rationale": "set", "steps": [ { @@ -2213,7 +2213,7 @@ ] }, { - "html": "To create a default pipeline layout for GPUPipelineBase pipeline,\nrun the following device timeline steps:", + "html": "If resource is for a storage texture binding:", "rationale": "let", "steps": [ { @@ -2226,7 +2226,7 @@ "html": "

Set storageTextureLayout.viewDimension to resource’s dimension.

" }, { - "html": "To create a default pipeline layout for GPUPipelineBase pipeline,\nrun the following device timeline steps:", + "html": "If the access mode is:", "rationale": ".switch", "steps": [ { @@ -2257,11 +2257,11 @@ "html": "

Set groupCount to max(groupCount, group + 1).

" }, { - "html": "To create a default pipeline layout for GPUPipelineBase pipeline,\nrun the following device timeline steps:", + "html": "If groupDescs[group] has an entry previousEntry with binding equal to binding:", "rationale": "if", "steps": [ { - "html": "To create a default pipeline layout for GPUPipelineBase pipeline,\nrun the following device timeline steps:", + "html": "If entry has different visibility than previousEntry:", "rationale": "add", "steps": [ { @@ -2270,7 +2270,7 @@ ] }, { - "html": "To create a default pipeline layout for GPUPipelineBase pipeline,\nrun the following device timeline steps:", + "html": "If resource is for a buffer binding and entry has greater buffer.minBindingSize than previousEntry:", "rationale": "set", "steps": [ { @@ -2279,7 +2279,7 @@ ] }, { - "html": "To create a default pipeline layout for GPUPipelineBase pipeline,\nrun the following device timeline steps:", + "html": "If resource is a sampled texture binding and entry has different texture.sampleType than previousEntry and both entry and previousEntry have texture.sampleType of either \"float\" or \"unfilterable-float\":", "rationale": "set", "steps": [ { @@ -2288,7 +2288,7 @@ ] }, { - "html": "To create a default pipeline layout for GPUPipelineBase pipeline,\nrun the following device timeline steps:", + "html": "If any other property is unequal between entry and previousEntry:", "rationale": "return", "steps": [ { @@ -2297,7 +2297,7 @@ ] }, { - "html": "To create a default pipeline layout for GPUPipelineBase pipeline,\nrun the following device timeline steps:", + "html": "If resource is a storage texture binding, entry.storageTexture.access is \"read-write\", previousEntry.storageTexture.access is \"write-only\", and previousEntry.storageTexture.format is compatible with STORAGE_BINDING and \"read-write\" according to the § 26.1.1 Plain color formats table:", "rationale": "set", "steps": [ { @@ -2308,7 +2308,7 @@ ] }, { - "html": "To create a default pipeline layout for GPUPipelineBase pipeline,\nrun the following device timeline steps:", + "html": "Else", "rationale": "append", "steps": [ { @@ -2324,7 +2324,7 @@ "html": "

Let groupLayouts be a new list.

" }, { - "html": "To create a default pipeline layout for GPUPipelineBase pipeline,\nrun the following device timeline steps:", + "html": "For each i from 0 to groupCount - 1, inclusive:", "rationale": "let", "steps": [ { @@ -2359,7 +2359,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "To get the entry point(GPUShaderStage stage, GPUProgrammableStage descriptor), run the following device timeline steps:", + "html": "If descriptor.entryPoint is provided:", "rationale": "if", "steps": [ { @@ -2368,7 +2368,7 @@ ], "additional": [ { - "html": "To get the entry point(GPUShaderStage stage, GPUProgrammableStage descriptor), run the following device timeline steps:", + "html": "Otherwise:", "rationale": "if", "steps": [ { @@ -2399,7 +2399,7 @@ "html": "

For each binding that is statically used by entryPoint:

\n " }, { - "html": "validating GPUProgrammableStage(stage, descriptor, layout, device) \n

Arguments:

\n \n

All of the requirements in the following steps must be met.\n If any are unmet, return false; otherwise, return true.

", + "html": "For each texture and sampler statically used together by entryPoint in texture sampling calls:", "rationale": "let", "steps": [ { @@ -2430,7 +2430,7 @@ { "name": "validating shader binding", "href": "https://www.w3.org/TR/webgpu/#abstract-opdef-validating-shader-binding", - "html": "validating shader binding(variable, layout) \n

Arguments:

\n
    \n
  • \n

    shader binding declaration variable, a module-scope variable declaration reflected from a shader module

    \n
  • \n

    GPUPipelineLayout layout

    \n
\n

Let bindGroup be the bind group index, and bindIndex be the binding index,\n of the shader binding declaration variable.

\n

Return true if all of the following conditions are satisfied:

\n ", + "html": "If the defined binding member for entry is:", "rationale": ".switch", "steps": [ { @@ -2438,7 +2438,7 @@ "steps": [ { "case": "buffer", - "html": "validating shader binding(variable, layout) \n

Arguments:

\n
    \n
  • \n

    shader binding declaration variable, a module-scope variable declaration reflected from a shader module

    \n
  • \n

    GPUPipelineLayout layout

    \n
\n

Let bindGroup be the bind group index, and bindIndex be the binding index,\n of the shader binding declaration variable.

\n

Return true if all of the following conditions are satisfied:

\n ", + "html": "If entry.buffer.type is:", "rationale": ".switch", "steps": [ { @@ -2462,7 +2462,7 @@ }, { "case": "sampler", - "html": "validating shader binding(variable, layout) \n

Arguments:

\n
    \n
  • \n

    shader binding declaration variable, a module-scope variable declaration reflected from a shader module

    \n
  • \n

    GPUPipelineLayout layout

    \n
\n

Let bindGroup be the bind group index, and bindIndex be the binding index,\n of the shader binding declaration variable.

\n

Return true if all of the following conditions are satisfied:

\n ", + "html": "If entry.sampler.type is:", "rationale": ".switch", "steps": [ { @@ -2486,7 +2486,7 @@ }, { "case": "storageTexture", - "html": "validating shader binding(variable, layout) \n

Arguments:

\n
    \n
  • \n

    shader binding declaration variable, a module-scope variable declaration reflected from a shader module

    \n
  • \n

    GPUPipelineLayout layout

    \n
\n

Let bindGroup be the bind group index, and bindIndex be the binding index,\n of the shader binding declaration variable.

\n

Return true if all of the following conditions are satisfied:

\n ", + "html": "If entry.storageTexture.viewDimension is:", "rationale": ".switch", "steps": [ { @@ -2569,7 +2569,7 @@ "html": "

Let layout be a new default pipeline layout for pipeline if descriptor.layout is \"auto\",\nand descriptor.layout otherwise.

" }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUDevice.createComputePipeline(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPUComputePipelineDescriptor\n \n \n Description of the GPUComputePipeline to create. \n
", + "html": "

All of the requirements in the following steps must be met.\nIf any are unmet, generate a validation error, invalidate pipeline, and stop.

\n
\n \n
", "rationale": "let", "steps": [ { @@ -2641,7 +2641,7 @@ "rationale": "if", "steps": [ { - "html": "\n \n \n \n \n \n
Arguments for the GPUDevice.createComputePipelineAsync(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPUComputePipelineDescriptor\n \n \n Description of the GPUComputePipeline to create. \n
", + "html": "Content timeline steps:", "rationale": "resolve", "steps": [ { @@ -2650,7 +2650,7 @@ ] }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUDevice.createComputePipelineAsync(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPUComputePipelineDescriptor\n \n \n Description of the GPUComputePipeline to create. \n
", + "html": "Content timeline steps:", "rationale": "reject", "steps": [ { @@ -2659,7 +2659,7 @@ ] }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUDevice.createComputePipelineAsync(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPUComputePipelineDescriptor\n \n \n Description of the GPUComputePipeline to create. \n
", + "html": "Content timeline steps:", "rationale": "reject", "steps": [ { @@ -2676,7 +2676,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "\n \n \n \n \n \n
Arguments for the GPUDevice.createRenderPipeline(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPURenderPipelineDescriptor\n \n \n Description of the GPURenderPipeline to create. \n
", + "html": "If descriptor.fragment is provided:", "rationale": "for", "steps": [ { @@ -2732,11 +2732,11 @@ "html": "

Let depthStencil be descriptor.depthStencil.

" }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUDevice.createRenderPipeline(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPURenderPipelineDescriptor\n \n \n Description of the GPURenderPipeline to create. \n
", + "html": "If depthStencil is not null:", "rationale": "if", "steps": [ { - "html": "\n \n \n \n \n \n
Arguments for the GPUDevice.createRenderPipeline(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPURenderPipelineDescriptor\n \n \n Description of the GPURenderPipeline to create. \n
", + "html": "If depthStencil.depthWriteEnabled is provided:", "rationale": "set", "steps": [ { @@ -2745,7 +2745,7 @@ ] }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUDevice.createRenderPipeline(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPURenderPipelineDescriptor\n \n \n Description of the GPURenderPipeline to create. \n
", + "html": "If depthStencil.stencilWriteMask is not 0:", "rationale": "let", "steps": [ { @@ -2758,7 +2758,7 @@ "html": "

Let cullMode be descriptor.primitive.cullMode.

" }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUDevice.createRenderPipeline(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPURenderPipelineDescriptor\n \n \n Description of the GPURenderPipeline to create. \n
", + "html": "If cullMode is not \"front\", and any of stencilFront.passOp, stencilFront.depthFailOp, or stencilFront.failOp is not \"keep\":", "rationale": "set", "steps": [ { @@ -2767,7 +2767,7 @@ ] }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUDevice.createRenderPipeline(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPURenderPipelineDescriptor\n \n \n Description of the GPURenderPipeline to create. \n
", + "html": "If cullMode is not \"back\", and any of stencilBack.passOp, stencilBack.depthFailOp, or stencilBack.failOp is not \"keep\":", "rationale": "set", "steps": [ { @@ -2825,7 +2825,7 @@ "rationale": "if", "steps": [ { - "html": "\n \n \n \n \n \n
Arguments for the GPUDevice.createRenderPipelineAsync(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPURenderPipelineDescriptor\n \n \n Description of the GPURenderPipeline to create. \n
", + "html": "Content timeline steps:", "rationale": "resolve", "steps": [ { @@ -2834,7 +2834,7 @@ ] }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUDevice.createRenderPipelineAsync(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPURenderPipelineDescriptor\n \n \n Description of the GPURenderPipeline to create. \n
", + "html": "Content timeline steps:", "rationale": "reject", "steps": [ { @@ -2843,7 +2843,7 @@ ] }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUDevice.createRenderPipelineAsync(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPURenderPipelineDescriptor\n \n \n Description of the GPURenderPipeline to create. \n
", + "html": "Content timeline steps:", "rationale": "reject", "steps": [ { @@ -2880,7 +2880,7 @@ "html": "

Let maxVertexShaderOutputVariables be device.limits.maxInterStageShaderVariables.

" }, { - "html": "validating inter-stage interfaces(device, descriptor) \n

Arguments:

\n \n

Returns: boolean

\n

Device timeline steps:

", + "html": "If descriptor.primitive.topology is \"point-list\":", "rationale": "decrement", "steps": [ { @@ -2889,11 +2889,11 @@ ] }, { - "html": "validating inter-stage interfaces(device, descriptor) \n

Arguments:

\n \n

Returns: boolean

\n

Device timeline steps:

", + "html": "If clip_distances is declared in the output of descriptor.vertex:", "rationale": "let", "steps": [ { - "html": "validating inter-stage interfaces(device, descriptor) \n

Arguments:

\n \n

Returns: boolean

\n

Device timeline steps:

", + "html": "Let clipDistancesSize be the array size of clip_distances.", "rationale": "decrement", "steps": [ { @@ -2910,15 +2910,15 @@ "html": "

Return false if any of the following requirements are unmet:

\n
    \n
  • \n

    There must be no more than maxVertexShaderOutputComponents scalar\ncomponents across all user-defined outputs for descriptor.vertex.\nEach user-defined output of descriptor.vertex consumes 4 scalar components.

    \n
  • \n

    The location of each user-defined output of descriptor.vertex must be\n< maxVertexShaderOutputVariables.

    \n
" }, { - "html": "validating inter-stage interfaces(device, descriptor) \n

Arguments:

\n \n

Returns: boolean

\n

Device timeline steps:

", + "html": "If descriptor.fragment is provided:", "rationale": "let", "steps": [ { - "html": "validating inter-stage interfaces(device, descriptor) \n

Arguments:

\n \n

Returns: boolean

\n

Device timeline steps:

", + "html": "Let maxFragmentShaderInputComponents be device.limits.maxInterStageShaderComponents.", "rationale": "if", "steps": [ { - "html": "validating inter-stage interfaces(device, descriptor) \n

Arguments:

\n \n

Returns: boolean

\n

Device timeline steps:

", + "html": "If the front_facing builtin is an input of descriptor.fragment:", "rationale": "decrement", "steps": [ { @@ -2927,7 +2927,7 @@ ] }, { - "html": "validating inter-stage interfaces(device, descriptor) \n

Arguments:

\n \n

Returns: boolean

\n

Device timeline steps:

", + "html": "If the sample_index builtin is an input of descriptor.fragment:", "rationale": "decrement", "steps": [ { @@ -2936,7 +2936,7 @@ ] }, { - "html": "validating inter-stage interfaces(device, descriptor) \n

Arguments:

\n \n

Returns: boolean

\n

Device timeline steps:

", + "html": "If the sample_mask builtin is an input of descriptor.fragment:", "rationale": "decrement", "steps": [ { @@ -2988,7 +2988,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "validating GPUFragmentState(device, descriptor, layout) \n

Arguments:

\n \n

Device timeline steps:

", + "html": "If the GPUTextureSampleTypes for colorState.format (defined in § 26.1 Texture Format Capabilities) are:", "rationale": ".switch", "steps": [ { @@ -3022,7 +3022,7 @@ "html": "

Let formats be an empty list<GPUTextureFormat?>

" }, { - "html": "Validating GPUFragmentState’s color attachment bytes per sample(device, targets) \n

Arguments:

\n \n

Device timeline steps:

", + "html": "For each target in targets:", "rationale": "if", "steps": [ { @@ -3054,7 +3054,7 @@ "html": "

Let maxDepthSlope be the maximum of the horizontal and vertical slopes of the fragment’s depth value.

" }, { - "html": "The biased fragment depth for a fragment being written to depthStencilAttachment attachment when drawing using GPUDepthStencilState state is calculated by running the following queue timeline steps:", + "html": "If format is a unorm format:", "rationale": "let", "steps": [ { @@ -3063,7 +3063,7 @@ ] }, { - "html": "The biased fragment depth for a fragment being written to depthStencilAttachment attachment when drawing using GPUDepthStencilState state is calculated by running the following queue timeline steps:", + "html": "Otherwise, if format is a float format:", "rationale": "let", "steps": [ { @@ -3072,7 +3072,7 @@ ] }, { - "html": "The biased fragment depth for a fragment being written to depthStencilAttachment attachment when drawing using GPUDepthStencilState state is calculated by running the following queue timeline steps:", + "html": "If state.depthBiasClamp > 0:", "rationale": "set", "steps": [ { @@ -3081,7 +3081,7 @@ ] }, { - "html": "The biased fragment depth for a fragment being written to depthStencilAttachment attachment when drawing using GPUDepthStencilState state is calculated by running the following queue timeline steps:", + "html": "Otherwise if state.depthBiasClamp < 0:", "rationale": "set", "steps": [ { @@ -3090,7 +3090,7 @@ ] }, { - "html": "The biased fragment depth for a fragment being written to depthStencilAttachment attachment when drawing using GPUDepthStencilState state is calculated by running the following queue timeline steps:", + "html": "If state.depthBias0 or state.depthBiasSlopeScale0:", "rationale": "set", "steps": [ { @@ -3118,7 +3118,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "validating GPUVertexBufferLayout(device, descriptor, vertexStage) \n

Arguments:

\n \n

Device timeline steps:

", + "html": "The type T of var is compatible with attrib.format's vertex data type:", "rationale": ".switch", "steps": [ { @@ -3174,7 +3174,7 @@ "html": "

Let texture be copyTexture.texture.

" }, { - "html": "The texture copy sub-region for depth slice or array layer index of GPUImageCopyTexture copyTexture is determined by running the following steps:", + "html": "If texture.dimension is:", "rationale": ".switch", "steps": [ { @@ -3182,7 +3182,7 @@ "steps": [ { "case": "1d", - "html": "The texture copy sub-region for depth slice or array layer index of GPUImageCopyTexture copyTexture is determined by running the following steps:", + "html": "", "rationale": "assert", "steps": [ { @@ -3269,7 +3269,7 @@ "html": "

Let offsetAlignment = texel block copy footprint of texture.format.

" }, { - "html": "validating texture buffer copy(imageCopyTexture, dataLayout, dataLength, copySize, textureUsage, aligned) \n

Arguments:

\n \n

Returns: boolean

\n

Device timeline steps:

", + "html": "

Return true if and only if all of the following conditions apply:

\n
\n \n
", "rationale": "if", "steps": [ { @@ -3282,14 +3282,14 @@ "html": "

texture.usage contains textureUsage.

" }, { - "html": "validating texture buffer copy(imageCopyTexture, dataLayout, dataLength, copySize, textureUsage, aligned) \n

Arguments:

\n \n

Returns: boolean

\n

Device timeline steps:

", + "html": "If texture.format is a depth-or-stencil format format:", "rationale": "if", "steps": [ { "html": "

imageCopyTexture.aspect must refer to a single aspect of texture.format.

" }, { - "html": "validating texture buffer copy(imageCopyTexture, dataLayout, dataLength, copySize, textureUsage, aligned) \n

Arguments:

\n \n

Returns: boolean

\n

Device timeline steps:

", + "html": "If textureUsage is:", "rationale": ".switch", "steps": [ { @@ -3347,14 +3347,14 @@ "html": "

Let requiredBytesInCopy be 0.

" }, { - "html": "validating linear texture data(layout, byteSize, format, copyExtent) \n

Arguments:

\n
\n
GPUImageDataLayout layout\n
\n

Layout of the linear texture data.

\n
GPUSize64 byteSize\n
\n

Total size of the linear data, in bytes.

\n
GPUTextureFormat format\n
\n

Format of the texture.

\n
GPUExtent3D copyExtent\n
\n

Extent of the texture to copy.

\n
\n

Device timeline steps:

", + "html": "If copyExtent.depthOrArrayLayers > 0:", "rationale": "increment", "steps": [ { "html": "

Increment requiredBytesInCopy by bytesPerRow × rowsPerImage × (copyExtent.depthOrArrayLayers − 1).

" }, { - "html": "validating linear texture data(layout, byteSize, format, copyExtent) \n

Arguments:

\n
\n
GPUImageDataLayout layout\n
\n

Layout of the linear texture data.

\n
GPUSize64 byteSize\n
\n

Total size of the linear data, in bytes.

\n
GPUTextureFormat format\n
\n

Format of the texture.

\n
GPUExtent3D copyExtent\n
\n

Extent of the texture to copy.

\n
\n

Device timeline steps:

", + "html": "If heightInBlocks > 0:", "rationale": "increment", "steps": [ { @@ -3396,7 +3396,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "To Validate the encoder state of GPUCommandsMixin encoder run the
following device timeline steps:", + "html": "If encoder.[[state]] is:", "rationale": ".switch", "steps": [ { @@ -3430,7 +3430,7 @@ "html": "

Append command to encoder.[[commands]].

" }, { - "html": "To Enqueue a command on GPUCommandsMixin encoder which issues the steps of a GPU Command command, run the following device timeline steps:", + "html": "When command is executed as part of a GPUCommandBuffer:", "rationale": "issue", "steps": [ { @@ -3475,7 +3475,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "\n \n \n \n \n \n
Arguments for the GPUCommandEncoder.beginRenderPass(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPURenderPassDescriptor\n \n \n Description of the GPURenderPassEncoder to create. \n
", + "html": "For each non-null colorAttachment in descriptor.colorAttachments:", "rationale": "if", "steps": [ { @@ -3513,14 +3513,14 @@ "html": "

Let attachmentRegions be a list of [texture subresource, depthSlice?]\npairs, initially empty. Each pair describes the region of the texture to be rendered to, which\nincludes a single depth slice for \"3d\" textures only.

" }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUCommandEncoder.beginRenderPass(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPURenderPassDescriptor\n \n \n Description of the GPURenderPassEncoder to create. \n
", + "html": "For each non-null colorAttachment in descriptor.colorAttachments:", "rationale": "add", "steps": [ { "html": "

Add [colorAttachment.view, colorAttachment.depthSlice] to attachmentRegions.

" }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUCommandEncoder.beginRenderPass(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPURenderPassDescriptor\n \n \n Description of the GPURenderPassEncoder to create. \n
", + "html": "If colorAttachment.{GPURenderPassColorAttachment/resolveTarget}} is not null:", "rationale": "add", "steps": [ { @@ -3540,7 +3540,7 @@ "html": "

Let depthStencilAttachment be descriptor.depthStencilAttachment,\nor null if not provided.

" }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUCommandEncoder.beginRenderPass(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPURenderPassDescriptor\n \n \n Description of the GPURenderPassEncoder to create. \n
", + "html": "If depthStencilAttachment is not null:", "rationale": "let", "steps": [ { @@ -3564,7 +3564,7 @@ "html": "

Set pass.[[layout]] to derive render targets layout from pass(descriptor).

" }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUCommandEncoder.beginRenderPass(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPURenderPassDescriptor\n \n \n Description of the GPURenderPassEncoder to create. \n
", + "html": "If descriptor.timestampWrites is provided:", "rationale": "let", "steps": [ { @@ -3614,14 +3614,14 @@ "html": "

Set [[renderState]].[[depthStencilAttachment]] to descriptor.depthStencilAttachment.

" }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUCommandEncoder.beginRenderPass(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPURenderPassDescriptor\n \n \n Description of the GPURenderPassEncoder to create. \n
", + "html": "For each non-null colorAttachment in descriptor.colorAttachments:", "rationale": "let", "steps": [ { "html": "

Let colorView be colorAttachment.view.

" }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUCommandEncoder.beginRenderPass(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPURenderPassDescriptor\n \n \n Description of the GPURenderPassEncoder to create. \n
", + "html": "If colorView.[[descriptor]].dimension is:", "rationale": ".switch", "steps": [ { @@ -3640,7 +3640,7 @@ ] }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUCommandEncoder.beginRenderPass(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPURenderPassDescriptor\n \n \n Description of the GPURenderPassEncoder to create. \n
", + "html": "If colorAttachment.loadOp is:", "rationale": ".switch", "steps": [ { @@ -3661,11 +3661,11 @@ ] }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUCommandEncoder.beginRenderPass(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPURenderPassDescriptor\n \n \n Description of the GPURenderPassEncoder to create. \n
", + "html": "If depthStencilAttachment is not null:", "rationale": "if", "steps": [ { - "html": "\n \n \n \n \n \n
Arguments for the GPUCommandEncoder.beginRenderPass(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPURenderPassDescriptor\n \n \n Description of the GPURenderPassEncoder to create. \n
", + "html": "If depthStencilAttachment.depthLoadOp is:", "rationale": ".switch", "steps": [ { @@ -3688,7 +3688,7 @@ ] }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUCommandEncoder.beginRenderPass(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPURenderPassDescriptor\n \n \n Description of the GPURenderPassEncoder to create. \n
", + "html": "If depthStencilAttachment.stencilLoadOp is:", "rationale": ".switch", "steps": [ { @@ -3747,7 +3747,7 @@ "html": "

If any of the following requirements are unmet, invalidate pass and return.

\n
\n \n
" }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUCommandEncoder.beginComputePass(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPUComputePassDescriptor\n \n \n \n
", + "html": "If descriptor.timestampWrites is provided:", "rationale": "let", "steps": [ { @@ -3921,18 +3921,18 @@ "html": "

Assert that dstBlockOriginX, dstBlockOriginY, blockColumns, and blockRows are integers.

" }, { - "html": "\n \n \n \n \n \n \n \n
Arguments for the GPUCommandEncoder.copyBufferToTexture(source, destination, copySize) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
source \n GPUImageCopyBuffer\n \n \n Combined with copySize, defines the region of the source buffer. \n
destination \n GPUImageCopyTexture\n \n \n Combined with copySize, defines the region of the destination texture subresource. \n
copySize \n GPUExtent3D\n \n \n \n
", + "html": "For each z in the range [0, copySize.depthOrArrayLayers − 1]:", "rationale": "let", "steps": [ { "html": "

Let dstSubregion be texture copy sub-region (z + dstOrigin.z) of destination.

" }, { - "html": "\n \n \n \n \n \n \n \n
Arguments for the GPUCommandEncoder.copyBufferToTexture(source, destination, copySize) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
source \n GPUImageCopyBuffer\n \n \n Combined with copySize, defines the region of the source buffer. \n
destination \n GPUImageCopyTexture\n \n \n Combined with copySize, defines the region of the destination texture subresource. \n
copySize \n GPUExtent3D\n \n \n \n
", + "html": "For each y in the range [0, blockRows − 1]:", "rationale": "for", "steps": [ { - "html": "\n \n \n \n \n \n \n \n
Arguments for the GPUCommandEncoder.copyBufferToTexture(source, destination, copySize) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
source \n GPUImageCopyBuffer\n \n \n Combined with copySize, defines the region of the source buffer. \n
destination \n GPUImageCopyTexture\n \n \n Combined with copySize, defines the region of the destination texture subresource. \n
copySize \n GPUExtent3D\n \n \n \n
", + "html": "For each x in the range [0, blockColumns − 1]:", "rationale": "let", "steps": [ { @@ -4020,18 +4020,18 @@ "html": "

Assert that srcBlockOriginX, srcBlockOriginY, blockColumns, and blockRows are integers.

" }, { - "html": "\n \n \n \n \n \n \n \n
Arguments for the GPUCommandEncoder.copyTextureToBuffer(source, destination, copySize) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
source \n GPUImageCopyTexture\n \n \n Combined with copySize, defines the region of the source texture subresources. \n
destination \n GPUImageCopyBuffer\n \n \n Combined with copySize, defines the region of the destination buffer. \n
copySize \n GPUExtent3D\n \n \n \n
", + "html": "For each z in the range [0, copySize.depthOrArrayLayers − 1]:", "rationale": "let", "steps": [ { "html": "

Let srcSubregion be texture copy sub-region (z + srcOrigin.z) of source.

" }, { - "html": "\n \n \n \n \n \n \n \n
Arguments for the GPUCommandEncoder.copyTextureToBuffer(source, destination, copySize) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
source \n GPUImageCopyTexture\n \n \n Combined with copySize, defines the region of the source texture subresources. \n
destination \n GPUImageCopyBuffer\n \n \n Combined with copySize, defines the region of the destination buffer. \n
copySize \n GPUExtent3D\n \n \n \n
", + "html": "For each y in the range [0, blockRows − 1]:", "rationale": "for", "steps": [ { - "html": "\n \n \n \n \n \n \n \n
Arguments for the GPUCommandEncoder.copyTextureToBuffer(source, destination, copySize) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
source \n GPUImageCopyTexture\n \n \n Combined with copySize, defines the region of the source texture subresources. \n
destination \n GPUImageCopyBuffer\n \n \n Combined with copySize, defines the region of the destination buffer. \n
copySize \n GPUExtent3D\n \n \n \n
", + "html": "For each x in the range [0, blockColumns − 1]:", "rationale": "let", "steps": [ { @@ -4125,7 +4125,7 @@ "html": "

Assert that srcBlockOriginX, srcBlockOriginY, dstBlockOriginX, dstBlockOriginY, blockColumns, and blockRows are integers.

" }, { - "html": "\n \n \n \n \n \n \n \n
Arguments for the GPUCommandEncoder.copyTextureToTexture(source, destination, copySize) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
source \n GPUImageCopyTexture\n \n \n Combined with copySize, defines the region of the source texture subresources. \n
destination \n GPUImageCopyTexture\n \n \n Combined with copySize, defines the region of the destination texture subresources. \n
copySize \n GPUExtent3D\n \n \n \n
", + "html": "For each z in the range [0, copySize.depthOrArrayLayers − 1]:", "rationale": "let", "steps": [ { @@ -4135,11 +4135,11 @@ "html": "

Let dstSubregion be texture copy sub-region (z + dstOrigin.z) of destination.

" }, { - "html": "\n \n \n \n \n \n \n \n
Arguments for the GPUCommandEncoder.copyTextureToTexture(source, destination, copySize) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
source \n GPUImageCopyTexture\n \n \n Combined with copySize, defines the region of the source texture subresources. \n
destination \n GPUImageCopyTexture\n \n \n Combined with copySize, defines the region of the destination texture subresources. \n
copySize \n GPUExtent3D\n \n \n \n
", + "html": "For each y in the range [0, blockRows − 1]:", "rationale": "for", "steps": [ { - "html": "\n \n \n \n \n \n \n \n
Arguments for the GPUCommandEncoder.copyTextureToTexture(source, destination, copySize) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
source \n GPUImageCopyTexture\n \n \n Combined with copySize, defines the region of the source texture subresources. \n
destination \n GPUImageCopyTexture\n \n \n Combined with copySize, defines the region of the destination texture subresources. \n
copySize \n GPUExtent3D\n \n \n \n
", + "html": "For each x in the range [0, blockColumns − 1]:", "rationale": "set", "steps": [ { @@ -4194,7 +4194,7 @@ "html": "

Let offset be destinationOffset.

" }, { - "html": "\n \n \n \n \n \n \n \n \n \n
Arguments for the GPUCommandEncoder.resolveQuerySet(querySet, firstQuery, queryCount, destination, destinationOffset) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
querySet \n GPUQuerySet\n \n \n \n
firstQuery \n GPUSize32\n \n \n \n
queryCount \n GPUSize32\n \n \n \n
destination \n GPUBuffer\n \n \n \n
destinationOffset \n GPUSize64\n \n \n \n
", + "html": "While queryIndex < firstQuery + queryCount:", "rationale": "set", "steps": [ { @@ -4240,7 +4240,7 @@ "html": "

Set this.[[state]] to \"ended\".

" }, { - "html": "\n \n \n \n \n \n
Arguments for the GPUCommandEncoder.finish(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPUCommandBufferDescriptor\n \n \n \n
", + "html": "If validationSucceeded is false, then:", "rationale": "generate", "steps": [ { @@ -4283,7 +4283,7 @@ "html": "

If any of the following requirements are unmet, invalidate this and stop.

\n
\n \n
" }, { - "html": "Called on: GPUBindingCommandsMixin this. \n

Arguments:

\n
\n
index, of type GPUIndex32, non-nullable, required\n
\n

The index to set the bind group at.

\n
bindGroup, of type GPUBindGroup, nullable, required\n
\n

Bind group to use for subsequent render or compute commands.

\n
dynamicOffsets, of type sequence<GPUBufferDynamicOffset>, non-nullable, defaulting to []\n
\n

Array containing buffer offsets in bytes for each entry in bindGroup marked as buffer.hasDynamicOffset.

\n
\n

Returns: undefined

\n \n

Content timeline steps:

", + "html": "If bindGroup is null:", "rationale": "remove", "steps": [ { @@ -4295,7 +4295,7 @@ ], "additional": [ { - "html": "Called on: GPUBindingCommandsMixin this. \n

Arguments:

\n
\n
index, of type GPUIndex32, non-nullable, required\n
\n

The index to set the bind group at.

\n
bindGroup, of type GPUBindGroup, nullable, required\n
\n

Bind group to use for subsequent render or compute commands.

\n
dynamicOffsets, of type sequence<GPUBufferDynamicOffset>, non-nullable, defaulting to []\n
\n

Array containing buffer offsets in bytes for each entry in bindGroup marked as buffer.hasDynamicOffset.

\n
\n

Returns: undefined

\n \n

Content timeline steps:

", + "html": "Otherwise:", "rationale": "if", "steps": [ { @@ -4343,14 +4343,14 @@ "html": "

Let layout be bindGroup.[[layout]].

" }, { - "html": "To Iterate over each dynamic binding offset in a given GPUBindGroup bindGroup with a given list of steps to be executed for each dynamic offset, run the following device timeline steps:", + "html": "For each GPUBindGroupEntry entry in bindGroup.[[entries]] ordered in increasing values of entry.binding:", "rationale": "let", "steps": [ { "html": "

Let bindingDescriptor be the GPUBindGroupLayoutEntry at layout.[[entryMap]][entry.binding]:

" }, { - "html": "To Iterate over each dynamic binding offset in a given GPUBindGroup bindGroup with a given list of steps to be executed for each dynamic offset, run the following device timeline steps:", + "html": "If bindingDescriptor.buffer?.hasDynamicOffset is true:", "rationale": "let", "steps": [ { @@ -4389,7 +4389,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "Encoder bind groups alias a writable resource(encoder, pipeline)\n if any writable buffer binding range overlaps with any other binding range of the same buffer,\n or any writable texture binding overlaps in texture subresources with any other texture binding\n (which may use the same or a different GPUTextureView object). \n

Arguments:

\n
\n
GPUBindingCommandsMixin encoder\n
\n

Encoder whose bind groups are being validated.

\n
GPUPipelineBase pipeline\n
\n

Pipeline to validate encoders bind groups are compatible with.

\n
\n

Device timeline steps:

", + "html": "For each stage in [VERTEX, FRAGMENT, COMPUTE]:", "rationale": "let", "steps": [ { @@ -4399,7 +4399,7 @@ "html": "

Let textureViews be a list of (GPUTextureView, boolean) pairs,\nwhere the latter indicates whether the resource was used as writable.

" }, { - "html": "Encoder bind groups alias a writable resource(encoder, pipeline)\n if any writable buffer binding range overlaps with any other binding range of the same buffer,\n or any writable texture binding overlaps in texture subresources with any other texture binding\n (which may use the same or a different GPUTextureView object). \n

Arguments:

\n
\n
GPUBindingCommandsMixin encoder\n
\n

Encoder whose bind groups are being validated.

\n
GPUPipelineBase pipeline\n
\n

Pipeline to validate encoders bind groups are compatible with.

\n
\n

Device timeline steps:

", + "html": "For each pair of (GPUIndex32 bindGroupIndex, GPUBindGroupLayout bindGroupLayout) in pipeline.[[layout]].[[bindGroupLayouts]]:", "rationale": "let", "steps": [ { @@ -4412,14 +4412,14 @@ "html": "

Let bufferRanges be the bound buffer ranges of bindGroup,\ngiven dynamic offsets encoder.[[dynamic_offsets]][bindGroupIndex]

" }, { - "html": "Encoder bind groups alias a writable resource(encoder, pipeline)\n if any writable buffer binding range overlaps with any other binding range of the same buffer,\n or any writable texture binding overlaps in texture subresources with any other texture binding\n (which may use the same or a different GPUTextureView object). \n

Arguments:

\n
\n
GPUBindingCommandsMixin encoder\n
\n

Encoder whose bind groups are being validated.

\n
GPUPipelineBase pipeline\n
\n

Pipeline to validate encoders bind groups are compatible with.

\n
\n

Device timeline steps:

", + "html": "For each (GPUBindGroupLayoutEntry bindGroupLayoutEntry, GPUBufferBinding resource) in bufferRanges, in which bindGroupLayoutEntry.visibility contains stage:", "rationale": "let", "steps": [ { "html": "

Let resourceWritable be (bindGroupLayoutEntry.buffer.type == \"storage\").

" }, { - "html": "Encoder bind groups alias a writable resource(encoder, pipeline)\n if any writable buffer binding range overlaps with any other binding range of the same buffer,\n or any writable texture binding overlaps in texture subresources with any other texture binding\n (which may use the same or a different GPUTextureView object). \n

Arguments:

\n
\n
GPUBindingCommandsMixin encoder\n
\n

Encoder whose bind groups are being validated.

\n
GPUPipelineBase pipeline\n
\n

Pipeline to validate encoders bind groups are compatible with.

\n
\n

Device timeline steps:

", + "html": "For each pair (GPUBufferBinding pastResource, boolean pastResourceWritable) in bufferBindings:", "rationale": "if", "steps": [ { @@ -4433,7 +4433,7 @@ ] }, { - "html": "Encoder bind groups alias a writable resource(encoder, pipeline)\n if any writable buffer binding range overlaps with any other binding range of the same buffer,\n or any writable texture binding overlaps in texture subresources with any other texture binding\n (which may use the same or a different GPUTextureView object). \n

Arguments:

\n
\n
GPUBindingCommandsMixin encoder\n
\n

Encoder whose bind groups are being validated.

\n
GPUPipelineBase pipeline\n
\n

Pipeline to validate encoders bind groups are compatible with.

\n
\n

Device timeline steps:

", + "html": "For each GPUBindGroupLayoutEntry bindGroupLayoutEntry in bindGroupLayoutEntries, and corresponding GPUTextureView resource in bindGroup, in which bindGroupLayoutEntry.visibility contains stage:", "rationale": "let", "steps": [ { @@ -4443,7 +4443,7 @@ "html": "

If bindGroupLayoutEntry.storageTexture is not provided, continue.

" }, { - "html": "Encoder bind groups alias a writable resource(encoder, pipeline)\n if any writable buffer binding range overlaps with any other binding range of the same buffer,\n or any writable texture binding overlaps in texture subresources with any other texture binding\n (which may use the same or a different GPUTextureView object). \n

Arguments:

\n
\n
GPUBindingCommandsMixin encoder\n
\n

Encoder whose bind groups are being validated.

\n
GPUPipelineBase pipeline\n
\n

Pipeline to validate encoders bind groups are compatible with.

\n
\n

Device timeline steps:

", + "html": "For each pair (GPUTextureView pastResource, boolean pastResourceWritable) in textureViews,", "rationale": "if", "steps": [ { @@ -4719,14 +4719,14 @@ "html": "

this.colorAttachments.length must be ≤ device.[[limits]].maxColorAttachments.

" }, { - "html": "Valid Usage \n

Given a GPUDevice device and GPURenderPassDescriptor this, the following validation rules apply:

", + "html": "For each non-null colorAttachment in this.colorAttachments:", "rationale": "if", "steps": [ { "html": "

colorAttachment.view must be valid to use with device.

" }, { - "html": "Valid Usage \n

Given a GPUDevice device and GPURenderPassDescriptor this, the following validation rules apply:

", + "html": "If colorAttachment.resolveTarget is provided:", "rationale": "resolve", "steps": [ { @@ -4778,7 +4778,7 @@ "html": "

Let formats be an empty list<GPUTextureFormat?>

" }, { - "html": "Validating GPURenderPassDescriptor’s color attachment bytes per sample(device, colorAttachments) \n

Arguments:

\n \n

Device timeline steps:

", + "html": "For each colorAttachment in colorAttachments:", "rationale": "if", "steps": [ { @@ -4851,7 +4851,7 @@ "html": "

Let total be 0.

" }, { - "html": "Calculating color attachment bytes per sample(formats) \n

Arguments:

\n \n

Returns: GPUSize32

", + "html": "For each non-null format in formats", "rationale": "assert", "steps": [ { @@ -4886,11 +4886,11 @@ "html": "

Let layout be a new GPURenderPassLayout object.

" }, { - "html": "derive render targets layout from pass \n

Arguments:

\n \n

Returns: GPURenderPassLayout

\n

Device timeline steps:

", + "html": "For each colorAttachment in descriptor.colorAttachments:", "rationale": "if", "steps": [ { - "html": "derive render targets layout from pass \n

Arguments:

\n \n

Returns: GPURenderPassLayout

\n

Device timeline steps:

", + "html": "If colorAttachment is not null:", "rationale": "set", "steps": [ { @@ -4902,7 +4902,7 @@ ] }, { - "html": "derive render targets layout from pass \n

Arguments:

\n \n

Returns: GPURenderPassLayout

\n

Device timeline steps:

", + "html": "Otherwise:", "rationale": "append", "steps": [ { @@ -4916,7 +4916,7 @@ "html": "

Let depthStencilAttachment be descriptor.depthStencilAttachment,\nor null if not provided.

" }, { - "html": "derive render targets layout from pass \n

Arguments:

\n \n

Returns: GPURenderPassLayout

\n

Device timeline steps:

", + "html": "If depthStencilAttachment is not null:", "rationale": "let", "steps": [ { @@ -4948,7 +4948,7 @@ "html": "

Set layout.sampleCount to descriptor.multisample.count.

" }, { - "html": "derive render targets layout from pipeline \n

Arguments:

\n \n

Returns: GPURenderPassLayout

\n

Device timeline steps:

", + "html": "If descriptor.depthStencil is provided:", "rationale": "set", "steps": [ { @@ -4957,11 +4957,11 @@ ] }, { - "html": "derive render targets layout from pipeline \n

Arguments:

\n \n

Returns: GPURenderPassLayout

\n

Device timeline steps:

", + "html": "If descriptor.fragment is provided:", "rationale": "for", "steps": [ { - "html": "derive render targets layout from pipeline \n

Arguments:

\n \n

Returns: GPURenderPassLayout

\n

Device timeline steps:

", + "html": "For each colorTarget in descriptor.fragment.targets:", "rationale": "append", "steps": [ { @@ -5154,7 +5154,7 @@ "html": "

Append command to encoder.[[commands]].

" }, { - "html": "To Enqueue a render command on GPURenderCommandsMixin encoder which\n issues the steps of a GPU Command command with RenderState renderState, run the\n following device timeline steps:", + "html": "When command is executed as part of a GPUCommandBuffer commandBuffer:", "rationale": "issue", "steps": [ { @@ -5268,7 +5268,7 @@ "html": "

If any of the following requirements are unmet, invalidate this and stop.

\n
\n \n
" }, { - "html": "\n \n \n \n \n \n \n \n \n
Arguments for the GPURenderCommandsMixin.setVertexBuffer(slot, buffer, offset, size) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
slot \n GPUIndex32\n \n \n The vertex buffer slot to set the vertex buffer for. \n
buffer \n GPUBuffer?\n \n \n Buffer containing vertex data to use for subsequent drawing commands. \n
offset \n GPUSize64\n \n \n Offset in bytes into buffer where the vertex data begins. Defaults to 0. \n
size \n GPUSize64\n \n \n Size in bytes of the vertex data in buffer. Defaults to the size of the buffer minus the offset. \n
", + "html": "If buffer is null:", "rationale": "remove", "steps": [ { @@ -5280,7 +5280,7 @@ ], "additional": [ { - "html": "\n \n \n \n \n \n \n \n \n
Arguments for the GPURenderCommandsMixin.setVertexBuffer(slot, buffer, offset, size) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
slot \n GPUIndex32\n \n \n The vertex buffer slot to set the vertex buffer for. \n
buffer \n GPUBuffer?\n \n \n Buffer containing vertex data to use for subsequent drawing commands. \n
offset \n GPUSize64\n \n \n Offset in bytes into buffer where the vertex data begins. Defaults to 0. \n
size \n GPUSize64\n \n \n Size in bytes of the vertex data in buffer. Defaults to the size of the buffer minus the offset. \n
", + "html": "Otherwise:", "rationale": "if", "steps": [ { @@ -5322,7 +5322,7 @@ "html": "

Validate the encoder state of this. If it returns false, stop.

" }, { - "html": "\n \n \n \n \n \n \n \n \n
Arguments for the GPURenderCommandsMixin.draw(vertexCount, instanceCount, firstVertex, firstInstance) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
vertexCount \n GPUSize32\n \n \n The number of vertices to draw. \n
instanceCount \n GPUSize32\n \n \n The number of instances to draw. \n
firstVertex \n GPUSize32\n \n \n Offset into the vertex buffers, in vertices, to begin drawing from. \n
firstInstance \n GPUSize32\n \n \n First instance to draw. \n
", + "html": "

All of the requirements in the following steps must be met.\nIf any are unmet, invalidate this and stop.

\n
\n \n
", "rationale": "let", "steps": [ { @@ -5332,7 +5332,7 @@ "html": "

Let buffers be this.[[pipeline]].[[descriptor]].vertex.buffers.

" }, { - "html": "\n \n \n \n \n \n \n \n \n
Arguments for the GPURenderCommandsMixin.draw(vertexCount, instanceCount, firstVertex, firstInstance) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
vertexCount \n GPUSize32\n \n \n The number of vertices to draw. \n
instanceCount \n GPUSize32\n \n \n The number of instances to draw. \n
firstVertex \n GPUSize32\n \n \n Offset into the vertex buffers, in vertices, to begin drawing from. \n
firstInstance \n GPUSize32\n \n \n First instance to draw. \n
", + "html": "For each GPUIndex32 slot from 0 to buffers.length (non-inclusive):", "rationale": "if", "steps": [ { @@ -5351,7 +5351,7 @@ "html": "

Let lastStride be the maximum value of\n(attribute.offset + sizeof(attribute.format))\nover each attribute in attributes, or 0 if attributes is empty.

" }, { - "html": "\n \n \n \n \n \n \n \n \n
Arguments for the GPURenderCommandsMixin.draw(vertexCount, instanceCount, firstVertex, firstInstance) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
vertexCount \n GPUSize32\n \n \n The number of vertices to draw. \n
instanceCount \n GPUSize32\n \n \n The number of instances to draw. \n
firstVertex \n GPUSize32\n \n \n Offset into the vertex buffers, in vertices, to begin drawing from. \n
firstInstance \n GPUSize32\n \n \n First instance to draw. \n
", + "html": "Let strideCount be computed based on buffers[slot].stepMode:", "rationale": ".switch", "steps": [ { @@ -5554,7 +5554,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "To determine if it’s valid to draw with GPURenderCommandsMixin encoder,\n run the following device timeline steps:", + "html": "Validate maxBindGroupsPlusVertexBuffers:", "rationale": "let", "steps": [ { @@ -5851,14 +5851,14 @@ "html": "

If any of the following conditions are unsatisfied, invalidate this and stop.

\n
\n \n
" }, { - "html": "\n \n \n \n \n \n
Arguments for the GPURenderPassEncoder.executeBundles(bundles) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
bundles \n sequence<GPURenderBundle>\n \n \n List of render bundles to execute. \n
", + "html": "For each bundle in bundles:", "rationale": "increment", "steps": [ { "html": "

Increment this.[[drawCount]] by bundle.[[drawCount]].

" }, { - "html": "\n \n \n \n \n \n
Arguments for the GPURenderPassEncoder.executeBundles(bundles) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
bundles \n sequence<GPURenderBundle>\n \n \n List of render bundles to execute. \n
", + "html": "Queue timeline steps:", "rationale": "execute", "steps": [ { @@ -5972,7 +5972,7 @@ "html": "

Set this.[[state]] to \"ended\".

" }, { - "html": "\n \n \n \n \n \n
Arguments for the GPURenderBundleEncoder.finish(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPURenderBundleDescriptor\n \n \n \n
", + "html": "If validationSucceeded is false, then:", "rationale": "generate", "steps": [ { @@ -6105,18 +6105,18 @@ "html": "

Assert that dstBlockOriginX, dstBlockOriginY, blockColumns, and blockRows are integers.

" }, { - "html": "\n \n \n \n \n \n \n \n \n
Arguments for the GPUQueue.writeTexture(destination, data, dataLayout, size) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
destination \n GPUImageCopyTexture\n \n \n The texture subresource and origin to write to. \n
data \n AllowSharedBufferSource\n \n \n Data to write into destination. \n
dataLayout \n GPUImageDataLayout\n \n \n Layout of the content in data. \n
size \n GPUExtent3D\n \n \n Extents of the content to write from data to destination. \n
", + "html": "For each z in the range [0, copySize.depthOrArrayLayers − 1]:", "rationale": "let", "steps": [ { "html": "

Let dstSubregion be texture copy sub-region (z + dstOrigin.z) of destination.

" }, { - "html": "\n \n \n \n \n \n \n \n \n
Arguments for the GPUQueue.writeTexture(destination, data, dataLayout, size) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
destination \n GPUImageCopyTexture\n \n \n The texture subresource and origin to write to. \n
data \n AllowSharedBufferSource\n \n \n Data to write into destination. \n
dataLayout \n GPUImageDataLayout\n \n \n Layout of the content in data. \n
size \n GPUExtent3D\n \n \n Extents of the content to write from data to destination. \n
", + "html": "For each y in the range [0, blockRows − 1]:", "rationale": "for", "steps": [ { - "html": "\n \n \n \n \n \n \n \n \n
Arguments for the GPUQueue.writeTexture(destination, data, dataLayout, size) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
destination \n GPUImageCopyTexture\n \n \n The texture subresource and origin to write to. \n
data \n AllowSharedBufferSource\n \n \n Data to write into destination. \n
dataLayout \n GPUImageDataLayout\n \n \n Layout of the content in data. \n
size \n GPUExtent3D\n \n \n Extents of the content to write from data to destination. \n
", + "html": "For each x in the range [0, blockColumns − 1]:", "rationale": "let", "steps": [ { @@ -6201,14 +6201,14 @@ "html": "

Let dstSubregion be texture copy sub-region (dstOrigin.z) of destination.

" }, { - "html": "\n \n \n \n \n \n \n \n
Arguments for the GPUQueue.copyExternalImageToTexture(source, destination, copySize) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
source \n GPUImageCopyExternalImage\n \n \n source image and origin to copy to destination. \n
destination \n GPUImageCopyTextureTagged\n \n \n The texture subresource and origin to write to, and its encoding metadata. \n
copySize \n GPUExtent3D\n \n \n Extents of the content to write from source to destination. \n
", + "html": "For each y in the range [0, copySize.height − 1]:", "rationale": "let", "steps": [ { "html": "

Let srcY be y if source.flipY is false and\n(copySize.height − 1 − y) otherwise.

" }, { - "html": "\n \n \n \n \n \n \n \n
Arguments for the GPUQueue.copyExternalImageToTexture(source, destination, copySize) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
source \n GPUImageCopyExternalImage\n \n \n source image and origin to copy to destination. \n
destination \n GPUImageCopyTextureTagged\n \n \n The texture subresource and origin to write to, and its encoding metadata. \n
copySize \n GPUExtent3D\n \n \n Extents of the content to write from source to destination. \n
", + "html": "For each x in the range [0, copySize.width − 1]:", "rationale": "set", "steps": [ { @@ -6238,7 +6238,7 @@ "rationale": "if", "steps": [ { - "html": "\n \n \n \n \n \n
Arguments for the GPUQueue.submit(commandBuffers) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
commandBuffers \n sequence<GPUCommandBuffer>\n \n \n \n
", + "html": "For each of the following types of resources used by any command in any\nelement of commandBuffers:", "rationale": ".switch", "steps": [ { @@ -6282,7 +6282,7 @@ "rationale": "for", "steps": [ { - "html": "\n \n \n \n \n \n
Arguments for the GPUQueue.submit(commandBuffers) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
commandBuffers \n sequence<GPUCommandBuffer>\n \n \n \n
", + "html": "For each commandBuffer in commandBuffers:", "rationale": "execute", "steps": [ { @@ -6328,7 +6328,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "\n \n \n \n \n \n
Arguments for the GPUDevice.createQuerySet(descriptor) method.
Parameter \n Type \n Nullable \n Optional \n Description \n
descriptor \n GPUQuerySetDescriptor\n \n \n Description of the GPUQuerySet to create. \n
", + "html": "If descriptor.type is \"timestamp\",\nbut \"timestamp-query\" is not enabled for this:", "rationale": "throw", "steps": [ { @@ -6517,7 +6517,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "To get a copy of the image contents of a context: \n

Arguments:

\n \n

Returns: image contents

\n

Content timeline steps:

", + "html": "If context.[[configuration]] is null:", "rationale": "return", "steps": [ { @@ -6535,7 +6535,7 @@ "html": "

Let alphaMode be context.[[configuration]].alphaMode.

" }, { - "html": "To get a copy of the image contents of a context: \n

Arguments:

\n \n

Returns: image contents

\n

Content timeline steps:

", + "html": "
\n
If alphaMode is \"opaque\":\n
\n \n \n
Otherwise:\n
\n

Tag snapshot with alphaMode.

\n
", "rationale": ".switch", "steps": [ { @@ -6543,7 +6543,7 @@ "steps": [ { "case": "If alphaMode is \"opaque\":", - "html": "To get a copy of the image contents of a context: \n

Arguments:

\n \n

Returns: image contents

\n

Content timeline steps:

", + "html": "", "rationale": "clear", "steps": [ { @@ -6591,7 +6591,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "To Expire the current texture of a GPUCanvasContext context, run\n the following content timeline steps:", + "html": "If context.[[currentTexture]] is not null:", "rationale": "call", "steps": [ { @@ -6648,7 +6648,7 @@ "html": "

Let configuration be context.[[configuration]]

" }, { - "html": "When an HTMLCanvasElement or OffscreenCanvas canvas with a GPUCanvasContext context has its width or height attributes set, update the canvas size by running the following content timeline steps:", + "html": "If configuration is not null:", "rationale": "set", "steps": [ { @@ -6728,7 +6728,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The current error scope for a GPUError error and GPUDevice device is determined by issuing the following steps to the device timeline of device: \n

Device timeline steps:

", + "html": "If error is an instance of:", "rationale": ".switch", "steps": [ { @@ -6754,7 +6754,7 @@ "html": "

Let scope be the last item of device.[[errorScopeStack]].

" }, { - "html": "The current error scope for a GPUError error and GPUDevice device is determined by issuing the following steps to the device timeline of device: \n

Device timeline steps:

", + "html": "While scope is not undefined:", "rationale": "if", "steps": [ { @@ -6783,7 +6783,7 @@ "html": "

Let scope be the current error scope for error and device.

" }, { - "html": "To dispatch an error GPUError error on GPUDevice device, run the following device timeline steps: \n
\n Device timeline steps: \n \n
\n
\n Content timeline steps: \n \n \n
", + "html": "If scope is not undefined:", "rationale": "append", "steps": [ { @@ -6806,7 +6806,7 @@ "rationale": "if", "steps": [ { - "html": "To dispatch an error GPUError error on GPUDevice device, run the following device timeline steps: \n
\n Device timeline steps: \n \n
\n
\n Content timeline steps: \n \n \n
", + "html": "

If the user agent chooses, queue a global task for GPUDevice device with the following steps:

\n
\n \n
", "rationale": "fire", "steps": [ { @@ -6923,27 +6923,27 @@ "html": "

Let workgroupSize be the computed workgroup size for computeStage.entryPoint after\napplying computeStage.constants to computeStage.module.

" }, { - "html": "compute(descriptor, drawCall, state) \n

Arguments:

\n
    \n
  • \n

    descriptor: Description of the current GPUComputePipeline.

    \n
  • \n

    dispatchCall: The dispatch call parameters. May come from function arguments or an INDIRECT buffer.

    \n
", + "html": "For workgroupX in range [0, dispatchCall.workgroupCountX]:", "rationale": "for", "steps": [ { - "html": "compute(descriptor, drawCall, state) \n

Arguments:

\n
    \n
  • \n

    descriptor: Description of the current GPUComputePipeline.

    \n
  • \n

    dispatchCall: The dispatch call parameters. May come from function arguments or an INDIRECT buffer.

    \n
", + "html": "For workgroupY in range [0, dispatchCall.workgroupCountY]:", "rationale": "for", "steps": [ { - "html": "compute(descriptor, drawCall, state) \n

Arguments:

\n
    \n
  • \n

    descriptor: Description of the current GPUComputePipeline.

    \n
  • \n

    dispatchCall: The dispatch call parameters. May come from function arguments or an INDIRECT buffer.

    \n
", + "html": "For workgroupZ in range [0, dispatchCall.workgroupCountZ]:", "rationale": "for", "steps": [ { - "html": "compute(descriptor, drawCall, state) \n

Arguments:

\n
    \n
  • \n

    descriptor: Description of the current GPUComputePipeline.

    \n
  • \n

    dispatchCall: The dispatch call parameters. May come from function arguments or an INDIRECT buffer.

    \n
", + "html": "For localX in range [0, workgroupSize.x]:", "rationale": "for", "steps": [ { - "html": "compute(descriptor, drawCall, state) \n

Arguments:

\n
    \n
  • \n

    descriptor: Description of the current GPUComputePipeline.

    \n
  • \n

    dispatchCall: The dispatch call parameters. May come from function arguments or an INDIRECT buffer.

    \n
", + "html": "For localY in range [0, workgroupSize.y]:", "rationale": "for", "steps": [ { - "html": "compute(descriptor, drawCall, state) \n

Arguments:

\n
    \n
  • \n

    descriptor: Description of the current GPUComputePipeline.

    \n
  • \n

    dispatchCall: The dispatch call parameters. May come from function arguments or an INDIRECT buffer.

    \n
", + "html": "For localZ in range [0, workgroupSize.y]:", "rationale": "let", "steps": [ { @@ -6965,7 +6965,7 @@ ] }, { - "html": "compute(descriptor, drawCall, state) \n

Arguments:

\n
    \n
  • \n

    descriptor: Description of the current GPUComputePipeline.

    \n
  • \n

    dispatchCall: The dispatch call parameters. May come from function arguments or an INDIRECT buffer.

    \n
", + "html": "For every invocation in computeInvocations, in any order the device chooses, including in parallel:", "rationale": "set", "steps": [ { @@ -7020,14 +7020,14 @@ "html": "

Let vertexIndexList be an empty list of indices.

" }, { - "html": "resolve indices(drawCall, state) \n

Arguments:

\n
    \n
  • \n

    drawCall: The draw call parameters. May come from function arguments or an INDIRECT buffer.

    \n
  • \n

    state: The snapshot of the GPURenderCommandsMixin state at the time of the draw call.

    \n
\n

Returns: list of integer indices.

", + "html": "If drawCall is an indexed draw call:", "rationale": "initialize", "steps": [ { "html": "

Initialize the vertexIndexList with drawCall.indexCount integers.

" }, { - "html": "resolve indices(drawCall, state) \n

Arguments:

\n
    \n
  • \n

    drawCall: The draw call parameters. May come from function arguments or an INDIRECT buffer.

    \n
  • \n

    state: The snapshot of the GPURenderCommandsMixin state at the time of the draw call.

    \n
\n

Returns: list of integer indices.

", + "html": "For i in range 0 .. drawCall.indexCount (non-inclusive):", "rationale": "let", "steps": [ { @@ -7044,7 +7044,7 @@ ] }, { - "html": "resolve indices(drawCall, state) \n

Arguments:

\n
    \n
  • \n

    drawCall: The draw call parameters. May come from function arguments or an INDIRECT buffer.

    \n
  • \n

    state: The snapshot of the GPURenderCommandsMixin state at the time of the draw call.

    \n
\n

Returns: list of integer indices.

", + "html": "Otherwise:", "rationale": "initialize", "steps": [ { @@ -7067,7 +7067,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "fetch index(i, buffer, offset, format) \n

Arguments:

\n
    \n
  • \n

    i: Index of a vertex index to fetch.

    \n
  • \n

    state: The snapshot of the GPURenderCommandsMixin state at the time of the draw call.

    \n
\n

Returns: unsigned integer or \"out of bounds\"

", + "html": "Let indexSize be defined by the state.[[index_format]]:", "rationale": ".switch", "steps": [ { @@ -7103,7 +7103,7 @@ "html": "

Let instanceIndex be rawInstanceIndex + drawCall.firstInstance.

" }, { - "html": "process vertices(vertexIndexList, drawCall, desc, state) \n

Arguments:

\n
    \n
  • \n

    vertexIndexList: List of vertex indices to process (mutable, passed by reference).

    \n
  • \n

    drawCall: The draw call parameters. May come from function arguments or an INDIRECT buffer.

    \n
  • \n

    desc: The descriptor of type GPUVertexState.

    \n
  • \n

    state: The snapshot of the GPURenderCommandsMixin state at the time of the draw call.

    \n
\n

Each vertex vertexIndex in the vertexIndexList,\n in each instance of index rawInstanceIndex, is processed independently.\n The rawInstanceIndex is in range from 0 to drawCall.instanceCount - 1, inclusive.\n This processing happens in parallel, and any side effects, such as\n writes into GPUBufferBindingType.\"storage\" bindings,\n may happen in any order.

", + "html": "For each non-null vertexBufferLayout in the list of desc.buffers:", "rationale": "let", "steps": [ { @@ -7113,7 +7113,7 @@ "html": "

Let vertexBuffer, vertexBufferOffset, and vertexBufferBindingSize be the\nbuffer, offset, and size at slot i of state.[[vertex_buffers]].

" }, { - "html": "process vertices(vertexIndexList, drawCall, desc, state) \n

Arguments:

\n
    \n
  • \n

    vertexIndexList: List of vertex indices to process (mutable, passed by reference).

    \n
  • \n

    drawCall: The draw call parameters. May come from function arguments or an INDIRECT buffer.

    \n
  • \n

    desc: The descriptor of type GPUVertexState.

    \n
  • \n

    state: The snapshot of the GPURenderCommandsMixin state at the time of the draw call.

    \n
\n

Each vertex vertexIndex in the vertexIndexList,\n in each instance of index rawInstanceIndex, is processed independently.\n The rawInstanceIndex is in range from 0 to drawCall.instanceCount - 1, inclusive.\n This processing happens in parallel, and any side effects, such as\n writes into GPUBufferBindingType.\"storage\" bindings,\n may happen in any order.

", + "html": "Let vertexElementIndex be dependent on vertexBufferLayout.stepMode:", "rationale": ".switch", "steps": [ { @@ -7132,7 +7132,7 @@ ] }, { - "html": "process vertices(vertexIndexList, drawCall, desc, state) \n

Arguments:

\n
    \n
  • \n

    vertexIndexList: List of vertex indices to process (mutable, passed by reference).

    \n
  • \n

    drawCall: The draw call parameters. May come from function arguments or an INDIRECT buffer.

    \n
  • \n

    desc: The descriptor of type GPUVertexState.

    \n
  • \n

    state: The snapshot of the GPURenderCommandsMixin state at the time of the draw call.

    \n
\n

Each vertex vertexIndex in the vertexIndexList,\n in each instance of index rawInstanceIndex, is processed independently.\n The rawInstanceIndex is in range from 0 to drawCall.instanceCount - 1, inclusive.\n This processing happens in parallel, and any side effects, such as\n writes into GPUBufferBindingType.\"storage\" bindings,\n may happen in any order.

", + "html": "For each attributeDesc in vertexBufferLayout.attributes:", "rationale": "let", "steps": [ { @@ -7158,11 +7158,11 @@ ] }, { - "html": "process vertices(vertexIndexList, drawCall, desc, state) \n

Arguments:

\n
    \n
  • \n

    vertexIndexList: List of vertex indices to process (mutable, passed by reference).

    \n
  • \n

    drawCall: The draw call parameters. May come from function arguments or an INDIRECT buffer.

    \n
  • \n

    desc: The descriptor of type GPUVertexState.

    \n
  • \n

    state: The snapshot of the GPURenderCommandsMixin state at the time of the draw call.

    \n
\n

Each vertex vertexIndex in the vertexIndexList,\n in each instance of index rawInstanceIndex, is processed independently.\n The rawInstanceIndex is in range from 0 to drawCall.instanceCount - 1, inclusive.\n This processing happens in parallel, and any side effects, such as\n writes into GPUBufferBindingType.\"storage\" bindings,\n may happen in any order.

", + "html": "For each GPUBindGroup group at index in state.[[bind_groups]]:", "rationale": "for", "steps": [ { - "html": "process vertices(vertexIndexList, drawCall, desc, state) \n

Arguments:

\n
    \n
  • \n

    vertexIndexList: List of vertex indices to process (mutable, passed by reference).

    \n
  • \n

    drawCall: The draw call parameters. May come from function arguments or an INDIRECT buffer.

    \n
  • \n

    desc: The descriptor of type GPUVertexState.

    \n
  • \n

    state: The snapshot of the GPURenderCommandsMixin state at the time of the draw call.

    \n
\n

Each vertex vertexIndex in the vertexIndexList,\n in each instance of index rawInstanceIndex, is processed independently.\n The rawInstanceIndex is in range from 0 to drawCall.instanceCount - 1, inclusive.\n This processing happens in parallel, and any side effects, such as\n writes into GPUBufferBindingType.\"storage\" bindings,\n may happen in any order.

", + "html": "For each resource GPUBindingResource in the bind group:", "rationale": "let", "steps": [ { @@ -7193,7 +7193,7 @@ "html": "

First, if the primitive topology is a strip, (which means that desc.stripIndexFormat is not undefined)\nand the drawCall is indexed, the vertexIndexList is split into\nsub-lists using the maximum value of desc.stripIndexFormat as a separator.

\n

Example: a vertexIndexList with values [1, 2, 65535, 4, 5, 6] of type \"uint16\" will be split in sub-lists [1, 2] and [4, 5, 6].

" }, { - "html": "assemble primitives(vertexIndexList, drawCall, desc) \n

Arguments:

\n
    \n
  • \n

    vertexIndexList: List of vertex indices to process.

    \n
  • \n

    drawCall: The draw call parameters. May come from function arguments or an INDIRECT buffer.

    \n
  • \n

    desc: The descriptor of type GPUPrimitiveState.

    \n
\n

For each instance, the primitives get assembled from the vertices that have been\n processed by the shaders, based on the vertexIndexList.

", + "html": "For each of the sub-lists vl, primitive generation is done according to the desc.topology:", "rationale": ".switch", "steps": [ { @@ -7260,7 +7260,7 @@ "html": "

Let rasterizationPoints be the list of points, each having its attributes (divisor(p), framebufferCoords(n), depth(n), etc.) interpolated according to its position on the\nprimitive, using the same interpolation as § 23.2.4 Primitive Clipping. If the attribute is\nuser-defined (not a built-in output value) then the interpolation type specified by\nthe @interpolate WGSL attribute is used.

" }, { - "html": "rasterize(primitiveList, state) \n

Arguments:

\n
    \n
  • \n

    primitiveList: List of primitives to rasterize.

    \n
  • \n

    state: The active RenderState.

    \n
\n

Returns: list of RasterizationPoint.

\n

Each primitive in primitiveList is processed independently.\n However, the order of primitives affects later stages, such as depth/stencil operations and pixel writes.

", + "html": "Proceed with a specific rasterization algorithm,\ndepending on primitive.topology:", "rationale": ".switch", "steps": [ { @@ -7326,7 +7326,7 @@ "html": "

Let v(i) be the framebuffer coordinates for the clipped vertex number i (starting with 1)\nin a rasterized polygon of n vertices.

" }, { - "html": "rasterize polygon() \n

Arguments:

\n

Returns: list of RasterizationPoint.

", + "html": "The sign of area is interpreted based on the primitive.frontFace:", "rationale": ".switch", "steps": [ { @@ -7345,7 +7345,7 @@ ] }, { - "html": "rasterize polygon() \n

Arguments:

\n

Returns: list of RasterizationPoint.

", + "html": "Cull based on primitive.cullMode:", "rationale": ".switch", "steps": [ { @@ -7368,7 +7368,7 @@ ] }, { - "html": "rasterize polygon() \n

Arguments:

\n

Returns: list of RasterizationPoint.

", + "html": "Determine a set of fragments inside the polygon in framebuffer space -\nthese are locations scheduled for the per-fragment operations.\nThis operation is known as \"point sampling\".\nThe logic is based on descriptor.multisample:", "rationale": ".switch", "steps": [ { @@ -7387,7 +7387,7 @@ ] }, { - "html": "rasterize polygon() \n

Arguments:

\n

Returns: list of RasterizationPoint.

", + "html": "For each produced fragment of type FragmentDestination:", "rationale": "let", "steps": [ { @@ -7431,11 +7431,11 @@ "html": "

Set fragment.depth to rp.depth.

" }, { - "html": "process fragment(rp, desc, state) \n

Arguments:

\n \n

Returns: Fragment or null.

", + "html": "If desc is not null:", "rationale": "set", "steps": [ { - "html": "process fragment(rp, desc, state) \n

Arguments:

\n \n

Returns: Fragment or null.

", + "html": "Set the shader input builtins. For each non-composite argument of the entry point,\nannotated as a builtin, set its value based on the annotation:", "rationale": ".switch", "steps": [ { @@ -7462,7 +7462,7 @@ ] }, { - "html": "process fragment(rp, desc, state) \n

Arguments:

\n \n

Returns: Fragment or null.

", + "html": "For each user-specified shader stage input of the fragment stage:", "rationale": "let", "steps": [ { @@ -7483,11 +7483,11 @@ "html": "

Set fragment.colors to the user-specified shader stage output values from the shader.

" }, { - "html": "process fragment(rp, desc, state) \n

Arguments:

\n \n

Returns: Fragment or null.

", + "html": "Take the shader output builtins:", "rationale": "if", "steps": [ { - "html": "process fragment(rp, desc, state) \n

Arguments:

\n \n

Returns: Fragment or null.

", + "html": "If frag_depth builtin is produced by the shader as value:", "rationale": "let", "steps": [ { @@ -7501,7 +7501,7 @@ ] }, { - "html": "process fragment(rp, desc, state) \n

Arguments:

\n \n

Returns: Fragment or null.

", + "html": "If sample_mask builtin is produced by the shader as value:", "rationale": "set", "steps": [ { diff --git a/tr/algorithms/webnn.json b/tr/algorithms/webnn.json index 05c97a746c16..55b52e81dde8 100644 --- a/tr/algorithms/webnn.json +++ b/tr/algorithms/webnn.json @@ -741,7 +741,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The argMin(input, axis, options) method steps are:", + "html": "Let output be the result of running the create argMin/argMax operation given \"argMin\", input, axis and options.", "rationale": "if", "steps": [ { @@ -761,7 +761,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The argMax(input, axis, options) method steps are:", + "html": "Let output be the result of running the create argMin/argMax operation given \"argMax\", input, axis and options.", "rationale": "if", "steps": [ { @@ -1743,7 +1743,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The add(a, b) method steps are:", + "html": "Let output be the result of running the create element-wise binary operation given \"add\", a and b.", "rationale": "if", "steps": [ { @@ -1763,7 +1763,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The sub(a, b) method steps are:", + "html": "Let output be the result of running the create element-wise binary operation given \"sub\", a and b.", "rationale": "if", "steps": [ { @@ -1783,7 +1783,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The mul(a, b) method steps are:", + "html": "Let output be the result of running the create element-wise binary operation given \"mul\", a and b.", "rationale": "if", "steps": [ { @@ -1803,7 +1803,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The div(a, b) method steps are:", + "html": "Let output be the result of running the create element-wise binary operation given \"div\", a and b.", "rationale": "if", "steps": [ { @@ -1823,7 +1823,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The max(a, b) method steps are:", + "html": "Let output be the result of running the create element-wise binary operation given \"max\", a and b.", "rationale": "if", "steps": [ { @@ -1843,7 +1843,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The min(a, b) method steps are:", + "html": "Let output be the result of running the create element-wise binary operation given \"min\", a and b.", "rationale": "if", "steps": [ { @@ -1863,7 +1863,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The pow(a, b) method steps are:", + "html": "Let output be the result of running the create element-wise binary operation given \"pow\", a and b.", "rationale": "if", "steps": [ { @@ -1959,7 +1959,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The equal(a, b) method steps are:", + "html": "Let output be the result of running the create element-wise logical operation given \"equal\", a and b.", "rationale": "if", "steps": [ { @@ -1979,7 +1979,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The greater(a, b) method steps are:", + "html": "Let output be the result of running the create element-wise logical operation given \"greater\", a and b.", "rationale": "if", "steps": [ { @@ -1999,7 +1999,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The greaterOrEqual(a, b) method steps are:", + "html": "Let output be the result of running the create element-wise logical operation given \"greaterOrEqual\", a and b.", "rationale": "if", "steps": [ { @@ -2019,7 +2019,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The lesser(a, b) method steps are:", + "html": "Let output be the result of running the create element-wise logical operation given \"lesser\", a and b.", "rationale": "if", "steps": [ { @@ -2039,7 +2039,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The lesserOrEqual(a, b) method steps are:", + "html": "Let output be the result of running the create element-wise logical operation given \"lesserOrEqual\", a and b.", "rationale": "if", "steps": [ { @@ -2059,7 +2059,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The logicalNot(a) method steps are:", + "html": "Let output be the result of running the create element-wise logical operation given \"logicalNot\" and a.", "rationale": "if", "steps": [ { @@ -2122,7 +2122,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The abs(input) method steps are:", + "html": "Let output be the result of running the create element-wise unary operation given \"abs\", input, and « \"float32\", \"float16\", \"int32\", \"int8\" ».", "rationale": "if", "steps": [ { @@ -2142,7 +2142,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The ceil(input) method steps are:", + "html": "Let output be the result of running the create element-wise unary operation given \"ceil\", input, and « \"float32\", \"float16\" ».", "rationale": "if", "steps": [ { @@ -2162,7 +2162,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The cos(input) method steps are:", + "html": "Let output be the result of running the create element-wise unary operation given \"cos\", input, and « \"float32\", \"float16\" ».", "rationale": "if", "steps": [ { @@ -2182,7 +2182,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The erf(input) method steps are:", + "html": "Let output be the result of running the create element-wise unary operation given \"erf\", input, and « \"float32\", \"float16\" ».", "rationale": "if", "steps": [ { @@ -2202,7 +2202,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The exp(input) method steps are:", + "html": "Let output be the result of running the create element-wise unary operation given \"exp\", input, and « \"float32\", \"float16\" ».", "rationale": "if", "steps": [ { @@ -2222,7 +2222,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The floor(input) method steps are:", + "html": "Let output be the result of running the create element-wise unary operation given \"floor\", input, and « \"float32\", \"float16\" ».", "rationale": "if", "steps": [ { @@ -2242,7 +2242,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The identity(input) method steps are:", + "html": "Let output be the result of running the create element-wise unary operation given \"identity\" and input.", "rationale": "if", "steps": [ { @@ -2262,7 +2262,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The log(input) method steps are:", + "html": "Let output be the result of running the create element-wise unary operation given \"log\", input, and « \"float32\", \"float16\" ».", "rationale": "if", "steps": [ { @@ -2282,7 +2282,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The neg(input) method steps are:", + "html": "Let output be the result of running the create element-wise unary operation given \"neg\", input, and « \"float32\", \"float16\", \"int32\", \"int8\" ».", "rationale": "if", "steps": [ { @@ -2302,7 +2302,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The reciprocal(input) method steps are:", + "html": "Let output be the result of running the create element-wise unary operation given \"reciprocal\", input, and « \"float32\", \"float16\" ».", "rationale": "if", "steps": [ { @@ -2322,7 +2322,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The sin(input) method steps are:", + "html": "Let output be the result of running the create element-wise unary operation given \"sin\", input, and « \"float32\", \"float16\" ».", "rationale": "if", "steps": [ { @@ -2342,7 +2342,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The sqrt(input) method steps are:", + "html": "Let output be the result of running the create element-wise unary operation given \"sqrt\", input, and « \"float32\", \"float16\" ».", "rationale": "if", "steps": [ { @@ -2362,7 +2362,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The tan(input) method steps are:", + "html": "Let output be the result of running the create element-wise unary operation given \"tan\", input, and « \"float32\", \"float16\" ».", "rationale": "if", "steps": [ { @@ -4221,7 +4221,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The averagePool2d(input, options) method steps are:", + "html": "Let output be the result of running the create pooling operation given \"averagePool2d\", input, options, and « \"float32\", \"float16\" ».", "rationale": "if", "steps": [ { @@ -4241,7 +4241,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The l2Pool2d(input, options) method steps are:", + "html": "Let output be the result of running the create pooling operation given \"l2Pool2d\", input, options, and « \"float32\", \"float16\" ».", "rationale": "if", "steps": [ { @@ -4261,7 +4261,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The maxPool2d(input, options) method steps are:", + "html": "Let output be the result of running the create pooling operation given \"maxPool2d\", input and options.", "rationale": "if", "steps": [ { @@ -4449,7 +4449,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The reduceL1(input, options) method steps are:", + "html": "Let output be the result of running the create reduce operation given \"reduceL1\", input, options, and « \"float32\", \"float16\", \"int32\", \"uint32\" ».", "rationale": "if", "steps": [ { @@ -4469,7 +4469,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The reduceL2(input, options) method steps are:", + "html": "Let output be the result of running the create reduce operation given \"reduceL2\", input, options, and « \"float32\", \"float16\" ».", "rationale": "if", "steps": [ { @@ -4489,7 +4489,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The reduceLogSum(input, options) method steps are:", + "html": "Let output be the result of running the create reduce operation given \"reduceLogSum\", input, options, and « \"float32\", \"float16\" ».", "rationale": "if", "steps": [ { @@ -4509,7 +4509,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The reduceLogSumExp(input, options) method steps are:", + "html": "Let output be the result of running the create reduce operation given \"reduceLogSumExp\", input, options, and « \"float32\", \"float16\" ».", "rationale": "if", "steps": [ { @@ -4529,7 +4529,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The reduceMax(input, options) method steps are:", + "html": "Let output be the result of running the create reduce operation given \"reduceMax\", input and options.", "rationale": "if", "steps": [ { @@ -4549,7 +4549,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The reduceMean(input, options) method steps are:", + "html": "Let output be the result of running the create reduce operation given \"reduceMean\", input, options, and « \"float32\", \"float16\" ».", "rationale": "if", "steps": [ { @@ -4569,7 +4569,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The reduceMin(input, options) method steps are:", + "html": "Let output be the result of running the create reduce operation given \"reduceMin\", input and options.", "rationale": "if", "steps": [ { @@ -4589,7 +4589,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The reduceProduct(input, options) method steps are:", + "html": "Let output be the result of running the create reduce operation given \"reduceProduct\", input, options, and « \"float32\", \"float16\", \"int32\", \"uint32\" ».", "rationale": "if", "steps": [ { @@ -4609,7 +4609,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The reduceSum(input, options) method steps are:", + "html": "Let output be the result of running the create reduce operation given \"reduceSum\", input, options, and « \"float32\", \"float16\", \"int32\", \"uint32\" ».", "rationale": "if", "steps": [ { @@ -4629,7 +4629,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The reduceSumSquare(input, options) method steps are:", + "html": "Let output be the result of running the create reduce operation given \"reduceSumSquare\", input, options, and « \"float32\", \"float16\", \"int32\", \"uint32\" ».", "rationale": "if", "steps": [ { @@ -5502,8 +5502,8 @@ ] }, { - "name": "ConvertToFloat", - "href": "https://www.w3.org/TR/webnn/#converttofloat", + "name": "cast", + "href": "https://www.w3.org/TR/webnn/#cast", "html": "The ConvertToFloat(x, bitLength) steps are:", "rationale": ".algorithm", "steps": [ @@ -5511,7 +5511,7 @@ "html": "

If x is NaN, then return NaN.

" }, { - "html": "The ConvertToFloat(x, bitLength) steps are:", + "html": "Switch on bitLength:", "rationale": ".switch", "steps": [ { @@ -5519,7 +5519,7 @@ "steps": [ { "case": "32", - "html": "The ConvertToFloat(x, bitLength) steps are:", + "html": "", "rationale": "let", "steps": [ { @@ -5535,7 +5535,7 @@ }, { "case": "16", - "html": "The ConvertToFloat(x, bitLength) steps are:", + "html": "", "rationale": "let", "steps": [ { @@ -5571,13 +5571,13 @@ ] }, { - "name": "ConvertToInt", - "href": "https://www.w3.org/TR/webnn/#converttoint", + "name": "cast", + "href": "https://www.w3.org/TR/webnn/#cast", "html": "The ConvertToInt(x, bitLength, signedness) steps are:", "rationale": ".algorithm", "steps": [ { - "html": "The ConvertToInt(x, bitLength, signedness) steps are:", + "html": "If signedness is \"unsigned\", then:", "rationale": "let", "steps": [ { @@ -5589,7 +5589,7 @@ ] }, { - "html": "The ConvertToInt(x, bitLength, signedness) steps are:", + "html": "Otherwise:", "rationale": "let", "steps": [ { diff --git a/tr/algorithms/webrtc.json b/tr/algorithms/webrtc.json index dbfcea93d726..d17fe3b12593 100644 --- a/tr/algorithms/webrtc.json +++ b/tr/algorithms/webrtc.json @@ -19,7 +19,7 @@ { "name": "RTCPeerConnection/[[DocumentOrigin]]", "href": "https://www.w3.org/TR/webrtc/#dfn-documentorigin", - "html": "Let connection have a\n [[DocumentOrigin]] internal slot, initialized to\n the relevant settings object's\n origin.", + "html": "When the RTCPeerConnection.constructor() is\n invoked, the user agent MUST run the following steps:", "rationale": ".algorithm", "steps": [ { @@ -35,7 +35,7 @@ "html": "Let configuration be the\n method's first argument." }, { - "html": "Let connection have a\n [[DocumentOrigin]] internal slot, initialized to\n the relevant settings object's\n origin.", + "html": "If the certificates value in\n configuration is non-empty, run the following\n steps for each certificate in certificates:", "rationale": "if", "steps": [ { @@ -1010,7 +1010,7 @@ { "name": "ICE transports setting", "href": "https://www.w3.org/TR/webrtc/#ice-transports-setting", - "html": "Set the ICE Agent's ICE transports setting to the\n value of\n configuration.iceTransportPolicy.\n As defined in [RFC8829] (section 4.1.18.), if the new ICE transports setting changes the existing setting, no action\n will be taken until the next gathering phase. If a script\n wants this to happen immediately, it should do an ICE\n restart.", + "html": "To set a configuration with\n configuration, run the following steps:", "rationale": ".algorithm", "steps": [ { @@ -1020,7 +1020,7 @@ "html": "

\n Let oldConfig be\n connection.[[Configuration]].\n

" }, { - "html": "Set the ICE Agent's ICE transports setting to the\n value of\n configuration.iceTransportPolicy.\n As defined in [RFC8829] (section 4.1.18.), if the new ICE transports setting changes the existing setting, no action\n will be taken until the next gathering phase. If a script\n wants this to happen immediately, it should do an ICE\n restart.", + "html": "If oldConfig is not null, run the\n following steps, and if any of them fail, throw\n an InvalidModificationError:", "rationale": "if", "steps": [ { @@ -1030,7 +1030,7 @@ "html": "

\n Let index be 0.\n

" }, { - "html": "Set the ICE Agent's ICE transports setting to the\n value of\n configuration.iceTransportPolicy.\n As defined in [RFC8829] (section 4.1.18.), if the new ICE transports setting changes the existing setting, no action\n will be taken until the next gathering phase. If a script\n wants this to happen immediately, it should do an ICE\n restart.", + "html": "While index is less than the length of\n configuration.certificates,\n run the following steps:", "rationale": "if", "steps": [ { @@ -1053,7 +1053,7 @@ ] }, { - "html": "Set the ICE Agent's ICE transports setting to the\n value of\n configuration.iceTransportPolicy.\n As defined in [RFC8829] (section 4.1.18.), if the new ICE transports setting changes the existing setting, no action\n will be taken until the next gathering phase. If a script\n wants this to happen immediately, it should do an ICE\n restart.", + "html": "For each server in\n configuration.iceServers,\n run the following steps:", "rationale": "let", "steps": [ { @@ -1066,7 +1066,7 @@ "html": "

\n If urls is empty, throw a\n SyntaxError.\n

" }, { - "html": "Set the ICE Agent's ICE transports setting to the\n value of\n configuration.iceTransportPolicy.\n As defined in [RFC8829] (section 4.1.18.), if the new ICE transports setting changes the existing setting, no action\n will be taken until the next gathering phase. If a script\n wants this to happen immediately, it should do an ICE\n restart.", + "html": "For each url in urls run the\n following steps:", "rationale": "parse", "steps": [ { @@ -1827,14 +1827,14 @@ { "name": "clear the negotiation-needed flag", "href": "https://www.w3.org/TR/webrtc/#dfn-clear-the-negotiation-needed-flag", - "html": "If the result of checking if negotiation is needed is false,\n clear the negotiation-needed flag by setting\n connection.[[NegotiationNeeded]] to\n false, and abort these steps.", + "html": "To update the negotiation-needed flag for\n connection, run the following steps:", "rationale": ".algorithm", "steps": [ { "html": "

\n If the length of connection.[[Operations]]\n is not 0, then set\n connection.[[UpdateNegotiationNeededFlagOnEmptyChain]]\n to true, and abort these steps.\n

" }, { - "html": "If the result of checking if negotiation is needed is false,\n clear the negotiation-needed flag by setting\n connection.[[NegotiationNeeded]] to\n false, and abort these steps.", + "html": "Queue a task to run the following steps:", "rationale": "if", "steps": [ { @@ -2652,7 +2652,6 @@ { "name": "RTCRtpSender/[[SenderTrack]]", "href": "https://www.w3.org/TR/webrtc/#dfn-sendertrack", - "html": "Let sender have a [[SenderTrack]] internal\n slot initialized to track.", "rationale": ".algorithm", "steps": [ { @@ -2791,7 +2790,6 @@ { "name": "Read-only parameter", "href": "https://www.w3.org/TR/webrtc/#dfn-read-only-parameter", - "html": "
[Exposed=Window]\ninterface RTCRtpSender {\n  readonly attribute MediaStreamTrack? track;\n  readonly attribute RTCDtlsTransport? transport;\n  static RTCRtpCapabilities? getCapabilities(DOMString kind);\n  Promise<undefined> setParameters(RTCRtpSendParameters parameters);\n  RTCRtpSendParameters getParameters();\n  Promise<undefined> replaceTrack(MediaStreamTrack? withTrack);\n  undefined setStreams(MediaStream... streams);\n  Promise<RTCStatsReport> getStats();\n};
\n
\n

\n Attributes\n

\n
\n
\n track of type MediaStreamTrack, readonly, nullable\n
\n
\n

\n The track attribute is the track that is associated with\n this RTCRtpSender object. If track is ended, or if\n the track's output is disabled, i.e. the track is disabled\n and/or muted, the RTCRtpSender MUST send black frames\n (video) and MUST NOT send (audio). In the case of video, the\n RTCRtpSender SHOULD send one black frame per second. If\n track is null then the RTCRtpSender does\n not send. On getting, the attribute MUST return the value of\n the [[SenderTrack]] slot.\n

\n
\n
\n transport of type RTCDtlsTransport, readonly, nullable\n
\n
\n

\n The transport attribute is the transport over which media\n from track is sent in the form of RTP packets. Prior to\n construction of the RTCDtlsTransport object, the\n transport attribute will be null. When bundling is used,\n multiple RTCRtpSender objects will share one\n transport and will all send RTP and RTCP over the same\n transport.\n

\n

\n On getting, the attribute MUST return the value of the\n [[SenderTransport]] slot.\n

\n
\n
\n
\n
\n

\n Methods\n

\n
\n
\n getCapabilities, static\n
\n
\n

\n The getCapabilities() method returns the most optimistic\n view of the capabilities of the system for sending media of\n the given kind. It does not reserve any resources, ports, or\n other state but is meant to provide a way to discover the\n types of capabilities of the browser including which codecs\n may be supported. User agents MUST support kind\n values of \"audio\" and \"video\". If\n the system has no capabilities corresponding to the value of\n the kind argument, getCapabilities returns\n null.\n

\n

\n These capabilities provide generally persistent cross-origin\n information on the device and thus increases the\n fingerprinting surface of the application. In\n privacy-sensitive contexts, browsers can consider mitigations\n such as reporting only a common subset of the capabilities.\n \"(This

\n \n
\n
\n setParameters\n
\n
\n

\n The setParameters method updates how track is encoded\n and transmitted to a remote peer.\n

\n

\n When the setParameters method is called, the user agent\n MUST run the following steps:\n

\n
Candidate Correction 20:Remove RTCRtpEncodingParameters.scaleResolutionDownBy for audio (PR #2772)
Candidate Correction 21:Default RTCRtpEncodingParameters.scaleResolutionDownBy to 1 for video (PR #2772)
Candidate Addition 19:Add RTCRtpEncodingParameters.maxFramerate (PR #2785)
Candidate Correction 24:Remove maxFramerate like scaleResolutionDownBy for audio (PR #2799)
\n

\n setParameters does not cause SDP renegotiation and can\n only be used to change what the media stack is sending or\n receiving within the envelope negotiated by Offer/Answer. The\n attributes in the RTCRtpSendParameters dictionary are\n designed to not enable this, so attributes like\n cname that cannot be changed are\n read-only. Other things, like bitrate, are controlled using\n limits such as maxBitrate, where\n the user agent needs to ensure it does not exceed the maximum\n bitrate specified by maxBitrate,\n while at the same time making sure it satisfies constraints\n on bitrate specified in other places such as the SDP.\n

\n
\n
\n getParameters\n
\n
\n

\n The getParameters() method returns the RTCRtpSender\n object's current parameters for how track is encoded and\n transmitted to a remote RTCRtpReceiver.\n

\n

\n When getParameters is called, the user agent MUST run the\n following steps:\n

\n \n

\n getParameters may be used with setParameters to\n change the parameters in the following way:\n

\n \n

\n After a completed call to setParameters, subsequent calls\n to getParameters will return the modified set of\n parameters.\n

\n
\n
\n replaceTrack\n
\n
\n

\n Attempts to replace the RTCRtpSender's current track\n with another track provided (or with a null\n track), without renegotiation.\n

\n

\n When the replaceTrack method is invoked, the user agent\n MUST run the following steps:\n

\n \n \n
\n
\n setStreams\n
\n
\n

\n Sets the MediaStreams to be associated with this sender's\n track.\n

\n

\n When the setStreams method is invoked, the user agent\n MUST run the following steps:\n

\n \n
\n
\n getStats\n
\n
\n

\n Gathers stats for this sender only and reports the result\n asynchronously.\n

\n

\n When the getStats() method is invoked, the user agent\n MUST run the following steps:\n

\n \n
\n
\n
", "rationale": ".algorithm", "steps": [ { @@ -2810,7 +2808,7 @@ "html": "If \n sender.[[LastReturnedParameters]] is\n null, return a promise rejected with a\n newly created InvalidStateError." }, { - "html": "
[Exposed=Window]\ninterface RTCRtpSender {\n  readonly attribute MediaStreamTrack? track;\n  readonly attribute RTCDtlsTransport? transport;\n  static RTCRtpCapabilities? getCapabilities(DOMString kind);\n  Promise<undefined> setParameters(RTCRtpSendParameters parameters);\n  RTCRtpSendParameters getParameters();\n  Promise<undefined> replaceTrack(MediaStreamTrack? withTrack);\n  undefined setStreams(MediaStream... streams);\n  Promise<RTCStatsReport> getStats();\n};
\n
\n

\n Attributes\n

\n
\n
\n track of type MediaStreamTrack, readonly, nullable\n
\n
\n

\n The track attribute is the track that is associated with\n this RTCRtpSender object. If track is ended, or if\n the track's output is disabled, i.e. the track is disabled\n and/or muted, the RTCRtpSender MUST send black frames\n (video) and MUST NOT send (audio). In the case of video, the\n RTCRtpSender SHOULD send one black frame per second. If\n track is null then the RTCRtpSender does\n not send. On getting, the attribute MUST return the value of\n the [[SenderTrack]] slot.\n

\n
\n
\n transport of type RTCDtlsTransport, readonly, nullable\n
\n
\n

\n The transport attribute is the transport over which media\n from track is sent in the form of RTP packets. Prior to\n construction of the RTCDtlsTransport object, the\n transport attribute will be null. When bundling is used,\n multiple RTCRtpSender objects will share one\n transport and will all send RTP and RTCP over the same\n transport.\n

\n

\n On getting, the attribute MUST return the value of the\n [[SenderTransport]] slot.\n

\n
\n
\n
\n
\n

\n Methods\n

\n
\n
\n getCapabilities, static\n
\n
\n

\n The getCapabilities() method returns the most optimistic\n view of the capabilities of the system for sending media of\n the given kind. It does not reserve any resources, ports, or\n other state but is meant to provide a way to discover the\n types of capabilities of the browser including which codecs\n may be supported. User agents MUST support kind\n values of \"audio\" and \"video\". If\n the system has no capabilities corresponding to the value of\n the kind argument, getCapabilities returns\n null.\n

\n

\n These capabilities provide generally persistent cross-origin\n information on the device and thus increases the\n fingerprinting surface of the application. In\n privacy-sensitive contexts, browsers can consider mitigations\n such as reporting only a common subset of the capabilities.\n \"(This

\n \n
\n
\n setParameters\n
\n
\n

\n The setParameters method updates how track is encoded\n and transmitted to a remote peer.\n

\n

\n When the setParameters method is called, the user agent\n MUST run the following steps:\n

\n
Candidate Correction 20:Remove RTCRtpEncodingParameters.scaleResolutionDownBy for audio (PR #2772)
Candidate Correction 21:Default RTCRtpEncodingParameters.scaleResolutionDownBy to 1 for video (PR #2772)
Candidate Addition 19:Add RTCRtpEncodingParameters.maxFramerate (PR #2785)
Candidate Correction 24:Remove maxFramerate like scaleResolutionDownBy for audio (PR #2799)
\n

\n setParameters does not cause SDP renegotiation and can\n only be used to change what the media stack is sending or\n receiving within the envelope negotiated by Offer/Answer. The\n attributes in the RTCRtpSendParameters dictionary are\n designed to not enable this, so attributes like\n cname that cannot be changed are\n read-only. Other things, like bitrate, are controlled using\n limits such as maxBitrate, where\n the user agent needs to ensure it does not exceed the maximum\n bitrate specified by maxBitrate,\n while at the same time making sure it satisfies constraints\n on bitrate specified in other places such as the SDP.\n

\n
\n
\n getParameters\n
\n
\n

\n The getParameters() method returns the RTCRtpSender\n object's current parameters for how track is encoded and\n transmitted to a remote RTCRtpReceiver.\n

\n

\n When getParameters is called, the user agent MUST run the\n following steps:\n

\n \n

\n getParameters may be used with setParameters to\n change the parameters in the following way:\n

\n \n

\n After a completed call to setParameters, subsequent calls\n to getParameters will return the modified set of\n parameters.\n

\n
\n
\n replaceTrack\n
\n
\n

\n Attempts to replace the RTCRtpSender's current track\n with another track provided (or with a null\n track), without renegotiation.\n

\n

\n When the replaceTrack method is invoked, the user agent\n MUST run the following steps:\n

\n \n \n
\n
\n setStreams\n
\n
\n

\n Sets the MediaStreams to be associated with this sender's\n track.\n

\n

\n When the setStreams method is invoked, the user agent\n MUST run the following steps:\n

\n \n
\n
\n getStats\n
\n
\n

\n Gathers stats for this sender only and reports the result\n asynchronously.\n

\n

\n When the getStats() method is invoked, the user agent\n MUST run the following steps:\n

\n \n
\n
\n
", + "html": "Validate parameters by running the following steps:", "rationale": "let", "steps": [ { @@ -2846,11 +2844,11 @@ "html": "Let p be a new promise." }, { - "html": "
[Exposed=Window]\ninterface RTCRtpSender {\n  readonly attribute MediaStreamTrack? track;\n  readonly attribute RTCDtlsTransport? transport;\n  static RTCRtpCapabilities? getCapabilities(DOMString kind);\n  Promise<undefined> setParameters(RTCRtpSendParameters parameters);\n  RTCRtpSendParameters getParameters();\n  Promise<undefined> replaceTrack(MediaStreamTrack? withTrack);\n  undefined setStreams(MediaStream... streams);\n  Promise<RTCStatsReport> getStats();\n};
\n
\n

\n Attributes\n

\n
\n
\n track of type MediaStreamTrack, readonly, nullable\n
\n
\n

\n The track attribute is the track that is associated with\n this RTCRtpSender object. If track is ended, or if\n the track's output is disabled, i.e. the track is disabled\n and/or muted, the RTCRtpSender MUST send black frames\n (video) and MUST NOT send (audio). In the case of video, the\n RTCRtpSender SHOULD send one black frame per second. If\n track is null then the RTCRtpSender does\n not send. On getting, the attribute MUST return the value of\n the [[SenderTrack]] slot.\n

\n
\n
\n transport of type RTCDtlsTransport, readonly, nullable\n
\n
\n

\n The transport attribute is the transport over which media\n from track is sent in the form of RTP packets. Prior to\n construction of the RTCDtlsTransport object, the\n transport attribute will be null. When bundling is used,\n multiple RTCRtpSender objects will share one\n transport and will all send RTP and RTCP over the same\n transport.\n

\n

\n On getting, the attribute MUST return the value of the\n [[SenderTransport]] slot.\n

\n
\n
\n
\n
\n

\n Methods\n

\n
\n
\n getCapabilities, static\n
\n
\n

\n The getCapabilities() method returns the most optimistic\n view of the capabilities of the system for sending media of\n the given kind. It does not reserve any resources, ports, or\n other state but is meant to provide a way to discover the\n types of capabilities of the browser including which codecs\n may be supported. User agents MUST support kind\n values of \"audio\" and \"video\". If\n the system has no capabilities corresponding to the value of\n the kind argument, getCapabilities returns\n null.\n

\n

\n These capabilities provide generally persistent cross-origin\n information on the device and thus increases the\n fingerprinting surface of the application. In\n privacy-sensitive contexts, browsers can consider mitigations\n such as reporting only a common subset of the capabilities.\n \"(This

\n \n
\n
\n setParameters\n
\n
\n

\n The setParameters method updates how track is encoded\n and transmitted to a remote peer.\n

\n

\n When the setParameters method is called, the user agent\n MUST run the following steps:\n

\n
Candidate Correction 20:Remove RTCRtpEncodingParameters.scaleResolutionDownBy for audio (PR #2772)
Candidate Correction 21:Default RTCRtpEncodingParameters.scaleResolutionDownBy to 1 for video (PR #2772)
Candidate Addition 19:Add RTCRtpEncodingParameters.maxFramerate (PR #2785)
Candidate Correction 24:Remove maxFramerate like scaleResolutionDownBy for audio (PR #2799)
\n

\n setParameters does not cause SDP renegotiation and can\n only be used to change what the media stack is sending or\n receiving within the envelope negotiated by Offer/Answer. The\n attributes in the RTCRtpSendParameters dictionary are\n designed to not enable this, so attributes like\n cname that cannot be changed are\n read-only. Other things, like bitrate, are controlled using\n limits such as maxBitrate, where\n the user agent needs to ensure it does not exceed the maximum\n bitrate specified by maxBitrate,\n while at the same time making sure it satisfies constraints\n on bitrate specified in other places such as the SDP.\n

\n
\n
\n getParameters\n
\n
\n

\n The getParameters() method returns the RTCRtpSender\n object's current parameters for how track is encoded and\n transmitted to a remote RTCRtpReceiver.\n

\n

\n When getParameters is called, the user agent MUST run the\n following steps:\n

\n \n

\n getParameters may be used with setParameters to\n change the parameters in the following way:\n

\n \n

\n After a completed call to setParameters, subsequent calls\n to getParameters will return the modified set of\n parameters.\n

\n
\n
\n replaceTrack\n
\n
\n

\n Attempts to replace the RTCRtpSender's current track\n with another track provided (or with a null\n track), without renegotiation.\n

\n

\n When the replaceTrack method is invoked, the user agent\n MUST run the following steps:\n

\n \n \n
\n
\n setStreams\n
\n
\n

\n Sets the MediaStreams to be associated with this sender's\n track.\n

\n

\n When the setStreams method is invoked, the user agent\n MUST run the following steps:\n

\n \n
\n
\n getStats\n
\n
\n

\n Gathers stats for this sender only and reports the result\n asynchronously.\n

\n

\n When the getStats() method is invoked, the user agent\n MUST run the following steps:\n

\n \n
\n
\n
", + "html": "In parallel, configure the media stack to use\n parameters to transmit\n sender.[[SenderTrack]].", "rationale": "if", "steps": [ { - "html": "
[Exposed=Window]\ninterface RTCRtpSender {\n  readonly attribute MediaStreamTrack? track;\n  readonly attribute RTCDtlsTransport? transport;\n  static RTCRtpCapabilities? getCapabilities(DOMString kind);\n  Promise<undefined> setParameters(RTCRtpSendParameters parameters);\n  RTCRtpSendParameters getParameters();\n  Promise<undefined> replaceTrack(MediaStreamTrack? withTrack);\n  undefined setStreams(MediaStream... streams);\n  Promise<RTCStatsReport> getStats();\n};
\n
\n

\n Attributes\n

\n
\n
\n track of type MediaStreamTrack, readonly, nullable\n
\n
\n

\n The track attribute is the track that is associated with\n this RTCRtpSender object. If track is ended, or if\n the track's output is disabled, i.e. the track is disabled\n and/or muted, the RTCRtpSender MUST send black frames\n (video) and MUST NOT send (audio). In the case of video, the\n RTCRtpSender SHOULD send one black frame per second. If\n track is null then the RTCRtpSender does\n not send. On getting, the attribute MUST return the value of\n the [[SenderTrack]] slot.\n

\n
\n
\n transport of type RTCDtlsTransport, readonly, nullable\n
\n
\n

\n The transport attribute is the transport over which media\n from track is sent in the form of RTP packets. Prior to\n construction of the RTCDtlsTransport object, the\n transport attribute will be null. When bundling is used,\n multiple RTCRtpSender objects will share one\n transport and will all send RTP and RTCP over the same\n transport.\n

\n

\n On getting, the attribute MUST return the value of the\n [[SenderTransport]] slot.\n

\n
\n
\n
\n
\n

\n Methods\n

\n
\n
\n getCapabilities, static\n
\n
\n

\n The getCapabilities() method returns the most optimistic\n view of the capabilities of the system for sending media of\n the given kind. It does not reserve any resources, ports, or\n other state but is meant to provide a way to discover the\n types of capabilities of the browser including which codecs\n may be supported. User agents MUST support kind\n values of \"audio\" and \"video\". If\n the system has no capabilities corresponding to the value of\n the kind argument, getCapabilities returns\n null.\n

\n

\n These capabilities provide generally persistent cross-origin\n information on the device and thus increases the\n fingerprinting surface of the application. In\n privacy-sensitive contexts, browsers can consider mitigations\n such as reporting only a common subset of the capabilities.\n \"(This

\n \n
\n
\n setParameters\n
\n
\n

\n The setParameters method updates how track is encoded\n and transmitted to a remote peer.\n

\n

\n When the setParameters method is called, the user agent\n MUST run the following steps:\n

\n
Candidate Correction 20:Remove RTCRtpEncodingParameters.scaleResolutionDownBy for audio (PR #2772)
Candidate Correction 21:Default RTCRtpEncodingParameters.scaleResolutionDownBy to 1 for video (PR #2772)
Candidate Addition 19:Add RTCRtpEncodingParameters.maxFramerate (PR #2785)
Candidate Correction 24:Remove maxFramerate like scaleResolutionDownBy for audio (PR #2799)
\n

\n setParameters does not cause SDP renegotiation and can\n only be used to change what the media stack is sending or\n receiving within the envelope negotiated by Offer/Answer. The\n attributes in the RTCRtpSendParameters dictionary are\n designed to not enable this, so attributes like\n cname that cannot be changed are\n read-only. Other things, like bitrate, are controlled using\n limits such as maxBitrate, where\n the user agent needs to ensure it does not exceed the maximum\n bitrate specified by maxBitrate,\n while at the same time making sure it satisfies constraints\n on bitrate specified in other places such as the SDP.\n

\n
\n
\n getParameters\n
\n
\n

\n The getParameters() method returns the RTCRtpSender\n object's current parameters for how track is encoded and\n transmitted to a remote RTCRtpReceiver.\n

\n

\n When getParameters is called, the user agent MUST run the\n following steps:\n

\n \n

\n getParameters may be used with setParameters to\n change the parameters in the following way:\n

\n \n

\n After a completed call to setParameters, subsequent calls\n to getParameters will return the modified set of\n parameters.\n

\n
\n
\n replaceTrack\n
\n
\n

\n Attempts to replace the RTCRtpSender's current track\n with another track provided (or with a null\n track), without renegotiation.\n

\n

\n When the replaceTrack method is invoked, the user agent\n MUST run the following steps:\n

\n \n \n
\n
\n setStreams\n
\n
\n

\n Sets the MediaStreams to be associated with this sender's\n track.\n

\n

\n When the setStreams method is invoked, the user agent\n MUST run the following steps:\n

\n \n
\n
\n getStats\n
\n
\n

\n Gathers stats for this sender only and reports the result\n asynchronously.\n

\n

\n When the getStats() method is invoked, the user agent\n MUST run the following steps:\n

\n \n
\n
\n
", + "html": "If the media stack is successfully configured with\n parameters, queue a task to run the following\n steps:", "rationale": "set", "steps": [ { @@ -2865,7 +2863,7 @@ ] }, { - "html": "
[Exposed=Window]\ninterface RTCRtpSender {\n  readonly attribute MediaStreamTrack? track;\n  readonly attribute RTCDtlsTransport? transport;\n  static RTCRtpCapabilities? getCapabilities(DOMString kind);\n  Promise<undefined> setParameters(RTCRtpSendParameters parameters);\n  RTCRtpSendParameters getParameters();\n  Promise<undefined> replaceTrack(MediaStreamTrack? withTrack);\n  undefined setStreams(MediaStream... streams);\n  Promise<RTCStatsReport> getStats();\n};
\n
\n

\n Attributes\n

\n
\n
\n track of type MediaStreamTrack, readonly, nullable\n
\n
\n

\n The track attribute is the track that is associated with\n this RTCRtpSender object. If track is ended, or if\n the track's output is disabled, i.e. the track is disabled\n and/or muted, the RTCRtpSender MUST send black frames\n (video) and MUST NOT send (audio). In the case of video, the\n RTCRtpSender SHOULD send one black frame per second. If\n track is null then the RTCRtpSender does\n not send. On getting, the attribute MUST return the value of\n the [[SenderTrack]] slot.\n

\n
\n
\n transport of type RTCDtlsTransport, readonly, nullable\n
\n
\n

\n The transport attribute is the transport over which media\n from track is sent in the form of RTP packets. Prior to\n construction of the RTCDtlsTransport object, the\n transport attribute will be null. When bundling is used,\n multiple RTCRtpSender objects will share one\n transport and will all send RTP and RTCP over the same\n transport.\n

\n

\n On getting, the attribute MUST return the value of the\n [[SenderTransport]] slot.\n

\n
\n
\n
\n
\n

\n Methods\n

\n
\n
\n getCapabilities, static\n
\n
\n

\n The getCapabilities() method returns the most optimistic\n view of the capabilities of the system for sending media of\n the given kind. It does not reserve any resources, ports, or\n other state but is meant to provide a way to discover the\n types of capabilities of the browser including which codecs\n may be supported. User agents MUST support kind\n values of \"audio\" and \"video\". If\n the system has no capabilities corresponding to the value of\n the kind argument, getCapabilities returns\n null.\n

\n

\n These capabilities provide generally persistent cross-origin\n information on the device and thus increases the\n fingerprinting surface of the application. In\n privacy-sensitive contexts, browsers can consider mitigations\n such as reporting only a common subset of the capabilities.\n \"(This

\n \n
\n
\n setParameters\n
\n
\n

\n The setParameters method updates how track is encoded\n and transmitted to a remote peer.\n

\n

\n When the setParameters method is called, the user agent\n MUST run the following steps:\n

\n
Candidate Correction 20:Remove RTCRtpEncodingParameters.scaleResolutionDownBy for audio (PR #2772)
Candidate Correction 21:Default RTCRtpEncodingParameters.scaleResolutionDownBy to 1 for video (PR #2772)
Candidate Addition 19:Add RTCRtpEncodingParameters.maxFramerate (PR #2785)
Candidate Correction 24:Remove maxFramerate like scaleResolutionDownBy for audio (PR #2799)
\n

\n setParameters does not cause SDP renegotiation and can\n only be used to change what the media stack is sending or\n receiving within the envelope negotiated by Offer/Answer. The\n attributes in the RTCRtpSendParameters dictionary are\n designed to not enable this, so attributes like\n cname that cannot be changed are\n read-only. Other things, like bitrate, are controlled using\n limits such as maxBitrate, where\n the user agent needs to ensure it does not exceed the maximum\n bitrate specified by maxBitrate,\n while at the same time making sure it satisfies constraints\n on bitrate specified in other places such as the SDP.\n

\n
\n
\n getParameters\n
\n
\n

\n The getParameters() method returns the RTCRtpSender\n object's current parameters for how track is encoded and\n transmitted to a remote RTCRtpReceiver.\n

\n

\n When getParameters is called, the user agent MUST run the\n following steps:\n

\n \n

\n getParameters may be used with setParameters to\n change the parameters in the following way:\n

\n \n

\n After a completed call to setParameters, subsequent calls\n to getParameters will return the modified set of\n parameters.\n

\n
\n
\n replaceTrack\n
\n
\n

\n Attempts to replace the RTCRtpSender's current track\n with another track provided (or with a null\n track), without renegotiation.\n

\n

\n When the replaceTrack method is invoked, the user agent\n MUST run the following steps:\n

\n \n \n
\n
\n setStreams\n
\n
\n

\n Sets the MediaStreams to be associated with this sender's\n track.\n

\n

\n When the setStreams method is invoked, the user agent\n MUST run the following steps:\n

\n \n
\n
\n getStats\n
\n
\n

\n Gathers stats for this sender only and reports the result\n asynchronously.\n

\n

\n When the getStats() method is invoked, the user agent\n MUST run the following steps:\n

\n \n
\n
\n
", + "html": "If any error occurred while configuring the media\n stack, queue a task to run the following steps:", "rationale": "if", "steps": [ { @@ -3041,7 +3039,7 @@ { "name": "remote source", "href": "https://www.w3.org/TR/webrtc/#dfn-remote-source", - "html": "Let track be a new MediaStreamTrack object\n [GETUSERMEDIA]. The source of track is a\n remote source provided by receiver. Note\n that the track.id is\n generated by the user agent and does not map to any track\n IDs on the remote side.", + "html": "To create an RTCRtpReceiver with a string,\n kind, run the following steps:", "rationale": ".algorithm", "steps": [ { @@ -3117,7 +3115,7 @@ { "name": "RTCRtpTransceiver/[[Sender]]", "href": "https://www.w3.org/TR/webrtc/#dfn-sender", - "html": "Let transceiver have a [[Sender]] internal\n slot, initialized to sender.", + "html": "To create an RTCRtpTransceiver with an RTCRtpReceiver\n object, receiver, RTCRtpSender object,\n sender, and an RTCRtpTransceiverDirection value,\n direction, run the following steps:", "rationale": ".algorithm", "steps": [ { @@ -3664,7 +3662,7 @@ { "name": "RTCSctpTransport/[[SctpTransportState]]", "href": "https://www.w3.org/TR/webrtc/#dfn-sctptransportstate", - "html": "Let transport have a\n [[SctpTransportState]] internal slot initialized\n to initialState.", + "html": "To create an RTCSctpTransport with an initial\n state, initialState, run the following steps:", "rationale": ".algorithm", "steps": [ { @@ -3748,7 +3746,7 @@ { "name": "RTCDataChannel/[[ReadyState]]", "href": "https://www.w3.org/TR/webrtc/#dfn-readystate", - "html": "Let channel have a [[ReadyState]]\n internal slot initialized to\n \"connecting\".", + "html": "To create an RTCDataChannel, run the following\n steps:", "rationale": ".algorithm", "steps": [ { @@ -3969,7 +3967,7 @@ { "name": "RTCDTMFSender/[[Duration]]", "href": "https://www.w3.org/TR/webrtc/#dfn-duration", - "html": "Let dtmf have a [[Duration]] internal\n slot.", + "html": "To create an RTCDTMFSender, the user agent MUST run the\n following steps:", "rationale": ".algorithm", "steps": [ { diff --git a/tr/algorithms/webtransport.json b/tr/algorithms/webtransport.json index 4e33b35381dc..177ff477d90b 100644 --- a/tr/algorithms/webtransport.json +++ b/tr/algorithms/webtransport.json @@ -354,14 +354,14 @@ "html": "

If duration is null, then set duration to an implementation-defined value.

" }, { - "html": "To sendDatagrams, given a WebTransport object transport, run these steps:", + "html": "While queue is not empty:", "rationale": "let", "steps": [ { "html": "

Let bytes, timestamp and promise be queue’s first element.

" }, { - "html": "To sendDatagrams, given a WebTransport object transport, run these steps:", + "html": "If more than duration milliseconds have passed since timestamp, then:", "rationale": "remove", "steps": [ { @@ -384,14 +384,14 @@ "html": "

Let maxSize be datagrams.[[OutgoingMaxDatagramSize]].

" }, { - "html": "To sendDatagrams, given a WebTransport object transport, run these steps:", + "html": "While queue is not empty:", "rationale": "let", "steps": [ { "html": "

Let bytes, timestamp and promise be queue’s first element.

" }, { - "html": "To sendDatagrams, given a WebTransport object transport, run these steps:", + "html": "If bytes’s length ≤ maxSize:", "rationale": "if", "steps": [ { @@ -529,7 +529,7 @@ "html": "

Run report Content Security Policy violations for request.

" }, { - "html": "To initialize WebTransport over HTTP, given a WebTransport object transport, a URL record url, a boolean dedicated, a boolean http3Only, a WebTransportCongestionControl congestionControl, and a\nsequence<WebTransportHash> serverCertificateHashes, run these steps.", + "html": "If should request be blocked by Content Security Policy? with request returns \"Blocked\", or if request should be blocked due to a bad port returns blocked, then abort the remaining steps and queue a network task with transport to run these steps:", "rationale": "if", "steps": [ { @@ -547,7 +547,7 @@ "html": "

Let networkPartitionKey be the result of determining the network partition key with transport’s relevant settings object.

" }, { - "html": "To initialize WebTransport over HTTP, given a WebTransport object transport, a URL record url, a boolean dedicated, a boolean http3Only, a WebTransportCongestionControl congestionControl, and a\nsequence<WebTransportHash> serverCertificateHashes, run these steps.", + "html": "Run the following steps in parallel, but abort when transport.[[State]] becomes \"closed\" or \"failed\":", "rationale": "let", "steps": [ { @@ -557,7 +557,7 @@ "html": "

Let connection be the result of obtaining a connection with networkPartitionKey, url, false, newConnection, and http3Only. If the user agent\n supports more than one congestion control algorithm, choose one appropriate for congestionControl for sending of data on this connection. When obtaining a connection, if serverCertificateHashes is specified, instead of using the default certificate verification\n algorithm, consider the certificate valid if it meets the custom certificate\n requirements and if verifying the certificate hash against serverCertificateHashes returns true. If either condition is not met, let connection be\n failure.

" }, { - "html": "To initialize WebTransport over HTTP, given a WebTransport object transport, a URL record url, a boolean dedicated, a boolean http3Only, a WebTransportCongestionControl congestionControl, and a\nsequence<WebTransportHash> serverCertificateHashes, run these steps.", + "html": "If connection is failure, then abort the remaining steps and queue a network task with transport to run these steps:", "rationale": "if", "steps": [ { @@ -575,7 +575,7 @@ "html": "

Wait for connection to receive the first SETTINGS frame, and let settings be a dictionary that\n represents the SETTINGS frame.

" }, { - "html": "To initialize WebTransport over HTTP, given a WebTransport object transport, a URL record url, a boolean dedicated, a boolean http3Only, a WebTransportCongestionControl congestionControl, and a\nsequence<WebTransportHash> serverCertificateHashes, run these steps.", + "html": "If settings doesn’t contain SETTINGS_ENABLE_WEBTRANPORT with a value of 1, or it doesn’t\n contain H3_DATAGRAM with a value of 1, then abort the remaining steps and queue a network\n task with transport to run these steps:", "rationale": "if", "steps": [ { @@ -593,7 +593,7 @@ "html": "

Establish a WebTransport session with origin on connection.

" }, { - "html": "To initialize WebTransport over HTTP, given a WebTransport object transport, a URL record url, a boolean dedicated, a boolean http3Only, a WebTransportCongestionControl congestionControl, and a\nsequence<WebTransportHash> serverCertificateHashes, run these steps.", + "html": "If the previous step fails, abort the remaining steps and queue a network task with transport to run these steps:", "rationale": "if", "steps": [ { @@ -614,11 +614,11 @@ "html": "

Assert: maxDatagramSize is an integer.

" }, { - "html": "To initialize WebTransport over HTTP, given a WebTransport object transport, a URL record url, a boolean dedicated, a boolean http3Only, a WebTransportCongestionControl congestionControl, and a\nsequence<WebTransportHash> serverCertificateHashes, run these steps.", + "html": "Queue a network task with transport to run these steps:", "rationale": "if", "steps": [ { - "html": "To initialize WebTransport over HTTP, given a WebTransport object transport, a URL record url, a boolean dedicated, a boolean http3Only, a WebTransportCongestionControl congestionControl, and a\nsequence<WebTransportHash> serverCertificateHashes, run these steps.", + "html": "If transport.[[State]] is not \"connecting\":", "rationale": "in parallel", "steps": [ { @@ -657,7 +657,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "To pullBidirectionalStream, given a WebTransport object transport, run\nthese steps.", + "html": "If transport.[[State]] is \"connecting\", then return the result of performing the\n following steps upon fulfillment of transport.[[Ready]]:", "rationale": "return", "steps": [ { @@ -675,7 +675,7 @@ "html": "

Let p be a new promise.

" }, { - "html": "To pullBidirectionalStream, given a WebTransport object transport, run\nthese steps.", + "html": "Run the following steps in parallel:", "rationale": "wait", "steps": [ { @@ -685,7 +685,7 @@ "html": "

Let internalStream be the result of receiving a bidirectional stream.

" }, { - "html": "To pullBidirectionalStream, given a WebTransport object transport, run\nthese steps.", + "html": "Queue a network task with transport to run these steps:", "rationale": "let", "steps": [ { @@ -713,7 +713,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "To pullUnidirectionalStream, given a WebTransport object transport, run\nthese steps.", + "html": "If transport.[[State]] is \"connecting\", then return the result of performing the\n following steps upon fulfillment of transport.[[Ready]]:", "rationale": "return", "steps": [ { @@ -731,7 +731,7 @@ "html": "

Let p be a new promise.

" }, { - "html": "To pullUnidirectionalStream, given a WebTransport object transport, run\nthese steps.", + "html": "Run the following steps in parallel:", "rationale": "wait", "steps": [ { @@ -741,7 +741,7 @@ "html": "

Let internalStream be the result of receiving an incoming unidirectional stream.

" }, { - "html": "To pullUnidirectionalStream, given a WebTransport object transport, run\nthese steps.", + "html": "Queue a network task with transport to run these steps:", "rationale": "let", "steps": [ { @@ -808,7 +808,7 @@ "html": "

If transport.[[State]] is \"closed\" or \"failed\", then abort these steps.

" }, { - "html": "
\n
close(closeInfo)\n
\n

Terminates the WebTransport session associated with the WebTransport object.

\n

When close is called, the user agent MUST run the following steps:

\n \n
", + "html": "If transport.[[State]] is \"connecting\":", "rationale": "let", "steps": [ { @@ -1086,7 +1086,7 @@ "html": "

If closeInfo is given, then set transport.[[State]] to \"closed\".\n Otherwise, set transport.[[State]] to \"failed\".

" }, { - "html": "To cleanup a WebTransport transport with error and\noptionally closeInfo, run these steps:", + "html": "For each stream in sendStreams, run the following steps:", "rationale": "if", "steps": [ { @@ -1101,7 +1101,7 @@ "html": "

For each stream in receiveStreams, error stream with error.

" }, { - "html": "To cleanup a WebTransport transport with error and\noptionally closeInfo, run these steps:", + "html": "If closeInfo is given, then:", "rationale": "resolve", "steps": [ { @@ -1125,7 +1125,7 @@ ] }, { - "html": "To cleanup a WebTransport transport with error and\noptionally closeInfo, run these steps:", + "html": "Otherwise:", "rationale": "reject", "steps": [ { @@ -1279,11 +1279,11 @@ "html": "

Let referenceHash be the result of computing a certificate hash with certificate.

" }, { - "html": "To verify a certificate hash, given a certificate and an array of hashes hashes,\nperform the following steps:", + "html": "For every hash hash in hashes:", "rationale": "if", "steps": [ { - "html": "To verify a certificate hash, given a certificate and an array of hashes hashes,\nperform the following steps:", + "html": "If hash.value is not null and hash.algorithm is an ASCII case-insensitive match with \"sha-256\":", "rationale": "let", "steps": [ { @@ -1411,7 +1411,7 @@ "html": "

Let abortSignal be stream’s [[controller]].[[abortController]].[[signal]].

" }, { - "html": "To create a WebTransportSendStream, with an outgoing unidirectional or bidirectional WebTransport stream internalStream, a WebTransport transport, sendGroup, and a sendOrder, run these steps:", + "html": "Add the following steps to abortSignal.", "rationale": "let", "steps": [ { @@ -1470,11 +1470,11 @@ "html": "

Let atomic be true if stream.[[AtomicWriteRequests]] contains inFlightWriteRequest, otherwise false.

" }, { - "html": "To write chunk to a WebTransportSendStream stream, run these steps:", + "html": "Run the following steps in parallel:", "rationale": "if", "steps": [ { - "html": "To write chunk to a WebTransportSendStream stream, run these steps:", + "html": "If atomic is true and the current flow control window is too small for bytes to be sent\n in its entirety, then abort the remaining steps and queue a network task with transport to run these sub-steps:", "rationale": "set", "steps": [ { @@ -1492,7 +1492,7 @@ "html": "

If the previous step failed due to a network error, abort the remaining steps.

" }, { - "html": "To write chunk to a WebTransportSendStream stream, run these steps:", + "html": "Otherwise, queue a network task with transport to run these steps:", "rationale": "set", "steps": [ { @@ -1532,7 +1532,7 @@ "html": "

Set stream.[[PendingOperation]] to promise.

" }, { - "html": "To close a WebTransportSendStream stream, run these steps:", + "html": "Run the following steps in parallel:", "rationale": "send", "steps": [ { @@ -1542,7 +1542,7 @@ "html": "

Wait for stream.[[InternalStream]] to enter the \"Data Recvd\" state. [QUIC]

" }, { - "html": "To close a WebTransportSendStream stream, run these steps:", + "html": "Queue a network task with transport to run these steps:", "rationale": "set", "steps": [ { @@ -1588,7 +1588,7 @@ "html": "

If code > 4294967295, then set code to 4294967295.

" }, { - "html": "To abort a WebTransportSendStream stream with reason, run these steps:", + "html": "Run the following steps in parallel:", "rationale": "reset", "steps": [ { @@ -1796,7 +1796,7 @@ "html": "

Let buffer, offset, and maxBytes be null.

" }, { - "html": "To pull bytes from a WebTransportReceiveStream stream, run these steps.", + "html": "If stream’s current BYOB request view for stream is not null:", "rationale": "set", "steps": [ { @@ -1811,7 +1811,7 @@ ] }, { - "html": "To pull bytes from a WebTransportReceiveStream stream, run these steps.", + "html": "Otherwise:", "rationale": "set", "steps": [ { @@ -1826,7 +1826,7 @@ ] }, { - "html": "To pull bytes from a WebTransportReceiveStream stream, run these steps.", + "html": "Run the following steps in parallel:", "rationale": "if", "steps": [ { @@ -1836,11 +1836,11 @@ "html": "

If the previous step failed, abort the remaining steps.

" }, { - "html": "To pull bytes from a WebTransportReceiveStream stream, run these steps.", + "html": "Queue a network task with transport to run these steps:", "rationale": "if", "steps": [ { - "html": "To pull bytes from a WebTransportReceiveStream stream, run these steps.", + "html": "If read > 0:", "rationale": "set", "steps": [ { @@ -1852,7 +1852,7 @@ ] }, { - "html": "To pull bytes from a WebTransportReceiveStream stream, run these steps.", + "html": "If hasReceivedFIN is true:", "rationale": "remove", "steps": [ { @@ -1906,14 +1906,14 @@ "html": "

Remove stream from transport.[[SendStreams]].

" }, { - "html": "To cancel a WebTransportReceiveStream stream with reason, run these\nsteps.", + "html": "Run the following steps in parallel:", "rationale": "send", "steps": [ { "html": "

Send STOP_SENDING with internalStream and code.

" }, { - "html": "To cancel a WebTransportReceiveStream stream with reason, run these\nsteps.", + "html": "Queue a network task with transport to run these steps:", "rationale": "remove", "steps": [ { diff --git a/tr/algorithms/webvtt1.json b/tr/algorithms/webvtt1.json index b55c2a7333d1..e9567dc07ac8 100644 --- a/tr/algorithms/webvtt1.json +++ b/tr/algorithms/webvtt1.json @@ -860,7 +860,7 @@ { "name": "WebVTT cue text parsing", "href": "https://www.w3.org/TR/webvtt1/#attach-a-webvtt-internal-node-object", - "html": "When the steps above say to attach a WebVTT Internal Node Object of a particular\n concrete class, the user agent must run the following steps:", + "html": "The WebVTT cue text parsing rules consist of the following algorithm. The input is a\nstring input supposedly containing WebVTT caption or subtitle cue text, and optionally a\nfallback language language. This algorithm returns a list of WebVTT Node Objects.", "rationale": ".algorithm", "steps": [ { diff --git a/tr/algorithms/webxr-depth-sensing-1.json b/tr/algorithms/webxr-depth-sensing-1.json index 601949c78e64..2ed9372dbf5b 100644 --- a/tr/algorithms/webxr-depth-sensing-1.json +++ b/tr/algorithms/webxr-depth-sensing-1.json @@ -14,7 +14,7 @@ "html": "

Let selectedUsage be null.

" }, { - "html": "In order to find supported configuration combination for depth sensing API given usagePreference and dataFormatPreference sequences, the user agent MUST run the following algorithm:", + "html": "Initialize selectedUsage as follows:", "rationale": ".switch", "steps": [ { @@ -26,7 +26,7 @@ }, { "case": "Otherwise", - "html": "In order to find supported configuration combination for depth sensing API given usagePreference and dataFormatPreference sequences, the user agent MUST run the following algorithm:", + "html": "For each usage in usagePreference sequence, perform the following steps:", "rationale": "if", "steps": [ { @@ -48,7 +48,7 @@ "html": "

Let selectedDataFormat be null.

" }, { - "html": "In order to find supported configuration combination for depth sensing API given usagePreference and dataFormatPreference sequences, the user agent MUST run the following algorithm:", + "html": "Initialize selectedDataFormat as follows:", "rationale": ".switch", "steps": [ { @@ -60,7 +60,7 @@ }, { "case": "Otherwise", - "html": "In order to find supported configuration combination for depth sensing API given usagePreference and dataFormatPreference sequences, the user agent MUST run the following algorithm:", + "html": "For each dataFormat in dataFormatPreference, perform the following steps:", "rationale": "if", "steps": [ { @@ -319,7 +319,7 @@ "html": "

Initialize result’s view to view.

" }, { - "html": "In order to create a WebGL depth information instance given XRFrame frame and XRView view, the user agent MUST run the following steps:", + "html": "Initialize result’s textureType as follows:", "rationale": ".switch", "steps": [ { @@ -338,7 +338,7 @@ ] }, { - "html": "In order to create a WebGL depth information instance given XRFrame frame and XRView view, the user agent MUST run the following steps:", + "html": "Initialize result’s imageIndex as follows:", "rationale": ".switch", "steps": [ { diff --git a/tr/algorithms/webxr-hand-input-1.json b/tr/algorithms/webxr-hand-input-1.json index 2e346c36a17c..e654055a5af9 100644 --- a/tr/algorithms/webxr-hand-input-1.json +++ b/tr/algorithms/webxr-hand-input-1.json @@ -69,7 +69,7 @@ "html": "

If frame’s active boolean is false, throw an InvalidStateError and abort these steps.

" }, { - "html": "The fillJointRadii(sequence<XRJointSpace> jointSpaces, Float32Array radii) method populates radii with the radii of the jointSpaces, and returns a boolean indicating whether all of the spaces have a valid pose.", + "html": "For each joint in the jointSpaces:", "rationale": "if", "steps": [ { @@ -87,11 +87,11 @@ "html": "

Let allValid be true.

" }, { - "html": "The fillJointRadii(sequence<XRJointSpace> jointSpaces, Float32Array radii) method populates radii with the radii of the jointSpaces, and returns a boolean indicating whether all of the spaces have a valid pose.", + "html": "For each joint in the jointSpaces:", "rationale": "set", "steps": [ { - "html": "The fillJointRadii(sequence<XRJointSpace> jointSpaces, Float32Array radii) method populates radii with the radii of the jointSpaces, and returns a boolean indicating whether all of the spaces have a valid pose.", + "html": "Set the float value of radii at offset as follows:", "rationale": ".switch", "steps": [ { @@ -135,7 +135,7 @@ "html": "

If frame’s active boolean is false, throw an InvalidStateError and abort these steps.

" }, { - "html": "The fillPoses(sequence<XRSpace> spaces, XRSpace baseSpace, Float32Array transforms) method populates transforms with the matrices of the poses of the spaces relative to the baseSpace, and returns a boolean indicating whether all of the spaces have a valid pose.", + "html": "For each space in the spaces sequence:", "rationale": "if", "steps": [ { @@ -153,7 +153,7 @@ "html": "

let offset be a new number with the initial value of 0.

" }, { - "html": "The fillPoses(sequence<XRSpace> spaces, XRSpace baseSpace, Float32Array transforms) method populates transforms with the matrices of the poses of the spaces relative to the baseSpace, and returns a boolean indicating whether all of the spaces have a valid pose.", + "html": "Initialize pose as follows:", "rationale": ".switch", "steps": [ { @@ -175,7 +175,7 @@ "html": "

Let allValid be true.

" }, { - "html": "The fillPoses(sequence<XRSpace> spaces, XRSpace baseSpace, Float32Array transforms) method populates transforms with the matrices of the poses of the spaces relative to the baseSpace, and returns a boolean indicating whether all of the spaces have a valid pose.", + "html": "For each space in the spaces sequence:", "rationale": "populate", "steps": [ { diff --git a/tr/algorithms/webxr-hit-test-1.json b/tr/algorithms/webxr-hit-test-1.json index 6cc1acc5e659..a559ccbe33b3 100644 --- a/tr/algorithms/webxr-hit-test-1.json +++ b/tr/algorithms/webxr-hit-test-1.json @@ -167,7 +167,7 @@ "html": "

Let results be an empty array of XRHitTestResults.

" }, { - "html": "In order to create a hit test result for transient input given XRInputSource inputSource, XRFrame frame, array of XRHitTestTrackableType entityTypes, and array of native hit test results nativeResults, the user agent MUST run the following steps:", + "html": "For each nativeResult in nativeResults:", "rationale": "create", "steps": [ { @@ -298,7 +298,7 @@ "html": "

Let hitTestResults be an empty list.

" }, { - "html": "In order to compute hit test results for a given XRFrame frame, for each hit test source, hitTestSource, that is present in session's set of active hit test sources, the user agent MUST perform the following steps:", + "html": "For each native hit test result nativeResult in nativeResults, perform the following steps:", "rationale": "create", "steps": [ { @@ -342,7 +342,7 @@ "html": "

Let hitTestResults be an empty array of XRTransientInputHitTestResults.

" }, { - "html": "In order to compute hit test results for transient input for a given XRFrame frame, for each hit test source, hitTestSource, that is present in session's set of active hit test sources for transient input, the user agent MUST perform the following steps:", + "html": "For each transient input source inputSource in matchingInputSources:", "rationale": "query", "steps": [ { @@ -484,7 +484,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "To obtain the matrix for a given XRRay ray", + "html": "If ray’s matrix is not null, perform the following steps:", "rationale": "if", "steps": [ { @@ -502,7 +502,7 @@ "html": "

Let cos_angle be the scalar dot product of z and ray’s direction, z · direction.

" }, { - "html": "To obtain the matrix for a given XRRay ray", + "html": "Set rotation based on the following:", "rationale": ".switch", "steps": [ { @@ -551,7 +551,7 @@ "html": "

Let entityType be a new XRHitTestTrackableType.

" }, { - "html": "To convert from native entity type into XRHitTestTrackableType, the user agent MUST run the following steps:", + "html": "Initialize entityType as follows:", "rationale": ".switch", "steps": [ { diff --git a/tr/algorithms/webxr-lighting-estimation-1.json b/tr/algorithms/webxr-lighting-estimation-1.json index e5d0dc40e2c8..b4a98adec30c 100644 --- a/tr/algorithms/webxr-lighting-estimation-1.json +++ b/tr/algorithms/webxr-lighting-estimation-1.json @@ -17,7 +17,7 @@ "html": "

If the light-estimation feature descriptor is not contained in the session’s list of enabled features, reject promise with NotSupportedError and abort these steps.

" }, { - "html": "When the requestLightProbe(options) method is invoked on XRSession session, the user agent MUST run the following steps:", + "html": "If session’s ended value is true, throw an InvalidStateError and abort these steps.", "rationale": ".switch", "steps": [ { @@ -25,7 +25,7 @@ "steps": [ { "case": "If options’s reflectionFormat is \"srgba8\" or matches session’s preferredReflectionFormat:", - "html": "When the requestLightProbe(options) method is invoked on XRSession session, the user agent MUST run the following steps:", + "html": "", "rationale": "let", "steps": [ { @@ -44,7 +44,7 @@ }, { "case": "else", - "html": "When the requestLightProbe(options) method is invoked on XRSession session, the user agent MUST run the following steps:", + "html": "", "rationale": "reject", "steps": [ { @@ -83,7 +83,7 @@ "html": "

Let estimate be a new XRLightEstimate.

" }, { - "html": "When the getLightEstimate(lightProbe) method is invoked on XRFrame frame, the user agent MUST run the following steps:", + "html": "Populate estimate’s sphericalHarmonicsCoefficients, with the coefficients provided by device.", "rationale": ".switch", "steps": [ { @@ -91,7 +91,7 @@ "steps": [ { "case": "If device has an estimated direction for the light source", - "html": "When the getLightEstimate(lightProbe) method is invoked on XRFrame frame, the user agent MUST run the following steps:", + "html": "", "rationale": "set", "steps": [ { @@ -101,7 +101,7 @@ }, { "case": "else", - "html": "When the getLightEstimate(lightProbe) method is invoked on XRFrame frame, the user agent MUST run the following steps:", + "html": "", "rationale": "set", "steps": [ { @@ -114,7 +114,7 @@ ], "additional": [ { - "html": "When the getLightEstimate(lightProbe) method is invoked on XRFrame frame, the user agent MUST run the following steps:", + "html": "Populate estimate’s sphericalHarmonicsCoefficients, with the coefficients provided by device.", "rationale": ".switch", "steps": [ { @@ -122,7 +122,7 @@ "steps": [ { "case": "If device has an estimated intensity for the light source", - "html": "When the getLightEstimate(lightProbe) method is invoked on XRFrame frame, the user agent MUST run the following steps:", + "html": "", "rationale": "set", "steps": [ { @@ -132,7 +132,7 @@ }, { "case": "else", - "html": "When the getLightEstimate(lightProbe) method is invoked on XRFrame frame, the user agent MUST run the following steps:", + "html": "", "rationale": "set", "steps": [ { diff --git a/tr/algorithms/webxr.json b/tr/algorithms/webxr.json index fce4b5531b18..5bb18c027863 100644 --- a/tr/algorithms/webxr.json +++ b/tr/algorithms/webxr.json @@ -20,7 +20,7 @@ "html": "

If the list of immersive XR devices's size is one, set the immersive XR device to the list of immersive XR devices[0].

" }, { - "html": "Each time the list of immersive XR devices changes the user agent should select an immersive XR device by running the following steps:", + "html": "Set the immersive XR device as follows:", "rationale": ".switch", "steps": [ { @@ -94,7 +94,7 @@ "html": "

If the requesting document’s origin is not allowed to use the \"xr-spatial-tracking\" permissions policy, reject promise with a \"SecurityError\" DOMException and return it.

" }, { - "html": "The isSessionSupported(mode) method queries if a given mode may be supported by the user agent and device capabilities. \n

When this method is invoked, it MUST run the following steps:

", + "html": "Check whether the session mode is supported as follows:", "rationale": ".switch", "steps": [ { @@ -110,7 +110,7 @@ }, { "case": "Otherwise", - "html": "The isSessionSupported(mode) method queries if a given mode may be supported by the user agent and device capabilities. \n

When this method is invoked, it MUST run the following steps:

", + "html": "Run the following steps in parallel:", "rationale": "let", "steps": [ { @@ -155,7 +155,7 @@ "html": "

Let global object be the relevant Global object for the XRSystem on which this method was invoked.

" }, { - "html": "The requestSession(mode, options) method attempts to initialize an XRSession for the given mode if possible, entering immersive mode if necessary.", + "html": "Check whether the session request is allowed as follows:", "rationale": ".switch", "steps": [ { @@ -163,7 +163,7 @@ "steps": [ { "case": "If immersive is true:", - "html": "The requestSession(mode, options) method attempts to initialize an XRSession for the given mode if possible, entering immersive mode if necessary.", + "html": "", "rationale": "check", "steps": [ { @@ -186,7 +186,7 @@ ] }, { - "html": "The requestSession(mode, options) method attempts to initialize an XRSession for the given mode if possible, entering immersive mode if necessary.", + "html": "Run the following steps in parallel:", "rationale": "let", "steps": [ { @@ -199,11 +199,11 @@ "html": "

Set device to the result of obtaining the current device for mode, requiredFeatures, and optionalFeatures.

" }, { - "html": "The requestSession(mode, options) method attempts to initialize an XRSession for the given mode if possible, entering immersive mode if necessary.", + "html": "Queue a task to perform the following steps:", "rationale": "if", "steps": [ { - "html": "The requestSession(mode, options) method attempts to initialize an XRSession for the given mode if possible, entering immersive mode if necessary.", + "html": "If device is null or device’s list of supported modes does not contain mode, run the following steps:", "rationale": "reject", "steps": [ { @@ -227,7 +227,7 @@ "html": "

Request the xr permission with descriptor and status.

" }, { - "html": "The requestSession(mode, options) method attempts to initialize an XRSession for the given mode if possible, entering immersive mode if necessary.", + "html": "If statusstate is \"denied\" run the following steps:", "rationale": "reject", "steps": [ { @@ -251,7 +251,7 @@ "html": "

Initialize the session with session, mode, granted, and device.

" }, { - "html": "The requestSession(mode, options) method attempts to initialize an XRSession for the given mode if possible, entering immersive mode if necessary.", + "html": "Potentially set the active immersive session as follows:", "rationale": ".switch", "steps": [ { @@ -273,7 +273,7 @@ "html": "

Resolve promise with session.

" }, { - "html": "The requestSession(mode, options) method attempts to initialize an XRSession for the given mode if possible, entering immersive mode if necessary.", + "html": "Queue a task to perform the following steps:", "rationale": "set", "steps": [ { @@ -283,7 +283,7 @@ "html": "

Let sources be any existing input sources attached to session.

" }, { - "html": "The requestSession(mode, options) method attempts to initialize an XRSession for the given mode if possible, entering immersive mode if necessary.", + "html": "If sources is non-empty, perform the following steps:", "rationale": "set", "steps": [ { @@ -312,7 +312,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "To obtain the current device for an XRSessionMode mode, requiredFeatures, and optionalFeatures the user agent MUST run the following steps:", + "html": "Choose device as follows:", "rationale": ".switch", "steps": [ { @@ -403,7 +403,7 @@ "html": "

Shut down this.

" }, { - "html": "The end() method provides a way to manually shut down a session. When invoked, it MUST run the following steps:", + "html": "Queue a task to perform the following steps:", "rationale": "wait", "steps": [ { @@ -475,7 +475,7 @@ "html": "

Set session’s internal target framerate to rate.

" }, { - "html": "The updateTargetFrameRate(rate) method passes the target frame rate rate to the XRSession.", + "html": "Queue a task to perform the following steps:", "rationale": "let", "steps": [ { @@ -485,7 +485,7 @@ "html": "

Let newrate be the new nominal frame rate.

" }, { - "html": "The updateTargetFrameRate(rate) method passes the target frame rate rate to the XRSession.", + "html": "Queue a task to perform the following steps:", "rationale": "apply", "steps": [ { @@ -572,7 +572,7 @@ "html": "

Let oldLayers be activeState’s layers.

" }, { - "html": "When requested, the XRSession session MUST apply the pending render state by running the following steps:", + "html": "Queue a task to perform the following steps:", "rationale": "set", "steps": [ { @@ -597,7 +597,7 @@ "html": "

Let baseLayer be activeState’s baseLayer.

" }, { - "html": "When requested, the XRSession session MUST apply the pending render state by running the following steps:", + "html": "Set activeState’s composition enabled and output canvas as follows:", "rationale": ".switch", "steps": [ { @@ -629,7 +629,7 @@ "html": "

Let promise be a new Promise in the relevant realm of this XRSession.

" }, { - "html": "The requestReferenceSpace(type) method constructs a new XRReferenceSpace of a given type, if possible. \n

When this method is invoked, the user agent MUST run the following steps:

", + "html": "Run the following steps in parallel:", "rationale": "if", "steps": [ { @@ -667,7 +667,7 @@ "html": "

Let added be a new list.

" }, { - "html": "When new XR input sources become available for XRSession session, the user agent MUST run the following steps:", + "html": "For each new XR input source:", "rationale": "let", "steps": [ { @@ -679,7 +679,7 @@ ] }, { - "html": "When new XR input sources become available for XRSession session, the user agent MUST run the following steps:", + "html": "Queue a task to perform the following steps:", "rationale": "extend", "steps": [ { @@ -705,7 +705,7 @@ "html": "

Let removed be a new list.

" }, { - "html": "When any previously added XR input sources are no longer available for XRSession session, the user agent MUST run the following steps:", + "html": "For each XR input source that is no longer available:", "rationale": "let", "steps": [ { @@ -717,7 +717,7 @@ ] }, { - "html": "When any previously added XR input sources are no longer available for XRSession session, the user agent MUST run the following steps:", + "html": "Queue a task to perform the following steps:", "rationale": "remove", "steps": [ { @@ -746,7 +746,7 @@ "html": "

Let removed be a new list.

" }, { - "html": "When the handedness, targetRayMode, profiles, or presence of a gripSpace for any XR input sources change for XRSession session, the user agent MUST run the following steps:", + "html": "For each changed XR input source:", "rationale": "let", "steps": [ { @@ -764,7 +764,7 @@ ] }, { - "html": "When the handedness, targetRayMode, profiles, or presence of a gripSpace for any XR input sources change for XRSession session, the user agent MUST run the following steps:", + "html": "Queue a task to perform the following steps:", "rationale": "remove", "steps": [ { @@ -796,7 +796,7 @@ "html": "

Initialize state’s depthFar to 1000.0.

" }, { - "html": "When an XRRenderState object is created for an XRSession session, the user agent MUST initialize the render state by running the following steps:", + "html": "Initialize state’s inlineVerticalFieldOfView as follows:", "rationale": ".switch", "steps": [ { @@ -897,7 +897,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "When an XRSession session receives updated viewer state for timestamp frameTime from the XR device, it runs an XR animation frame, which MUST run the following steps regardless of if the list of animation frame callbacks is empty or not:", + "html": "Queue a task to perform the following steps:", "rationale": "let", "steps": [ { @@ -922,7 +922,7 @@ "html": "

If the active flag of any view in the list of views has changed since the last XR animation frame, update the viewports.

" }, { - "html": "When an XRSession session receives updated viewer state for timestamp frameTime from the XR device, it runs an XR animation frame, which MUST run the following steps regardless of if the list of animation frame callbacks is empty or not:", + "html": "If the frame should be rendered for session:", "rationale": "set", "steps": [ { @@ -992,7 +992,7 @@ "html": "

Let xrviews be an empty list.

" }, { - "html": "The getViewerPose(referenceSpace) method provides the pose of the viewer relative to referenceSpace as an XRViewerPose, at the XRFrame's time.", + "html": "For each active view view in the list of views on session, perform the following steps:", "rationale": "let", "steps": [ { @@ -1056,7 +1056,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "To apply frame updates for an XRFrame frame, the user agent MUST run the following steps:", + "html": "For each frame update in frame’s session's list of frame updates, perform the following steps:", "rationale": "run", "steps": [ { @@ -1097,7 +1097,7 @@ "html": "

Let transform be pose’s transform.

" }, { - "html": "To populate the pose of an XRSpace space in an XRSpace baseSpace at the time represented by an XRFrame frame into an XRPose pose, with an optional force emulation flag, the user agent MUST run the following steps:", + "html": "Query the XR device's tracking system for space’s pose relative to baseSpace at the frame’s time, then perform the following steps:", "rationale": ".switch", "steps": [ { @@ -1132,7 +1132,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "When an XRReferenceSpace is requested with XRReferenceSpaceType type for XRSession session, the user agent MUST create a reference space by running the following steps:", + "html": "Initialize referenceSpace as follows:", "rationale": ".switch", "steps": [ { @@ -1200,7 +1200,7 @@ "html": "

Let base be the XRReferenceSpace the method was called on.

" }, { - "html": "The getOffsetReferenceSpace(originOffset) method MUST perform the following steps when invoked:", + "html": "Initialize offsetSpace as follows:", "rationale": ".switch", "steps": [ { @@ -1276,7 +1276,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "To obtain the projection matrix for a given XRView view:", + "html": "If view’s internal projection matrix is not null, perform the following steps:", "rationale": "if", "steps": [ { @@ -1308,7 +1308,7 @@ "html": "

Set layer’s list of viewport objects to the empty list.

" }, { - "html": "When the active flag of any view in the list of views changes, one can update the viewports for an XRSession session by performing the following steps:", + "html": "For each active view view in list of views:", "rationale": "let", "steps": [ { @@ -1439,7 +1439,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "To obtain the matrix for a given XRRigidTransform transform:", + "html": "If transform’s internal matrix is not null, perform the following steps:", "rationale": "if", "steps": [ { @@ -1686,7 +1686,7 @@ "html": "

Initialize layer’s session to session.

" }, { - "html": "The XRWebGLLayer(session, context, layerInit) constructor MUST perform the following steps when invoked:", + "html": "Initialize layer’s ignoreDepthValues as follows:", "rationale": ".switch", "steps": [ { @@ -1705,7 +1705,7 @@ ] }, { - "html": "The XRWebGLLayer(session, context, layerInit) constructor MUST perform the following steps when invoked:", + "html": "Initialize layer’s composition enabled boolean as follows:", "rationale": ".switch", "steps": [ { @@ -1724,7 +1724,7 @@ ] }, { - "html": "The XRWebGLLayer(session, context, layerInit) constructor MUST perform the following steps when invoked:", + "html": "
\n
If layer’s composition enabled boolean is true:\n
\n \n
Otherwise:\n
\n \n
", "rationale": ".switch", "steps": [ { @@ -1732,7 +1732,7 @@ "steps": [ { "case": "If layer’s composition enabled boolean is true:", - "html": "The XRWebGLLayer(session, context, layerInit) constructor MUST perform the following steps when invoked:", + "html": "", "rationale": "initialize", "steps": [ { @@ -1760,7 +1760,7 @@ }, { "case": "Otherwise:", - "html": "The XRWebGLLayer(session, context, layerInit) constructor MUST perform the following steps when invoked:", + "html": "", "rationale": "initialize", "steps": [ { @@ -1802,7 +1802,7 @@ "html": "

If view’s frame is not equal to frame, throw an InvalidStateError and abort these steps.

" }, { - "html": "The getViewport(view) method, when invoked on an XRWebGLLayer layer, MUST run the following steps:", + "html": "If the viewport modifiable flag is true and view’s requested viewport scale is not equal to current viewport scale:", "rationale": "set", "steps": [ { @@ -1870,14 +1870,14 @@ "html": "

Let context be this.

" }, { - "html": "The makeXRCompatible() method ensures the WebGLRenderingContextBase is running on a compatible graphics adapter for the immersive XR device. \n

When this method is invoked, the user agent MUST run the following steps:

", + "html": "Run the following steps in parallel:", "rationale": "let", "steps": [ { "html": "

Let device be the result of ensuring an immersive XR device is selected.

" }, { - "html": "The makeXRCompatible() method ensures the WebGLRenderingContextBase is running on a compatible graphics adapter for the immersive XR device. \n

When this method is invoked, the user agent MUST run the following steps:

", + "html": "Set context’s XR compatible boolean as follows:", "rationale": ".switch", "steps": [ { @@ -1901,14 +1901,14 @@ }, { "case": "Otherwise:", - "html": "The makeXRCompatible() method ensures the WebGLRenderingContextBase is running on a compatible graphics adapter for the immersive XR device. \n

When this method is invoked, the user agent MUST run the following steps:

", + "html": "Queue a task on the WebGL task source to perform the following steps:", "rationale": "handle", "steps": [ { "html": "

Force context to be lost.

" }, { - "html": "The makeXRCompatible() method ensures the WebGLRenderingContextBase is running on a compatible graphics adapter for the immersive XR device. \n

When this method is invoked, the user agent MUST run the following steps:

", + "html": "Handle the context loss as described by the WebGL specification:", "rationale": "let", "steps": [ { @@ -1927,7 +1927,7 @@ "html": "

Disable all extensions except \"WEBGL_lose_context\".

" }, { - "html": "The makeXRCompatible() method ensures the WebGLRenderingContextBase is running on a compatible graphics adapter for the immersive XR device. \n

When this method is invoked, the user agent MUST run the following steps:

", + "html": "Queue a task on the WebGL task source to perform the following steps:", "rationale": "fire", "steps": [ { @@ -1937,14 +1937,14 @@ "html": "

If e’s canceled flag is not set, reject promise with an AbortError and abort these steps.

" }, { - "html": "The makeXRCompatible() method ensures the WebGLRenderingContextBase is running on a compatible graphics adapter for the immersive XR device. \n

When this method is invoked, the user agent MUST run the following steps:

", + "html": "Run the following steps in parallel.", "rationale": "queue", "steps": [ { "html": "

Await a restorable drawing buffer on a compatible graphics adapter for device.

" }, { - "html": "The makeXRCompatible() method ensures the WebGLRenderingContextBase is running on a compatible graphics adapter for the immersive XR device. \n

When this method is invoked, the user agent MUST run the following steps:

", + "html": "Queue a task on the WebGL task source to perform the following steps:", "rationale": "restore", "steps": [ { @@ -2057,7 +2057,7 @@ "html": "

If session’s visibilityState is \"hidden\", return false.

" }, { - "html": "To determine if poses may be reported to an XRSession session, the user agent MUST run the following steps:", + "html": "Determine if the pose data can be returned as follows:", "rationale": ".switch", "steps": [ { @@ -2167,7 +2167,7 @@ "html": "

Let result be the result of resolving the requested features given requiredFeatures,optionalFeatures, and mode.

" }, { - "html": "To request the \"xr\" permission with an XRPermissionDescriptor descriptor and a XRPermissionStatus status, the UA MUST run the following steps:", + "html": "If result is null, run the following steps:", "rationale": "set", "steps": [ { @@ -2185,7 +2185,7 @@ "html": "

The user agent MAY at this point ask the user’s permission for the calling algorithm to use any of the features in consentRequired and consentOptional. The results of these prompts should be included when determining if there is a clear signal of user intent for enabling these features.

" }, { - "html": "To request the \"xr\" permission with an XRPermissionDescriptor descriptor and a XRPermissionStatus status, the UA MUST run the following steps:", + "html": "For each feature in consentRequired perform the following steps:", "rationale": "if", "steps": [ { @@ -2200,7 +2200,7 @@ ] }, { - "html": "To request the \"xr\" permission with an XRPermissionDescriptor descriptor and a XRPermissionStatus status, the UA MUST run the following steps:", + "html": "For each feature in consentOptional perform the following steps:", "rationale": "if", "steps": [ { @@ -2247,7 +2247,7 @@ "html": "

Let previouslyEnabled be device’s set of granted features for mode.

" }, { - "html": "To resolve the requested features given requiredFeatures and optionalFeatures for an XRSessionMode mode, the user agent MUST run the following steps:", + "html": "If device is null or device’s list of supported modes does not contain mode, run the following steps:", "rationale": "return", "steps": [ { @@ -2259,7 +2259,7 @@ "html": "

Add every feature descriptor in the default features table associated with mode to granted if it is not already present.

" }, { - "html": "To resolve the requested features given requiredFeatures and optionalFeatures for an XRSessionMode mode, the user agent MUST run the following steps:", + "html": "For each feature in requiredFeatures perform the following steps:", "rationale": "if", "steps": [ { @@ -2286,7 +2286,7 @@ ] }, { - "html": "To resolve the requested features given requiredFeatures and optionalFeatures for an XRSessionMode mode, the user agent MUST run the following steps:", + "html": "For each feature in optionalFeatures perform the following steps:", "rationale": "if", "steps": [ { diff --git a/tr/algorithms/webxrlayers-1.json b/tr/algorithms/webxrlayers-1.json index 3fabc6840a0c..dc7987dbc1c8 100644 --- a/tr/algorithms/webxrlayers-1.json +++ b/tr/algorithms/webxrlayers-1.json @@ -84,7 +84,7 @@ "html": "

Let layer’s space be the init’s space.

" }, { - "html": "When initializing an XRQuadLayer layer with an XRQuadLayerInit init, the user agent MUST run the following steps:", + "html": "Initialize layer’s transform as follows:", "rationale": ".switch", "steps": [ { @@ -126,7 +126,7 @@ "html": "

Let layer’s space be the init’s space.

" }, { - "html": "When initializing an XRCylinderLayer layer with an XRCylinderLayerInit init, the user agent MUST run the following steps:", + "html": "Initialize layer’s transform as follows:", "rationale": ".switch", "steps": [ { @@ -187,7 +187,7 @@ "html": "

Let layer’s space be the init’s space.

" }, { - "html": "When initializing an XREquirectLayer layer with an XREquirectLayerInit init, the user agent MUST run the following steps:", + "html": "Initialize layer’s transform as follows:", "rationale": ".switch", "steps": [ { @@ -274,7 +274,7 @@ "html": "

If layout is \"mono\", return layout and abort these steps.

" }, { - "html": "To determine the layout attribute using an XRTextureType textureType, an XRWebGLRenderingContext context and an XRLayerLayout layout, the user agent MUST run the following steps:", + "html": "If layout is \"default\", run the following steps:", "rationale": "if", "steps": [ { @@ -286,7 +286,7 @@ ] }, { - "html": "To determine the layout attribute using an XRTextureType textureType, an XRWebGLRenderingContext context and an XRLayerLayout layout, the user agent MUST run the following steps:", + "html": "If layout is \"default\" or \"stereo\" and textureType is \"texture\", run the following steps:", "rationale": "if", "steps": [ { @@ -362,7 +362,7 @@ "html": "

If textureFormat is not in the list of color formats for projection layers, throw a NotSupportedError and abort these steps.

" }, { - "html": "To allocate color textures for projection layers using an XRProjectionLayer layer, an XRTextureType textureType, a GLenum textureFormat and a float scaleFactor, the user agent MUST run the following steps:", + "html": "If layer’s layout is \"mono\" or \"default\":", "rationale": ".switch", "steps": [ { @@ -374,7 +374,7 @@ }, { "case": "Otherwise", - "html": "To allocate color textures for projection layers using an XRProjectionLayer layer, an XRTextureType textureType, a GLenum textureFormat and a float scaleFactor, the user agent MUST run the following steps:", + "html": "For each view in the session’s list of views:", "rationale": "if", "steps": [ { @@ -449,7 +449,7 @@ "html": "

Let height be the height of view’s recommended WebGL depth texture resolution multiplied by scaleFactor.

" }, { - "html": "To allocate depth textures for projection layers using an XRProjectionLayer layer, an XRTextureType textureType, a GLenum textureFormat and a float scaleFactor, the user agent MUST run the following steps:", + "html": "If layer’s layout is \"mono\" or \"default\":", "rationale": ".switch", "steps": [ { @@ -461,7 +461,7 @@ }, { "case": "Otherwise", - "html": "To allocate depth textures for projection layers using an XRProjectionLayer layer, an XRTextureType textureType, a GLenum textureFormat and a float scaleFactor, the user agent MUST run the following steps:", + "html": "For each view in the session’s list of views:", "rationale": "if", "steps": [ { @@ -533,7 +533,7 @@ "html": "

Let height be the height of view’s recommended motion vector texture resolution multiplied by scaleFactor.

" }, { - "html": "To allocate motion vector textures for projection layers using an XRProjectionLayer layer, the user agent MUST run the following steps:", + "html": "If layer’s layout is \"mono\" or \"default\":", "rationale": ".switch", "steps": [ { @@ -545,7 +545,7 @@ }, { "case": "Otherwise", - "html": "To allocate motion vector textures for projection layers using an XRProjectionLayer layer, the user agent MUST run the following steps:", + "html": "For each view in the session’s list of views:", "rationale": "if", "steps": [ { @@ -602,7 +602,7 @@ "html": "

If textureFormat is not in the list of color formats for projection layers, throw a NotSupportedError and abort these steps.

" }, { - "html": "To allocate the color textures for the secondary views using an XRProjectionLayer layer, an XRTextureType textureType, a GLenum textureFormat and a float scaleFactor, the user agent MUST run the following steps:", + "html": "For each view in the session’s list of views:", "rationale": "if", "steps": [ { @@ -615,7 +615,7 @@ "html": "

Let height be the height of view’s recommended WebGL color texture resolution multiplied by scaleFactor.

" }, { - "html": "To allocate the color textures for the secondary views using an XRProjectionLayer layer, an XRTextureType textureType, a GLenum textureFormat and a float scaleFactor, the user agent MUST run the following steps:", + "html": "Initialize texture as follows:", "rationale": ".switch", "steps": [ { @@ -668,7 +668,7 @@ "html": "

Let array be a new array in the relevant realm of context.

" }, { - "html": "To allocate the depth textures for the secondary views using an XRProjectionLayer layer, an XRTextureType textureType, a GLenum textureFormat and a float scaleFactor, the user agent MUST run the following steps:", + "html": "For each view in the session’s list of views:", "rationale": "if", "steps": [ { @@ -681,7 +681,7 @@ "html": "

Let height be the height of view’s recommended WebGL depth texture resolution multiplied by scaleFactor.

" }, { - "html": "To allocate the depth textures for the secondary views using an XRProjectionLayer layer, an XRTextureType textureType, a GLenum textureFormat and a float scaleFactor, the user agent MUST run the following steps:", + "html": "Initialize texture as follows:", "rationale": ".switch", "steps": [ { @@ -731,7 +731,7 @@ "html": "

If init’s mipLevels is larger than 1 and viewPixelWidth and viewPixelHeight are not powers of 2, throw a InvalidStateError and abort these steps

" }, { - "html": "To allocate color textures using an XRCompositionLayer layer, an XRTextureType textureType and an XRLayerInit init, the user agent MUST run the following steps:", + "html": "If layer’s layout is \"mono\":", "rationale": ".switch", "steps": [ { @@ -750,7 +750,7 @@ ] }, { - "html": "To allocate color textures using an XRCompositionLayer layer, an XRTextureType textureType and an XRLayerInit init, the user agent MUST run the following steps:", + "html": "If layer’s layout is \"stereo\":", "rationale": ".switch", "steps": [ { @@ -804,7 +804,7 @@ "html": "

If init’s mipLevels is larger than 1 and viewPixelWidth and viewPixelHeight are not powers of 2, throw a InvalidStateError and abort these steps.

" }, { - "html": "To allocate depth textures using an XRCompositionLayer layer, an XRTextureType textureType and an XRLayerInit init, the user agent MUST run the following steps:", + "html": "If layer’s layout is \"mono\":", "rationale": ".switch", "steps": [ { @@ -823,7 +823,7 @@ ] }, { - "html": "To allocate depth textures using an XRCompositionLayer layer, an XRTextureType textureType and an XRLayerInit init, the user agent MUST run the following steps:", + "html": "If layer’s layout is \"stereo\":", "rationale": ".switch", "steps": [ { @@ -880,7 +880,7 @@ "html": "

Initialize layer’s isStatic to false.

" }, { - "html": "The createProjectionLayer(optional XRProjectionLayerInit init) method creates a new XRProjectionLayer layer. \n

When this method is invoked, the user agent MUST run the following steps:

", + "html": "Initialize layer’s ignoreDepthValues as follows:", "rationale": ".switch", "steps": [ { @@ -926,7 +926,7 @@ "html": "

let layer’s motionVectorTextures be the result of allocating motion vector textures for projection layers with layer, init’s depthFormat and init’s scaleFactor.

" }, { - "html": "The createProjectionLayer(optional XRProjectionLayerInit init) method creates a new XRProjectionLayer layer. \n

When this method is invoked, the user agent MUST run the following steps:

", + "html": "Initialize the colortextures for secondary views as follows:", "rationale": ".switch", "steps": [ { @@ -945,7 +945,7 @@ ] }, { - "html": "The createProjectionLayer(optional XRProjectionLayerInit init) method creates a new XRProjectionLayer layer. \n

When this method is invoked, the user agent MUST run the following steps:

", + "html": "Initialize the depthstenciltextures for secondary views as follows:", "rationale": ".switch", "steps": [ { @@ -1197,7 +1197,7 @@ "html": "

Initialize layer’s isStatic to init’s isStatic

" }, { - "html": "The createCubeLayer(XRCubeLayerInit init) method creates a new XRCubeLayer layer. \n

When this method is invoked, the user agent MUST run the following steps:

", + "html": "Initialize layer’s orientation as follows:", "rationale": ".switch", "steps": [ { @@ -1228,7 +1228,7 @@ "html": "

Let layer’s colorTextures be a new array in the relevant realm of this XRCubeLayer.

" }, { - "html": "The createCubeLayer(XRCubeLayerInit init) method creates a new XRCubeLayer layer. \n

When this method is invoked, the user agent MUST run the following steps:

", + "html": "Initialize layer’s colorTextures as follows, based on the value of layout:", "rationale": ".switch", "steps": [ { @@ -1253,7 +1253,7 @@ "html": "

Let layer’s motionVectorTextures be a new array in the relevant realm of this XRCubeLayer.

" }, { - "html": "The createCubeLayer(XRCubeLayerInit init) method creates a new XRCubeLayer layer. \n

When this method is invoked, the user agent MUST run the following steps:

", + "html": "If init’s depthFormat is set, initialize layer’s depthStencilTextures as follows:", "rationale": ".switch", "steps": [ { @@ -1334,7 +1334,7 @@ "html": "

Set viewport’s height to the pixelh eight of texture.

" }, { - "html": "To initialize the viewport of an XRViewport viewport with a opaque texture texture, a XRLayerLayout layout, an integer offset and a integer num, the user agent MUST run the following steps:", + "html": "Update viewport as follows:", "rationale": ".switch", "steps": [ { @@ -1361,7 +1361,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The getSubImage(XRCompositionLayer layer, XRFrame frame, optional XREye eye = \"none\") method creates a new XRWebGLSubImage. \n

When this method is invoked on an XRWebGLBinding binding, it MUST run the following steps:

", + "html": "Initialize subimage as follows:", "rationale": ".switch", "steps": [ { @@ -1395,7 +1395,7 @@ "html": "

Let index be 0.

" }, { - "html": "The getSubImage(XRCompositionLayer layer, XRFrame frame, optional XREye eye = \"none\") method creates a new XRWebGLSubImage. \n

When this method is invoked on an XRWebGLBinding binding, it MUST run the following steps:

", + "html": "If layer’s layout attribute is \"stereo\":", "rationale": "if", "steps": [ { @@ -1410,7 +1410,7 @@ "html": "

If validate the state of the XRWebGLSubImage creation function with layer and frame is false, throw an InvalidStateError and abort these steps.

" }, { - "html": "The getSubImage(XRCompositionLayer layer, XRFrame frame, optional XREye eye = \"none\") method creates a new XRWebGLSubImage. \n

When this method is invoked on an XRWebGLBinding binding, it MUST run the following steps:

", + "html": "Initialize subimage’s imageIndex as follows:", "rationale": ".switch", "steps": [ { @@ -1429,7 +1429,7 @@ ] }, { - "html": "The getSubImage(XRCompositionLayer layer, XRFrame frame, optional XREye eye = \"none\") method creates a new XRWebGLSubImage. \n

When this method is invoked on an XRWebGLBinding binding, it MUST run the following steps:

", + "html": "Initialize subimage’s colorTexture as follows:", "rationale": ".switch", "steps": [ { @@ -1448,7 +1448,7 @@ ] }, { - "html": "The getSubImage(XRCompositionLayer layer, XRFrame frame, optional XREye eye = \"none\") method creates a new XRWebGLSubImage. \n

When this method is invoked on an XRWebGLBinding binding, it MUST run the following steps:

", + "html": "Initialize subimage’s depthStencilTexture as follows:", "rationale": ".switch", "steps": [ { @@ -1509,7 +1509,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "The getViewSubImage(XRProjectionLayer layer, XRView view) method creates a new XRWebGLSubImage. \n

When this method is invoked on an XRWebGLBinding binding, it MUST run the following steps:

", + "html": "Initialize subimage as follows:", "rationale": ".switch", "steps": [ { @@ -1543,7 +1543,7 @@ "html": "

If view’s active flag is false, throw an InvalidStateError and abort these steps.

" }, { - "html": "The getViewSubImage(XRProjectionLayer layer, XRView view) method creates a new XRWebGLSubImage. \n

When this method is invoked on an XRWebGLBinding binding, it MUST run the following steps:

", + "html": "Initialize index as follows:", "rationale": ".switch", "steps": [ { @@ -1562,7 +1562,7 @@ ] }, { - "html": "The getViewSubImage(XRProjectionLayer layer, XRView view) method creates a new XRWebGLSubImage. \n

When this method is invoked on an XRWebGLBinding binding, it MUST run the following steps:

", + "html": "Initialize subimage’s imageIndex as follows:", "rationale": ".switch", "steps": [ { @@ -1581,7 +1581,7 @@ ] }, { - "html": "The getViewSubImage(XRProjectionLayer layer, XRView view) method creates a new XRWebGLSubImage. \n

When this method is invoked on an XRWebGLBinding binding, it MUST run the following steps:

", + "html": "Initialize subimage’s colorTexture as follows:", "rationale": ".switch", "steps": [ { @@ -1604,7 +1604,7 @@ ] }, { - "html": "The getViewSubImage(XRProjectionLayer layer, XRView view) method creates a new XRWebGLSubImage. \n

When this method is invoked on an XRWebGLBinding binding, it MUST run the following steps:

", + "html": "Initialize subimage’s depthStencilTexture as follows:", "rationale": ".switch", "steps": [ { @@ -1631,7 +1631,7 @@ ] }, { - "html": "The getViewSubImage(XRProjectionLayer layer, XRView view) method creates a new XRWebGLSubImage. \n

When this method is invoked on an XRWebGLBinding binding, it MUST run the following steps:

", + "html": "Initialize subimage’s motionVectorTexture as follows:", "rationale": ".switch", "steps": [ { @@ -1918,7 +1918,7 @@ "html": "

Let activeState be session’s active render state.

" }, { - "html": "This module replaces the steps given by \"update the pending layers state\" from the WebXR specification. Instead when the user agent will update the pending layers state with XRSession session and XRRenderStateInit newState, it must run the following steps:", + "html": "If newState’s baseLayer is set:", "rationale": "if", "steps": [ { @@ -1930,7 +1930,7 @@ ] }, { - "html": "This module replaces the steps given by \"update the pending layers state\" from the WebXR specification. Instead when the user agent will update the pending layers state with XRSession session and XRRenderStateInit newState, it must run the following steps:", + "html": "If newState’s layers is set:", "rationale": "if", "steps": [ { @@ -1943,7 +1943,7 @@ "html": "

If newState’s layers contains duplicate instances, throw a TypeError and abort these steps.

" }, { - "html": "This module replaces the steps given by \"update the pending layers state\" from the WebXR specification. Instead when the user agent will update the pending layers state with XRSession session and XRRenderStateInit newState, it must run the following steps:", + "html": "For each layer in newState’s layers:", "rationale": "if", "steps": [ { diff --git a/tr/algorithms/window-management.json b/tr/algorithms/window-management.json index e698db7f69df..209360292919 100644 --- a/tr/algorithms/window-management.json +++ b/tr/algorithms/window-management.json @@ -75,14 +75,14 @@ "html": "

If this's relevant global object's associated Document is not allowed to use the policy-controlled feature named \"window-management\", then reject promise with a \"NotAllowedError\" DOMException and abort these steps.

" }, { - "html": "The getScreenDetails() method steps are:", + "html": "Run the following steps in parallel:", "rationale": "let", "steps": [ { "html": "

Let permissionState be request permission to use \"window-management\".

" }, { - "html": "The getScreenDetails() method steps are:", + "html": "Queue a global task on the relevant global object of this using the window placement task source to run the following steps:", "rationale": "if", "steps": [ { @@ -125,7 +125,7 @@ "html": "

Let screens be a new list.

" }, { - "html": "The screens getter steps are:", + "html": "For each screen of the device’s screens:", "rationale": "let", "steps": [ { diff --git a/tr/css/css-conditional-5.json b/tr/css/css-conditional-5.json index 2de41a87858c..bdee1885ad9d 100644 --- a/tr/css/css-conditional-5.json +++ b/tr/css/css-conditional-5.json @@ -3,21 +3,174 @@ "title": "CSS Conditional Rules Module Level 5", "url": "https://www.w3.org/TR/css-conditional-5/" }, - "properties": [], + "properties": [ + { + "name": "container-type", + "href": "https://www.w3.org/TR/css-conditional-5/#propdef-container-type", + "value": "normal | size | inline-size", + "initial": "normal", + "appliesTo": "all elements", + "inherited": "no", + "percentages": "n/a", + "computedValue": "specified keyword", + "canonicalOrder": "per grammar", + "animationType": "not animatable", + "values": [ + { + "name": "size", + "prose": "Establishes a query container for container size queries on both the inline and block axis. Applies layout containment, style containment, and size containment to the principal box.", + "href": "https://www.w3.org/TR/css-conditional-5/#valdef-container-type-size", + "type": "value", + "value": "size" + }, + { + "name": "inline-size", + "prose": "Establishes a query container for container size queries on the container’s own inline axis. Applies layout containment, style containment, and inline-size containment to the principal box.", + "href": "https://www.w3.org/TR/css-conditional-5/#valdef-container-type-inline-size", + "type": "value", + "value": "inline-size" + }, + { + "name": "normal", + "prose": "The element is not a query container for any container size queries, but remains a query container for container style queries.", + "href": "https://www.w3.org/TR/css-conditional-5/#valdef-container-type-normal", + "type": "value", + "value": "normal" + } + ], + "styleDeclaration": [ + "container-type", + "containerType" + ] + }, + { + "name": "container-name", + "href": "https://www.w3.org/TR/css-conditional-5/#propdef-container-name", + "value": "none | +", + "initial": "none", + "appliesTo": "all elements", + "inherited": "no", + "percentages": "n/a", + "computedValue": "the keyword none, or an ordered list of identifiers", + "canonicalOrder": "per grammar", + "animationType": "not animatable", + "values": [ + { + "name": "none", + "prose": "The query container has no query container name.", + "href": "https://www.w3.org/TR/css-conditional-5/#valdef-container-name-none", + "type": "value", + "value": "none" + }, + { + "name": "", + "prose": "Specifies a query container name as an identifier. The keywords none, and, not, and or are excluded from this .", + "href": "https://www.w3.org/TR/css-conditional-5/#valdef-container-name-custom-ident", + "type": "value", + "value": "" + } + ], + "styleDeclaration": [ + "container-name", + "containerName" + ] + }, + { + "name": "container", + "href": "https://www.w3.org/TR/css-conditional-5/#propdef-container", + "value": "<'container-name'> [ / <'container-type'> ]?", + "initial": "see individual properties", + "appliesTo": "see individual properties", + "inherited": "see individual properties", + "percentages": "see individual properties", + "computedValue": "see individual properties", + "animationType": "see individual properties", + "canonicalOrder": "per grammar", + "styleDeclaration": [ + "container" + ] + } + ], "atrules": [ { "name": "@when", "prose": "The @when at-rule is a conditional group rule that generalizes the individual conditional group rules such as @media and @supports. It is defined as:", "href": "https://www.w3.org/TR/css-conditional-5/#at-ruledef-when", "descriptors": [], - "value": "@when { }" + "value": "@when { }" }, { "name": "@else", "prose": "The @else rule is a conditional group rule used to form conditional rule chains, which associate multiple conditional rules and guarantee that only the first one that matches will evaluate its condition as true. It is defined as:", "href": "https://www.w3.org/TR/css-conditional-5/#at-ruledef-else", "descriptors": [], - "value": "@else ? { }" + "value": "@else ? { }" + }, + { + "name": "@container", + "prose": "The @container rule is a conditional group rule whose condition contains a container query, which is a boolean combination of container size queries and/or container style queries. Style declarations within the block of an @container rule are filtered by its condition to only match when the container query is true for their element’s query container.", + "href": "https://www.w3.org/TR/css-conditional-5/#at-ruledef-container", + "descriptors": [ + { + "name": "width", + "href": "https://www.w3.org/TR/css-conditional-5/#descdef-container-width", + "for": "@container", + "value": "", + "type": "range" + }, + { + "name": "height", + "href": "https://www.w3.org/TR/css-conditional-5/#descdef-container-height", + "for": "@container", + "value": "", + "type": "range" + }, + { + "name": "inline-size", + "href": "https://www.w3.org/TR/css-conditional-5/#descdef-container-inline-size", + "for": "@container", + "value": "", + "type": "range" + }, + { + "name": "block-size", + "href": "https://www.w3.org/TR/css-conditional-5/#descdef-container-block-size", + "for": "@container", + "value": "", + "type": "range" + }, + { + "name": "aspect-ratio", + "href": "https://www.w3.org/TR/css-conditional-5/#descdef-container-aspect-ratio", + "for": "@container", + "value": "", + "type": "range" + }, + { + "name": "orientation", + "href": "https://www.w3.org/TR/css-conditional-5/#descdef-container-orientation", + "for": "@container", + "value": "portrait | landscape", + "type": "discrete", + "values": [ + { + "name": "portrait", + "prose": "The orientation container feature is portrait when the value of the height container feature is greater than or equal to the value of the width container feature.", + "href": "https://www.w3.org/TR/css-conditional-5/#valdef-container-orientation-portrait", + "type": "value", + "value": "portrait" + }, + { + "name": "landscape", + "prose": "Otherwise orientation is landscape.", + "href": "https://www.w3.org/TR/css-conditional-5/#valdef-container-orientation-landscape", + "type": "value", + "value": "landscape" + } + ] + } + ], + "value": "@container # { }" } ], "selectors": [], @@ -32,19 +185,13 @@ "name": "", "href": "https://www.w3.org/TR/css-conditional-5/#typedef-supports-font-tech-fn", "type": "type", - "value": "font-tech ( )" - }, - { - "name": "", - "href": "https://www.w3.org/TR/css-conditional-5/#typedef-font-tech", - "type": "type", - "value": "[ features-opentype | features-aat | features-graphite | color-colrv0 | color-colrv1 | color-svg | color-sbix | color-cbdt | variations | palettes | incremental ]" + "value": "font-tech( )" }, { "name": "", "href": "https://www.w3.org/TR/css-conditional-5/#typedef-supports-font-format-fn", "type": "type", - "value": "font-format ( )" + "value": "font-format( )" }, { "name": "media()", @@ -57,13 +204,54 @@ "href": "https://www.w3.org/TR/css-conditional-5/#funcdef-supports", "type": "function", "value": "supports( )" - } - ], - "warnings": [ + }, + { + "name": "", + "href": "https://www.w3.org/TR/css-conditional-5/#typedef-container-condition", + "type": "type", + "value": "[ ]? " + }, + { + "name": "", + "href": "https://www.w3.org/TR/css-conditional-5/#typedef-container-name", + "type": "type", + "value": "" + }, + { + "name": "", + "href": "https://www.w3.org/TR/css-conditional-5/#typedef-container-query", + "type": "type", + "value": "not | [ [ and ]* | [ or ]* ]" + }, + { + "name": "", + "href": "https://www.w3.org/TR/css-conditional-5/#typedef-query-in-parens", + "type": "type", + "value": "( ) | ( ) | style( ) | " + }, + { + "name": "", + "href": "https://www.w3.org/TR/css-conditional-5/#typedef-style-query", + "type": "type", + "value": "not | [ [ and ]* | [ or ]* ] | " + }, + { + "name": "", + "href": "https://www.w3.org/TR/css-conditional-5/#typedef-style-in-parens", + "type": "type", + "value": "( ) | ( ) | " + }, + { + "name": "", + "prose": "A container size query allows querying the size of the query container’s principal box. It is a boolean combination of individual size features () that each query a single, specific dimensional feature of the query container. The syntax of a is the same as for a media feature: a feature name, a comparator, and a value. [mediaqueries-5] The boolean syntax and logic combining size features into a size query is the same as for CSS feature queries. (See @supports. [css-conditional-3])", + "href": "https://www.w3.org/TR/css-conditional-5/#typedef-size-feature", + "type": "type" + }, { - "msg": "Missing definition", - "name": "", + "prose": "A container style query allows querying the computed values of the query container. It is a boolean combination of individual style features () that each query a single, specific property of the query container. The syntax of a is either the same as for a valid declaration [CSS-SYNTAX-3], a supported CSS property, or a .", + "href": "https://www.w3.org/TR/css-conditional-5/#typedef-style-feature", + "type": "type" } ] } diff --git a/tr/dfns/WGSL.json b/tr/dfns/WGSL.json index 1e0af364b4d1..d5181354b0a5 100644 --- a/tr/dfns/WGSL.json +++ b/tr/dfns/WGSL.json @@ -4813,6 +4813,25 @@ }, "definedIn": "prose" }, + { + "id": "inverse-channel-transfer-function", + "href": "https://www.w3.org/TR/WGSL/#inverse-channel-transfer-function", + "linkingText": [ + "inverse channel transfer function" + ], + "localLinkingText": [], + "type": "dfn", + "for": [], + "access": "private", + "informative": false, + "heading": { + "id": "texel-formats", + "href": "https://www.w3.org/TR/WGSL/#texel-formats", + "title": "Texel Formats", + "number": "6.5.1" + }, + "definedIn": "prose" + }, { "id": "storage-texel-formats", "href": "https://www.w3.org/TR/WGSL/#storage-texel-formats", diff --git a/tr/dfns/css-conditional-5.json b/tr/dfns/css-conditional-5.json index 1a0c09e9e24a..ac9891ebb396 100644 --- a/tr/dfns/css-conditional-5.json +++ b/tr/dfns/css-conditional-5.json @@ -42,25 +42,6 @@ }, "definedIn": "pre" }, - { - "id": "typedef-font-tech", - "href": "https://www.w3.org/TR/css-conditional-5/#typedef-font-tech", - "linkingText": [ - "" - ], - "localLinkingText": [], - "type": "type", - "for": [], - "access": "public", - "informative": false, - "heading": { - "id": "at-supports-ext", - "href": "https://www.w3.org/TR/css-conditional-5/#at-supports-ext", - "title": "Extensions to the @supports rule", - "number": "2" - }, - "definedIn": "pre" - }, { "id": "typedef-supports-font-format-fn", "href": "https://www.w3.org/TR/css-conditional-5/#typedef-supports-font-format-fn", @@ -80,25 +61,6 @@ }, "definedIn": "pre" }, - { - "id": "font-format", - "href": "https://www.w3.org/TR/css-conditional-5/#font-format", - "linkingText": [ - "" + ], + "localLinkingText": [], + "type": "type", + "for": [], + "access": "public", + "informative": false, + "heading": { + "id": "container-rule", + "href": "https://www.w3.org/TR/css-conditional-5/#container-rule", + "title": "Container Queries: the @container rule", + "number": "5.4" + }, + "definedIn": "pre" + }, + { + "id": "typedef-container-name", + "href": "https://www.w3.org/TR/css-conditional-5/#typedef-container-name", + "linkingText": [ + "" + ], + "localLinkingText": [], + "type": "type", + "for": [], + "access": "public", + "informative": false, + "heading": { + "id": "container-rule", + "href": "https://www.w3.org/TR/css-conditional-5/#container-rule", + "title": "Container Queries: the @container rule", + "number": "5.4" + }, + "definedIn": "pre" + }, + { + "id": "typedef-container-query", + "href": "https://www.w3.org/TR/css-conditional-5/#typedef-container-query", + "linkingText": [ + "" + ], + "localLinkingText": [], + "type": "type", + "for": [], + "access": "public", + "informative": false, + "heading": { + "id": "container-rule", + "href": "https://www.w3.org/TR/css-conditional-5/#container-rule", + "title": "Container Queries: the @container rule", + "number": "5.4" + }, + "definedIn": "pre" + }, + { + "id": "typedef-query-in-parens", + "href": "https://www.w3.org/TR/css-conditional-5/#typedef-query-in-parens", + "linkingText": [ + "" + ], + "localLinkingText": [], + "type": "type", + "for": [], + "access": "public", + "informative": false, + "heading": { + "id": "container-rule", + "href": "https://www.w3.org/TR/css-conditional-5/#container-rule", + "title": "Container Queries: the @container rule", + "number": "5.4" + }, + "definedIn": "pre" + }, + { + "id": "typedef-style-query", + "href": "https://www.w3.org/TR/css-conditional-5/#typedef-style-query", + "linkingText": [ + "" + ], + "localLinkingText": [], + "type": "type", + "for": [], + "access": "public", + "informative": false, + "heading": { + "id": "container-rule", + "href": "https://www.w3.org/TR/css-conditional-5/#container-rule", + "title": "Container Queries: the @container rule", + "number": "5.4" + }, + "definedIn": "pre" + }, + { + "id": "typedef-style-in-parens", + "href": "https://www.w3.org/TR/css-conditional-5/#typedef-style-in-parens", + "linkingText": [ + "" + ], + "localLinkingText": [], + "type": "type", + "for": [], + "access": "public", + "informative": false, + "heading": { + "id": "container-rule", + "href": "https://www.w3.org/TR/css-conditional-5/#container-rule", + "title": "Container Queries: the @container rule", + "number": "5.4" + }, + "definedIn": "pre" + }, + { + "id": "container-feature", + "href": "https://www.w3.org/TR/css-conditional-5/#container-feature", + "linkingText": [ + "container feature" + ], + "localLinkingText": [], + "type": "dfn", + "for": [], + "access": "public", + "informative": false, + "heading": { + "id": "container-features", + "href": "https://www.w3.org/TR/css-conditional-5/#container-features", + "title": "Container Features", + "number": "6" + }, + "definedIn": "prose" + }, + { + "id": "container-size-query", + "href": "https://www.w3.org/TR/css-conditional-5/#container-size-query", + "linkingText": [ + "container size query" + ], + "localLinkingText": [], + "type": "dfn", + "for": [], + "access": "public", + "informative": false, + "heading": { + "id": "size-container", + "href": "https://www.w3.org/TR/css-conditional-5/#size-container", + "title": "Size Container Features", + "number": "6.1" + }, + "definedIn": "prose" + }, + { + "id": "size-features", + "href": "https://www.w3.org/TR/css-conditional-5/#size-features", + "linkingText": [ + "size features" + ], + "localLinkingText": [], + "type": "dfn", + "for": [], + "access": "private", + "informative": false, + "heading": { + "id": "size-container", + "href": "https://www.w3.org/TR/css-conditional-5/#size-container", + "title": "Size Container Features", + "number": "6.1" + }, + "definedIn": "prose" + }, + { + "id": "typedef-size-feature", + "href": "https://www.w3.org/TR/css-conditional-5/#typedef-size-feature", + "linkingText": [ + "" + ], + "localLinkingText": [], + "type": "type", + "for": [], + "access": "public", + "informative": false, + "heading": { + "id": "size-container", + "href": "https://www.w3.org/TR/css-conditional-5/#size-container", + "title": "Size Container Features", + "number": "6.1" + }, + "definedIn": "prose" + }, + { + "id": "descdef-container-width", + "href": "https://www.w3.org/TR/css-conditional-5/#descdef-container-width", + "linkingText": [ + "width" + ], + "localLinkingText": [], + "type": "descriptor", + "for": [ + "@container" + ], + "access": "public", + "informative": false, + "heading": { + "id": "width", + "href": "https://www.w3.org/TR/css-conditional-5/#width", + "title": "Width: the width feature", + "number": "6.1.1" + }, + "definedIn": "table" + }, + { + "id": "descdef-container-height", + "href": "https://www.w3.org/TR/css-conditional-5/#descdef-container-height", + "linkingText": [ + "height" + ], + "localLinkingText": [], + "type": "descriptor", + "for": [ + "@container" + ], + "access": "public", + "informative": false, + "heading": { + "id": "height", + "href": "https://www.w3.org/TR/css-conditional-5/#height", + "title": "Height: the height feature", + "number": "6.1.2" + }, + "definedIn": "table" + }, + { + "id": "descdef-container-inline-size", + "href": "https://www.w3.org/TR/css-conditional-5/#descdef-container-inline-size", + "linkingText": [ + "inline-size" + ], + "localLinkingText": [], + "type": "descriptor", + "for": [ + "@container" + ], + "access": "public", + "informative": false, + "heading": { + "id": "inline-size", + "href": "https://www.w3.org/TR/css-conditional-5/#inline-size", + "title": "Inline-size: the inline-size feature", + "number": "6.1.3" + }, + "definedIn": "table" + }, + { + "id": "descdef-container-block-size", + "href": "https://www.w3.org/TR/css-conditional-5/#descdef-container-block-size", + "linkingText": [ + "block-size" + ], + "localLinkingText": [], + "type": "descriptor", + "for": [ + "@container" + ], + "access": "public", + "informative": false, + "heading": { + "id": "block-size", + "href": "https://www.w3.org/TR/css-conditional-5/#block-size", + "title": "Block-size: the block-size feature", + "number": "6.1.4" + }, + "definedIn": "table" + }, + { + "id": "descdef-container-aspect-ratio", + "href": "https://www.w3.org/TR/css-conditional-5/#descdef-container-aspect-ratio", + "linkingText": [ + "aspect-ratio" + ], + "localLinkingText": [], + "type": "descriptor", + "for": [ + "@container" + ], + "access": "public", + "informative": false, + "heading": { + "id": "aspect-ratio", + "href": "https://www.w3.org/TR/css-conditional-5/#aspect-ratio", + "title": "Aspect-ratio: the aspect-ratio feature", + "number": "6.1.5" + }, + "definedIn": "table" + }, + { + "id": "descdef-container-orientation", + "href": "https://www.w3.org/TR/css-conditional-5/#descdef-container-orientation", + "linkingText": [ + "orientation" + ], + "localLinkingText": [], + "type": "descriptor", + "for": [ + "@container" + ], + "access": "public", + "informative": false, + "heading": { + "id": "orientation", + "href": "https://www.w3.org/TR/css-conditional-5/#orientation", + "title": "Orientation: the orientation feature", + "number": "6.1.6" + }, + "definedIn": "table" + }, + { + "id": "valdef-container-orientation-portrait", + "href": "https://www.w3.org/TR/css-conditional-5/#valdef-container-orientation-portrait", + "linkingText": [ + "portrait" + ], + "localLinkingText": [], + "type": "value", + "for": [ + "@container/orientation" + ], + "access": "public", + "informative": false, + "heading": { + "id": "orientation", + "href": "https://www.w3.org/TR/css-conditional-5/#orientation", + "title": "Orientation: the orientation feature", + "number": "6.1.6" + }, + "definedIn": "dt" + }, + { + "id": "valdef-container-orientation-landscape", + "href": "https://www.w3.org/TR/css-conditional-5/#valdef-container-orientation-landscape", + "linkingText": [ + "landscape" + ], + "localLinkingText": [], + "type": "value", + "for": [ + "@container/orientation" + ], + "access": "public", + "informative": false, + "heading": { + "id": "orientation", + "href": "https://www.w3.org/TR/css-conditional-5/#orientation", + "title": "Orientation: the orientation feature", + "number": "6.1.6" + }, + "definedIn": "dt" + }, + { + "id": "container-style-query", + "href": "https://www.w3.org/TR/css-conditional-5/#container-style-query", + "linkingText": [ + "container style query" + ], + "localLinkingText": [], + "type": "dfn", + "for": [], + "access": "public", + "informative": false, + "heading": { + "id": "style-container", + "href": "https://www.w3.org/TR/css-conditional-5/#style-container", + "title": "Style Container Features", + "number": "6.2" + }, + "definedIn": "prose" + }, + { + "id": "style-features", + "href": "https://www.w3.org/TR/css-conditional-5/#style-features", + "linkingText": [ + "style features" + ], + "localLinkingText": [], + "type": "dfn", + "for": [], + "access": "private", + "informative": false, + "heading": { + "id": "style-container", + "href": "https://www.w3.org/TR/css-conditional-5/#style-container", + "title": "Style Container Features", + "number": "6.2" + }, + "definedIn": "prose" + }, + { + "id": "typedef-style-feature", + "href": "https://www.w3.org/TR/css-conditional-5/#typedef-style-feature", + "linkingText": [ + "" + ], + "localLinkingText": [], + "type": "type", + "for": [], + "access": "public", + "informative": false, + "heading": { + "id": "style-container", + "href": "https://www.w3.org/TR/css-conditional-5/#style-container", + "title": "Style Container Features", + "number": "6.2" + }, + "definedIn": "prose" + }, + { + "id": "container-query-length", + "href": "https://www.w3.org/TR/css-conditional-5/#container-query-length", + "linkingText": [ + "container query length", + "container query length unit" + ], + "localLinkingText": [], + "type": "dfn", + "for": [], + "access": "public", + "informative": false, + "heading": { + "id": "container-lengths", + "href": "https://www.w3.org/TR/css-conditional-5/#container-lengths", + "title": "Container Relative Lengths: the cqw, cqh, cqi, cqb, cqmin, cqmax units", + "number": "7" + }, + "definedIn": "prose" + }, + { + "id": "csscontainerrule", + "href": "https://www.w3.org/TR/css-conditional-5/#csscontainerrule", + "linkingText": [ + "CSSContainerRule" + ], + "localLinkingText": [], + "type": "interface", + "for": [], + "access": "public", + "informative": false, + "heading": { + "id": "the-csscontainerrule-interface", + "href": "https://www.w3.org/TR/css-conditional-5/#the-csscontainerrule-interface", + "title": "The CSSContainerRule interface", + "number": "8.1" + }, + "definedIn": "pre" + }, + { + "id": "dom-csscontainerrule-containername", + "href": "https://www.w3.org/TR/css-conditional-5/#dom-csscontainerrule-containername", + "linkingText": [ + "containerName" + ], + "localLinkingText": [], + "type": "attribute", + "for": [ + "CSSContainerRule" + ], + "access": "public", + "informative": false, + "heading": { + "id": "the-csscontainerrule-interface", + "href": "https://www.w3.org/TR/css-conditional-5/#the-csscontainerrule-interface", + "title": "The CSSContainerRule interface", + "number": "8.1" + }, + "definedIn": "pre" + }, + { + "id": "dom-csscontainerrule-containerquery", + "href": "https://www.w3.org/TR/css-conditional-5/#dom-csscontainerrule-containerquery", + "linkingText": [ + "containerQuery" + ], + "localLinkingText": [], + "type": "attribute", + "for": [ + "CSSContainerRule" + ], + "access": "public", + "informative": false, + "heading": { + "id": "the-csscontainerrule-interface", + "href": "https://www.w3.org/TR/css-conditional-5/#the-csscontainerrule-interface", + "title": "The CSSContainerRule interface", + "number": "8.1" + }, + "definedIn": "pre" } ] } \ No newline at end of file diff --git a/tr/headings/css-conditional-5.json b/tr/headings/css-conditional-5.json index 6a37bd895806..86b1cdf004f5 100644 --- a/tr/headings/css-conditional-5.json +++ b/tr/headings/css-conditional-5.json @@ -17,8 +17,8 @@ "title": "Abstract" }, { - "id": "status", - "href": "https://www.w3.org/TR/css-conditional-5/#status", + "id": "sotd", + "href": "https://www.w3.org/TR/css-conditional-5/#sotd", "level": 2, "title": "Status of this document" }, @@ -63,6 +63,132 @@ "title": "Chained Conditionals: the @else rule", "number": "4" }, + { + "id": "container-queries", + "href": "https://www.w3.org/TR/css-conditional-5/#container-queries", + "level": 2, + "title": "Container Queries", + "number": "5" + }, + { + "id": "container-type", + "href": "https://www.w3.org/TR/css-conditional-5/#container-type", + "level": 3, + "title": "Creating Query Containers: the container-type property", + "number": "5.1" + }, + { + "id": "container-name", + "href": "https://www.w3.org/TR/css-conditional-5/#container-name", + "level": 3, + "title": "Naming Query Containers: the container-name property", + "number": "5.2" + }, + { + "id": "container-shorthand", + "href": "https://www.w3.org/TR/css-conditional-5/#container-shorthand", + "level": 3, + "title": "Creating Named Containers: the container shorthand", + "number": "5.3" + }, + { + "id": "container-rule", + "href": "https://www.w3.org/TR/css-conditional-5/#container-rule", + "level": 3, + "title": "Container Queries: the @container rule", + "number": "5.4" + }, + { + "id": "animated-containers", + "href": "https://www.w3.org/TR/css-conditional-5/#animated-containers", + "level": 3, + "title": "Animated Containers", + "number": "5.5" + }, + { + "id": "container-features", + "href": "https://www.w3.org/TR/css-conditional-5/#container-features", + "level": 2, + "title": "Container Features", + "number": "6" + }, + { + "id": "size-container", + "href": "https://www.w3.org/TR/css-conditional-5/#size-container", + "level": 3, + "title": "Size Container Features", + "number": "6.1" + }, + { + "id": "width", + "href": "https://www.w3.org/TR/css-conditional-5/#width", + "level": 4, + "title": "Width: the width feature", + "number": "6.1.1" + }, + { + "id": "height", + "href": "https://www.w3.org/TR/css-conditional-5/#height", + "level": 4, + "title": "Height: the height feature", + "number": "6.1.2" + }, + { + "id": "inline-size", + "href": "https://www.w3.org/TR/css-conditional-5/#inline-size", + "level": 4, + "title": "Inline-size: the inline-size feature", + "number": "6.1.3" + }, + { + "id": "block-size", + "href": "https://www.w3.org/TR/css-conditional-5/#block-size", + "level": 4, + "title": "Block-size: the block-size feature", + "number": "6.1.4" + }, + { + "id": "aspect-ratio", + "href": "https://www.w3.org/TR/css-conditional-5/#aspect-ratio", + "level": 4, + "title": "Aspect-ratio: the aspect-ratio feature", + "number": "6.1.5" + }, + { + "id": "orientation", + "href": "https://www.w3.org/TR/css-conditional-5/#orientation", + "level": 4, + "title": "Orientation: the orientation feature", + "number": "6.1.6" + }, + { + "id": "style-container", + "href": "https://www.w3.org/TR/css-conditional-5/#style-container", + "level": 3, + "title": "Style Container Features", + "number": "6.2" + }, + { + "id": "container-lengths", + "href": "https://www.w3.org/TR/css-conditional-5/#container-lengths", + "level": 2, + "title": "Container Relative Lengths: the cqw, cqh, cqi, cqb, cqmin, cqmax units", + "number": "7" + }, + { + "id": "apis", + "href": "https://www.w3.org/TR/css-conditional-5/#apis", + "level": 2, + "title": "APIs", + "number": "8" + }, + { + "id": "the-csscontainerrule-interface", + "href": "https://www.w3.org/TR/css-conditional-5/#the-csscontainerrule-interface", + "level": 3, + "title": "The CSSContainerRule interface", + "number": "8.1" + }, { "id": "security", "href": "https://www.w3.org/TR/css-conditional-5/#security", @@ -75,24 +201,30 @@ "level": 2, "title": "Privacy Considerations" }, - { - "id": "acknowledgments", - "href": "https://www.w3.org/TR/css-conditional-5/#acknowledgments", - "level": 2, - "title": "Acknowledgments" - }, { "id": "changes", "href": "https://www.w3.org/TR/css-conditional-5/#changes", "level": 2, "title": "Changes" }, + { + "id": "changes-20211221/", + "href": "https://www.w3.org/TR/css-conditional-5/#changes-20211221%2F", + "level": 3, + "title": "Changes since the First Public Working Draft of 21 December 2021" + }, { "id": "changes-from-L4", "href": "https://www.w3.org/TR/css-conditional-5/#changes-from-L4", "level": 3, "title": "Additions since Level 4" }, + { + "id": "acknowledgments", + "href": "https://www.w3.org/TR/css-conditional-5/#acknowledgments", + "level": 2, + "title": "Acknowledgments" + }, { "id": "w3c-conformance", "href": "https://www.w3.org/TR/css-conditional-5/#w3c-conformance", @@ -165,6 +297,24 @@ "level": 3, "title": "Informative References" }, + { + "id": "property-index", + "href": "https://www.w3.org/TR/css-conditional-5/#property-index", + "level": 2, + "title": "Property Index" + }, + { + "id": "container-descriptor-table", + "href": "https://www.w3.org/TR/css-conditional-5/#container-descriptor-table", + "level": 3, + "title": "@container Descriptors" + }, + { + "id": "idl-index", + "href": "https://www.w3.org/TR/css-conditional-5/#idl-index", + "level": 2, + "title": "IDL Index" + }, { "id": "issues-index", "href": "https://www.w3.org/TR/css-conditional-5/#issues-index", diff --git a/tr/headings/mse-byte-stream-format-registry.json b/tr/headings/mse-byte-stream-format-registry.json index da908e3b6d5a..24a1cca10a42 100644 --- a/tr/headings/mse-byte-stream-format-registry.json +++ b/tr/headings/mse-byte-stream-format-registry.json @@ -44,13 +44,6 @@ "title": "Registry", "number": "4" }, - { - "id": "conformance", - "href": "https://www.w3.org/TR/mse-byte-stream-format-registry/#conformance", - "level": 2, - "title": "Conformance", - "number": "5" - }, { "id": "references", "href": "https://www.w3.org/TR/mse-byte-stream-format-registry/#references", @@ -59,10 +52,10 @@ "number": "A" }, { - "id": "normative-references", - "href": "https://www.w3.org/TR/mse-byte-stream-format-registry/#normative-references", + "id": "informative-references", + "href": "https://www.w3.org/TR/mse-byte-stream-format-registry/#informative-references", "level": 3, - "title": "Normative references", + "title": "Informative references", "number": "A.1" } ] diff --git a/tr/idl/css-conditional-5.idl b/tr/idl/css-conditional-5.idl new file mode 100644 index 000000000000..98839ab59677 --- /dev/null +++ b/tr/idl/css-conditional-5.idl @@ -0,0 +1,10 @@ +// GENERATED CONTENT - DO NOT EDIT +// Content was automatically extracted by Reffy into webref +// (https://github.com/w3c/webref) +// Source: CSS Conditional Rules Module Level 5 (https://www.w3.org/TR/css-conditional-5/) + +[Exposed=Window] +interface CSSContainerRule : CSSConditionRule { + readonly attribute CSSOMString containerName; + readonly attribute CSSOMString containerQuery; +}; diff --git a/tr/ids/WGSL.json b/tr/ids/WGSL.json index 6bb96e9caaff..aaa72bf53587 100644 --- a/tr/ids/WGSL.json +++ b/tr/ids/WGSL.json @@ -964,6 +964,7 @@ "https://www.w3.org/TR/WGSL/#integer-types", "https://www.w3.org/TR/WGSL/#u32", "https://www.w3.org/TR/WGSL/#i32", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-abstractint%E2%91%A0%E2%91%A4", "https://www.w3.org/TR/WGSL/#floating-point-types", "https://www.w3.org/TR/WGSL/#f32", @@ -1048,7 +1049,7 @@ "https://www.w3.org/TR/WGSL/#mat4x4h", "https://www.w3.org/TR/WGSL/#atomic-types", "https://www.w3.org/TR/WGSL/#atomic-type", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A4", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A2%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-u32%E2%91%A5", @@ -1073,7 +1074,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A2%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-override-expressions", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A2%E2%91%A6", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A5", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A2%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A4", @@ -1117,7 +1118,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-runtime-sized", "https://www.w3.org/TR/WGSL/#ref-for-structure%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-creation-fixed-footprint%E2%91%A4", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-plain-type%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A3%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-runtime-sized%E2%91%A0", @@ -1191,7 +1192,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-shader-module-creation%E2%91%A7", "https://www.w3.org/TR/WGSL/#fixed-footprint", "https://www.w3.org/TR/WGSL/#ref-for-pipeline-creation%E2%91%A5", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A7", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-storable", "https://www.w3.org/TR/WGSL/#ref-for-creation-fixed-footprint%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-fixed-footprint%E2%91%A0", @@ -1281,7 +1282,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-texture-resource", "https://www.w3.org/TR/WGSL/#ref-for-sampler-resource", "https://www.w3.org/TR/WGSL/#storable", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A8", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A0%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-vector%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-matrix%E2%91%A6", @@ -1290,7 +1291,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-structure%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-texture", "https://www.w3.org/TR/WGSL/#ref-for-sampler", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A0%E2%93%AA", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A0%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-plain-type%E2%91%A4", "https://www.w3.org/TR/WGSL/#host-shareable-types", "https://www.w3.org/TR/WGSL/#ref-for-layout-attributes%E2%91%A0", @@ -1299,7 +1300,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-storage-buffer%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A3%E2%91%A5", "https://www.w3.org/TR/WGSL/#host-shareable", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A0%E2%91%A0", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A0%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-numeric-scalar%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-numeric-vector", "https://www.w3.org/TR/WGSL/#ref-for-matrix%E2%91%A7", @@ -1526,10 +1527,15 @@ "https://www.w3.org/TR/WGSL/#ref-for-enumdef-gputextureformat", "https://www.w3.org/TR/WGSL/#channel-formats", "https://www.w3.org/TR/WGSL/#channel-transfer-function", + "https://www.w3.org/TR/WGSL/#inverse-channel-transfer-function", "https://www.w3.org/TR/WGSL/#storage-texel-formats", "https://www.w3.org/TR/WGSL/#ref-for-dom-gputextureusage-storage_binding", "https://www.w3.org/TR/WGSL/#ref-for-type-storage-texture%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-channel-transfer-function", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise", + "https://www.w3.org/TR/WGSL/#ref-for-inverse-channel-transfer-function", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A0", + "https://www.w3.org/TR/WGSL/#ref-for-channel-transfer-function%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-channel-formats", "https://www.w3.org/TR/WGSL/#texel-format-rgba8unorm", "https://www.w3.org/TR/WGSL/#texel-format-rgba8snorm", @@ -1740,18 +1746,18 @@ "https://www.w3.org/TR/WGSL/#ref-for-module-scope%E2%91%A0%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-function-scope", "https://www.w3.org/TR/WGSL/#ref-for-constructible%E2%91%A3", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A0%E2%91%A1", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A0%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-type-abstract%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-override-declaration%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-module-scope%E2%91%A0%E2%91%A0", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A0%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A0%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A0%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-override-expressions%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-let-declaration%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-function-scope%E2%91%A0", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A0%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A0%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-constructible%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-pointer-type%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A0%E2%93%AA", @@ -1762,19 +1768,19 @@ "https://www.w3.org/TR/WGSL/#ref-for-variable%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-address-spaces-storage%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-module-scope%E2%91%A0%E2%91%A1", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A0%E2%91%A4", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A0%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-host-shareable", "https://www.w3.org/TR/WGSL/#ref-for-storage-buffer%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-variable%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-address-spaces-storage%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-module-scope%E2%91%A0%E2%91%A2", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A0%E2%91%A5", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A0%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-host-shareable%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-storage-buffer%E2%91%A0%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-variable%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-address-spaces-uniform%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-module-scope%E2%91%A0%E2%91%A3", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A0%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A0%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-constructible%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-host-shareable%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-uniform-buffer%E2%91%A4", @@ -1789,13 +1795,13 @@ "https://www.w3.org/TR/WGSL/#ref-for-variable%E2%91%A0%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-address-spaces-workgroup%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-module-scope%E2%91%A0%E2%91%A6", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A0%E2%91%A7", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A0%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-plain-type%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-fixed-footprint%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-variable%E2%91%A0%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-address-spaces-private%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-module-scope%E2%91%A0%E2%91%A7", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A0%E2%91%A8", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A1%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-constructible%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A0%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-override-expressions%E2%91%A3", @@ -1803,7 +1809,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-address-spaces-function%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-variable%E2%91%A0%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-function-scope%E2%91%A1", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A1%E2%93%AA", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A1%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-constructible%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A0%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-override-expressions%E2%91%A4", @@ -1863,7 +1869,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-function-scope%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A5%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A0%E2%91%A2", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A1%E2%91%A0", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A1%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-type-abstract%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-constructible%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-effective-value-type%E2%91%A2", @@ -1879,7 +1885,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-pipeline-creation%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-concretization-of-a-value", "https://www.w3.org/TR/WGSL/#ref-for-effective-value-type%E2%91%A3", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A1%E2%91%A1", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A1%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A0%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-override-expressions%E2%91%A6", "https://www.w3.org/TR/WGSL/#pipeline-overridable-constant-default-value", @@ -1897,7 +1903,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-dynamic-context%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-concretization-of-a-value%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-effective-value-type%E2%91%A4", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A1%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A1%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-constructible%E2%91%A0%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-pointer-type%E2%91%A2", "https://www.w3.org/TR/WGSL/#example-4662849a", @@ -1908,7 +1914,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-reference-type%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-address-spaces%E2%91%A0%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-access-mode%E2%91%A0%E2%91%A2", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A1%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A1%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-name%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-address-spaces%E2%91%A0%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-store-type%E2%91%A0%E2%91%A2", @@ -2009,7 +2015,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-store-type%E2%91%A0%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-atomic-type%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-zero-value%E2%91%A3", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A1%E2%91%A4", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A1%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-store-type%E2%91%A1%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-constructible%E2%91%A0%E2%91%A2", @@ -2099,7 +2105,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-subexpressions%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-behavioral-requirements%E2%91%A0%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-abstractfloat%E2%91%A1%E2%91%A0", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A1%E2%91%A5", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A1%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-abstractint%E2%91%A0%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-abstractint%E2%91%A1%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-abstractint%E2%91%A1%E2%91%A0", @@ -2112,7 +2118,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-abstractint%E2%91%A1%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-abstractint%E2%91%A1%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-let-declaration%E2%91%A4", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A1%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A1%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-constructible%E2%91%A0%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-overload-resolution%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-feasible-automatic-conversion%E2%91%A7", @@ -2145,11 +2151,11 @@ "https://www.w3.org/TR/WGSL/#ref-for-behavioral-requirements%E2%91%A0%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-override-declaration%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-type-rule%E2%91%A3", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A1%E2%91%A7", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A1%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A0%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-abstractint%E2%91%A2%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-override-declaration%E2%91%A8", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A1%E2%91%A8", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A2%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A0%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-i32%E2%91%A0%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-feasible-automatic-conversion%E2%91%A8", @@ -2219,7 +2225,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A6%E2%91%A1", "https://www.w3.org/TR/WGSL/#example-78b3a51f", "https://www.w3.org/TR/WGSL/#vector-single-component", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A2%E2%93%AA", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A2%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A6%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A1%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-pipeline-creation-error%E2%91%A5", @@ -2265,7 +2271,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-invalid-memory-reference%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-originating-variable%E2%91%A0%E2%91%A1", "https://www.w3.org/TR/WGSL/#matrix-access-expr", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A2%E2%91%A0", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A2%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A6%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A1%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-pipeline-creation-error%E2%91%A7", @@ -2284,7 +2290,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-invalid-memory-reference%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-originating-variable%E2%91%A0%E2%91%A2", "https://www.w3.org/TR/WGSL/#array-access-expr", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A2%E2%91%A1", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A2%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A6%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A1%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-pipeline-creation-error%E2%91%A0%E2%93%AA", @@ -2312,23 +2318,17 @@ "https://www.w3.org/TR/WGSL/#struct-access-expr", "https://www.w3.org/TR/WGSL/#ref-for-originating-variable%E2%91%A0%E2%91%A5", "https://www.w3.org/TR/WGSL/#logical-expr", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A1", - "https://www.w3.org/TR/WGSL/#arithmetic-expr", "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A2", - "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A3", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A2%E2%91%A2", - "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A7", + "https://www.w3.org/TR/WGSL/#arithmetic-expr", "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A4", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A2%E2%91%A3", - "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A8", + "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A5", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A2%E2%91%A4", - "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A0%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A6", - "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A0%E2%91%A0", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A7", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A8", + "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A7%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A2%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-pipeline-creation-error%E2%91%A0%E2%91%A2", @@ -2338,13 +2338,13 @@ "https://www.w3.org/TR/WGSL/#ref-for-pipeline-creation-error%E2%91%A0%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-override-expressions%E2%91%A1%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-truncate", - "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A0%E2%91%A1", + "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A7%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A2%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-pipeline-creation-error%E2%91%A0%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-override-expressions%E2%91%A1%E2%91%A2", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A7", - "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A0%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A0%E2%93%AA", + "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A0%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A7%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A2%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-pipeline-creation-error%E2%91%A0%E2%91%A5", @@ -2354,28 +2354,28 @@ "https://www.w3.org/TR/WGSL/#ref-for-pipeline-creation-error%E2%91%A0%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-override-expressions%E2%91%A1%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-truncate%E2%91%A0", - "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A0%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A0%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A7%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A2%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-pipeline-creation-error%E2%91%A0%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-override-expressions%E2%91%A1%E2%91%A5", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A8", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A0%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A0%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A0%E2%91%A1", - "https://www.w3.org/TR/WGSL/#ref-for-transpose", - "https://www.w3.org/TR/WGSL/#comparison-expr", "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A0%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A0%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-transpose", + "https://www.w3.org/TR/WGSL/#comparison-expr", "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A0%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A0%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A0%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A0%E2%91%A7", - "https://www.w3.org/TR/WGSL/#bit-expr", "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A0%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A1%E2%93%AA", + "https://www.w3.org/TR/WGSL/#bit-expr", "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A1%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A1%E2%91%A1", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A1%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A1%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A7%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A2%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-pipeline-creation-error%E2%91%A0%E2%91%A8", @@ -2389,15 +2389,15 @@ "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A3%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-pipeline-creation-error%E2%91%A1%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-override-expressions%E2%91%A1%E2%91%A8", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A1%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A1%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A8%E2%91%A1", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A1%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A1%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A8%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A3%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-pipeline-creation-error%E2%91%A1%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-override-expressions%E2%91%A2%E2%93%AA", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A1%E2%91%A4", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A1%E2%91%A5", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A1%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A1%E2%91%A7", "https://www.w3.org/TR/WGSL/#function-call-expr", "https://www.w3.org/TR/WGSL/#ref-for-function-call%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-return-type%E2%91%A1", @@ -2703,7 +2703,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-left-hand-side%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-syntax_sym-equal%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-right-hand-side%E2%91%A0", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A2%E2%91%A5", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A2%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-constructible%E2%91%A0%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-address-spaces%E2%91%A0%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-access-mode%E2%91%A0%E2%91%A8", @@ -2762,17 +2762,17 @@ "https://www.w3.org/TR/WGSL/#ref-for-syntax-lhs_expression%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-syntax_sym-minus_minus", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A8%E2%91%A6", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A2%E2%91%A6", - "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A0%E2%91%A4", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A2%E2%91%A4", + "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A0%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-store-type%E2%91%A1%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-access-read_write%E2%91%A0%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-access-mode%E2%91%A1%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-access-read_write%E2%91%A0%E2%91%A2", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A2%E2%91%A7", - "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A0%E2%91%A5", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A2%E2%91%A5", + "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A0%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-access-read_write%E2%91%A0%E2%91%A3", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A2%E2%91%A8", - "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A0%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A2%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A0%E2%91%A3", "https://www.w3.org/TR/WGSL/#example-f5f0412b", "https://www.w3.org/TR/WGSL/#control-flow", "https://www.w3.org/TR/WGSL/#if-statement", @@ -2842,8 +2842,8 @@ "https://www.w3.org/TR/WGSL/#ref-for-syntax-case_selector%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-type-rule-preconditions%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%93%AA%E2%91%A0", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A3%E2%93%AA", - "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A0%E2%91%A7", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A2%E2%91%A7", + "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A0%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-syntax-case_selectors%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%93%AA%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A3%E2%91%A3", @@ -3346,8 +3346,11 @@ "https://www.w3.org/TR/WGSL/#ref-for-numeric-scalar%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-numeric-vector%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A4%E2%91%A1", - "https://www.w3.org/TR/WGSL/#ref-for-fragment%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-shader-stage-input%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A4%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-shader-stage-output%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-fragment%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A4%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A4%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-resolves%E2%91%A1%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-i32%E2%91%A1%E2%93%AA", @@ -3361,9 +3364,9 @@ "https://www.w3.org/TR/WGSL/#ref-for-syntax_sym-paren_right%E2%91%A7", "https://www.w3.org/TR/WGSL/#attribute-builtin", "https://www.w3.org/TR/WGSL/#ref-for-token%E2%91%A0%E2%91%A2", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A4%E2%91%A3", - "https://www.w3.org/TR/WGSL/#ref-for-structure%E2%91%A0%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A4%E2%91%A4", + "https://www.w3.org/TR/WGSL/#ref-for-structure%E2%91%A0%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A4%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-built-in-value-name-token", "https://www.w3.org/TR/WGSL/#ref-for-built-in-values%E2%91%A1", "https://www.w3.org/TR/WGSL/#const-attr", @@ -3371,8 +3374,8 @@ "https://www.w3.org/TR/WGSL/#ref-for-syntax_sym-attr%E2%91%A4", "https://www.w3.org/TR/WGSL/#attribute-const", "https://www.w3.org/TR/WGSL/#ref-for-const-functions%E2%91%A1", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A4%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A4%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A4%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A4%E2%91%A0", "https://www.w3.org/TR/WGSL/#diagnostic-attr", "https://www.w3.org/TR/WGSL/#syntax-diagnostic_attr", @@ -3388,7 +3391,7 @@ "https://www.w3.org/TR/WGSL/#attribute-diagnostic", "https://www.w3.org/TR/WGSL/#ref-for-range-diagnostic-filter", "https://www.w3.org/TR/WGSL/#ref-for-attribute-diagnostic%E2%91%A0", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A4%E2%91%A7", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A4%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-diagnostic-triggering-rule%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-syntax-severity_control_name%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-syntax-diagnostic_rule_name%E2%91%A1", @@ -3401,14 +3404,14 @@ "https://www.w3.org/TR/WGSL/#ref-for-syntax_sym-comma%E2%91%A1%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-syntax_sym-paren_right%E2%91%A0%E2%93%AA", "https://www.w3.org/TR/WGSL/#attribute-group", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A4%E2%91%A8", - "https://www.w3.org/TR/WGSL/#ref-for-resource%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A5%E2%93%AA", + "https://www.w3.org/TR/WGSL/#ref-for-resource%E2%91%A7", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A5%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A4%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-type-rule%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-i32%E2%91%A1%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-u32%E2%91%A0%E2%91%A1", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A5%E2%91%A0", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A5%E2%91%A1", "https://www.w3.org/TR/WGSL/#id-attr", "https://www.w3.org/TR/WGSL/#syntax-id_attr", "https://www.w3.org/TR/WGSL/#ref-for-syntax_sym-attr%E2%91%A7", @@ -3418,15 +3421,15 @@ "https://www.w3.org/TR/WGSL/#ref-for-syntax_sym-paren_right%E2%91%A0%E2%91%A0", "https://www.w3.org/TR/WGSL/#attribute-id", "https://www.w3.org/TR/WGSL/#ref-for-pipeline-overridable%E2%91%A2", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A5%E2%91%A1", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A5%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-override-declaration%E2%91%A0%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A0%E2%91%A3", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A5%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A5%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A4%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-type-rule%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-i32%E2%91%A1%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-u32%E2%91%A0%E2%91%A2", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A5%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A5%E2%91%A4", "https://www.w3.org/TR/WGSL/#interpolate-attr", "https://www.w3.org/TR/WGSL/#syntax-interpolate_attr", "https://www.w3.org/TR/WGSL/#ref-for-syntax_sym-attr%E2%91%A8", @@ -3444,15 +3447,15 @@ "https://www.w3.org/TR/WGSL/#syntax-interpolate_type_name", "https://www.w3.org/TR/WGSL/#ref-for-syntax-ident_pattern_token%E2%91%A0%E2%91%A1", "https://www.w3.org/TR/WGSL/#attribute-interpolate", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A5%E2%91%A4", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A5%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-vertex%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-fragment%E2%91%A3", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A5%E2%91%A5", - "https://www.w3.org/TR/WGSL/#ref-for-attribute-location%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A5%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-attribute-location%E2%91%A4", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A5%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-interpolation-type-name-token", "https://www.w3.org/TR/WGSL/#ref-for-interpolation-type%E2%91%A1", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A5%E2%91%A7", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A5%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-interpolation-sampling-name-token", "https://www.w3.org/TR/WGSL/#ref-for-interpolation-sampling%E2%91%A1", "https://www.w3.org/TR/WGSL/#invariant-attr", @@ -3462,7 +3465,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-built-in-values-position%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-built-in-output-value%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-built-in-input-value", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A5%E2%91%A8", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A6%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-built-in-values-position%E2%91%A2", "https://www.w3.org/TR/WGSL/#location-attr", "https://www.w3.org/TR/WGSL/#syntax-location_attr", @@ -3472,28 +3475,29 @@ "https://www.w3.org/TR/WGSL/#ref-for-syntax_sym-comma%E2%91%A1%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-syntax_sym-paren_right%E2%91%A0%E2%91%A3", "https://www.w3.org/TR/WGSL/#attribute-location", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A6%E2%93%AA", - "https://www.w3.org/TR/WGSL/#ref-for-structure%E2%91%A0%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A6%E2%91%A0", + "https://www.w3.org/TR/WGSL/#ref-for-structure%E2%91%A0%E2%91%A7", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A6%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-numeric-scalar%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-numeric-vector%E2%91%A1", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A6%E2%91%A1", - "https://www.w3.org/TR/WGSL/#ref-for-compute", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A6%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-compute", + "https://www.w3.org/TR/WGSL/#ref-for-shader-stage-input%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A6%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A4%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-type-rule%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-i32%E2%91%A1%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-u32%E2%91%A0%E2%91%A3", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A6%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A6%E2%91%A4", "https://www.w3.org/TR/WGSL/#must-use-attr", "https://www.w3.org/TR/WGSL/#syntax-must_use_attr", "https://www.w3.org/TR/WGSL/#ref-for-syntax_sym-attr%E2%91%A0%E2%91%A2", "https://www.w3.org/TR/WGSL/#attribute-must_use", "https://www.w3.org/TR/WGSL/#ref-for-function-call%E2%91%A6", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A6%E2%91%A4", - "https://www.w3.org/TR/WGSL/#ref-for-expression%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A6%E2%91%A5", + "https://www.w3.org/TR/WGSL/#ref-for-expression%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A6%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A6%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-function-function%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-return-type%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-phony-assignment%E2%91%A0", @@ -3506,19 +3510,19 @@ "https://www.w3.org/TR/WGSL/#ref-for-syntax_sym-comma%E2%91%A1%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-syntax_sym-paren_right%E2%91%A0%E2%91%A4", "https://www.w3.org/TR/WGSL/#attribute-size", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A6%E2%91%A7", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A6%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-byte-size%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-sizeof", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A6%E2%91%A8", - "https://www.w3.org/TR/WGSL/#ref-for-structure%E2%91%A0%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A7%E2%93%AA", - "https://www.w3.org/TR/WGSL/#ref-for-creation-fixed-footprint%E2%91%A0%E2%91%A4", + "https://www.w3.org/TR/WGSL/#ref-for-structure%E2%91%A0%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A7%E2%91%A0", + "https://www.w3.org/TR/WGSL/#ref-for-creation-fixed-footprint%E2%91%A0%E2%91%A4", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A7%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A4%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-type-rule%E2%91%A0%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-i32%E2%91%A1%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-u32%E2%91%A0%E2%91%A4", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A7%E2%91%A1", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A7%E2%91%A2", "https://www.w3.org/TR/WGSL/#workgroup-size-attr", "https://www.w3.org/TR/WGSL/#syntax-workgroup_size_attr", "https://www.w3.org/TR/WGSL/#ref-for-syntax_sym-attr%E2%91%A0%E2%91%A4", @@ -3544,23 +3548,23 @@ "https://www.w3.org/TR/WGSL/#ref-for-syntax_sym-paren_right%E2%91%A0%E2%91%A7", "https://www.w3.org/TR/WGSL/#attribute-workgroup_size", "https://www.w3.org/TR/WGSL/#ref-for-workgroup-grid", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A7%E2%91%A2", - "https://www.w3.org/TR/WGSL/#ref-for-compute-shader-stage%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A7%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-compute-shader-stage%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A7%E2%91%A4", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A7%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A4%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-override-expressions%E2%91%A2%E2%91%A0", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A7%E2%91%A5", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A7%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-i32%E2%91%A1%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-u32%E2%91%A0%E2%91%A5", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A7%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A7%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A4%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-pipeline-creation-error%E2%91%A1%E2%91%A2", "https://www.w3.org/TR/WGSL/#shader-stage-attr", "https://www.w3.org/TR/WGSL/#shader-stage-attributes", "https://www.w3.org/TR/WGSL/#ref-for-entry-point%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-shader-stages%E2%91%A3", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A7%E2%91%A7", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A7%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-function-declaration%E2%91%A2", "https://www.w3.org/TR/WGSL/#vertex-attr", "https://www.w3.org/TR/WGSL/#syntax-vertex_attr", @@ -3590,8 +3594,8 @@ "https://www.w3.org/TR/WGSL/#shader-stages-sec", "https://www.w3.org/TR/WGSL/#ref-for-draw-command%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-dispatch-command%E2%91%A1", - "https://www.w3.org/TR/WGSL/#ref-for-shader-stage-input%E2%91%A2", - "https://www.w3.org/TR/WGSL/#ref-for-shader-stage-output%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-shader-stage-input%E2%91%A4", + "https://www.w3.org/TR/WGSL/#ref-for-shader-stage-output%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-resource%E2%91%A8", "https://www.w3.org/TR/WGSL/#pipeline", "https://www.w3.org/TR/WGSL/#ref-for-dispatch-command%E2%91%A2", @@ -3612,10 +3616,10 @@ "https://www.w3.org/TR/WGSL/#ref-for-pipeline%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-gpuprogrammablestage%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-formal-parameter%E2%91%A0%E2%91%A3", - "https://www.w3.org/TR/WGSL/#ref-for-shader-stage-input%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-shader-stage-input%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-return-value%E2%91%A2", - "https://www.w3.org/TR/WGSL/#ref-for-shader-stage-output%E2%91%A3", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A7%E2%91%A8", + "https://www.w3.org/TR/WGSL/#ref-for-shader-stage-output%E2%91%A4", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A8%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-bool%E2%91%A0%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-numeric-scalar%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-numeric-vector%E2%91%A2", @@ -3643,8 +3647,8 @@ "https://www.w3.org/TR/WGSL/#shader-interface", "https://www.w3.org/TR/WGSL/#ref-for-shader-stages%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-pipeline-overridable%E2%91%A3", - "https://www.w3.org/TR/WGSL/#ref-for-shader-stage-input%E2%91%A4", - "https://www.w3.org/TR/WGSL/#ref-for-shader-stage-output%E2%91%A4", + "https://www.w3.org/TR/WGSL/#ref-for-shader-stage-input%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-shader-stage-output%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-override-declaration%E2%91%A0%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-resource%E2%91%A0%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-uniform-buffer%E2%91%A5", @@ -3687,8 +3691,8 @@ "https://www.w3.org/TR/WGSL/#ref-for-built-in-output-value%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-user-defined-output-datum%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-io-attributes%E2%91%A1", - "https://www.w3.org/TR/WGSL/#ref-for-shader-stage-input%E2%91%A5", - "https://www.w3.org/TR/WGSL/#ref-for-shader-stage-output%E2%91%A5", + "https://www.w3.org/TR/WGSL/#ref-for-shader-stage-input%E2%91%A7", + "https://www.w3.org/TR/WGSL/#ref-for-shader-stage-output%E2%91%A6", "https://www.w3.org/TR/WGSL/#io-attributes", "https://www.w3.org/TR/WGSL/#ref-for-attribute-builtin%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-attribute-location%E2%91%A5", @@ -3697,21 +3701,21 @@ "https://www.w3.org/TR/WGSL/#ref-for-attribute-invariant%E2%91%A3", "https://www.w3.org/TR/WGSL/#builtin-inputs-outputs", "https://www.w3.org/TR/WGSL/#built-in-input-value", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A8%E2%93%AA", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A8%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-formal-parameter%E2%91%A0%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-entry-point%E2%91%A0%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-shader-stages%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-attribute-builtin%E2%91%A4", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A8%E2%91%A0", - "https://www.w3.org/TR/WGSL/#built-in-output-value", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A8%E2%91%A1", + "https://www.w3.org/TR/WGSL/#built-in-output-value", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A8%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-return-value%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-entry-point%E2%91%A0%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-shader-stages%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-return-type%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-return-type%E2%91%A0%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-attribute-builtin%E2%91%A5", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A8%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A8%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-built-in-values-position%E2%91%A3", "https://www.w3.org/TR/WGSL/#built-in-values", "https://www.w3.org/TR/WGSL/#ref-for-built-in-value-name-token%E2%91%A0", @@ -3735,7 +3739,7 @@ "https://www.w3.org/TR/WGSL/#built-in-values-clip_distances", "https://www.w3.org/TR/WGSL/#ref-for-vertex-shader-stage%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-built-in-values-clip_distances%E2%91%A2", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A8%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A8%E2%91%A4", "https://www.w3.org/TR/WGSL/#frag-depth-builtin-value", "https://www.w3.org/TR/WGSL/#built-in-values-frag_depth", "https://www.w3.org/TR/WGSL/#ref-for-fragment-shader-stage%E2%91%A0", @@ -3811,24 +3815,24 @@ "https://www.w3.org/TR/WGSL/#user-defined-inputs-outputs", "https://www.w3.org/TR/WGSL/#user-defined-input-datum", "https://www.w3.org/TR/WGSL/#user-defined-output-datum", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A8%E2%91%A4", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A8%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-numeric-scalar%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-numeric-vector%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-compute%E2%91%A1", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A8%E2%91%A5", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A8%E2%91%A6", "https://www.w3.org/TR/WGSL/#input-output-locations", "https://www.w3.org/TR/WGSL/#ref-for-attribute-location%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-user-defined-input-datum%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-user-defined-output-datum%E2%91%A1", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A8%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A8%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A0%E2%91%A8%E2%91%A8", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%93%AA%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-attribute-location%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-attribute-location%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-attribute-blend_src%E2%91%A6", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%93%AA%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%93%AA%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%93%AA%E2%91%A1", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%93%AA%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-attribute-location%E2%91%A0%E2%93%AA", "https://www.w3.org/TR/WGSL/#example-7d0deae3", "https://www.w3.org/TR/WGSL/#example-ee897116", @@ -3836,14 +3840,14 @@ "https://www.w3.org/TR/WGSL/#interpolation", "https://www.w3.org/TR/WGSL/#ref-for-attribute-interpolate%E2%91%A4", "https://www.w3.org/TR/WGSL/#interpolation-type", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%93%AA%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%93%AA%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-interpolation-type-name-token%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-token%E2%91%A0%E2%91%A4", "https://www.w3.org/TR/WGSL/#interpolation-type-perspective", "https://www.w3.org/TR/WGSL/#interpolation-type-linear", "https://www.w3.org/TR/WGSL/#interpolation-type-flat", "https://www.w3.org/TR/WGSL/#interpolation-sampling", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%93%AA%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%93%AA%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-interpolation-sampling-name-token%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-token%E2%91%A0%E2%91%A5", "https://www.w3.org/TR/WGSL/#interpolation-sampling-center", @@ -3852,12 +3856,12 @@ "https://www.w3.org/TR/WGSL/#ref-for-fragment%E2%91%A5", "https://www.w3.org/TR/WGSL/#interpolation-sampling-first", "https://www.w3.org/TR/WGSL/#interpolation-sampling-either", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%93%AA%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%93%AA%E2%91%A5", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%93%AA%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-vertex%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-fragment%E2%91%A6", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%93%AA%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%93%AA%E2%91%A7", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%93%AA%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-vertex%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-fragment%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-attribute-location%E2%91%A0%E2%91%A0", @@ -3873,11 +3877,11 @@ "https://www.w3.org/TR/WGSL/#resource-interface-of-a-shader", "https://www.w3.org/TR/WGSL/#ref-for-statically-accessed%E2%91%A0%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-functions-in-a-shader-stage%E2%91%A2", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%93%AA%E2%91%A8", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A0%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-attribute-group%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-attribute-binding%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-shader%E2%91%A3", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A0%E2%93%AA", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A0%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-attribute-group%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-attribute-binding%E2%91%A1", "https://www.w3.org/TR/WGSL/#resource-layout-compatibility", @@ -4019,7 +4023,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-enumerant%E2%91%A0%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-variable%E2%91%A0%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-address-spaces-workgroup%E2%91%A0%E2%91%A3", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A0%E2%91%A0", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A0%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-statically-accessed%E2%91%A0%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-compute-shader-stage%E2%91%A0%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-variable%E2%91%A0%E2%91%A6", @@ -4040,7 +4044,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-pointer-type%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-address-spaces-storage%E2%91%A0%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-access-read%E2%91%A0%E2%91%A1", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A0%E2%91%A1", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A0%E2%91%A2", "https://www.w3.org/TR/WGSL/#memory-layouts", "https://www.w3.org/TR/WGSL/#ref-for-address-spaces%E2%91%A0%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-uniform-buffer%E2%91%A0%E2%91%A0", @@ -4049,9 +4053,9 @@ "https://www.w3.org/TR/WGSL/#memory-layout", "https://www.w3.org/TR/WGSL/#ref-for-memory-locations%E2%91%A0%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-store-type%E2%91%A1%E2%91%A6", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A0%E2%91%A2", - "https://www.w3.org/TR/WGSL/#ref-for-host-shareable%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A0%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-host-shareable%E2%91%A4", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A0%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-address-spaces-uniform%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-address-spaces-storage%E2%91%A0%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-address-spaces-uniform%E2%91%A4", @@ -4080,7 +4084,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-host-shareable%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-fixed-footprint%E2%91%A3", "https://www.w3.org/TR/WGSL/#alignment", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A0%E2%91%A4", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A0%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-memory-locations%E2%91%A0%E2%91%A6", "https://www.w3.org/TR/WGSL/#byte-size", "https://www.w3.org/TR/WGSL/#ref-for-host-shareable%E2%91%A7", @@ -4135,7 +4139,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-attribute-align%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-alignof%E2%91%A0%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-attribute-size%E2%91%A4", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A0%E2%91%A5", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A0%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-sizeofmember%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-sizeof%E2%91%A0%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-offsetofmember%E2%91%A1", @@ -4152,14 +4156,14 @@ "https://www.w3.org/TR/WGSL/#internal-value-layout", "https://www.w3.org/TR/WGSL/#ref-for-attribute-align%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-attribute-size%E2%91%A5", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A0%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A0%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-alignof%E2%91%A0%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-behavioral-requirements%E2%91%A0%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-u32%E2%91%A1%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-i32%E2%91%A2%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-i32%E2%91%A2%E2%91%A0", "https://www.w3.org/TR/WGSL/#64-bit-integer", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A3%E2%91%A0", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A2%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-64-bit-integer", "https://www.w3.org/TR/WGSL/#ref-for-f32%E2%91%A1%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-f16%E2%91%A0%E2%91%A4", @@ -4180,8 +4184,8 @@ "https://www.w3.org/TR/WGSL/#ref-for-address-spaces%E2%91%A0%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-address-spaces-uniform%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-address-spaces-storage%E2%91%A0%E2%91%A4", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A0%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A0%E2%91%A8", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A1%E2%93%AA", "https://www.w3.org/TR/WGSL/#requiredalignof", "https://www.w3.org/TR/WGSL/#ref-for-alignment%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-address-spaces-storage%E2%91%A0%E2%91%A5", @@ -4216,11 +4220,11 @@ "https://www.w3.org/TR/WGSL/#ref-for-alignof%E2%91%A1%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-roundup%E2%91%A0%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-alignof%E2%91%A1%E2%91%A5", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A1%E2%93%AA", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A1%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-requiredalignof%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-offsetofmember%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-requiredalignof%E2%91%A3", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A1%E2%91%A0", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A1%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-element-stride", "https://www.w3.org/TR/WGSL/#ref-for-requiredalignof%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-strideof%E2%91%A5", @@ -4233,7 +4237,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-requiredalignof%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-address-spaces-uniform%E2%91%A0%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-strideof%E2%91%A7", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A1%E2%91%A1", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A1%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-roundup%E2%91%A0%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-sizeof%E2%91%A0%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-attribute-align%E2%91%A6", @@ -4330,7 +4334,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-severity-error%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-diagnostic%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-triggered%E2%91%A2", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A1%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A1%E2%91%A3", "https://www.w3.org/TR/WGSL/#uniformity-concepts", "https://www.w3.org/TR/WGSL/#uniform-control-flow", "https://www.w3.org/TR/WGSL/#ref-for-compute-shader-stage%E2%91%A0%E2%91%A0", @@ -4423,7 +4427,7 @@ "https://www.w3.org/TR/WGSL/#parameternorestriction", "https://www.w3.org/TR/WGSL/#ref-for-parameter-return-tag", "https://www.w3.org/TR/WGSL/#parameterreturncontentsrequiredtobeuniform", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A1%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A1%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-uniform-value%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-return-value%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-uniform-value%E2%91%A6", @@ -4830,7 +4834,7 @@ "https://www.w3.org/TR/WGSL/#barrier", "https://www.w3.org/TR/WGSL/#control-barrier", "https://www.w3.org/TR/WGSL/#ref-for-compute-shader-stage-workgroup%E2%91%A3", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A1%E2%91%A4", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A1%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-uniform-control-flow%E2%91%A0%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-compute-shader-stage%E2%91%A0%E2%91%A2", "https://www.w3.org/TR/WGSL/#derivatives", @@ -4849,7 +4853,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A4%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-override-expressions%E2%91%A2%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-behavioral-requirements%E2%91%A1%E2%91%A8", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A1%E2%91%A5", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A1%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A5%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-pipeline-creation-error%E2%91%A1%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-override-expressions%E2%91%A2%E2%91%A4", @@ -4861,7 +4865,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-f32%E2%91%A1%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-f16%E2%91%A0%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A5%E2%91%A0", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A1%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A1%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-override-expressions%E2%91%A2%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-pipeline-creation-error%E2%91%A1%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-runtime-expression%E2%91%A4", @@ -4872,6 +4876,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-correctly-rounded", "https://www.w3.org/TR/WGSL/#ref-for-ulp", "https://www.w3.org/TR/WGSL/#inherited-from", + "https://www.w3.org/TR/WGSL/#ref-for-flush-to-zero", "https://www.w3.org/TR/WGSL/#concrete-float-accuracy", "https://www.w3.org/TR/WGSL/#abstract-float-accuracy", "https://www.w3.org/TR/WGSL/#ref-for-abstractfloat%E2%91%A1%E2%91%A1", @@ -4895,7 +4900,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-f32%E2%91%A1%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-f16%E2%91%A0%E2%91%A8", "https://www.w3.org/TR/WGSL/#scalar-floating-point-to-integral-conversion", - "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A0%E2%91%A8", + "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A0%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-truncate%E2%91%A0%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-u32%E2%91%A1%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-u32%E2%91%A1%E2%91%A4", @@ -4905,8 +4910,8 @@ "https://www.w3.org/TR/WGSL/#ref-for-i32%E2%91%A2%E2%91%A4", "https://www.w3.org/TR/WGSL/#numeric-scalar-conversion-to-floating-point", "https://www.w3.org/TR/WGSL/#ref-for-numeric-scalar%E2%91%A6", - "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A1%E2%93%AA", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A1%E2%91%A7", + "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A0%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A1%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A5%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-pipeline-creation-error%E2%91%A1%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-override-expressions%E2%91%A2%E2%91%A6", @@ -4945,7 +4950,7 @@ "https://www.w3.org/TR/WGSL/#reserved-words", "https://www.w3.org/TR/WGSL/#reserved-word", "https://www.w3.org/TR/WGSL/#ref-for-token%E2%91%A0%E2%91%A6", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A1%E2%91%A8", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A2%E2%93%AA", "https://www.w3.org/TR/WGSL/#syntax-_reserved", "https://www.w3.org/TR/WGSL/#syntactic-tokens", "https://www.w3.org/TR/WGSL/#syntactic-token", @@ -5025,13 +5030,13 @@ "https://www.w3.org/TR/WGSL/#ref-for-constructible%E2%91%A1%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-structure%E2%91%A1%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-identifier%E2%91%A1%E2%91%A8", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A2%E2%93%AA", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A2%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-in-scope%E2%91%A0%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-identifier%E2%91%A2%E2%93%AA", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A2%E2%91%A0", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A2%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-resolves%E2%91%A3%E2%91%A7", "https://www.w3.org/TR/WGSL/#zero-value-builtin-function", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A3%E2%91%A1", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A3%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-constructible%E2%91%A1%E2%91%A0", "https://www.w3.org/TR/WGSL/#zero-value", "https://www.w3.org/TR/WGSL/#ref-for-abstract-numeric-types%E2%91%A5", @@ -5042,7 +5047,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-atomic-type%E2%91%A0%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-runtime-sized%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-constructible%E2%91%A1%E2%91%A3", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A3%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A3%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-constructible%E2%91%A1%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-zero-value%E2%91%A5", "https://www.w3.org/TR/WGSL/#example-661f49a4", @@ -5052,7 +5057,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-constructible%E2%91%A1%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-overload%E2%91%A5", "https://www.w3.org/TR/WGSL/#array-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A3%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A3%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-constructible%E2%91%A1%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-array%E2%91%A0%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-constructible%E2%91%A1%E2%91%A7", @@ -5074,7 +5079,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-f16%E2%91%A1%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-bool%E2%91%A0%E2%91%A6", "https://www.w3.org/TR/WGSL/#f32-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A3%E2%91%A4", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A3%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A0%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-f32%E2%91%A2%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-f32%E2%91%A2%E2%91%A2", @@ -5093,7 +5098,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-bool%E2%91%A0%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-abstractint%E2%91%A2%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-i32%E2%91%A3%E2%91%A0", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A2%E2%91%A1", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A2%E2%91%A2", "https://www.w3.org/TR/WGSL/#mat2x2-builtin", "https://www.w3.org/TR/WGSL/#ref-for-f16%E2%91%A1%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-f32%E2%91%A2%E2%91%A5", @@ -5243,88 +5248,88 @@ "https://www.w3.org/TR/WGSL/#ref-for-bool%E2%91%A1%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-abstractint%E2%91%A2%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-u32%E2%91%A2%E2%91%A2", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A2%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A2%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-abstractint%E2%91%A2%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-overload-resolution%E2%91%A1", "https://www.w3.org/TR/WGSL/#vec2-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A3%E2%91%A5", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A3%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A1%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A1%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-vector%E2%91%A0%E2%91%A8", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A3%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A3%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A1%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A1%E2%91%A3", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A1%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A1%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-vector%E2%91%A1%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A1%E2%91%A4", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A1%E2%91%A7", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A2%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-vector%E2%91%A1%E2%91%A0", "https://www.w3.org/TR/WGSL/#vec3-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A3%E2%91%A7", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A3%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A1%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A1%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-vector%E2%91%A1%E2%91%A1", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A3%E2%91%A8", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A3%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A1%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A1%E2%91%A8", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A1%E2%91%A8", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A2%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-vector%E2%91%A1%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A2%E2%93%AA", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A2%E2%93%AA", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A2%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-vector%E2%91%A1%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A2%E2%91%A0", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A2%E2%91%A0", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A2%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-vector%E2%91%A1%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A2%E2%91%A1", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A2%E2%91%A1", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A2%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-vector%E2%91%A1%E2%91%A5", "https://www.w3.org/TR/WGSL/#vec4-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A4%E2%93%AA", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A3%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A2%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A2%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-vector%E2%91%A1%E2%91%A6", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A4%E2%91%A0", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A3%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A2%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A2%E2%91%A5", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A2%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A2%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-vector%E2%91%A1%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A2%E2%91%A6", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A2%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A2%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-vector%E2%91%A1%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A2%E2%91%A7", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A2%E2%91%A4", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A2%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-vector%E2%91%A2%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A2%E2%91%A8", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A2%E2%91%A5", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A2%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-vector%E2%91%A2%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A3%E2%93%AA", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A2%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A2%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-vector%E2%91%A2%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A3%E2%91%A0", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A2%E2%91%A7", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A3%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-vector%E2%91%A2%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A3%E2%91%A1", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A2%E2%91%A8", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A3%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-vector%E2%91%A2%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A3%E2%91%A2", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A3%E2%93%AA", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A3%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-vector%E2%91%A2%E2%91%A4", "https://www.w3.org/TR/WGSL/#bit-reinterp-builtin-functions", "https://www.w3.org/TR/WGSL/#bitcast-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A4%E2%91%A1", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A4%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-numeric-scalar%E2%91%A0%E2%93%AA", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A4%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A4%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-numeric-vector%E2%91%A5", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A3%E2%91%A0", - "https://www.w3.org/TR/WGSL/#ref-for-vector%E2%91%A2%E2%91%A5", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A3%E2%91%A1", - "https://www.w3.org/TR/WGSL/#ref-for-u32%E2%91%A2%E2%91%A3", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A2%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A3%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-vector%E2%91%A2%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A3%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-u32%E2%91%A2%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A2%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A3%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A3%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A3%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A3%E2%91%A7", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A3%E2%91%A8", "https://www.w3.org/TR/WGSL/#logical-builtin-functions", "https://www.w3.org/TR/WGSL/#all-builtin", "https://www.w3.org/TR/WGSL/#any-builtin", @@ -5332,7 +5337,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A3%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-vector%E2%91%A2%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A3%E2%91%A4", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A3%E2%91%A7", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A4%E2%93%AA", "https://www.w3.org/TR/WGSL/#array-builtin-functions", "https://www.w3.org/TR/WGSL/#arrayLength-builtin", "https://www.w3.org/TR/WGSL/#ref-for-runtime-sized%E2%91%A0%E2%93%AA", @@ -5344,179 +5349,179 @@ "https://www.w3.org/TR/WGSL/#example-c8636868", "https://www.w3.org/TR/WGSL/#numeric-builtin-functions", "https://www.w3.org/TR/WGSL/#abs-float-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A3%E2%91%A8", - "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A1%E2%91%A0", - "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A1%E2%91%A1", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A4%E2%91%A0", + "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A0%E2%91%A7", + "https://www.w3.org/TR/WGSL/#ref-for-integer-scalar%E2%91%A0%E2%91%A8", "https://www.w3.org/TR/WGSL/#acos-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A4%E2%93%AA", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A4%E2%91%A1", "https://www.w3.org/TR/WGSL/#acosh-builtin", "https://www.w3.org/TR/WGSL/#ref-for-hyperbolic-angle", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A4%E2%91%A0", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A4%E2%91%A2", "https://www.w3.org/TR/WGSL/#asin-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A4%E2%91%A1", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A4%E2%91%A3", "https://www.w3.org/TR/WGSL/#asinh-builtin", "https://www.w3.org/TR/WGSL/#ref-for-hyperbolic-angle%E2%91%A0", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A4%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A4%E2%91%A4", "https://www.w3.org/TR/WGSL/#atan-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A4%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A4%E2%91%A5", "https://www.w3.org/TR/WGSL/#atanh-builtin", "https://www.w3.org/TR/WGSL/#ref-for-hyperbolic-angle%E2%91%A1", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A4%E2%91%A4", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A4%E2%91%A6", "https://www.w3.org/TR/WGSL/#atan2-builtin", "https://www.w3.org/TR/WGSL/#ref-for-angles", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A4%E2%91%A5", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A4%E2%91%A7", "https://www.w3.org/TR/WGSL/#ceil-builtin", "https://www.w3.org/TR/WGSL/#ref-for-ceiling-expression", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A4%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A4%E2%91%A8", "https://www.w3.org/TR/WGSL/#clamp", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A4%E2%91%A7", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A2%E2%91%A4", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A5%E2%93%AA", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A2%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A5%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-pipeline-creation-error%E2%91%A1%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-override-expressions%E2%91%A2%E2%91%A7", "https://www.w3.org/TR/WGSL/#cos-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A4%E2%91%A8", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A5%E2%91%A0", "https://www.w3.org/TR/WGSL/#cosh-builtin", "https://www.w3.org/TR/WGSL/#ref-for-hyperbolic-angle%E2%91%A2", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A5%E2%93%AA", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A5%E2%91%A1", "https://www.w3.org/TR/WGSL/#countLeadingZeros-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A5%E2%91%A0", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A5%E2%91%A2", "https://www.w3.org/TR/WGSL/#countOneBits-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A5%E2%91%A1", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A5%E2%91%A3", "https://www.w3.org/TR/WGSL/#countTrailingZeros-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A5%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A5%E2%91%A4", "https://www.w3.org/TR/WGSL/#cross-builtin", "https://www.w3.org/TR/WGSL/#degrees-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A5%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A5%E2%91%A5", "https://www.w3.org/TR/WGSL/#determinant-builtin", "https://www.w3.org/TR/WGSL/#distance-builtin", "https://www.w3.org/TR/WGSL/#dot-builtin", "https://www.w3.org/TR/WGSL/#dot4U8Packed-builtin", "https://www.w3.org/TR/WGSL/#dot4I8Packed-builtin", "https://www.w3.org/TR/WGSL/#exp-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A5%E2%91%A4", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A5%E2%91%A6", "https://www.w3.org/TR/WGSL/#exp2-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A5%E2%91%A5", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A5%E2%91%A7", "https://www.w3.org/TR/WGSL/#extractBits-signed-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A5%E2%91%A6", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A2%E2%91%A5", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A5%E2%91%A8", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A2%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A5%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-pipeline-creation-error%E2%91%A1%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-override-expressions%E2%91%A2%E2%91%A8", "https://www.w3.org/TR/WGSL/#extractBits-unsigned-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A5%E2%91%A7", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A2%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A6%E2%93%AA", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A2%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A5%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-pipeline-creation-error%E2%91%A2%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-override-expressions%E2%91%A3%E2%93%AA", "https://www.w3.org/TR/WGSL/#faceForward-builtin", "https://www.w3.org/TR/WGSL/#firstLeadingBit-signed-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A5%E2%91%A8", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A6%E2%91%A0", "https://www.w3.org/TR/WGSL/#firstLeadingBit-unsigned-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A6%E2%93%AA", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A6%E2%91%A1", "https://www.w3.org/TR/WGSL/#firstTrailingBit-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A6%E2%91%A0", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A6%E2%91%A2", "https://www.w3.org/TR/WGSL/#floor-builtin", "https://www.w3.org/TR/WGSL/#ref-for-floor-expression", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A6%E2%91%A1", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A6%E2%91%A3", "https://www.w3.org/TR/WGSL/#fma-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A6%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A6%E2%91%A4", "https://www.w3.org/TR/WGSL/#fract-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A6%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A6%E2%91%A5", "https://www.w3.org/TR/WGSL/#frexp-builtin", "https://www.w3.org/TR/WGSL/#ref-for-indeterminate-value%E2%91%A6", "https://www.w3.org/TR/WGSL/#example-450e6187", "https://www.w3.org/TR/WGSL/#ref-for-indeterminate-value%E2%91%A7", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A2%E2%91%A7", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A2%E2%91%A8", "https://www.w3.org/TR/WGSL/#example-2820d825", "https://www.w3.org/TR/WGSL/#ref-for-indeterminate-value%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-indeterminate-value%E2%91%A0%E2%93%AA", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A2%E2%91%A8", - "https://www.w3.org/TR/WGSL/#insertBits-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A6%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A3%E2%93%AA", + "https://www.w3.org/TR/WGSL/#insertBits-builtin", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A6%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A3%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A5%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-pipeline-creation-error%E2%91%A2%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-override-expressions%E2%91%A3%E2%91%A0", "https://www.w3.org/TR/WGSL/#inverseSqrt-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A6%E2%91%A5", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A6%E2%91%A7", "https://www.w3.org/TR/WGSL/#ldexp-builtin", "https://www.w3.org/TR/WGSL/#ref-for-type-abstract%E2%91%A0%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-type-abstract%E2%91%A0%E2%91%A1", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A4%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A4%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-feasible-automatic-conversion%E2%91%A0%E2%93%AA", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A4%E2%91%A4", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A4%E2%91%A5", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A3%E2%91%A0", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A4%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A4%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A3%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A5%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-pipeline-creation-error%E2%91%A2%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-override-expressions%E2%91%A3%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-indeterminate-value%E2%91%A0%E2%91%A0", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A6%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A6%E2%91%A8", "https://www.w3.org/TR/WGSL/#length-builtin", "https://www.w3.org/TR/WGSL/#ref-for-scalar%E2%91%A3%E2%91%A5", "https://www.w3.org/TR/WGSL/#log-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A6%E2%91%A7", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A7%E2%93%AA", "https://www.w3.org/TR/WGSL/#log2-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A6%E2%91%A8", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A7%E2%91%A0", "https://www.w3.org/TR/WGSL/#max-float-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A7%E2%93%AA", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A7%E2%91%A1", "https://www.w3.org/TR/WGSL/#min-float-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A7%E2%91%A0", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A7%E2%91%A2", "https://www.w3.org/TR/WGSL/#mix-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A7%E2%91%A1", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A7%E2%91%A3", "https://www.w3.org/TR/WGSL/#modf-builtin", "https://www.w3.org/TR/WGSL/#example-e7d85833", "https://www.w3.org/TR/WGSL/#example-ccf734df", "https://www.w3.org/TR/WGSL/#normalize-builtin", "https://www.w3.org/TR/WGSL/#pow-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A7%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A7%E2%91%A4", "https://www.w3.org/TR/WGSL/#quantizeToF16-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A3%E2%91%A1", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A3%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A5%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-pipeline-creation-error%E2%91%A2%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-override-expressions%E2%91%A3%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-indeterminate-value%E2%91%A0%E2%91%A1", - "https://www.w3.org/TR/WGSL/#ref-for-flush-to-zero", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A7%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-flush-to-zero%E2%91%A0", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A7%E2%91%A5", "https://www.w3.org/TR/WGSL/#radians-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A7%E2%91%A4", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A7%E2%91%A6", "https://www.w3.org/TR/WGSL/#reflect-builtin", "https://www.w3.org/TR/WGSL/#refract-builtin", "https://www.w3.org/TR/WGSL/#reverseBits-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A7%E2%91%A5", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A7%E2%91%A7", "https://www.w3.org/TR/WGSL/#round-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A7%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A7%E2%91%A8", "https://www.w3.org/TR/WGSL/#saturate-float-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A7%E2%91%A7", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A8%E2%93%AA", "https://www.w3.org/TR/WGSL/#sign-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A7%E2%91%A8", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A8%E2%91%A0", "https://www.w3.org/TR/WGSL/#sin-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A8%E2%93%AA", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A8%E2%91%A1", "https://www.w3.org/TR/WGSL/#sinh-builtin", "https://www.w3.org/TR/WGSL/#ref-for-hyperbolic-angle%E2%91%A3", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A8%E2%91%A0", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A8%E2%91%A2", "https://www.w3.org/TR/WGSL/#smoothstep-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A8%E2%91%A1", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A3%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A8%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A3%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A5%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-pipeline-creation-error%E2%91%A2%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-override-expressions%E2%91%A3%E2%91%A3", "https://www.w3.org/TR/WGSL/#sqrt-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A8%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A8%E2%91%A4", "https://www.w3.org/TR/WGSL/#step-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A8%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A8%E2%91%A5", "https://www.w3.org/TR/WGSL/#tan-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A8%E2%91%A4", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A8%E2%91%A6", "https://www.w3.org/TR/WGSL/#tanh-builtin", "https://www.w3.org/TR/WGSL/#ref-for-hyperbolic-angle%E2%91%A4", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A8%E2%91%A5", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A8%E2%91%A7", "https://www.w3.org/TR/WGSL/#transpose-builtin", "https://www.w3.org/TR/WGSL/#trunc-builtin", "https://www.w3.org/TR/WGSL/#ref-for-truncate%E2%91%A0%E2%91%A2", - "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A8%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-component-wise%E2%91%A8%E2%91%A8", "https://www.w3.org/TR/WGSL/#derivative-builtin-functions", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A3%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A3%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-fragment%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-triggered%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-trigger-derivative_uniformity%E2%91%A7", @@ -5551,7 +5556,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-indeterminate-value%E2%91%A1%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-uniform-control-flow%E2%91%A1%E2%91%A1", "https://www.w3.org/TR/WGSL/#texture-builtin-functions", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A3%E2%91%A4", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A3%E2%91%A5", "https://www.w3.org/TR/WGSL/#texturedimensions", "https://www.w3.org/TR/WGSL/#ref-for-i32%E2%91%A3%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-u32%E2%91%A2%E2%91%A4", @@ -5635,13 +5640,13 @@ "https://www.w3.org/TR/WGSL/#ref-for-u32%E2%91%A5%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-i32%E2%91%A5%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-u32%E2%91%A5%E2%91%A0", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A3%E2%91%A5", - "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A6%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A3%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A6%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A3%E2%91%A7", - "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A6%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A3%E2%91%A8", + "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A6%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A4%E2%93%AA", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A4%E2%91%A0", "https://www.w3.org/TR/WGSL/#example-16e82a5f", "https://www.w3.org/TR/WGSL/#texturegathercompare", "https://www.w3.org/TR/WGSL/#texture-gather-compare", @@ -5652,10 +5657,10 @@ "https://www.w3.org/TR/WGSL/#ref-for-u32%E2%91%A5%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-i32%E2%91%A6%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-u32%E2%91%A5%E2%91%A3", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A4%E2%91%A0", - "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A6%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A4%E2%91%A1", + "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A6%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A4%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A4%E2%91%A3", "https://www.w3.org/TR/WGSL/#example-e6a4066b", "https://www.w3.org/TR/WGSL/#textureload", "https://www.w3.org/TR/WGSL/#ref-for-i32%E2%91%A6%E2%91%A2", @@ -5767,7 +5772,7 @@ "https://www.w3.org/TR/WGSL/#ref-for-texture-sample-count%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-type-multisampled-texture%E2%91%A4", "https://www.w3.org/TR/WGSL/#texturesample", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A4%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A4%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-fragment%E2%91%A0%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-uniformity-analysis%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-uniform-control-flow%E2%91%A1%E2%91%A2", @@ -5789,14 +5794,14 @@ "https://www.w3.org/TR/WGSL/#ref-for-type-sampled-texture%E2%91%A0%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-type-depth-texture%E2%91%A0%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-sampler%E2%91%A3", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A4%E2%91%A4", - "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A6%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A4%E2%91%A5", + "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A6%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A4%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A4%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-indeterminate-value%E2%91%A1%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-uniform-control-flow%E2%91%A1%E2%91%A3", "https://www.w3.org/TR/WGSL/#texturesamplebias", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A4%E2%91%A7", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A4%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-fragment%E2%91%A0%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-uniformity-analysis%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-uniform-control-flow%E2%91%A1%E2%91%A4", @@ -5811,16 +5816,16 @@ "https://www.w3.org/TR/WGSL/#ref-for-u32%E2%91%A0%E2%93%AA%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-type-sampled-texture%E2%91%A0%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-type-sampler%E2%91%A3", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A4%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A5%E2%93%AA", - "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A6%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A5%E2%91%A0", + "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A6%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A5%E2%91%A1", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A5%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-indeterminate-value%E2%91%A1%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-uniform-control-flow%E2%91%A1%E2%91%A5", "https://www.w3.org/TR/WGSL/#texturesamplecompare", "https://www.w3.org/TR/WGSL/#ref-for-type-depth-texture%E2%91%A0%E2%91%A0", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A5%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A5%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-fragment%E2%91%A0%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-uniformity-analysis%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-uniform-control-flow%E2%91%A1%E2%91%A6", @@ -5835,10 +5840,10 @@ "https://www.w3.org/TR/WGSL/#ref-for-u32%E2%91%A0%E2%93%AA%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-type-depth-texture%E2%91%A0%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-type-sampler_comparison%E2%91%A4", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A5%E2%91%A3", - "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A6%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A5%E2%91%A4", + "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A6%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A5%E2%91%A5", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A5%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-indeterminate-value%E2%91%A1%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-uniform-control-flow%E2%91%A1%E2%91%A7", "https://www.w3.org/TR/WGSL/#texturesamplecomparelevel", @@ -5851,10 +5856,10 @@ "https://www.w3.org/TR/WGSL/#ref-for-u32%E2%91%A0%E2%91%A0%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-type-depth-texture%E2%91%A0%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-type-sampler_comparison%E2%91%A5", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A5%E2%91%A6", - "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A6%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A5%E2%91%A7", + "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A6%E2%91%A5", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A5%E2%91%A8", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A6%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-uniform-control-flow%E2%91%A1%E2%91%A8", "https://www.w3.org/TR/WGSL/#texturesamplegrad", "https://www.w3.org/TR/WGSL/#ref-for-i32%E2%91%A0%E2%91%A1%E2%93%AA", @@ -5865,10 +5870,10 @@ "https://www.w3.org/TR/WGSL/#ref-for-u32%E2%91%A0%E2%91%A0%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-type-sampled-texture%E2%91%A0%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-type-sampler%E2%91%A4", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A6%E2%93%AA", - "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A6%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A6%E2%91%A0", + "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A6%E2%91%A6", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A6%E2%91%A1", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A6%E2%91%A2", "https://www.w3.org/TR/WGSL/#texturesamplelevel", "https://www.w3.org/TR/WGSL/#ref-for-i32%E2%91%A0%E2%91%A1%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-u32%E2%91%A0%E2%91%A0%E2%91%A4", @@ -5897,10 +5902,10 @@ "https://www.w3.org/TR/WGSL/#ref-for-type-sampled-texture%E2%91%A0%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-type-depth-texture%E2%91%A0%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-sampler%E2%91%A4", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A6%E2%91%A2", - "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A6%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A6%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A6%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A6%E2%91%A4", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A6%E2%91%A5", "https://www.w3.org/TR/WGSL/#textureSampleBaseClampToEdge", "https://www.w3.org/TR/WGSL/#ref-for-type-sampled-texture%E2%91%A0%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-type-external-texture%E2%91%A1", @@ -5937,16 +5942,17 @@ "https://www.w3.org/TR/WGSL/#ref-for-storage-texel-formats%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-type-write-only-storage-texture%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-type-read-write-storage-texture%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-inverse-channel-transfer-function%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-logical-texel-address%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-behavioral-requirements%E2%91%A2%E2%91%A1", "https://www.w3.org/TR/WGSL/#atomic-builtin-functions", "https://www.w3.org/TR/WGSL/#ref-for-memory-locations%E2%91%A0%E2%91%A8", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A6%E2%91%A5", - "https://www.w3.org/TR/WGSL/#ref-for-vertex%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A6%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-vertex%E2%91%A3", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A6%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-address-spaces-storage%E2%91%A1%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-address-spaces-workgroup%E2%91%A1%E2%91%A1", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A6%E2%91%A7", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A6%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-u32%E2%91%A0%E2%91%A2%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-i32%E2%91%A0%E2%91%A3%E2%93%AA", "https://www.w3.org/TR/WGSL/#atomic-load", @@ -5954,7 +5960,7 @@ "https://www.w3.org/TR/WGSL/#atomic-store", "https://www.w3.org/TR/WGSL/#atomic-rmw", "https://www.w3.org/TR/WGSL/#pack-builtin-functions", - "https://www.w3.org/TR/WGSL/#ref-for-channel-transfer-function%E2%91%A0", + "https://www.w3.org/TR/WGSL/#ref-for-channel-transfer-function%E2%91%A1", "https://www.w3.org/TR/WGSL/#pack4x8snorm-builtin", "https://www.w3.org/TR/WGSL/#pack4x8unorm-builtin", "https://www.w3.org/TR/WGSL/#pack4xI8-builtin", @@ -5968,13 +5974,13 @@ "https://www.w3.org/TR/WGSL/#pack2x16snorm-builtin", "https://www.w3.org/TR/WGSL/#pack2x16unorm-builtin", "https://www.w3.org/TR/WGSL/#pack2x16float-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A6%E2%91%A8", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A7%E2%93%AA", "https://www.w3.org/TR/WGSL/#ref-for-const-expressions%E2%91%A6%E2%91%A8", "https://www.w3.org/TR/WGSL/#ref-for-pipeline-creation-error%E2%91%A2%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-override-expressions%E2%91%A3%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-indeterminate-value%E2%91%A1%E2%91%A5", "https://www.w3.org/TR/WGSL/#unpack-builtin-functions", - "https://www.w3.org/TR/WGSL/#ref-for-channel-transfer-function%E2%91%A1", + "https://www.w3.org/TR/WGSL/#ref-for-channel-transfer-function%E2%91%A2", "https://www.w3.org/TR/WGSL/#unpack4x8snorm-builtin", "https://www.w3.org/TR/WGSL/#unpack4x8unorm-builtin", "https://www.w3.org/TR/WGSL/#unpack4xI8-builtin", @@ -5986,9 +5992,9 @@ "https://www.w3.org/TR/WGSL/#ref-for-control-barrier", "https://www.w3.org/TR/WGSL/#ref-for-memory-scope%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-execution-scope", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A7%E2%93%AA", - "https://www.w3.org/TR/WGSL/#ref-for-compute%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A7%E2%91%A0", + "https://www.w3.org/TR/WGSL/#ref-for-compute%E2%91%A2", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A7%E2%91%A1", "https://www.w3.org/TR/WGSL/#ref-for-uniform-control-flow%E2%91%A2%E2%93%AA", "https://www.w3.org/TR/WGSL/#storageBarrier-builtin", "https://www.w3.org/TR/WGSL/#ref-for-control-barrier%E2%91%A0", @@ -6000,12 +6006,12 @@ "https://www.w3.org/TR/WGSL/#ref-for-control-barrier%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-address-spaces-workgroup%E2%91%A1%E2%91%A2", "https://www.w3.org/TR/WGSL/#workgroupUniformLoad-builtin", - "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A4%E2%91%A6", + "https://www.w3.org/TR/WGSL/#ref-for-type-concrete%E2%91%A4%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-plain-type%E2%91%A7", "https://www.w3.org/TR/WGSL/#ref-for-fixed-footprint%E2%91%A4", "https://www.w3.org/TR/WGSL/#ref-for-atomic-type%E2%91%A0%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-uniform-value%E2%91%A0%E2%93%AA", - "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A7%E2%91%A1", + "https://www.w3.org/TR/WGSL/#ref-for-shader-creation-error%E2%91%A1%E2%91%A7%E2%91%A2", "https://www.w3.org/TR/WGSL/#ref-for-uniform-value%E2%91%A0%E2%91%A0", "https://www.w3.org/TR/WGSL/#ref-for-control-barrier%E2%91%A3", "https://www.w3.org/TR/WGSL/#ref-for-address-spaces-workgroup%E2%91%A1%E2%91%A3", diff --git a/tr/ids/css-conditional-5.json b/tr/ids/css-conditional-5.json index 4eecb8700340..c2b44826f93f 100644 --- a/tr/ids/css-conditional-5.json +++ b/tr/ids/css-conditional-5.json @@ -14,7 +14,7 @@ "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-else", "https://www.w3.org/TR/css-conditional-5/#ref-for-supports-queries", "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-supports", - "https://www.w3.org/TR/css-conditional-5/#status", + "https://www.w3.org/TR/css-conditional-5/#sotd", "https://www.w3.org/TR/css-conditional-5/#w3c_process_revision", "https://www.w3.org/TR/css-conditional-5/#toc", "https://www.w3.org/TR/css-conditional-5/#contents", @@ -40,38 +40,16 @@ "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-supports-decl", "https://www.w3.org/TR/css-conditional-5/#typedef-supports-font-tech-fn", "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-font-tech", - "https://www.w3.org/TR/css-conditional-5/#typedef-font-tech", - "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A2", - "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A3", - "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A4", - "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A5", - "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A6", - "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A7", - "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A8", - "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A0%E2%93%AA", - "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A0%E2%91%A0", - "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A0%E2%91%A1", "https://www.w3.org/TR/css-conditional-5/#typedef-supports-font-format-fn", "https://www.w3.org/TR/css-conditional-5/#ref-for-font-format-values", - "https://www.w3.org/TR/css-conditional-5/#font-format", - "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A0%E2%91%A2", - "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A0%E2%91%A3", - "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A0%E2%91%A4", - "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A0%E2%91%A5", - "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A0%E2%91%A6", - "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A0%E2%91%A7", - "https://www.w3.org/TR/css-conditional-5/#issue-4d53d75d", - "https://www.w3.org/TR/css-conditional-5/#ref-for-font-format-values%E2%91%A0", - "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-font-tech%E2%91%A0", "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-supports-font-tech-fn%E2%91%A0", "https://www.w3.org/TR/css-conditional-5/#ref-for-dfn-support-font-tech", - "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-font-face-src", "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-supports-font-format-fn%E2%91%A0", "https://www.w3.org/TR/css-conditional-5/#ref-for-dfn-support-font-format", - "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-font-face-src%E2%91%A0", "https://www.w3.org/TR/css-conditional-5/#support-definition-ext", "https://www.w3.org/TR/css-conditional-5/#dfn-support-font-tech", "https://www.w3.org/TR/css-conditional-5/#dfn-support-font-format", + "https://www.w3.org/TR/css-conditional-5/#ref-for-string-value", "https://www.w3.org/TR/css-conditional-5/#when-rule", "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-when%E2%91%A2", "https://www.w3.org/TR/css-conditional-5/#at-ruledef-when", @@ -79,7 +57,7 @@ "https://www.w3.org/TR/css-conditional-5/#ref-for-conditional-group-rule%E2%91%A0", "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-media", "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-supports%E2%91%A2", - "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-stylesheet", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-rule-list", "https://www.w3.org/TR/css-conditional-5/#ref-for-funcdef-media", "https://www.w3.org/TR/css-conditional-5/#ref-for-funcdef-supports", "https://www.w3.org/TR/css-conditional-5/#issue-e3cd55e5", @@ -87,9 +65,9 @@ "https://www.w3.org/TR/css-conditional-5/#ref-for-funcdef-supports%E2%91%A0", "https://www.w3.org/TR/css-conditional-5/#funcdef-media", "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-mf-plain", - "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A0%E2%91%A8", + "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A2", "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-mf-boolean", - "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A1%E2%93%AA", + "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A3", "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-mf-range", "https://www.w3.org/TR/css-conditional-5/#funcdef-supports", "https://www.w3.org/TR/css-conditional-5/#ref-for-funcdef-media%E2%91%A1", @@ -101,7 +79,7 @@ "https://www.w3.org/TR/css-conditional-5/#ref-for-conditional-group-rule%E2%91%A2", "https://www.w3.org/TR/css-conditional-5/#ref-for-conditional-rule-chain%E2%91%A1", "https://www.w3.org/TR/css-conditional-5/#ref-for-mult-opt", - "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-stylesheet%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-rule-list%E2%91%A0", "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-else%E2%91%A2", "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-when%E2%91%A3", "https://www.w3.org/TR/css-conditional-5/#conditional-rule-chain", @@ -123,16 +101,456 @@ "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-when%E2%91%A4", "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-else%E2%91%A7", "https://www.w3.org/TR/css-conditional-5/#example-a1e1a2b3", + "https://www.w3.org/TR/css-conditional-5/#container-queries", + "https://www.w3.org/TR/css-conditional-5/#ref-for-media-query", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-query", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-style-query", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-size-query", + "https://www.w3.org/TR/css-conditional-5/#ref-for-propdef-container-type", + "https://www.w3.org/TR/css-conditional-5/#ref-for-propdef-container", + "https://www.w3.org/TR/css-conditional-5/#ref-for-shorthand-property", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-concept-shadow-including-descendant", + "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-container", + "https://www.w3.org/TR/css-conditional-5/#ref-for-conditional-group-rule%E2%91%A8", + "https://www.w3.org/TR/css-conditional-5/#example-93e9e452", + "https://www.w3.org/TR/css-conditional-5/#ref-for-concept-shadow-including-inclusive-ancestor", + "https://www.w3.org/TR/css-conditional-5/#ref-for-ultimate-originating-element", + "https://www.w3.org/TR/css-conditional-5/#ref-for-selectordef-before", + "https://www.w3.org/TR/css-conditional-5/#ref-for-selectordef-after", + "https://www.w3.org/TR/css-conditional-5/#ref-for-selectordef-marker", + "https://www.w3.org/TR/css-conditional-5/#ref-for-selectordef-backdrop", + "https://www.w3.org/TR/css-conditional-5/#ref-for-selectordef-first-letter", + "https://www.w3.org/TR/css-conditional-5/#ref-for-selectordef-first-line", + "https://www.w3.org/TR/css-conditional-5/#ref-for-fictional-tag-sequence", + "https://www.w3.org/TR/css-conditional-5/#ref-for-selectordef-slotted", + "https://www.w3.org/TR/css-conditional-5/#ref-for-selectordef-part", + "https://www.w3.org/TR/css-conditional-5/#ref-for-selectordef-placeholder", + "https://www.w3.org/TR/css-conditional-5/#ref-for-selectordef-file-selector-button", + "https://www.w3.org/TR/css-conditional-5/#example-13f6f0fa", + "https://www.w3.org/TR/css-conditional-5/#example-c6405bc1", + "https://www.w3.org/TR/css-conditional-5/#container-type", + "https://www.w3.org/TR/css-conditional-5/#ref-for-propdef-container-type%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#propdef-container-type", + "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A4", + "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A5", + "https://www.w3.org/TR/css-conditional-5/#ref-for-propdef-container-type%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#query-container", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-query%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-size-query%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-style-rule", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-query%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-containment", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-style-query%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-propdef-container-type%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#valdef-container-type-size", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A3", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-size-query%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-inline-axis", + "https://www.w3.org/TR/css-conditional-5/#ref-for-block-axis", + "https://www.w3.org/TR/css-conditional-5/#ref-for-layout-containment", + "https://www.w3.org/TR/css-conditional-5/#ref-for-style-containment", + "https://www.w3.org/TR/css-conditional-5/#ref-for-size-containment", + "https://www.w3.org/TR/css-conditional-5/#ref-for-principal-box", + "https://www.w3.org/TR/css-conditional-5/#valdef-container-type-inline-size", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A4", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-size-query%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-inline-axis%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-layout-containment%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-style-containment%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-inline-size-containment", + "https://www.w3.org/TR/css-conditional-5/#ref-for-principal-box%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#valdef-container-type-normal", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A5", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-size-query%E2%91%A3", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A6", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-style-query%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#example-5708b886", + "https://www.w3.org/TR/css-conditional-5/#ref-for-propdef-font-size", + "https://www.w3.org/TR/css-conditional-5/#ref-for-propdef-line-height", + "https://www.w3.org/TR/css-conditional-5/#ref-for-computed-value", + "https://www.w3.org/TR/css-conditional-5/#ref-for-propdef-font-size%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A7", + "https://www.w3.org/TR/css-conditional-5/#example-2f40a692", + "https://www.w3.org/TR/css-conditional-5/#container-name", + "https://www.w3.org/TR/css-conditional-5/#ref-for-propdef-container-name", + "https://www.w3.org/TR/css-conditional-5/#propdef-container-name", + "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A6", + "https://www.w3.org/TR/css-conditional-5/#ref-for-identifier-value", + "https://www.w3.org/TR/css-conditional-5/#ref-for-mult-one-plus", + "https://www.w3.org/TR/css-conditional-5/#ref-for-valdef-container-name-none", + "https://www.w3.org/TR/css-conditional-5/#ref-for-css-css-identifier", + "https://www.w3.org/TR/css-conditional-5/#ref-for-propdef-container-name%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#query-container-name", + "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-container%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A8", + "https://www.w3.org/TR/css-conditional-5/#valdef-container-name-none", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A0%E2%93%AA", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container-name", + "https://www.w3.org/TR/css-conditional-5/#valdef-container-name-custom-ident", + "https://www.w3.org/TR/css-conditional-5/#ref-for-identifier-value%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container-name%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-css-css-identifier%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-valdef-container-name-none%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-valdef-media-not", + "https://www.w3.org/TR/css-conditional-5/#ref-for-identifier-value%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#example-44473254", + "https://www.w3.org/TR/css-conditional-5/#container-shorthand", + "https://www.w3.org/TR/css-conditional-5/#ref-for-propdef-container%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#propdef-container", + "https://www.w3.org/TR/css-conditional-5/#ref-for-propdef-container-name%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-propdef-container-type%E2%91%A3", + "https://www.w3.org/TR/css-conditional-5/#ref-for-mult-opt%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-propdef-container%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-shorthand-property%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-propdef-container-type%E2%91%A4", + "https://www.w3.org/TR/css-conditional-5/#ref-for-propdef-container-name%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-propdef-container-type%E2%91%A5", + "https://www.w3.org/TR/css-conditional-5/#ref-for-initial-value", + "https://www.w3.org/TR/css-conditional-5/#example-c4e7fa3f", + "https://www.w3.org/TR/css-conditional-5/#ref-for-propdef-container-type%E2%91%A6", + "https://www.w3.org/TR/css-conditional-5/#ref-for-propdef-container-name%E2%91%A3", + "https://www.w3.org/TR/css-conditional-5/#container-rule", + "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-container%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#at-ruledef-container", + "https://www.w3.org/TR/css-conditional-5/#ref-for-conditional-group-rule%E2%91%A0%E2%93%AA", + "https://www.w3.org/TR/css-conditional-5/#container-query", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-size-query%E2%91%A4", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-style-query%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-block-contents", + "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-container%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-query%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A0%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-container%E2%91%A3", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-container-condition", + "https://www.w3.org/TR/css-conditional-5/#ref-for-mult-comma", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-block-contents%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#typedef-container-condition", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-container-condition%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-container-name", + "https://www.w3.org/TR/css-conditional-5/#ref-for-mult-opt%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-container-query", + "https://www.w3.org/TR/css-conditional-5/#typedef-container-name", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-container-name%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-identifier-value%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#typedef-container-query", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-container-query%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-query-in-parens", + "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A7", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-query-in-parens%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-query-in-parens%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-mult-zero-plus", + "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A8", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-query-in-parens%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-mult-zero-plus%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#typedef-query-in-parens", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-query-in-parens%E2%91%A3", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-container-query%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A0%E2%93%AA", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-size-feature", + "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A0%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-style-query", + "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A0%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-general-enclosed", + "https://www.w3.org/TR/css-conditional-5/#typedef-style-query", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-style-query%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-style-in-parens", + "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A0%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-style-in-parens%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-style-in-parens%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-mult-zero-plus%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A0%E2%91%A3", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-style-in-parens%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-mult-zero-plus%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A0%E2%91%A4", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-style-feature", + "https://www.w3.org/TR/css-conditional-5/#typedef-style-in-parens", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-style-in-parens%E2%91%A3", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-style-query%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A0%E2%91%A5", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-style-feature%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A0%E2%91%A6", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-general-enclosed%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-valdef-container-name-none%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-valdef-media-not%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-identifier-value%E2%91%A3", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A0%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A0%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A0%E2%91%A3", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-feature", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-container-query%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-container-query%E2%91%A3", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-feature%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A0%E2%91%A4", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-container-condition%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-container-name%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A0%E2%91%A5", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container-name%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A0%E2%91%A6", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-feature%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-container-query%E2%91%A4", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A0%E2%91%A7", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A0%E2%91%A8", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-query%E2%91%A3", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-general-enclosed%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-query%E2%91%A4", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-container-condition%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A1%E2%93%AA", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-query%E2%91%A5", + "https://www.w3.org/TR/css-conditional-5/#ref-for-valdef-custom-media-true", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-container-condition%E2%91%A3", + "https://www.w3.org/TR/css-conditional-5/#ref-for-valdef-custom-media-true%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-valdef-custom-media-false", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-container-condition%E2%91%A4", + "https://www.w3.org/TR/css-conditional-5/#ref-for-valdef-custom-media-false%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#example-cba8e10c", + "https://www.w3.org/TR/css-conditional-5/#ref-for-media-query%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-container-inline-size", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-style-query%E2%91%A3", + "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-container-inline-size%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-style-query%E2%91%A4", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-query%E2%91%A6", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-query%E2%91%A7", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-query%E2%91%A8", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-container-condition%E2%91%A5", + "https://www.w3.org/TR/css-conditional-5/#example-b320e2d0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-query%E2%91%A0%E2%93%AA", + "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-container-inline-size%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-style-query%E2%91%A5", + "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-container-inline-size%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-style-query%E2%91%A6", + "https://www.w3.org/TR/css-conditional-5/#ref-for-at-rule", + "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-keyframes", + "https://www.w3.org/TR/css-conditional-5/#ref-for-at-font-face-rule", + "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-layer", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-query%E2%91%A0%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-query%E2%91%A0%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#animated-containers", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-query%E2%91%A0%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-style-change-event", + "https://www.w3.org/TR/css-conditional-5/#ref-for-effect-value", + "https://www.w3.org/TR/css-conditional-5/#example-cfbdbffb", + "https://www.w3.org/TR/css-conditional-5/#ref-for-style-change-event%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-computed-value%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-query-length", + "https://www.w3.org/TR/css-conditional-5/#ref-for-style-change-event%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#container-features", + "https://www.w3.org/TR/css-conditional-5/#container-feature", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A1%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#size-container", + "https://www.w3.org/TR/css-conditional-5/#container-size-query", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A1%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-principal-box%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#size-features", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-size-feature%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A1%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#typedef-size-feature", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-size-feature%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-media-feature", + "https://www.w3.org/TR/css-conditional-5/#ref-for-size-features", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-size-query%E2%91%A5", + "https://www.w3.org/TR/css-conditional-5/#ref-for-css-feature-queries", + "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-supports%E2%91%A3", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A1%E2%91%A3", + "https://www.w3.org/TR/css-conditional-5/#ref-for-principal-box%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-layout-containment-box", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A1%E2%91%A4", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-size-query%E2%91%A6", + "https://www.w3.org/TR/css-conditional-5/#ref-for-size-features%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-relative-length", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-query-length%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-custom-property", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-query%E2%91%A0%E2%91%A3", + "https://www.w3.org/TR/css-conditional-5/#ref-for-computed-value%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A1%E2%91%A5", + "https://www.w3.org/TR/css-conditional-5/#ref-for-media-query%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-custom-property%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-size-features%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-size-features%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#example-031e4923", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A1%E2%91%A6", + "https://www.w3.org/TR/css-conditional-5/#ref-for-em", + "https://www.w3.org/TR/css-conditional-5/#ref-for-computed-value%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-propdef-font-size%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A1%E2%91%A7", + "https://www.w3.org/TR/css-conditional-5/#example-5df63e7c", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A1%E2%91%A8", + "https://www.w3.org/TR/css-conditional-5/#ref-for-funcdef-var", + "https://www.w3.org/TR/css-conditional-5/#ref-for-computed-value%E2%91%A3", + "https://www.w3.org/TR/css-conditional-5/#ref-for-custom-property%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-computed-value%E2%91%A4", + "https://www.w3.org/TR/css-conditional-5/#ref-for-custom-property%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A2%E2%93%AA", + "https://www.w3.org/TR/css-conditional-5/#width", + "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-container-width", + "https://www.w3.org/TR/css-conditional-5/#descdef-container-width", + "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-container%E2%91%A4", + "https://www.w3.org/TR/css-conditional-5/#ref-for-length-value", + "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-container-width%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-feature%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-width", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A2%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-content-box", + "https://www.w3.org/TR/css-conditional-5/#height", + "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-container-height", + "https://www.w3.org/TR/css-conditional-5/#descdef-container-height", + "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-container%E2%91%A5", + "https://www.w3.org/TR/css-conditional-5/#ref-for-length-value%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-container-height%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-feature%E2%91%A3", + "https://www.w3.org/TR/css-conditional-5/#ref-for-height", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A2%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-content-box%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#inline-size", + "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-container-inline-size%E2%91%A3", + "https://www.w3.org/TR/css-conditional-5/#descdef-container-inline-size", + "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-container%E2%91%A6", + "https://www.w3.org/TR/css-conditional-5/#ref-for-length-value%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-container-inline-size%E2%91%A4", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-feature%E2%91%A4", + "https://www.w3.org/TR/css-conditional-5/#ref-for-size", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A2%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-content-box%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A2%E2%91%A3", + "https://www.w3.org/TR/css-conditional-5/#ref-for-inline-axis%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#block-size", + "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-container-block-size", + "https://www.w3.org/TR/css-conditional-5/#descdef-container-block-size", + "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-container%E2%91%A7", + "https://www.w3.org/TR/css-conditional-5/#ref-for-length-value%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-container-block-size%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-feature%E2%91%A5", + "https://www.w3.org/TR/css-conditional-5/#ref-for-size%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A2%E2%91%A4", + "https://www.w3.org/TR/css-conditional-5/#ref-for-content-box%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A2%E2%91%A5", + "https://www.w3.org/TR/css-conditional-5/#ref-for-block-axis%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#aspect-ratio", + "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-container-aspect-ratio", + "https://www.w3.org/TR/css-conditional-5/#descdef-container-aspect-ratio", + "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-container%E2%91%A8", + "https://www.w3.org/TR/css-conditional-5/#ref-for-ratio-value", + "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-container-aspect-ratio%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-feature%E2%91%A6", + "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-container-width%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-feature%E2%91%A7", + "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-container-height%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-feature%E2%91%A8", + "https://www.w3.org/TR/css-conditional-5/#orientation", + "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-container-orientation", + "https://www.w3.org/TR/css-conditional-5/#descdef-container-orientation", + "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-container%E2%91%A0%E2%93%AA", + "https://www.w3.org/TR/css-conditional-5/#ref-for-comb-one%E2%91%A0%E2%91%A7", + "https://www.w3.org/TR/css-conditional-5/#valdef-container-orientation-portrait", + "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-container-orientation%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-feature%E2%91%A0%E2%93%AA", + "https://www.w3.org/TR/css-conditional-5/#ref-for-valdef-container-orientation-portrait", + "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-container-height%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-feature%E2%91%A0%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-container-width%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-feature%E2%91%A0%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#valdef-container-orientation-landscape", + "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-container-orientation%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-valdef-container-orientation-landscape", + "https://www.w3.org/TR/css-conditional-5/#style-container", + "https://www.w3.org/TR/css-conditional-5/#container-style-query", + "https://www.w3.org/TR/css-conditional-5/#ref-for-computed-value%E2%91%A5", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A2%E2%91%A6", + "https://www.w3.org/TR/css-conditional-5/#style-features", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-style-feature%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A2%E2%91%A7", + "https://www.w3.org/TR/css-conditional-5/#typedef-style-feature", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-style-feature%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-declaration", + "https://www.w3.org/TR/css-conditional-5/#ref-for-supported-css-property", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-custom-property-name", + "https://www.w3.org/TR/css-conditional-5/#ref-for-computed-value%E2%91%A6", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A2%E2%91%A8", + "https://www.w3.org/TR/css-conditional-5/#ref-for-computed-value%E2%91%A7", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A3%E2%93%AA", + "https://www.w3.org/TR/css-conditional-5/#ref-for-style-features", + "https://www.w3.org/TR/css-conditional-5/#ref-for-computed-value%E2%91%A8", + "https://www.w3.org/TR/css-conditional-5/#ref-for-initial-value%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-css-property", + "https://www.w3.org/TR/css-conditional-5/#ref-for-style-features%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-style-query%E2%91%A7", + "https://www.w3.org/TR/css-conditional-5/#ref-for-css-feature-queries%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-supports%E2%91%A4", + "https://www.w3.org/TR/css-conditional-5/#ref-for-style-features%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-shorthand-property%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-computed-value%E2%91%A0%E2%93%AA", + "https://www.w3.org/TR/css-conditional-5/#ref-for-longhand", + "https://www.w3.org/TR/css-conditional-5/#ref-for-cascade-dependent-keyword", + "https://www.w3.org/TR/css-conditional-5/#ref-for-valdef-all-revert", + "https://www.w3.org/TR/css-conditional-5/#ref-for-valdef-all-revert-layer", + "https://www.w3.org/TR/css-conditional-5/#ref-for-style-features%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-style-query%E2%91%A8", + "https://www.w3.org/TR/css-conditional-5/#ref-for-css-wide-keywords", + "https://www.w3.org/TR/css-conditional-5/#ref-for-computed-value%E2%91%A0%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A3%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#container-lengths", + "https://www.w3.org/TR/css-conditional-5/#container-query-length", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A3%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-query-length%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A3%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-query-length%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A3%E2%91%A3", + "https://www.w3.org/TR/css-conditional-5/#ref-for-width%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A3%E2%91%A4", + "https://www.w3.org/TR/css-conditional-5/#ref-for-height%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A3%E2%91%A5", + "https://www.w3.org/TR/css-conditional-5/#ref-for-inline-size", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A3%E2%91%A6", + "https://www.w3.org/TR/css-conditional-5/#ref-for-block-size", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-query-length%E2%91%A3", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-size-query%E2%91%A7", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A3%E2%91%A7", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-size-query%E2%91%A8", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A3%E2%91%A8", + "https://www.w3.org/TR/css-conditional-5/#ref-for-small-viewport-size", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A4%E2%93%AA", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A4%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-computed-value%E2%91%A0%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#example-a4252068", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-query-length%E2%91%A4", + "https://www.w3.org/TR/css-conditional-5/#ref-for-query-container%E2%91%A4%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-query%E2%91%A0%E2%91%A4", + "https://www.w3.org/TR/css-conditional-5/#ref-for-container-query%E2%91%A0%E2%91%A5", + "https://www.w3.org/TR/css-conditional-5/#apis", + "https://www.w3.org/TR/css-conditional-5/#the-csscontainerrule-interface", + "https://www.w3.org/TR/css-conditional-5/#ref-for-csscontainerrule", + "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-container%E2%91%A0%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#ref-for-Exposed", + "https://www.w3.org/TR/css-conditional-5/#csscontainerrule", + "https://www.w3.org/TR/css-conditional-5/#ref-for-cssconditionrule", + "https://www.w3.org/TR/css-conditional-5/#ref-for-cssomstring", + "https://www.w3.org/TR/css-conditional-5/#dom-csscontainerrule-containername", + "https://www.w3.org/TR/css-conditional-5/#ref-for-cssomstring%E2%91%A0", + "https://www.w3.org/TR/css-conditional-5/#dom-csscontainerrule-containerquery", + "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-container%E2%91%A0%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-container-name%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-container%E2%91%A0%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-container-name%E2%91%A3", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-container-name%E2%91%A4", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-container-query%E2%91%A5", + "https://www.w3.org/TR/css-conditional-5/#ref-for-typedef-general-enclosed%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#issue-2e3d6538", + "https://www.w3.org/TR/css-conditional-5/#ref-for-dom-window-matchmedia", + "https://www.w3.org/TR/css-conditional-5/#ref-for-mediaquerylist", "https://www.w3.org/TR/css-conditional-5/#security", "https://www.w3.org/TR/css-conditional-5/#privacy", - "https://www.w3.org/TR/css-conditional-5/#acknowledgments", - "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-when%E2%91%A5", - "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-else%E2%91%A8", "https://www.w3.org/TR/css-conditional-5/#changes", + "https://www.w3.org/TR/css-conditional-5/#changes-20211221%2F", "https://www.w3.org/TR/css-conditional-5/#changes-from-L4", + "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-when%E2%91%A5", + "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-else%E2%91%A8", + "https://www.w3.org/TR/css-conditional-5/#ref-for-supports-queries%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#acknowledgments", "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-when%E2%91%A6", "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-else%E2%91%A0%E2%93%AA", - "https://www.w3.org/TR/css-conditional-5/#ref-for-supports-queries%E2%91%A1", "https://www.w3.org/TR/css-conditional-5/#w3c-conformance", "https://www.w3.org/TR/css-conditional-5/#w3c-conventions", "https://www.w3.org/TR/css-conditional-5/#w3c-example", @@ -143,31 +561,145 @@ "https://www.w3.org/TR/css-conditional-5/#index", "https://www.w3.org/TR/css-conditional-5/#index-defined-here", "https://www.w3.org/TR/css-conditional-5/#index-defined-elsewhere", - "https://www.w3.org/TR/css-conditional-5/#term-for-typedef-supports-decl", - "https://www.w3.org/TR/css-conditional-5/#term-for-at-ruledef-media", - "https://www.w3.org/TR/css-conditional-5/#term-for-at-ruledef-supports", - "https://www.w3.org/TR/css-conditional-5/#term-for-conditional-group-rule", - "https://www.w3.org/TR/css-conditional-5/#term-for-supports-queries", - "https://www.w3.org/TR/css-conditional-5/#term-for-typedef-supports-selector-fn", - "https://www.w3.org/TR/css-conditional-5/#term-for-descdef-font-face-src", - "https://www.w3.org/TR/css-conditional-5/#term-for-font-format-values", - "https://www.w3.org/TR/css-conditional-5/#term-for-typedef-stylesheet", - "https://www.w3.org/TR/css-conditional-5/#term-for-mult-opt", - "https://www.w3.org/TR/css-conditional-5/#term-for-comb-one", - "https://www.w3.org/TR/css-conditional-5/#term-for-typedef-mf-boolean", - "https://www.w3.org/TR/css-conditional-5/#term-for-typedef-mf-plain", - "https://www.w3.org/TR/css-conditional-5/#term-for-typedef-mf-range", + "https://www.w3.org/TR/css-conditional-5/#7177b17d", + "https://www.w3.org/TR/css-conditional-5/#f72f5cb4", + "https://www.w3.org/TR/css-conditional-5/#08b3934a", + "https://www.w3.org/TR/css-conditional-5/#66620709", + "https://www.w3.org/TR/css-conditional-5/#8c8e51b4", + "https://www.w3.org/TR/css-conditional-5/#6b448e93", + "https://www.w3.org/TR/css-conditional-5/#8f27be0f", + "https://www.w3.org/TR/css-conditional-5/#81a52293", + "https://www.w3.org/TR/css-conditional-5/#b45bd8fa", + "https://www.w3.org/TR/css-conditional-5/#529d0525", + "https://www.w3.org/TR/css-conditional-5/#e14541aa", + "https://www.w3.org/TR/css-conditional-5/#980ac56a", + "https://www.w3.org/TR/css-conditional-5/#77b8ca51", + "https://www.w3.org/TR/css-conditional-5/#4397147f", + "https://www.w3.org/TR/css-conditional-5/#a5d6c9d2", + "https://www.w3.org/TR/css-conditional-5/#ac8ed0be", + "https://www.w3.org/TR/css-conditional-5/#f1a41224", + "https://www.w3.org/TR/css-conditional-5/#6e0a7174", + "https://www.w3.org/TR/css-conditional-5/#be011220", + "https://www.w3.org/TR/css-conditional-5/#3d20c9fd", + "https://www.w3.org/TR/css-conditional-5/#caa536d4", + "https://www.w3.org/TR/css-conditional-5/#4f31b139", + "https://www.w3.org/TR/css-conditional-5/#7507b495", + "https://www.w3.org/TR/css-conditional-5/#cb02fa9d", + "https://www.w3.org/TR/css-conditional-5/#3e4b15e8", + "https://www.w3.org/TR/css-conditional-5/#3dc278d0", + "https://www.w3.org/TR/css-conditional-5/#18b2519e", + "https://www.w3.org/TR/css-conditional-5/#93f98063", + "https://www.w3.org/TR/css-conditional-5/#297dfe3a", + "https://www.w3.org/TR/css-conditional-5/#8c4063e2", + "https://www.w3.org/TR/css-conditional-5/#b24ce65e", + "https://www.w3.org/TR/css-conditional-5/#b9a45e7f", + "https://www.w3.org/TR/css-conditional-5/#70503bd6", + "https://www.w3.org/TR/css-conditional-5/#7c6f51b7", + "https://www.w3.org/TR/css-conditional-5/#2d843062", + "https://www.w3.org/TR/css-conditional-5/#63b59bd9", + "https://www.w3.org/TR/css-conditional-5/#4bda66a9", + "https://www.w3.org/TR/css-conditional-5/#b6b63ba4", + "https://www.w3.org/TR/css-conditional-5/#4b84fe49", + "https://www.w3.org/TR/css-conditional-5/#cb456c77", + "https://www.w3.org/TR/css-conditional-5/#c90d9be6", + "https://www.w3.org/TR/css-conditional-5/#0626d1bc", + "https://www.w3.org/TR/css-conditional-5/#fde87e72", + "https://www.w3.org/TR/css-conditional-5/#d8595fdb", + "https://www.w3.org/TR/css-conditional-5/#88d82030", + "https://www.w3.org/TR/css-conditional-5/#b845e85c", + "https://www.w3.org/TR/css-conditional-5/#a8cb81d7", + "https://www.w3.org/TR/css-conditional-5/#b29fecf5", + "https://www.w3.org/TR/css-conditional-5/#e2112c66", + "https://www.w3.org/TR/css-conditional-5/#87d90aed", + "https://www.w3.org/TR/css-conditional-5/#2f6588ea", + "https://www.w3.org/TR/css-conditional-5/#c297b070", + "https://www.w3.org/TR/css-conditional-5/#ef9f8297", + "https://www.w3.org/TR/css-conditional-5/#af4a190d", + "https://www.w3.org/TR/css-conditional-5/#a0144f62", + "https://www.w3.org/TR/css-conditional-5/#d32570a7", + "https://www.w3.org/TR/css-conditional-5/#98ddb9b0", + "https://www.w3.org/TR/css-conditional-5/#ee68e69a", + "https://www.w3.org/TR/css-conditional-5/#1d798932", + "https://www.w3.org/TR/css-conditional-5/#d4441b24", + "https://www.w3.org/TR/css-conditional-5/#8a110a7b", + "https://www.w3.org/TR/css-conditional-5/#eefce2af", + "https://www.w3.org/TR/css-conditional-5/#ce7ea0de", + "https://www.w3.org/TR/css-conditional-5/#5d6143d2", + "https://www.w3.org/TR/css-conditional-5/#a959f189", + "https://www.w3.org/TR/css-conditional-5/#4eb9d37e", + "https://www.w3.org/TR/css-conditional-5/#310b3140", + "https://www.w3.org/TR/css-conditional-5/#5550667d", + "https://www.w3.org/TR/css-conditional-5/#3beec8c9", + "https://www.w3.org/TR/css-conditional-5/#b8dade0f", + "https://www.w3.org/TR/css-conditional-5/#ecef1eb5", + "https://www.w3.org/TR/css-conditional-5/#a6eb24bb", + "https://www.w3.org/TR/css-conditional-5/#18bb1084", + "https://www.w3.org/TR/css-conditional-5/#ac54fbff", + "https://www.w3.org/TR/css-conditional-5/#9d357000", + "https://www.w3.org/TR/css-conditional-5/#79414121", + "https://www.w3.org/TR/css-conditional-5/#3a71fc5d", + "https://www.w3.org/TR/css-conditional-5/#fa5fd853", + "https://www.w3.org/TR/css-conditional-5/#fd32e3c9", + "https://www.w3.org/TR/css-conditional-5/#3d6a3d36", + "https://www.w3.org/TR/css-conditional-5/#2ae11dd2", + "https://www.w3.org/TR/css-conditional-5/#e518251c", + "https://www.w3.org/TR/css-conditional-5/#f92b7f82", + "https://www.w3.org/TR/css-conditional-5/#a8e43bb7", + "https://www.w3.org/TR/css-conditional-5/#0a000463", + "https://www.w3.org/TR/css-conditional-5/#3ea2fcbb", + "https://www.w3.org/TR/css-conditional-5/#8a490d77", + "https://www.w3.org/TR/css-conditional-5/#0e4f830d", + "https://www.w3.org/TR/css-conditional-5/#fc8ac26a", + "https://www.w3.org/TR/css-conditional-5/#61189f1f", + "https://www.w3.org/TR/css-conditional-5/#889e932f", "https://www.w3.org/TR/css-conditional-5/#references", "https://www.w3.org/TR/css-conditional-5/#normative", + "https://www.w3.org/TR/css-conditional-5/#biblio-css-animations-1", + "https://www.w3.org/TR/css-conditional-5/#biblio-css-box-4", + "https://www.w3.org/TR/css-conditional-5/#biblio-css-cascade-4", + "https://www.w3.org/TR/css-conditional-5/#biblio-css-cascade-5", "https://www.w3.org/TR/css-conditional-5/#biblio-css-conditional-3", "https://www.w3.org/TR/css-conditional-5/#biblio-css-conditional-4", + "https://www.w3.org/TR/css-conditional-5/#biblio-css-conditional-5", + "https://www.w3.org/TR/css-conditional-5/#biblio-css-contain-2", + "https://www.w3.org/TR/css-conditional-5/#biblio-css-contain-3", + "https://www.w3.org/TR/css-conditional-5/#biblio-css-display-3", + "https://www.w3.org/TR/css-conditional-5/#biblio-css-fonts-4", "https://www.w3.org/TR/css-conditional-5/#biblio-css-fonts-5", + "https://www.w3.org/TR/css-conditional-5/#biblio-css-sizing-3", "https://www.w3.org/TR/css-conditional-5/#biblio-css-syntax-3", + "https://www.w3.org/TR/css-conditional-5/#biblio-css-transitions-1", "https://www.w3.org/TR/css-conditional-5/#biblio-css-values-4", + "https://www.w3.org/TR/css-conditional-5/#biblio-css-variables-1", + "https://www.w3.org/TR/css-conditional-5/#biblio-css-writing-modes-4", + "https://www.w3.org/TR/css-conditional-5/#biblio-cssom-1", + "https://www.w3.org/TR/css-conditional-5/#biblio-cssom-view-1", + "https://www.w3.org/TR/css-conditional-5/#biblio-dom", + "https://www.w3.org/TR/css-conditional-5/#biblio-mediaqueries-4", "https://www.w3.org/TR/css-conditional-5/#biblio-mediaqueries-5", "https://www.w3.org/TR/css-conditional-5/#biblio-rfc2119", + "https://www.w3.org/TR/css-conditional-5/#biblio-selectors-4", + "https://www.w3.org/TR/css-conditional-5/#biblio-web-animations-1", + "https://www.w3.org/TR/css-conditional-5/#biblio-webidl", "https://www.w3.org/TR/css-conditional-5/#informative", - "https://www.w3.org/TR/css-conditional-5/#biblio-css-fonts-4", + "https://www.w3.org/TR/css-conditional-5/#biblio-css-position-4", + "https://www.w3.org/TR/css-conditional-5/#biblio-css-pseudo-4", + "https://www.w3.org/TR/css-conditional-5/#biblio-css-scoping-1", + "https://www.w3.org/TR/css-conditional-5/#biblio-css-shadow-parts-1", + "https://www.w3.org/TR/css-conditional-5/#biblio-css22", + "https://www.w3.org/TR/css-conditional-5/#property-index", + "https://www.w3.org/TR/css-conditional-5/#ref-for-propdef-container%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-propdef-container-name%E2%91%A4", + "https://www.w3.org/TR/css-conditional-5/#ref-for-propdef-container-type%E2%91%A7", + "https://www.w3.org/TR/css-conditional-5/#container-descriptor-table", + "https://www.w3.org/TR/css-conditional-5/#ref-for-at-ruledef-container%E2%91%A0%E2%91%A3", + "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-container-aspect-ratio%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-container-block-size%E2%91%A1", + "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-container-height%E2%91%A3", + "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-container-inline-size%E2%91%A5", + "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-container-orientation%E2%91%A2", + "https://www.w3.org/TR/css-conditional-5/#ref-for-descdef-container-width%E2%91%A3", + "https://www.w3.org/TR/css-conditional-5/#idl-index", "https://www.w3.org/TR/css-conditional-5/#issues-index" ] } \ No newline at end of file diff --git a/tr/ids/mse-byte-stream-format-registry.json b/tr/ids/mse-byte-stream-format-registry.json index 1db9e020b7cf..7fca0c5b1f9d 100644 --- a/tr/ids/mse-byte-stream-format-registry.json +++ b/tr/ids/mse-byte-stream-format-registry.json @@ -23,19 +23,15 @@ "https://www.w3.org/TR/mse-byte-stream-format-registry/#x3-registration-entry-requirements", "https://www.w3.org/TR/mse-byte-stream-format-registry/#registry", "https://www.w3.org/TR/mse-byte-stream-format-registry/#x4-registry", - "https://www.w3.org/TR/mse-byte-stream-format-registry/#conformance", - "https://www.w3.org/TR/mse-byte-stream-format-registry/#x5-conformance", "https://www.w3.org/TR/mse-byte-stream-format-registry/#references", "https://www.w3.org/TR/mse-byte-stream-format-registry/#a-references", - "https://www.w3.org/TR/mse-byte-stream-format-registry/#normative-references", - "https://www.w3.org/TR/mse-byte-stream-format-registry/#a-1-normative-references", + "https://www.w3.org/TR/mse-byte-stream-format-registry/#informative-references", + "https://www.w3.org/TR/mse-byte-stream-format-registry/#a-1-informative-references", "https://www.w3.org/TR/mse-byte-stream-format-registry/#bib-media-source", "https://www.w3.org/TR/mse-byte-stream-format-registry/#bib-mse-byte-stream-format-isobmff", "https://www.w3.org/TR/mse-byte-stream-format-registry/#bib-mse-byte-stream-format-mp2t", "https://www.w3.org/TR/mse-byte-stream-format-registry/#bib-mse-byte-stream-format-mpeg-audio", "https://www.w3.org/TR/mse-byte-stream-format-registry/#bib-mse-byte-stream-format-webm", - "https://www.w3.org/TR/mse-byte-stream-format-registry/#bib-rfc2119", - "https://www.w3.org/TR/mse-byte-stream-format-registry/#bib-rfc8174", "https://www.w3.org/TR/mse-byte-stream-format-registry/#back-to-top" ] } \ No newline at end of file diff --git a/tr/ids/webdriver2.json b/tr/ids/webdriver2.json index 8cd2b70f40a0..5009de4042cd 100644 --- a/tr/ids/webdriver2.json +++ b/tr/ids/webdriver2.json @@ -4227,6 +4227,8 @@ "https://www.w3.org/TR/webdriver2/#dfn-valid-prompt-types", "https://www.w3.org/TR/webdriver2/#issue-container-generatedID-57", "https://www.w3.org/TR/webdriver2/#h-note-57", + "https://www.w3.org/TR/webdriver2/#ref-for-index-term-map-5", + "https://www.w3.org/TR/webdriver2/#ref-for-index-term-contains-for-map-5", "https://www.w3.org/TR/webdriver2/#dfn-deserialize-as-an-unhandled-prompt-behavior", "https://www.w3.org/TR/webdriver2/#ref-for-dfn-converting-a-json-derived-javascript-value-to-an-infra-value-2", "https://www.w3.org/TR/webdriver2/#ref-for-dfn-error-250", @@ -4235,14 +4237,14 @@ "https://www.w3.org/TR/webdriver2/#issue-container-generatedID-58", "https://www.w3.org/TR/webdriver2/#h-note-58", "https://www.w3.org/TR/webdriver2/#ref-for-dfn-string-14", - "https://www.w3.org/TR/webdriver2/#ref-for-index-term-map-5", "https://www.w3.org/TR/webdriver2/#ref-for-index-term-map-6", + "https://www.w3.org/TR/webdriver2/#ref-for-index-term-map-7", "https://www.w3.org/TR/webdriver2/#ref-for-dfn-error-251", "https://www.w3.org/TR/webdriver2/#ref-for-dfn-error-code-225", "https://www.w3.org/TR/webdriver2/#ref-for-dfn-invalid-argument-100", - "https://www.w3.org/TR/webdriver2/#ref-for-index-term-map-7", + "https://www.w3.org/TR/webdriver2/#ref-for-index-term-map-8", "https://www.w3.org/TR/webdriver2/#ref-for-dfn-valid-prompt-types-1", - "https://www.w3.org/TR/webdriver2/#ref-for-index-term-contains-for-map-5", + "https://www.w3.org/TR/webdriver2/#ref-for-index-term-contains-for-map-6", "https://www.w3.org/TR/webdriver2/#ref-for-dfn-error-252", "https://www.w3.org/TR/webdriver2/#ref-for-dfn-error-code-226", "https://www.w3.org/TR/webdriver2/#ref-for-dfn-invalid-argument-101", @@ -4259,7 +4261,7 @@ "https://www.w3.org/TR/webdriver2/#dfn-check-user-prompt-handler-matches", "https://www.w3.org/TR/webdriver2/#ref-for-dfn-user-prompt-handler-5", "https://www.w3.org/TR/webdriver2/#ref-for-dfn-user-prompt-handler-6", - "https://www.w3.org/TR/webdriver2/#ref-for-index-term-contains-for-map-6", + "https://www.w3.org/TR/webdriver2/#ref-for-index-term-contains-for-map-7", "https://www.w3.org/TR/webdriver2/#ref-for-dfn-handler-3", "https://www.w3.org/TR/webdriver2/#ref-for-dfn-user-prompt-handler-7", "https://www.w3.org/TR/webdriver2/#ref-for-dfn-handler-4", @@ -4281,7 +4283,7 @@ "https://www.w3.org/TR/webdriver2/#ref-for-index-term-contain-for-list-4", "https://www.w3.org/TR/webdriver2/#ref-for-dfn-serialize-a-prompt-handler-configuration-1", "https://www.w3.org/TR/webdriver2/#ref-for-dfn-user-prompt-handler-14", - "https://www.w3.org/TR/webdriver2/#ref-for-index-term-map-8", + "https://www.w3.org/TR/webdriver2/#ref-for-index-term-map-9", "https://www.w3.org/TR/webdriver2/#ref-for-dfn-user-prompt-handler-15", "https://www.w3.org/TR/webdriver2/#ref-for-dfn-serialize-a-prompt-handler-configuration-2", "https://www.w3.org/TR/webdriver2/#ref-for-dfn-convert-an-infra-value-to-a-json-compatible-javascript-value-2", diff --git a/tr/index.json b/tr/index.json index 5f44544b3785..0ce1e6ed3c20 100644 --- a/tr/index.json +++ b/tr/index.json @@ -1,7 +1,7 @@ { "type": "crawl", "title": "Reffy crawl", - "date": "2024-07-23T01:33:27.122Z", + "date": "2024-07-24T01:47:07.886Z", "options": { "fallback": "tr/index.json", "output": "report", @@ -649,7 +649,7 @@ "crawled": 316, "errors": 0 }, - "crawler": "reffy-16.1.1", + "crawler": "reffy-16.1.2", "results": [ { "url": "https://aomediacodec.github.io/av1-spec/av1-spec.pdf", @@ -695,7 +695,7 @@ "https://aomediacodec.github.io/av1-spec/" ], "crawled": "https://aomediacodec.github.io/av1-spec/av1-spec.pdf", - "date": "23 July 2024", + "date": "24 July 2024", "links": "links/av1-spec.json" }, { @@ -3533,13 +3533,15 @@ ], "crawled": "https://www.w3.org/TR/css-conditional-5/", "crawlCacheInfo": { - "lastModified": "Fri, 17 Dec 2021 15:59:58 GMT" + "lastModified": "Wed, 17 Jul 2024 16:51:31 GMT" }, "generator": "bikeshed", - "date": "21 December 2021", - "revision": "c744c356b26edf0bc4fd01b91be62d332874adb2", + "date": "23 July 2024", + "revision": "53a6c69c281e7c2326398cc5d309a9f62bc0e4fb", + "algorithms": "algorithms/css-conditional-5.json", "links": "links/css-conditional-5.json", "refs": "refs/css-conditional-5.json", + "idl": "idl/css-conditional-5.idl", "css": "css/css-conditional-5.json", "dfns": "dfns/css-conditional-5.json", "headings": "headings/css-conditional-5.json", @@ -8896,11 +8898,11 @@ ], "crawled": "https://www.w3.org/TR/device-posture/", "crawlCacheInfo": { - "lastModified": "Mon, 22 Jul 2024 17:08:29 GMT" + "lastModified": "Tue, 23 Jul 2024 16:52:16 GMT" }, "generator": "respec", - "date": "22 July 2024", - "revision": "f9186fc05d27eb043fdca797b877e7a8874b4931", + "date": "23 July 2024", + "revision": "529a4bfe82b5c6ba8aa214167b2269da91d672e5", "algorithms": "algorithms/device-posture.json", "links": "links/device-posture.json", "refs": "refs/device-posture.json", @@ -12520,10 +12522,11 @@ ], "crawled": "https://www.w3.org/TR/mse-byte-stream-format-isobmff/", "crawlCacheInfo": { - "lastModified": "Fri, 12 Jul 2024 12:26:24 GMT" + "lastModified": "Tue, 23 Jul 2024 08:09:32 GMT" }, "generator": "respec", - "date": "18 July 2024", + "date": "23 July 2024", + "revision": "40cacca5c4f5e48ba574749e61037038368a972e", "links": "links/mse-byte-stream-format-isobmff.json", "refs": "refs/mse-byte-stream-format-isobmff.json", "dfns": "dfns/mse-byte-stream-format-isobmff.json", @@ -12575,10 +12578,11 @@ ], "crawled": "https://www.w3.org/TR/mse-byte-stream-format-mp2t/", "crawlCacheInfo": { - "lastModified": "Fri, 12 Jul 2024 12:26:24 GMT" + "lastModified": "Tue, 23 Jul 2024 08:09:50 GMT" }, "generator": "respec", - "date": "18 July 2024", + "date": "23 July 2024", + "revision": "edf8261e81e53ac23d2cc4bdd7026ce8957b999e", "links": "links/mse-byte-stream-format-mp2t.json", "refs": "refs/mse-byte-stream-format-mp2t.json", "dfns": "dfns/mse-byte-stream-format-mp2t.json", @@ -12630,10 +12634,11 @@ ], "crawled": "https://www.w3.org/TR/mse-byte-stream-format-mpeg-audio/", "crawlCacheInfo": { - "lastModified": "Fri, 12 Jul 2024 12:26:24 GMT" + "lastModified": "Tue, 23 Jul 2024 08:10:04 GMT" }, "generator": "respec", - "date": "18 July 2024", + "date": "23 July 2024", + "revision": "5a0b0f43002aaf4c18dbd3c95c7e514ca01f108e", "links": "links/mse-byte-stream-format-mpeg-audio.json", "refs": "refs/mse-byte-stream-format-mpeg-audio.json", "dfns": "dfns/mse-byte-stream-format-mpeg-audio.json", @@ -12685,11 +12690,11 @@ ], "crawled": "https://www.w3.org/TR/mse-byte-stream-format-registry/", "crawlCacheInfo": { - "lastModified": "Fri, 12 Jul 2024 12:26:24 GMT" + "lastModified": "Tue, 23 Jul 2024 08:09:55 GMT" }, "generator": "respec", - "date": "18 July 2024", - "algorithms": "algorithms/mse-byte-stream-format-registry.json", + "date": "23 July 2024", + "revision": "990e6a38cd420206c4001a57d17c23c96ee08a64", "links": "links/mse-byte-stream-format-registry.json", "refs": "refs/mse-byte-stream-format-registry.json", "headings": "headings/mse-byte-stream-format-registry.json", @@ -12740,10 +12745,11 @@ ], "crawled": "https://www.w3.org/TR/mse-byte-stream-format-webm/", "crawlCacheInfo": { - "lastModified": "Fri, 12 Jul 2024 12:26:24 GMT" + "lastModified": "Tue, 23 Jul 2024 08:09:43 GMT" }, "generator": "respec", - "date": "18 July 2024", + "date": "23 July 2024", + "revision": "83fa1f5d6d0ddb4f85b303b3d11091b35e0d5c94", "algorithms": "algorithms/mse-byte-stream-format-webm.json", "links": "links/mse-byte-stream-format-webm.json", "refs": "refs/mse-byte-stream-format-webm.json", @@ -13609,11 +13615,11 @@ ], "crawled": "https://www.w3.org/TR/permissions-policy-1/", "crawlCacheInfo": { - "lastModified": "Fri, 28 Jun 2024 18:06:55 GMT" + "lastModified": "Tue, 23 Jul 2024 17:04:54 GMT" }, "generator": "bikeshed", - "date": "28 June 2024", - "revision": "271a8a07a4e41d9c0ec14c238871f105727b042d", + "date": "23 July 2024", + "revision": "d10e9e7a781bcb7824c402a2a28fafd1c1c28fdd", "algorithms": "algorithms/permissions-policy-1.json", "links": "links/permissions-policy-1.json", "refs": "refs/permissions-policy-1.json", @@ -19254,11 +19260,11 @@ ], "crawled": "https://www.w3.org/TR/webdriver2/", "crawlCacheInfo": { - "lastModified": "Wed, 17 Jul 2024 14:05:11 GMT" + "lastModified": "Tue, 23 Jul 2024 11:04:03 GMT" }, "generator": "respec", - "date": "17 July 2024", - "revision": "57eb5e9b7cbb2593118900b575e1d194b896dd7c", + "date": "23 July 2024", + "revision": "7a23ea0cc2579b65a6994f2919a5b0adf990fe8b", "algorithms": "algorithms/webdriver2.json", "links": "links/webdriver2.json", "refs": "refs/webdriver2.json", @@ -20601,11 +20607,11 @@ ], "crawled": "https://www.w3.org/TR/WGSL/", "crawlCacheInfo": { - "lastModified": "Mon, 22 Jul 2024 19:05:24 GMT" + "lastModified": "Wed, 24 Jul 2024 00:22:46 GMT" }, "generator": "bikeshed", - "date": "22 July 2024", - "revision": "acccc1d589e9151e4120b16040cffc04d7b7b3ad", + "date": "24 July 2024", + "revision": "66cb176af804182ab9755099efdd1d9389e87305", "algorithms": "algorithms/WGSL.json", "links": "links/WGSL.json", "refs": "refs/WGSL.json", diff --git a/tr/links/css-conditional-5.json b/tr/links/css-conditional-5.json index 05319cd9149b..6a187f10c837 100644 --- a/tr/links/css-conditional-5.json +++ b/tr/links/css-conditional-5.json @@ -6,36 +6,21 @@ "links": { "rawlinks": { "https://datatracker.ietf.org/doc/html/rfc2119": {}, - "https://drafts.csswg.org/css-conditional-3/": { - "anchors": [ - "supports-queries" - ] - }, - "https://drafts.csswg.org/css-fonts-4/": { - "anchors": [ - "font-tech-definitions", - "font-format-definitions" - ] - }, + "https://dom.spec.whatwg.org/": {}, + "https://drafts.csswg.org/css-position-4/": {}, "https://github.com/w3c/csswg-drafts/issues": {}, + "https://github.com/w3c/csswg-drafts/issues/10433": {}, + "https://github.com/w3c/csswg-drafts/issues/6205": {}, + "https://github.com/w3c/csswg-drafts/issues/7369": {}, + "https://github.com/w3c/csswg-drafts/issues/8110": {}, "https://lists.w3.org/Archives/Public/public-css-archive/": {}, "https://lists.w3.org/Archives/Public/public-css-testsuite": {}, "https://lists.w3.org/Archives/Public/www-style/": {}, + "https://webidl.spec.whatwg.org/": {}, "https://www.w3.org/2001/tag/doc/unsanctioned-tracking/": {}, - "https://www.w3.org/2004/01/pp-impl/32061/status": {}, - "https://www.w3.org/2021/Process-20211102/": { - "anchors": [ - "recs-and-notes" - ] - }, - "https://www.w3.org/Consortium/Patent-Policy-20200915/": { - "anchors": [ - "def-essential", - "sec-Disclosure" - ] - }, "https://www.w3.org/Style/CSS/Test/": {}, "https://www.w3.org/TR/": {}, + "https://www.w3.org/TR/2021/WD-css-conditional-5-20211221/": {}, "https://www.w3.org/TR/CSS/": { "anchors": [ "future-proofing", @@ -50,39 +35,65 @@ "ignore" ] }, - "https://www.w3.org/TR/css-conditional-3/": {}, - "https://www.w3.org/TR/css-conditional-4/": { + "https://www.w3.org/TR/CSS22/": {}, + "https://www.w3.org/TR/css-animations-1/": {}, + "https://www.w3.org/TR/css-box-4/": {}, + "https://www.w3.org/TR/css-cascade-4/": { "anchors": [ - "typedef-supports-selector-fn" + "filtering" ] }, - "https://www.w3.org/TR/css-fonts-4/": { + "https://www.w3.org/TR/css-cascade-5/": {}, + "https://www.w3.org/TR/css-cascade/": { "anchors": [ - "descdef-font-face-src" + "initial-values", + "applies-to", + "inherited-property", + "computed" ] }, - "https://www.w3.org/TR/css-fonts-5/": { + "https://www.w3.org/TR/css-conditional-3/": {}, + "https://www.w3.org/TR/css-conditional-4/": {}, + "https://www.w3.org/TR/css-conditional-5/": {}, + "https://www.w3.org/TR/css-contain-2/": {}, + "https://www.w3.org/TR/css-contain-3/": { "anchors": [ - "font-format-values" + "changes" ] }, - "https://www.w3.org/TR/css-syntax-3/": { + "https://www.w3.org/TR/css-display-3/": {}, + "https://www.w3.org/TR/css-fonts-4/": { "anchors": [ - "typedef-stylesheet" + "font-tech-definitions", + "font-format-definitions" ] }, - "https://www.w3.org/TR/css-values-4/": { + "https://www.w3.org/TR/css-fonts-5/": {}, + "https://www.w3.org/TR/css-pseudo-4/": {}, + "https://www.w3.org/TR/css-pseudo/": { "anchors": [ - "mult-opt", - "comb-one" + "generated-content" ] }, - "https://www.w3.org/TR/css3-conditional/": { + "https://www.w3.org/TR/css-scoping-1/": {}, + "https://www.w3.org/TR/css-shadow-parts-1/": {}, + "https://www.w3.org/TR/css-sizing-3/": {}, + "https://www.w3.org/TR/css-syntax-3/": {}, + "https://www.w3.org/TR/css-transitions-1/": {}, + "https://www.w3.org/TR/css-values-4/": {}, + "https://www.w3.org/TR/css-values/": { "anchors": [ - "typedef-supports-decl", - "at-ruledef-media", - "at-ruledef-supports", - "conditional-group-rule" + "value-defs", + "percentages" + ] + }, + "https://www.w3.org/TR/css-variables-1/": {}, + "https://www.w3.org/TR/css-writing-modes-4/": {}, + "https://www.w3.org/TR/cssom-1/": {}, + "https://www.w3.org/TR/cssom-view-1/": {}, + "https://www.w3.org/TR/cssom/": { + "anchors": [ + "serializing-css-values" ] }, "https://www.w3.org/TR/mediaqueries-4/": { @@ -90,19 +101,101 @@ "mq-syntax" ] }, - "https://www.w3.org/TR/mediaqueries-5/": { + "https://www.w3.org/TR/mediaqueries-5/": {}, + "https://www.w3.org/TR/selectors-4/": {}, + "https://www.w3.org/TR/web-animations-1/": {}, + "https://www.w3.org/TR/web-animations/": { "anchors": [ - "typedef-mf-boolean", - "typedef-mf-plain", - "typedef-mf-range" + "animation-type" + ] + }, + "https://www.w3.org/groups/wg/css": {}, + "https://www.w3.org/groups/wg/css/ipr": {}, + "https://www.w3.org/policies/patent-policy/20200915/": { + "anchors": [ + "def-essential", + "sec-Disclosure" ] }, - "https://www.w3.org/groups/wg/css": {} + "https://www.w3.org/policies/process/20231103/": { + "anchors": [ + "recs-and-notes" + ] + } }, "autolinks": { - "https://drafts.csswg.org/css-conditional-3/": { + "https://dom.spec.whatwg.org/": { + "anchors": [ + "concept-shadow-including-descendant", + "concept-shadow-including-inclusive-ancestor" + ] + }, + "https://drafts.csswg.org/css-cascade-5/": { + "anchors": [ + "cascade-dependent-keyword" + ] + }, + "https://drafts.csswg.org/css-position-4/": { + "anchors": [ + "selectordef-backdrop" + ] + }, + "https://drafts.csswg.org/css-scoping-1/": { "anchors": [ - "supports-queries" + "selectordef-slotted" + ] + }, + "https://drafts.csswg.org/css-syntax-3/": { + "anchors": [ + "typedef-block-contents" + ] + }, + "https://drafts.csswg.org/css-values-4/": { + "anchors": [ + "typedef-general-enclosed" + ] + }, + "https://drafts.csswg.org/css2/": { + "anchors": [ + "propdef-line-height" + ] + }, + "https://webidl.spec.whatwg.org/": { + "anchors": [ + "Exposed" + ] + }, + "https://www.w3.org/TR/css-animations-1/": { + "anchors": [ + "at-ruledef-keyframes" + ] + }, + "https://www.w3.org/TR/css-box-4/": { + "anchors": [ + "content-box" + ] + }, + "https://www.w3.org/TR/css-cascade-5/": { + "anchors": [ + "shorthand-property", + "computed-value", + "initial-value", + "at-ruledef-layer", + "css-property", + "longhand", + "valdef-all-revert", + "valdef-all-revert-layer" + ] + }, + "https://www.w3.org/TR/css-conditional-3/": { + "anchors": [ + "supports-queries", + "at-ruledef-supports", + "typedef-supports-decl", + "conditional-group-rule", + "at-ruledef-media", + "css-feature-queries", + "cssconditionrule" ] }, "https://www.w3.org/TR/css-conditional-4/": { @@ -110,40 +203,143 @@ "typedef-supports-selector-fn" ] }, + "https://www.w3.org/TR/css-conditional-5/": { + "anchors": [ + "typedef-font-tech" + ] + }, + "https://www.w3.org/TR/css-contain-2/": { + "anchors": [ + "containment", + "layout-containment", + "style-containment", + "size-containment", + "layout-containment-box" + ] + }, + "https://www.w3.org/TR/css-contain-3/": { + "anchors": [ + "inline-size-containment" + ] + }, + "https://www.w3.org/TR/css-display-3/": { + "anchors": [ + "principal-box" + ] + }, "https://www.w3.org/TR/css-fonts-4/": { "anchors": [ - "descdef-font-face-src" + "propdef-font-size" ] }, "https://www.w3.org/TR/css-fonts-5/": { "anchors": [ - "font-format-values" + "font-format-values", + "at-font-face-rule" + ] + }, + "https://www.w3.org/TR/css-pseudo-4/": { + "anchors": [ + "selectordef-before", + "selectordef-after", + "selectordef-marker", + "selectordef-first-letter", + "selectordef-first-line", + "fictional-tag-sequence", + "selectordef-placeholder", + "selectordef-file-selector-button" + ] + }, + "https://www.w3.org/TR/css-shadow-parts-1/": { + "anchors": [ + "selectordef-part" + ] + }, + "https://www.w3.org/TR/css-sizing-3/": { + "anchors": [ + "width", + "height", + "size" ] }, "https://www.w3.org/TR/css-syntax-3/": { "anchors": [ - "typedef-stylesheet" + "typedef-rule-list", + "style-rule", + "at-rule", + "declaration" + ] + }, + "https://www.w3.org/TR/css-transitions-1/": { + "anchors": [ + "style-change-event" ] }, "https://www.w3.org/TR/css-values-4/": { "anchors": [ "comb-one", - "mult-opt" + "string-value", + "mult-opt", + "identifier-value", + "mult-one-plus", + "css-css-identifier", + "mult-comma", + "mult-zero-plus", + "relative-length", + "em", + "length-value", + "ratio-value", + "css-wide-keywords", + "small-viewport-size" ] }, - "https://www.w3.org/TR/css3-conditional/": { + "https://www.w3.org/TR/css-variables-1/": { "anchors": [ - "at-ruledef-supports", - "typedef-supports-decl", - "conditional-group-rule", - "at-ruledef-media" + "custom-property", + "funcdef-var", + "typedef-custom-property-name" + ] + }, + "https://www.w3.org/TR/css-writing-modes-4/": { + "anchors": [ + "inline-axis", + "block-axis", + "inline-size", + "block-size" + ] + }, + "https://www.w3.org/TR/cssom-1/": { + "anchors": [ + "supported-css-property", + "cssomstring" + ] + }, + "https://www.w3.org/TR/cssom-view-1/": { + "anchors": [ + "dom-window-matchmedia", + "mediaquerylist" ] }, "https://www.w3.org/TR/mediaqueries-5/": { "anchors": [ "typedef-mf-plain", "typedef-mf-boolean", - "typedef-mf-range" + "typedef-mf-range", + "media-query", + "valdef-media-not", + "valdef-custom-media-true", + "valdef-custom-media-false", + "media-feature" + ] + }, + "https://www.w3.org/TR/selectors-4/": { + "anchors": [ + "ultimate-originating-element" + ] + }, + "https://www.w3.org/TR/web-animations-1/": { + "anchors": [ + "effect-value" ] } } diff --git a/tr/links/mse-byte-stream-format-registry.json b/tr/links/mse-byte-stream-format-registry.json index ff98f82bcafd..a92e91fda07f 100644 --- a/tr/links/mse-byte-stream-format-registry.json +++ b/tr/links/mse-byte-stream-format-registry.json @@ -5,12 +5,9 @@ }, "links": { "rawlinks": { - "http://lists.w3.org/Archives/Public/public-html-media/": {}, - "https://datatracker.ietf.org/doc/html/bcp14": {}, "https://github.com/w3c/media-source": {}, "https://github.com/w3c/mse-byte-stream-format-registry/issues": {}, - "https://www.rfc-editor.org/rfc/rfc2119": {}, - "https://www.rfc-editor.org/rfc/rfc8174": {}, + "https://github.com/w3c/mse-byte-stream-format-registry/issues/": {}, "https://www.w3.org/TR/": {}, "https://www.w3.org/TR/media-source-2/": { "anchors": [ diff --git a/tr/refs/css-conditional-5.json b/tr/refs/css-conditional-5.json index f0c13bc27dd0..73aaa6332cc4 100644 --- a/tr/refs/css-conditional-5.json +++ b/tr/refs/css-conditional-5.json @@ -5,6 +5,22 @@ }, "refs": { "normative": [ + { + "name": "CSS-ANIMATIONS-1", + "url": "https://www.w3.org/TR/css-animations-1/" + }, + { + "name": "CSS-BOX-4", + "url": "https://www.w3.org/TR/css-box-4/" + }, + { + "name": "CSS-CASCADE-4", + "url": "https://www.w3.org/TR/css-cascade-4/" + }, + { + "name": "CSS-CASCADE-5", + "url": "https://www.w3.org/TR/css-cascade-5/" + }, { "name": "CSS-CONDITIONAL-3", "url": "https://www.w3.org/TR/css-conditional-3/" @@ -13,18 +29,70 @@ "name": "CSS-CONDITIONAL-4", "url": "https://www.w3.org/TR/css-conditional-4/" }, + { + "name": "CSS-CONDITIONAL-5", + "url": "https://www.w3.org/TR/css-conditional-5/" + }, + { + "name": "CSS-CONTAIN-2", + "url": "https://www.w3.org/TR/css-contain-2/" + }, + { + "name": "CSS-CONTAIN-3", + "url": "https://www.w3.org/TR/css-contain-3/" + }, + { + "name": "CSS-DISPLAY-3", + "url": "https://www.w3.org/TR/css-display-3/" + }, + { + "name": "CSS-FONTS-4", + "url": "https://www.w3.org/TR/css-fonts-4/" + }, { "name": "CSS-FONTS-5", "url": "https://www.w3.org/TR/css-fonts-5/" }, + { + "name": "CSS-SIZING-3", + "url": "https://www.w3.org/TR/css-sizing-3/" + }, { "name": "CSS-SYNTAX-3", "url": "https://www.w3.org/TR/css-syntax-3/" }, + { + "name": "CSS-TRANSITIONS-1", + "url": "https://www.w3.org/TR/css-transitions-1/" + }, { "name": "CSS-VALUES-4", "url": "https://www.w3.org/TR/css-values-4/" }, + { + "name": "CSS-VARIABLES-1", + "url": "https://www.w3.org/TR/css-variables-1/" + }, + { + "name": "CSS-WRITING-MODES-4", + "url": "https://www.w3.org/TR/css-writing-modes-4/" + }, + { + "name": "CSSOM-1", + "url": "https://www.w3.org/TR/cssom-1/" + }, + { + "name": "CSSOM-VIEW-1", + "url": "https://www.w3.org/TR/cssom-view-1/" + }, + { + "name": "DOM", + "url": "https://dom.spec.whatwg.org/" + }, + { + "name": "MEDIAQUERIES-4", + "url": "https://www.w3.org/TR/mediaqueries-4/" + }, { "name": "MEDIAQUERIES-5", "url": "https://www.w3.org/TR/mediaqueries-5/" @@ -32,12 +100,40 @@ { "name": "RFC2119", "url": "https://datatracker.ietf.org/doc/html/rfc2119" + }, + { + "name": "SELECTORS-4", + "url": "https://www.w3.org/TR/selectors-4/" + }, + { + "name": "WEB-ANIMATIONS-1", + "url": "https://www.w3.org/TR/web-animations-1/" + }, + { + "name": "WEBIDL", + "url": "https://webidl.spec.whatwg.org/" } ], "informative": [ { - "name": "CSS-FONTS-4", - "url": "https://www.w3.org/TR/css-fonts-4/" + "name": "CSS-POSITION-4", + "url": "https://drafts.csswg.org/css-position-4/" + }, + { + "name": "CSS-PSEUDO-4", + "url": "https://www.w3.org/TR/css-pseudo-4/" + }, + { + "name": "CSS-SCOPING-1", + "url": "https://www.w3.org/TR/css-scoping-1/" + }, + { + "name": "CSS-SHADOW-PARTS-1", + "url": "https://www.w3.org/TR/css-shadow-parts-1/" + }, + { + "name": "CSS22", + "url": "https://www.w3.org/TR/CSS22/" } ] } diff --git a/tr/refs/mse-byte-stream-format-registry.json b/tr/refs/mse-byte-stream-format-registry.json index 9e2b27d6ecc2..7d06d5037b75 100644 --- a/tr/refs/mse-byte-stream-format-registry.json +++ b/tr/refs/mse-byte-stream-format-registry.json @@ -4,7 +4,8 @@ "url": "https://www.w3.org/TR/mse-byte-stream-format-registry/" }, "refs": { - "normative": [ + "normative": [], + "informative": [ { "name": "MEDIA-SOURCE", "url": "https://www.w3.org/TR/media-source-2/" @@ -24,16 +25,7 @@ { "name": "MSE-BYTE-STREAM-FORMAT-WEBM", "url": "https://www.w3.org/TR/mse-byte-stream-format-webm/" - }, - { - "name": "RFC2119", - "url": "https://www.rfc-editor.org/rfc/rfc2119" - }, - { - "name": "RFC8174", - "url": "https://www.rfc-editor.org/rfc/rfc8174" } - ], - "informative": [] + ] } } \ No newline at end of file