WPT
wpt / webaudio / the-audio-api / the-audionode-interface / audionode-disconnect.html
Spec: Web Audio API ↗
Runs: Chrome 155.0.8041.0 (wpt@4a01b83e3, 2026-09-04) | Firefox 157.0a1 (wpt@e7122b73f, 2026-09-04) | Safari 251 preview (wpt@2c385f65e, 2026-09-04) | Ladybird 1.0-70fb3 (wpt@4a01b83e3, 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 | 40/40 | 40/40 | 40/40 | 40/40 | 31/40 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| # AUDIT TASK RUNNER STARTED. | PASS | PASS | PASS | PASS | PASS | — |
| Executing "disconnect()" | PASS | PASS | PASS | PASS | PASS | — |
| Executing "disconnect(output)" | PASS | PASS | PASS | PASS | PASS | — |
| Executing "disconnect(AudioNode)" | PASS | PASS | PASS | PASS | PASS | — |
| Executing "disconnect(AudioNode, output)" | PASS | PASS | PASS | PASS | PASS | — |
| Executing "disconnect(AudioNode, output, input)" | PASS | PASS | PASS | PASS | PASS | — |
| Executing "exceptions" | PASS | PASS | PASS | PASS | PASS | — |
| Executing "disabled-outputs" | PASS | PASS | PASS | PASS | PASS | — |
| Audit report | PASS | PASS | PASS | PASS | PASS | — |
| > [disconnect()] | PASS | PASS | PASS | PASS | PASS | — |
| Channel #0 contains only the constant 0. | PASS | PASS | PASS | PASS | PASS | — |
| < [disconnect()] All assertions passed. (total 1 assertions) | PASS | PASS | PASS | PASS | PASS | — |
| > [disconnect(output)] | PASS | PASS | PASS | PASS | PASS | — |
| Channel #0 contains only the constant 4. | PASS | PASS | PASS | PASS | PASS | — |
| < [disconnect(output)] All assertions passed. (total 1 assertions) | PASS | PASS | PASS | PASS | PASS | — |
| > [disconnect(AudioNode)] | PASS | PASS | PASS | PASS | PASS | — |
| Channel #0 contains only the constant 2. | PASS | PASS | PASS | PASS | PASS | — |
| < [disconnect(AudioNode)] All assertions passed. (total 1 assertions) | PASS | PASS | PASS | PASS | PASS | — |
| > [disconnect(AudioNode, output)] | PASS | PASS | PASS | PASS | PASS | — |
| Channel #0 contains only the constant 3. | PASS | PASS | PASS | PASS | PASS | — |
| < [disconnect(AudioNode, output)] All assertions passed. (total 1 assertions) | PASS | PASS | PASS | PASS | PASS | — |
| > [disconnect(AudioNode, output, input)] | PASS | PASS | PASS | PASS | PASS | — |
| Channel #0 contains only the constant 1. | PASS | PASS | PASS | PASS | PASS | — |
| Channel #1 contains only the constant 2. | PASS | PASS | PASS | PASS | PASS | — |
| Channel #2 contains only the constant 0. | PASS | PASS | PASS | PASS | PASS | — |
| < [disconnect(AudioNode, output, input)] All assertions passed. (total 3 assertions) | PASS | PASS | PASS | PASS | PASS | — |
| > [exceptions] | PASS | PASS | PASS | PASS | PASS | — |
| splitter.disconnect(2) threw IndexSizeError: "Failed to execute 'disconnect' on 'AudioNode': The output index provided (2) is outside the range [0, 1].". | PASS | — | — | — | — | — |
| Disconnecting a connection twice did not throw an exception. | PASS | PASS | PASS | PASS | PASS | — |
| gain1.disconnect(gain2) threw InvalidAccessError: "Failed to execute 'disconnect' on 'AudioNode': the given destination is not connected.". | PASS | — | — | — | — | — |
| gain1.disconnect(gain3) threw InvalidAccessError: "Failed to execute 'disconnect' on 'AudioNode': the given destination is not connected.". | PASS | — | — | — | — | — |
| splitter.disconnect(gain2, 2) threw IndexSizeError: "Failed to execute 'disconnect' on 'AudioNode': The output index provided (2) is outside the range [0, 1].". | PASS | — | — | — | — | — |
| splitter.disconnect(gain1, 0) threw InvalidAccessError: "Failed to execute 'disconnect' on 'AudioNode': output (0) is not connected to the given destination.". | PASS | — | — | — | — | — |
| splitter.disconnect(gain3, 0, 0) threw InvalidAccessError: "Failed to execute 'disconnect' on 'AudioNode': output (0) is not connected to the input (0) of the destination.". | PASS | — | — | — | — | — |
| splitter.disconnect(merger, 3, 0) threw IndexSizeError: "Failed to execute 'disconnect' on 'AudioNode': The output index provided (3) is outside the range [0, 1].". | PASS | — | — | — | — | — |
| < [exceptions] All assertions passed. (total 8 assertions) | PASS | PASS | PASS | PASS | — | — |
| > [disabled-outputs] | PASS | PASS | PASS | PASS | PASS | — |
| Disabled outputs handled correctly | PASS | PASS | PASS | PASS | PASS | — |
| < [disabled-outputs] All assertions passed. (total 1 assertions) | PASS | PASS | PASS | PASS | PASS | — |
| # AUDIT TASK RUNNER FINISHED: 7 tasks ran successfully. | PASS | PASS | PASS | PASS | — | — |
| splitter.disconnect(2) threw IndexSizeError: "AudioNode.disconnect: Output index 2 is out of bounds". | — | PASS | — | — | — | — |
| gain1.disconnect(gain2) threw InvalidAccessError: "AudioNode.disconnect: Trying to disconnect from a node we're not connected to". | — | PASS | — | — | — | — |
| gain1.disconnect(gain3) threw InvalidAccessError: "AudioNode.disconnect: Trying to disconnect from a node we're not connected to". | — | PASS | — | — | — | — |
| splitter.disconnect(gain2, 2) threw IndexSizeError: "AudioNode.disconnect: Output index 2 is out of bounds". | — | PASS | — | — | — | — |
| splitter.disconnect(gain1, 0) threw InvalidAccessError: "AudioNode.disconnect: Trying to disconnect from a node we're not connected to". | — | PASS | — | — | — | — |
| splitter.disconnect(gain3, 0, 0) threw InvalidAccessError: "AudioNode.disconnect: Trying to disconnect from a node we're not connected to". | — | PASS | — | — | — | — |
| splitter.disconnect(merger, 3, 0) threw IndexSizeError: "AudioNode.disconnect: Output index 3 is out of bounds". | — | PASS | — | — | — | — |
| splitter.disconnect(2) threw IndexSizeError: "output index is out of bounds". | — | — | PASS | — | — | — |
| gain1.disconnect(gain2) threw InvalidAccessError: "The given destination is not connected". | — | — | PASS | — | — | — |
| gain1.disconnect(gain3) threw InvalidAccessError: "The given destination is not connected". | — | — | PASS | — | — | — |
| splitter.disconnect(gain2, 2) threw IndexSizeError: "output index is out of bounds". | — | — | PASS | — | — | — |
| splitter.disconnect(gain1, 0) threw InvalidAccessError: "The given destination is not connected". | — | — | PASS | — | — | — |
| splitter.disconnect(gain3, 0, 0) threw InvalidAccessError: "The given destination is not connected". | — | — | PASS | — | — | — |
| splitter.disconnect(merger, 3, 0) threw IndexSizeError: "output index is out of bounds". | — | — | PASS | — | — | — |
| X splitter.disconnect(2) did not throw an exception. | — | — | — | — | FAIL | — |
| X gain1.disconnect(gain2) did not throw an exception. | — | — | — | — | FAIL | — |
| X gain1.disconnect(gain3) did not throw an exception. | — | — | — | — | FAIL | — |
| X splitter.disconnect(gain2, 2) did not throw an exception. | — | — | — | — | FAIL | — |
| X splitter.disconnect(gain1, 0) did not throw an exception. | — | — | — | — | FAIL | — |
| X splitter.disconnect(gain3, 0, 0) did not throw an exception. | — | — | — | — | FAIL | — |
| X splitter.disconnect(merger, 3, 0) did not throw an exception. | — | — | — | — | FAIL | — |
| < [exceptions] 7 out of 8 assertions were failed. | — | — | — | — | FAIL | — |
| # AUDIT TASK RUNNER FINISHED: 1 out of 7 tasks were failed. | — | — | — | — | FAIL | — |
| splitter.disconnect(2) threw IndexSizeError: "Output index 2 exceeds number of outputs". | — | — | — | PASS | — | — |
| gain1.disconnect(gain2) threw InvalidAccessError: "No connection to given AudioNode". | — | — | — | PASS | — | — |
| gain1.disconnect(gain3) threw InvalidAccessError: "No connection to given AudioNode". | — | — | — | PASS | — | — |
| splitter.disconnect(gain2, 2) threw IndexSizeError: "Output index 2 exceeds number of outputs". | — | — | — | PASS | — | — |
| splitter.disconnect(gain1, 0) threw InvalidAccessError: "No connection from output 0 to given AudioNode". | — | — | — | PASS | — | — |
| splitter.disconnect(gain3, 0, 0) threw InvalidAccessError: "No connection from output 0 to input 0 of given AudioNode". | — | — | — | PASS | — | — |
| splitter.disconnect(merger, 3, 0) threw IndexSizeError: "Output index 3 exceeds number of outputs". | — | — | — | PASS | — | — |