WPT
wpt / webnn / validation_tests / gru.https.any.html?npu
Spec: Web Neural Network API ↗
Runs: Chrome 155.0.8042.0 (wpt@4eb09bcd9, 2026-09-04) | Firefox 157.0a1 (wpt@c3fcbf4ba, 2026-09-04) | Safari 251 preview (wpt@e7122b73f, 2026-09-04) | Ladybird 1.0-52f0f (wpt@a1ecd0c09, 2026-09-04) | Servo Servo 0.6 (wpt@2c385f65e, 2026-09-04) | Blitz a50cb8971 (wpt@a95401e4e, 2026-09-03)
View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi
| Chrome | Firefox | Safari | Ladybird | Servo | Blitz | |
|---|---|---|---|---|---|---|
| Total | 26/26 | 0/26 | 0/26 | 0/26 | 0/26 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| assert_not_equals(navigator.ml, undefined, "ml property is defined on navigator") | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [gru] Test with default options | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [gru] Test with given options | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [gru] TypeError is expected if steps equals to zero | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [gru] TypeError is expected if hiddenSize equals to zero | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [gru] TypeError is expected if hiddenSize is too large | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [gru] TypeError is expected if the data type of the inputs is not one of the floating point types | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [gru] TypeError is expected if the rank of input is not 3 | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [gru] TypeError is expected if input.shape[0] is not equal to steps | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [gru] TypeError is expected if weight.shape[1] is not 3 * hiddenSize | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [gru] TypeError is expected if the rank of recurrentWeight is not 3 | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [gru] TypeError is expected if the recurrentWeight.shape is invalid | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [gru] TypeError is expected if the size of options.activations is not 2 | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [gru] TypeError is expected if the rank of options.bias is not 2 | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [gru] TypeError is expected if options.bias.shape[1] is not 3 * hiddenSize | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [gru] TypeError is expected if options.recurrentBias.shape[1] is not 3 * hiddenSize | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [gru] TypeError is expected if the rank of options.initialHiddenState is not 3 | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [gru] TypeError is expected if options.initialHiddenState.shape[2] is not inputSize | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [gru] TypeError is expected if the dataType of options.initialHiddenState is incorrect | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [gru] TypeError is expected if the full-sequence output tensor is too large | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [gru] throw if input is from another builder | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [gru] throw if weight is from another builder | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [gru] throw if recurrentWeight is from another builder | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [gru] throw if bias option is from another builder | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [gru] throw if recurrentBias option is from another builder | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [gru] throw if initialHiddenState option is from another builder | PASS | FAIL | FAIL | FAIL | FAIL | — |