Click here to download the Blitz Browser!

WPT

wpt / webaudio / the-audio-api / the-iirfilternode-interface / iirfilter-basic.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
Total43/4339/4343/4318/4343/43NOT RUN
SubtestChromeFirefoxSafariLadybirdServoBlitz
# AUDIT TASK RUNNER STARTED.PASSPASSPASSPASSPASS
Executing "initialize"PASSPASSPASSPASSPASS
Executing "existence"PASSPASSPASSPASSPASS
Executing "parameters"PASSPASSPASSFAILPASS
Executing "exceptions-createIIRFilter"PASSPASSPASSPASSPASS
Executing "exceptions-getFrequencyData"PASSPASSPASSFAILPASS
Audit reportPASSPASSPASSPASSPASS
> [initialize] PASSPASSPASSPASSPASS
Initialize context for testing did not throw an exception.PASSPASSPASSPASSPASS
< [initialize] All assertions passed. (total 1 assertions)PASSPASSPASSPASSPASS
> [existence] PASSPASSPASSPASSPASS
context.createIIRFilter does exist.PASSPASSPASSPASS
< [existence] All assertions passed. (total 1 assertions)PASSPASSPASSPASS
> [parameters] PASSPASSPASSPASSPASS
numberOfInputs is equal to 1.PASSPASSPASSPASS
numberOfOutputs is equal to 1.PASSPASSPASSPASS
channelCountMode is equal to max.PASSPASSPASSPASS
channelInterpretation is equal to speakers.PASSPASSPASSPASS
< [parameters] All assertions passed. (total 4 assertions)PASSPASSPASSPASS
> [exceptions-createIIRFilter] PASSPASSPASSPASSPASS
createIIRFilter() threw TypeError: "Failed to execute 'createIIRFilter' on 'BaseAudioContext': 2 arguments required, but only 0 present.".PASS
createIIRFilter(new Float32Array(1)) threw TypeError: "Failed to execute 'createIIRFilter' on 'BaseAudioContext': 2 arguments required, but only 1 present.".PASS
createIIRFilter(null, null) threw TypeError: "Failed to execute 'createIIRFilter' on 'BaseAudioContext': The provided value cannot be converted to a sequence.".PASS
createIIRFilter([], []) threw NotSupportedError: "Failed to execute 'createIIRFilter' on 'BaseAudioContext': The number of feedback coefficients provided (0) is outside the range [1, 20].".PASS
createIIRFilter([1], []) threw NotSupportedError: "Failed to execute 'createIIRFilter' on 'BaseAudioContext': The number of feedback coefficients provided (0) is outside the range [1, 20].".PASS
createIIRFilter([], [1]) threw NotSupportedError: "Failed to execute 'createIIRFilter' on 'BaseAudioContext': The number of feedforward coefficients provided (0) is outside the range [1, 20].".PASS
createIIRFilter(new Float32Array(20), new Float32Array(20)) did not throw an exception.PASSPASSPASSPASS
createIIRFilter(new Float32Array(21), [1]) threw NotSupportedError: "Failed to execute 'createIIRFilter' on 'BaseAudioContext': The number of feedforward coefficients provided (21) is outside the range [1, 20].".PASS
createIIRFilter([1], new Float32Array(21)) threw NotSupportedError: "Failed to execute 'createIIRFilter' on 'BaseAudioContext': The number of feedback coefficients provided (21) is outside the range [1, 20].".PASS
createIIRFilter([1], new Float32Array(2)) threw InvalidStateError: "Failed to execute 'createIIRFilter' on 'BaseAudioContext': First feedback coefficient cannot be zero.".PASS
createIIRFilter(new Float32Array(10), [1]) threw InvalidStateError: "Failed to execute 'createIIRFilter' on 'BaseAudioContext': At least one feedforward coefficient must be non-zero.".PASS
createIIRFilter([1], [1, NaN, Infinity]) threw TypeError: "Failed to execute 'createIIRFilter' on 'BaseAudioContext': The provided double value is non-finite.".PASS
createIIRFilter([1, NaN, Infinity], [1]) threw TypeError: "Failed to execute 'createIIRFilter' on 'BaseAudioContext': The provided double value is non-finite.".PASS
createIIRFilter([1, 'abc', []], [1]) threw TypeError: "Failed to execute 'createIIRFilter' on 'BaseAudioContext': The provided double value is non-finite.".PASS
< [exceptions-createIIRFilter] All assertions passed. (total 14 assertions)PASSPASSPASSPASS
> [exceptions-getFrequencyData] PASSPASSPASSPASSPASS
getFrequencyResponse(null, new Float32Array(1), new Float32Array(1)) threw TypeError: "Failed to execute 'getFrequencyResponse' on 'IIRFilterNode': parameter 1 is not of type 'Float32Array'.".PASS
getFrequencyResponse(new Float32Array(1), null, new Float32Array(1)) threw TypeError: "Failed to execute 'getFrequencyResponse' on 'IIRFilterNode': parameter 2 is not of type 'Float32Array'.".PASS
getFrequencyResponse(new Float32Array(1), new Float32Array(1), null) threw TypeError: "Failed to execute 'getFrequencyResponse' on 'IIRFilterNode': parameter 3 is not of type 'Float32Array'.".PASS
getFrequencyResponse(new Float32Array(10), new Float32Array(1), new Float32Array(20)) threw InvalidAccessError: "Failed to execute 'getFrequencyResponse' on 'IIRFilterNode': The magResponse length provided (1) is outside the range [10, 10].".PASS
getFrequencyResponse(new Float32Array(10), new Float32Array(20), new Float32Array(1)) threw InvalidAccessError: "Failed to execute 'getFrequencyResponse' on 'IIRFilterNode': The magResponse length provided (20) is outside the range [10, 10].".PASS
< [exceptions-getFrequencyData] All assertions passed. (total 5 assertions)PASSPASSPASS
# AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully.PASSPASSPASS
createIIRFilter() threw TypeError: "BaseAudioContext.createIIRFilter: At least 2 arguments required, but only 0 passed".PASS
createIIRFilter(new Float32Array(1)) threw TypeError: "BaseAudioContext.createIIRFilter: At least 2 arguments required, but only 1 passed".PASS
createIIRFilter(null, null) threw TypeError: "BaseAudioContext.createIIRFilter: Argument 1 can't be converted to a sequence.".PASS
createIIRFilter([], []) threw NotSupportedError: "BaseAudioContext.createIIRFilter: "feedforward" length 0 is not in the range [1,20]".PASS
createIIRFilter([1], []) threw NotSupportedError: "BaseAudioContext.createIIRFilter: "feedback" length 0 is not in the range [1,20]".PASS
createIIRFilter([], [1]) threw NotSupportedError: "BaseAudioContext.createIIRFilter: "feedforward" length 0 is not in the range [1,20]".PASS
createIIRFilter(new Float32Array(21), [1]) threw NotSupportedError: "BaseAudioContext.createIIRFilter: "feedforward" length 21 is not in the range [1,20]".PASS
createIIRFilter([1], new Float32Array(21)) threw NotSupportedError: "BaseAudioContext.createIIRFilter: "feedback" length 21 is not in the range [1,20]".PASS
createIIRFilter([1], new Float32Array(2)) threw InvalidStateError: "BaseAudioContext.createIIRFilter: First value in "feedback" must be nonzero".PASS
createIIRFilter(new Float32Array(10), [1]) threw InvalidStateError: "BaseAudioContext.createIIRFilter: "feedforward" must contain some nonzero values".PASS
createIIRFilter([1], [1, NaN, Infinity]) threw TypeError: "BaseAudioContext.createIIRFilter: Element of argument 2 is not a finite floating-point value.".PASS
createIIRFilter([1, NaN, Infinity], [1]) threw TypeError: "BaseAudioContext.createIIRFilter: Element of argument 1 is not a finite floating-point value.".PASS
createIIRFilter([1, 'abc', []], [1]) threw TypeError: "BaseAudioContext.createIIRFilter: Element of argument 1 is not a finite floating-point value.".PASS
getFrequencyResponse(null, new Float32Array(1), new Float32Array(1)) threw TypeError: "IIRFilterNode.getFrequencyResponse: Argument 1 is not an object.".PASS
getFrequencyResponse(new Float32Array(1), null, new Float32Array(1)) threw TypeError: "IIRFilterNode.getFrequencyResponse: Argument 2 is not an object.".PASS
getFrequencyResponse(new Float32Array(1), new Float32Array(1), null) threw TypeError: "IIRFilterNode.getFrequencyResponse: Argument 3 is not an object.".PASS
X getFrequencyResponse(new Float32Array(10), new Float32Array(1), new Float32Array(20)) did not throw an exception.FAIL
X getFrequencyResponse(new Float32Array(10), new Float32Array(20), new Float32Array(1)) did not throw an exception.FAIL
< [exceptions-getFrequencyData] 2 out of 5 assertions were failed.FAIL
# AUDIT TASK RUNNER FINISHED: 1 out of 5 tasks were failed.FAIL
createIIRFilter() threw TypeError: "Not enough arguments".PASS
createIIRFilter(new Float32Array(1)) threw TypeError: "Not enough arguments".PASS
createIIRFilter(null, null) threw TypeError: "Value is not a sequence".PASS
createIIRFilter([], []) threw NotSupportedError: "feedforward array must have a length between 1 and 20".PASS
createIIRFilter([1], []) threw NotSupportedError: "feedback array must have a length between 1 and 20".PASS
createIIRFilter([], [1]) threw NotSupportedError: "feedforward array must have a length between 1 and 20".PASS
createIIRFilter(new Float32Array(21), [1]) threw NotSupportedError: "feedforward array must have a length between 1 and 20".PASS
createIIRFilter([1], new Float32Array(21)) threw NotSupportedError: "feedback array must have a length between 1 and 20".PASS
createIIRFilter([1], new Float32Array(2)) threw InvalidStateError: "first value of feedback array cannot be zero".PASS
createIIRFilter(new Float32Array(10), [1]) threw InvalidStateError: "feedforward array must contain a non-zero value".PASS
createIIRFilter([1], [1, NaN, Infinity]) threw TypeError: "The provided value is non-finite".PASS
createIIRFilter([1, NaN, Infinity], [1]) threw TypeError: "The provided value is non-finite".PASS
createIIRFilter([1, 'abc', []], [1]) threw TypeError: "The provided value is non-finite".PASS
getFrequencyResponse(null, new Float32Array(1), new Float32Array(1)) threw TypeError: "Argument 1 ('frequencyHz') to IIRFilterNode.getFrequencyResponse must be an instance of Float32Array".PASS
getFrequencyResponse(new Float32Array(1), null, new Float32Array(1)) threw TypeError: "Argument 2 ('magResponse') to IIRFilterNode.getFrequencyResponse must be an instance of Float32Array".PASS
getFrequencyResponse(new Float32Array(1), new Float32Array(1), null) threw TypeError: "Argument 3 ('phaseResponse') to IIRFilterNode.getFrequencyResponse must be an instance of Float32Array".PASS
getFrequencyResponse(new Float32Array(10), new Float32Array(1), new Float32Array(20)) threw InvalidAccessError: "Arrays must have the same length".PASS
getFrequencyResponse(new Float32Array(10), new Float32Array(20), new Float32Array(1)) threw InvalidAccessError: "Arrays must have the same length".PASS
createIIRFilter() threw TypeError: "Not enough arguments to "BaseAudioContext.createIIRFilter".".PASS
createIIRFilter(new Float32Array(1)) threw TypeError: "Not enough arguments to "BaseAudioContext.createIIRFilter".".PASS
createIIRFilter(null, null) threw TypeError: "Value is not an object".PASS
createIIRFilter([], []) threw NotSupportedError: "The operation is not supported.".PASS
createIIRFilter([1], []) threw NotSupportedError: "The operation is not supported.".PASS
createIIRFilter([], [1]) threw NotSupportedError: "The operation is not supported.".PASS
createIIRFilter(new Float32Array(21), [1]) threw NotSupportedError: "The operation is not supported.".PASS
createIIRFilter([1], new Float32Array(21)) threw NotSupportedError: "The operation is not supported.".PASS
createIIRFilter([1], new Float32Array(2)) threw InvalidStateError: "The object is in an invalid state.".PASS
createIIRFilter(new Float32Array(10), [1]) threw InvalidStateError: "The object is in an invalid state.".PASS
createIIRFilter([1], [1, NaN, Infinity]) threw TypeError: "this argument is not a finite floating-point value".PASS
createIIRFilter([1, NaN, Infinity], [1]) threw TypeError: "this argument is not a finite floating-point value".PASS
createIIRFilter([1, 'abc', []], [1]) threw TypeError: "this argument is not a finite floating-point value".PASS
getFrequencyResponse(null, new Float32Array(1), new Float32Array(1)) threw TypeError: "Value is not an object.".PASS
getFrequencyResponse(new Float32Array(1), null, new Float32Array(1)) threw TypeError: "Value is not an object.".PASS
getFrequencyResponse(new Float32Array(1), new Float32Array(1), null) threw TypeError: "Value is not an object.".PASS
getFrequencyResponse(new Float32Array(10), new Float32Array(1), new Float32Array(20)) threw InvalidAccessError: "The object does not support the operation or argument.".PASS
getFrequencyResponse(new Float32Array(10), new Float32Array(20), new Float32Array(1)) threw InvalidAccessError: "The object does not support the operation or argument.".PASS
X context.createIIRFilter does not exist. Got undefined.FAIL
< [existence] 1 out of 1 assertions were failed.FAIL
createIIRFilter() threw TypeError: "undefined is not a function (evaluated from 'context.createIIRFilter')".PASS
createIIRFilter(new Float32Array(1)) threw TypeError: "undefined is not a function (evaluated from 'context.createIIRFilter')".PASS
createIIRFilter(null, null) threw TypeError: "undefined is not a function (evaluated from 'context.createIIRFilter')".PASS
X createIIRFilter([], []) threw "TypeError" instead of NotSupportedError.FAIL
X createIIRFilter([1], []) threw "TypeError" instead of NotSupportedError.FAIL
X createIIRFilter([], [1]) threw "TypeError" instead of NotSupportedError.FAIL
X createIIRFilter(new Float32Array(20), new Float32Array(20)) incorrectly threw TypeError: "undefined is not a function (evaluated from 'context.createIIRFilter')".FAIL
X createIIRFilter(new Float32Array(21), [1]) threw "TypeError" instead of NotSupportedError.FAIL
X createIIRFilter([1], new Float32Array(21)) threw "TypeError" instead of NotSupportedError.FAIL
X createIIRFilter([1], new Float32Array(2)) threw "TypeError" instead of InvalidStateError.FAIL
X createIIRFilter(new Float32Array(10), [1]) threw "TypeError" instead of InvalidStateError.FAIL
createIIRFilter([1], [1, NaN, Infinity]) threw TypeError: "undefined is not a function (evaluated from 'context.createIIRFilter')".PASS
createIIRFilter([1, NaN, Infinity], [1]) threw TypeError: "undefined is not a function (evaluated from 'context.createIIRFilter')".PASS
createIIRFilter([1, 'abc', []], [1]) threw TypeError: "undefined is not a function (evaluated from 'context.createIIRFilter')".PASS
< [exceptions-createIIRFilter] 8 out of 14 assertions were failed.FAIL
# AUDIT TASK RUNNER FINISHED: 2 out of 5 tasks were failed.FAIL