Skip to content

Rename OpaqueRange getValueRange() to createValueRange()

48278d9
Select commit
Loading
Failed to load commit list.
Merged

Rename OpaqueRange getValueRange() to createValueRange() #58079

Rename OpaqueRange getValueRange() to createValueRange()
48278d9
Select commit
Loading
Failed to load commit list.
Community-TC Integration / wpt-firefox-nightly-stability succeeded Feb 26, 2026 in 8m 47s

Community-TC (pull_request)

Verify that all tests affected by a pull request are stable when executed in firefox.

Details

View task in Taskcluster | View logs in Taskcluster | View task group in Taskcluster

Task Status

Started: 2026-02-26T21:33:37.310Z
Resolved: 2026-02-26T21:39:13.293Z
Task Execution Time: 5 minutes, 35 seconds, 983 milliseconds
Task Status: completed
Reason Resolved: completed
TaskId: LXOkTKNNRNGgwiR8EFf59g
RunId: 0

Artifacts

- public/logs/live_backing.log
- public/logs/live.log
- public/results/checkrun.md

WPT Command: python3 ./wpt run --channel=nightly --verify --verify-no-chaos-mode --verify-repeat-loop=0 --verify-repeat-restart=10 --github-checks-text-file=/home/test/artifacts/checkrun.md --affected base_head --log-mach-level=info --log-mach=- -y --no-pause --no-restart-on-unexpected --install-fonts --verify-log-full --no-headless --binary=/home/test/build/firefox/firefox firefox


[taskcluster 2026-02-26 21:33:37.485Z] Task ID: LXOkTKNNRNGgwiR8EFf59g
[taskcluster 2026-02-26 21:33:37.485Z] Worker ID: 2513634758425904886
[taskcluster 2026-02-26 21:33:37.485Z] Worker Group: us-east1-d
[taskcluster 2026-02-26 21:33:37.485Z] Worker Node Type: projects/757942385826/machineTypes/n2-standard-4
[taskcluster 2026-02-26 21:33:37.485Z] Worker Pool: proj-wpt/ci
[taskcluster 2026-02-26 21:33:37.485Z] Worker Version: 46.1.0
[taskcluster 2026-02-26 21:33:37.485Z] Public IP: 35.231.243.195
[taskcluster 2026-02-26 21:33:37.485Z] Hostname: proj-wpt-ci-qcttve1dtpyipl306o2flq

