Click here to download the Blitz Browser!

WPT

wpt / webaudio / the-audio-api / the-waveshapernode-interface / ctor-waveshaper.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@7e3d005d7, 2026-09-03) | Blitz a50cb8971 (wpt@a95401e4e, 2026-09-03)

View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi

ChromeFirefoxSafariLadybirdServoBlitz
Total54/5454/5454/5415/5415/54NOT RUN
SubtestChromeFirefoxSafariLadybirdServoBlitz
# AUDIT TASK RUNNER STARTED.PASSPASSPASSPASSPASS
Executing "initialize"PASSPASSPASSPASSPASS
Executing "incorrect construction"PASSPASSPASSPASSPASS
Executing "valid default construction"PASSPASSPASSFAILFAIL
Executing "test AudioNodeOptions"PASSPASSPASSFAILFAIL
Executing "valid non-default"PASSPASSPASSFAILFAIL
Audit reportPASSPASSPASSPASSPASS
> [initialize] PASSPASSPASSPASSPASS
context = new OfflineAudioContext(...) did not throw an exception.PASSPASSPASSPASSPASS
< [initialize] All assertions passed. (total 1 assertions)PASSPASSPASSPASSPASS
> [incorrect construction] PASSPASSPASSPASSPASS
new WaveShaperNode() threw TypeError: "Failed to construct 'WaveShaperNode': 1 argument required, but only 0 present.".PASS
new WaveShaperNode(1) threw TypeError: "Failed to construct 'WaveShaperNode': parameter 1 is not of type 'BaseAudioContext'.".PASS
new WaveShaperNode(context, 42) threw TypeError: "Failed to construct 'WaveShaperNode': The provided value is not of type 'WaveShaperOptions'.".PASS
< [incorrect construction] All assertions passed. (total 3 assertions)PASSPASSPASSPASSPASS
> [valid default construction] PASSPASSPASSPASSPASS
node0 = new WaveShaperNode(context) did not throw an exception.PASSPASSPASS
node0 instanceof WaveShaperNode is equal to true.PASSPASSPASS
node0.numberOfInputs is equal to 1.PASSPASSPASS
node0.numberOfOutputs is equal to 1.PASSPASSPASS
node0.channelCount is equal to 2.PASSPASSPASS
node0.channelCountMode is equal to max.PASSPASSPASS
node0.channelInterpretation is equal to speakers.PASSPASSPASS
node0.curve is equal to null.PASSPASSPASS
node0.oversample is equal to none.PASSPASSPASS
< [valid default construction] All assertions passed. (total 9 assertions)PASSPASSPASS
> [test AudioNodeOptions] PASSPASSPASSPASSPASS
new WaveShaperNode(c, {channelCount: 17}) did not throw an exception.PASSPASSPASS
node.channelCount is equal to 17.PASSPASSPASS
new WaveShaperNode(c, {channelCount: 0}) threw NotSupportedError: "Failed to construct 'WaveShaperNode': The channel count provided (0) is outside the range [1, 32].".PASS
new WaveShaperNode(c, {channelCount: 99}) threw NotSupportedError: "Failed to construct 'WaveShaperNode': The channel count provided (99) is outside the range [1, 32].".PASS
new WaveShaperNode(c, {channelCountMode: "max"} did not throw an exception.PASSPASSPASS
node.channelCountMode is equal to max.PASSPASSPASS
new WaveShaperNode(c, {channelCountMode: "max"}) did not throw an exception.PASSPASSPASS
node.channelCountMode after valid setter is equal to max.PASSPASSPASS
new WaveShaperNode(c, {channelCountMode: "clamped-max"}) did not throw an exception.PASSPASSPASS
node.channelCountMode after valid setter is equal to clamped-max.PASSPASSPASS
new WaveShaperNode(c, {channelCountMode: "explicit"}) did not throw an exception.PASSPASSPASS
node.channelCountMode after valid setter is equal to explicit.PASSPASSPASS
new WaveShaperNode(c, {channelCountMode: "foobar"} threw TypeError: "Failed to construct 'WaveShaperNode': Failed to read the 'channelCountMode' property from 'AudioNodeOptions': The provided value 'foobar' is not a valid enum value of type ChannelCountMode.".PASS
node.channelCountMode after invalid setter is equal to explicit.PASSPASSPASS
new WaveShaperNode(c, {channelInterpretation: "speakers"}) did not throw an exception.PASSPASSPASS
node.channelInterpretation is equal to speakers.PASSPASSPASS
new WaveShaperNode(c, {channelInterpretation: "discrete"}) did not throw an exception.PASSPASSPASS
node.channelInterpretation is equal to discrete.PASSPASSPASS
new WaveShaperNode(c, {channelInterpretation: "foobar"}) threw TypeError: "Failed to construct 'WaveShaperNode': Failed to read the 'channelInterpretation' property from 'AudioNodeOptions': The provided value 'foobar' is not a valid enum value of type ChannelInterpretation.".PASS
node.channelInterpretation after invalid setter is equal to discrete.PASSPASSPASS
< [test AudioNodeOptions] All assertions passed. (total 20 assertions)PASSPASSPASS
> [valid non-default] PASSPASSPASSPASSPASS
node1 = new WaveShaperNode(, {"curve":{"0":1,"1":2,"2":3},"oversample":"4x"}) did not throw an exception.PASSPASSPASS
node1.curve is identical to the array [1,2,3].PASSPASSPASS
node1.oversample is equal to 4x.PASSPASSPASS
< [valid non-default] All assertions passed. (total 3 assertions)PASSPASSPASS
# AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully.PASSPASSPASS
new WaveShaperNode() threw TypeError: "WaveShaperNode constructor: At least 1 argument required, but only 0 passed".PASS
new WaveShaperNode(1) threw TypeError: "WaveShaperNode constructor: Argument 1 is not an object.".PASS
new WaveShaperNode(context, 42) threw TypeError: "WaveShaperNode constructor: Value can't be converted to a dictionary.".PASS
new WaveShaperNode(c, {channelCount: 0}) threw NotSupportedError: "WaveShaperNode constructor: Channel count (0) must be in the range [1, max supported channel count]".PASS
new WaveShaperNode(c, {channelCount: 99}) threw NotSupportedError: "WaveShaperNode constructor: Channel count (99) must be in the range [1, max supported channel count]".PASS
new WaveShaperNode(c, {channelCountMode: "foobar"} threw TypeError: "WaveShaperNode constructor: 'foobar' (value of 'channelCountMode' member of AudioNodeOptions) is not a valid value for enumeration ChannelCountMode.".PASS
new WaveShaperNode(c, {channelInterpretation: "foobar"}) threw TypeError: "WaveShaperNode constructor: 'foobar' (value of 'channelInterpretation' member of AudioNodeOptions) is not a valid value for enumeration ChannelInterpretation.".PASS
new WaveShaperNode() threw TypeError: "Not enough arguments".PASS
new WaveShaperNode(1) threw TypeError: "Argument 1 ('context') to the WaveShaperNode constructor must be an instance of BaseAudioContext".PASS
new WaveShaperNode(context, 42) threw TypeError: "Type error".PASS
new WaveShaperNode(c, {channelCount: 0}) threw NotSupportedError: "Channel count cannot be 0".PASS
new WaveShaperNode(c, {channelCount: 99}) threw NotSupportedError: "Channel count exceeds maximum limit".PASS
new WaveShaperNode(c, {channelCountMode: "foobar"} threw TypeError: "Type error".PASS
new WaveShaperNode(c, {channelInterpretation: "foobar"}) threw TypeError: "Type error".PASS
new WaveShaperNode() threw TypeError: "window[name] is not a constructor".PASS
new WaveShaperNode(1) threw TypeError: "window[name] is not a constructor".PASS
new WaveShaperNode(context, 42) threw TypeError: "window[name] is not a constructor".PASS
X node0 = new WaveShaperNode(context) incorrectly threw TypeError: "window[name] is not a constructor".FAIL
X new WaveShaperNode(c, {channelCount: 17}) incorrectly threw TypeError: "window[nodeName] is not a constructor".FAIL
X node1 = new WaveShaperNode(, {"curve":{"0":1,"1":2,"2":3},"oversample":"4x"}) incorrectly threw ReferenceError: "WaveShaperNode is not defined".FAIL
# AUDIT TASK RUNNER FINISHED: 3 out of 5 tasks were failed.FAILFAIL
new WaveShaperNode() threw TypeError: "undefined is not a constructor (evaluated from 'window[name]')".PASS
new WaveShaperNode(1) threw TypeError: "undefined is not a constructor (evaluated from 'window[name]')".PASS
new WaveShaperNode(context, 42) threw TypeError: "undefined is not a constructor (evaluated from 'window[name]')".PASS
X node0 = new WaveShaperNode(context) incorrectly threw TypeError: "undefined is not a constructor (evaluated from 'window[name]')".FAIL
X new WaveShaperNode(c, {channelCount: 17}) incorrectly threw TypeError: "undefined is not a constructor (evaluated from 'window[nodeName]')".FAIL
X node1 = new WaveShaperNode(, {"curve":{"0":1,"1":2,"2":3},"oversample":"4x"}) incorrectly threw ReferenceError: "'WaveShaperNode' is not defined".FAIL