[taskcluster 2026-02-26 21:33:38.216Z] === Task Starting ===
+ '[' '' ']'
+ '[' -d /etc/profile.d ']'
+ for i in /etc/profile.d/*.sh
+ '[' -r /etc/profile.d/01-locale-fix.sh ']'
+ . /etc/profile.d/01-locale-fix.sh
+++ /usr/bin/locale-check C.UTF-8
++ eval
+ for i in /etc/profile.d/*.sh
+ '[' -r /etc/profile.d/apps-bin-path.sh ']'
+ . /etc/profile.d/apps-bin-path.sh

...(65959 lines hidden)...

 1:46.19 INFO |--------------------------------------------------------------------------|---------|-----------------------------------------------|
 1:46.19 INFO |                                                                          | OK      |                                               |
 1:46.19 INFO | `Tests createValueRange returns OpaqueRange that extends AbstractRange.` | FAIL    | `textarea.createValueRange is not a function` |
 1:46.19 INFO | `OpaqueRange handles createValueRange correctly.`                        | FAIL    | `textarea.createValueRange is not a function` |
 1:46.19 INFO | `OpaqueRange handles empty value correctly.`                             | FAIL    | `input.createValueRange is not a function`    |
 1:46.19 INFO 
 1:46.19 INFO ### /dom/ranges/tentative/OpaqueRange-disconnect.html ###
 1:46.19 INFO |                              Subtest                              | Results |                    Messages                   |
 1:46.19 INFO |-------------------------------------------------------------------|---------|-----------------------------------------------|
 1:46.19 INFO |                                                                   | OK      |                                               |
 1:46.19 INFO | `disconnect() resets range state and geometry.`                   | FAIL    | `textarea.createValueRange is not a function` |
 1:46.19 INFO | `disconnect() is idempotent.`                                     | FAIL    | `textarea.createValueRange is not a function` |
 1:46.19 INFO | `disconnect() stops live offset updates.`                         | FAIL    | `textarea.createValueRange is not a function` |
 1:46.19 INFO | `disconnect() only affects the target range.`                     | FAIL    | `textarea.createValueRange is not a function` |
 1:46.19 INFO | `Element accepts new ranges after a prior range is disconnected.` | FAIL    | `textarea.createValueRange is not a function` |
 1:46.19 INFO 
 1:46.19 INFO ### /dom/ranges/tentative/OpaqueRange-geometry-basic.html ###
 1:46.19 INFO |                         Subtest                         | Results |                   Messages                   |
 1:46.19 INFO |---------------------------------------------------------|---------|----------------------------------------------|
 1:46.19 INFO |                                                         | OK      |                                              |
 1:46.19 INFO | `Collapsed caret geometry (input)`                      | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Simple selection geometry (input)`                     | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Geometry empty after control removal (input)`          | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Collapsed caret at start/middle/end (input)`           | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Full selection bounding box inside element (input)`    | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Backwards offsets collapse (input)`                    | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `display:none empty geometry (input)`                   | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Collapsed caret geometry (textarea)`                   | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Simple selection geometry (textarea)`                  | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Geometry empty after control removal (textarea)`       | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Collapsed caret at start/middle/end (textarea)`        | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Full selection bounding box inside element (textarea)` | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Backwards offsets collapse (textarea)`                 | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `display:none empty geometry (textarea)`                | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO 
 1:46.19 INFO ### /dom/ranges/tentative/OpaqueRange-geometry-complexity-and-visibility.html ###
 1:46.19 INFO |                            Subtest                            | Results |                   Messages                   |
 1:46.19 INFO |---------------------------------------------------------------|---------|----------------------------------------------|
 1:46.19 INFO |                                                               | OK      |                                              |
 1:46.19 INFO | `Bidirectional mixed text full selection geometry (input)`    | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Surrogate pair width normalization invariants (input)`       | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `visibility:hidden caret geometry (input)`                    | FAIL    | `hidden.createValueRange is not a function`  |
 1:46.19 INFO | `Bidirectional mixed text full selection geometry (textarea)` | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Surrogate pair width normalization invariants (textarea)`    | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `visibility:hidden caret geometry (textarea)`                 | FAIL    | `hidden.createValueRange is not a function`  |
 1:46.19 INFO 
 1:46.19 INFO ### /dom/ranges/tentative/OpaqueRange-geometry-multiline-and-mutations.html ###
 1:46.19 INFO |                       Subtest                        | Results |                       Messages                       |
 1:46.19 INFO |------------------------------------------------------|---------|------------------------------------------------------|
 1:46.19 INFO |                                                      | OK      |                                                      |
 1:46.19 INFO | `Partial hard-newline selection (textarea)`          | FAIL    | `textareaElement.createValueRange is not a function` |
 1:46.19 INFO | `Selection spanning blank line (textarea)`           | FAIL    | `textareaElement.createValueRange is not a function` |
 1:46.19 INFO | `Soft-wrapped long single line (textarea)`           | FAIL    | `textareaElement.createValueRange is not a function` |
 1:46.19 INFO | `Collapsed caret across newline parity (textarea)`   | FAIL    | `textareaElement.createValueRange is not a function` |
 1:46.19 INFO | `Input live insertion/deletion adjustments`          | FAIL    | `inputElement.createValueRange is not a function`    |
 1:46.19 INFO | `Textarea interior deletion & insertion adjustments` | FAIL    | `textareaElement.createValueRange is not a function` |
 1:46.19 INFO | `Insertion inside expands width (input)`             | FAIL    | `element.createValueRange is not a function`         |
 1:46.19 INFO | `Deletion collapses geometry (input)`                | FAIL    | `element.createValueRange is not a function`         |
 1:46.19 INFO | `Shrink/grow end offset clamping (input)`            | FAIL    | `element.createValueRange is not a function`         |
 1:46.19 INFO | `Tail deletion clamps end offset (input)`            | FAIL    | `element.createValueRange is not a function`         |
 1:46.19 INFO | `Insertion inside expands width (textarea)`          | FAIL    | `element.createValueRange is not a function`         |
 1:46.19 INFO | `Deletion collapses geometry (textarea)`             | FAIL    | `element.createValueRange is not a function`         |
 1:46.19 INFO | `Shrink/grow end offset clamping (textarea)`         | FAIL    | `element.createValueRange is not a function`         |
 1:46.19 INFO | `Tail deletion clamps end offset (textarea)`         | FAIL    | `element.createValueRange is not a function`         |
 1:46.19 INFO | `Deletion collapses selection (input explicit)`      | FAIL    | `inputElement.createValueRange is not a function`    |
 1:46.19 INFO 
 1:46.19 INFO ### /dom/ranges/tentative/OpaqueRange-interactive-basic.html ###
 1:46.19 INFO |                                     Subtest                                      | Results |                                                    Messages                                                    |
 1:46.19 INFO |----------------------------------------------------------------------------------|---------|----------------------------------------------------------------------------------------------------------------|
 1:46.19 INFO |                                                                                  | OK      |                                                                                                                |
 1:46.19 INFO | `Insertion: at start boundary keeps start; end extends (multi-char) (input).`    | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO | `Insertion: inside range extends end by length (input).`                         | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO | `Insertion: at end boundary leaves offsets unchanged (multi-char) (input).`      | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO | `Equal-length replacement: single char inside range (input).`                    | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO | `Deletion: backspace before range shifts both left (input).`                     | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO | `Deletion: forward delete inside range contracts end by 1 (input).`              | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO | `Deletion: forward delete at end boundary no effect on range (input).`           | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO | `Deletion: backspace at control start is no-op (input).`                         | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO | `Insertion: at start boundary keeps start; end extends (multi-char) (textarea).` | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO | `Insertion: inside range extends end by length (textarea).`                      | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO | `Insertion: at end boundary leaves offsets unchanged (multi-char) (textarea).`   | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO | `Equal-length replacement: single char inside range (textarea).`                 | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO | `Deletion: backspace before range shifts both left (textarea).`                  | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO | `Deletion: forward delete inside range contracts end by 1 (textarea).`           | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO | `Deletion: forward delete at end boundary no effect on range (textarea).`        | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO | `Deletion: backspace at control start is no-op (textarea).`                      | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO 
 1:46.19 INFO ### /dom/ranges/tentative/OpaqueRange-interactive-overlap-and-selection.html ###
 1:46.19 INFO |                                       Subtest                                        | Results |                                                    Messages                                                    |
 1:46.19 INFO |--------------------------------------------------------------------------------------|---------|----------------------------------------------------------------------------------------------------------------|
 1:46.19 INFO |                                                                                      | OK      |                                                                                                                |
 1:46.19 INFO | `Overlap: partial overlap at start (delete selection) (input).`                      | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO | `Overlap: partial overlap at end (delete selection) (input).`                        | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO | `Selection deletion: delete selection exactly equal to range (collapse) (input).`    | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO | `Selection deletion: delete subset inside range (contract end) (input).`             | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO | `Boundary forward delete shifts range left (input).`                                 | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO | `Overlap: partial overlap at start (delete selection) (textarea).`                   | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO | `Overlap: partial overlap at end (delete selection) (textarea).`                     | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO | `Selection deletion: delete selection exactly equal to range (collapse) (textarea).` | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO | `Selection deletion: delete subset inside range (contract end) (textarea).`          | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO | `Boundary forward delete shifts range left (textarea).`                              | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO 
 1:46.19 INFO ### /dom/ranges/tentative/OpaqueRange-offset.html ###
 1:46.19 INFO |                                   Subtest                                   | Results |                    Messages                   |
 1:46.19 INFO |-----------------------------------------------------------------------------|---------|-----------------------------------------------|
 1:46.19 INFO |                                                                             | OK      |                                               |
 1:46.19 INFO | `createValueRange with single character in textarea.`                       | FAIL    | `element.createValueRange is not a function`  |
 1:46.19 INFO | `createValueRange with empty control in textarea.`                          | FAIL    | `element.createValueRange is not a function`  |
 1:46.19 INFO | `createValueRange boundary positions in textarea.`                          | FAIL    | `element.createValueRange is not a function`  |
 1:46.19 INFO | `createValueRange with Unicode characters in textarea.`                     | FAIL    | `element.createValueRange is not a function`  |
 1:46.19 INFO | `createValueRange with single character in input.`                          | FAIL    | `element.createValueRange is not a function`  |
 1:46.19 INFO | `createValueRange with empty control in input.`                             | FAIL    | `element.createValueRange is not a function`  |
 1:46.19 INFO | `createValueRange boundary positions in input.`                             | FAIL    | `element.createValueRange is not a function`  |
 1:46.19 INFO | `createValueRange with Unicode characters in input.`                        | FAIL    | `element.createValueRange is not a function`  |
 1:46.19 INFO | `createValueRange on textarea with whitespace in light DOM.`                | FAIL    | `textarea.createValueRange is not a function` |
 1:46.19 INFO | `createValueRange works correctly with weirdly formed light DOM structure.` | FAIL    | `textarea.createValueRange is not a function` |
 1:46.19 INFO | `createValueRange ignores malformed input child nodes.`                     | FAIL    | `input.createValueRange is not a function`    |
 1:46.19 INFO 
 1:46.19 INFO ### /dom/ranges/tentative/OpaqueRange-programmatic-updates.html ###
 1:46.19 INFO |                             Subtest                             | Results |                   Messages                   |
 1:46.19 INFO |-----------------------------------------------------------------|---------|----------------------------------------------|
 1:46.19 INFO |                                                                 | OK      |                                              |
 1:46.19 INFO | `Full replace collapses to start (shorter & longer) (input)`    | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Full replace from whole-old range collapses to 0 (input)`      | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Full replace (equal length) collapses to 0 (input)`            | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Partial replacement adjusts end (input)`                       | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `No-op leaves range unchanged (input)`                          | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Insertion before range shifts both endpoints (input)`          | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Interior deletion shrinks end (input)`                         | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Before-range shrink shifts left (input)`                       | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `After-range grow leaves range unchanged (input)`               | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Superset replacement collapses to change start (input)`        | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Insert at range.start extends end (input)`                     | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Insert at range.end leaves range unchanged (input)`            | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Surrogate pair expansion grows end (input)`                    | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Chained interior edits cumulatively adjust range (input)`      | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Full replace collapses to start (shorter & longer) (textarea)` | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Full replace from whole-old range collapses to 0 (textarea)`   | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Full replace (equal length) collapses to 0 (textarea)`         | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Partial replacement adjusts end (textarea)`                    | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `No-op leaves range unchanged (textarea)`                       | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Insertion before range shifts both endpoints (textarea)`       | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Interior deletion shrinks end (textarea)`                      | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Before-range shrink shifts left (textarea)`                    | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `After-range grow leaves range unchanged (textarea)`            | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Superset replacement collapses to change start (textarea)`     | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Insert at range.start extends end (textarea)`                  | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Insert at range.end leaves range unchanged (textarea)`         | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Surrogate pair expansion grows end (textarea)`                 | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `Chained interior edits cumulatively adjust range (textarea)`   | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO 
 1:46.19 INFO ### /dom/ranges/tentative/OpaqueRange-range-updates.html ###
 1:46.19 INFO |                            Subtest                             | Results |                    Messages                   |
 1:46.19 INFO |----------------------------------------------------------------|---------|-----------------------------------------------|
 1:46.19 INFO |                                                                | OK      |                                               |
 1:46.19 INFO | `createValueRange creates independent ranges on same element.` | FAIL    | `textarea.createValueRange is not a function` |
 1:46.19 INFO | `createValueRange works on different form controls.`           | FAIL    | `input.createValueRange is not a function`    |
 1:46.19 INFO | `createValueRange works with disconnected form controls.`      | FAIL    | `input.createValueRange is not a function`    |
 1:46.19 INFO | `OpaqueRange collapses on full .value= replacement.`           | FAIL    | `textarea.createValueRange is not a function` |
 1:46.19 INFO 
 1:46.19 INFO ### /dom/ranges/tentative/OpaqueRange-supported-elements.html ###
 1:46.19 INFO |                         Subtest                         | Results |                   Messages                   |
 1:46.19 INFO |---------------------------------------------------------|---------|----------------------------------------------|
 1:46.19 INFO |                                                         | OK      |                                              |
 1:46.19 INFO | `createValueRange should work on textarea.`             | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `createValueRange should work on input[type=text].`     | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `createValueRange should work on input[type=search].`   | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `createValueRange should work on input[type=password].` | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `createValueRange should work on input[type=url].`      | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO | `createValueRange should work on input[type=tel].`      | FAIL    | `element.createValueRange is not a function` |
 1:46.19 INFO 
 1:46.19 INFO ### /dom/ranges/tentative/OpaqueRange-unsupported-elements.html ###
 1:46.19 INFO |                                 Subtest                                  | Results |                                                                                                                                                                    Messages                                                                                                                                                                   |
 1:46.19 INFO |--------------------------------------------------------------------------|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
 1:46.19 INFO |                                                                          | OK      |                                                                                                                                                                                                                                                                                                                                               |
 1:46.19 INFO | `createValueRange throws NotSupportedError for unsupported input types.` | FAIL    | `assert_throws_dom: createValueRange should throw NotSupportedError for <input type="hidden" value="test"> function "() => {\n      input.createValueRange(0, 0);\n    }" threw object "TypeError: input.createValueRange is not a function" that is not a DOMException NotSupportedError: property "code" is equal to undefined, expected 9` |
 1:46.19 INFO 
 1:46.19 INFO ### /dom/ranges/tentative/OpaqueRange-update-event-order.html ###
 1:46.19 INFO |                                   Subtest                                    | Results |                                                    Messages                                                    |
 1:46.19 INFO |------------------------------------------------------------------------------|---------|----------------------------------------------------------------------------------------------------------------|
 1:46.19 INFO |                                                                              | OK      |                                                                                                                |
 1:46.19 INFO | `Event order: OpaqueRange updates between beforeinput and input (input).`    | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO | `Canceled beforeinput leaves OpaqueRange unchanged (input).`                 | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO | `Event order: OpaqueRange updates between beforeinput and input (textarea).` | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO | `Canceled beforeinput leaves OpaqueRange unchanged (textarea).`              | FAIL    | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
 1:46.19 INFO 
 1:46.19 INFO ### /dom/ranges/tentative/OpaqueRange-validation.html ###
 1:46.19 INFO |                                           Subtest                                            | Results |                                                                                                                  Messages                                                                                                                  |
 1:46.19 INFO |----------------------------------------------------------------------------------------------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
 1:46.19 INFO |                                                                                              | OK      |                                                                                                                                                                                                                                            |
 1:46.19 INFO | `createValueRange throws IndexSizeError for out-of-bounds offsets.`                          | FAIL    | `assert_throws_dom: function "() => textarea.createValueRange(10, 15)" threw object "TypeError: textarea.createValueRange is not a function" that is not a DOMException IndexSizeError: property "code" is equal to undefined, expected 1` |
 1:46.19 INFO | `createValueRange handles all range types correctly: forward, backwards, and out-of-bounds.` | FAIL    | `textarea.createValueRange is not a function`                                                                                                                                                                                              |
 1:46.19 INFO 
 1:46.20 INFO ::: Running tests in a loop with restarts 10 times : PASS
 1:46.20 INFO :::
 1:46.20 INFO ::: Test verification PASS
 1:46.20 INFO :::
[taskcluster 2026-02-26 21:39:12.058Z] === Task Finished ===
[taskcluster 2026-02-26 21:39:12.463Z] Successful task run with exit code: 0 completed in 334.979 seconds