Auto merge of #21750 - Manishearth:biquad, r=ferjm

Implement BiquadFilterNode

A bunch of tests still fail but some of it may be a timing issue, looking at it the tests are *at least* affected by https://github.com/servo/servo/issues/21659 (changing how they work to avoid problems from that does not make them pass but does change the exact value of the error), so I feel like I should fix that first before investigating these.

r? @ferjm

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/21750)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2018-09-20 11:01:53 -04:00 committed by GitHub
commit ac331c6663
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
22 changed files with 326 additions and 154 deletions

View file

@ -8,9 +8,6 @@
[BaseAudioContext interface: attribute audioWorklet]
expected: FAIL
[BaseAudioContext interface: operation createBiquadFilter()]
expected: FAIL
[BaseAudioContext interface: operation createChannelSplitter(unsigned long)]
expected: FAIL
@ -89,9 +86,6 @@
[BaseAudioContext interface: context must inherit property "audioWorklet" with the proper type]
expected: FAIL
[BaseAudioContext interface: context must inherit property "createBiquadFilter()" with the proper type]
expected: FAIL
[BaseAudioContext interface: context must inherit property "createChannelSplitter(unsigned long)" with the proper type]
expected: FAIL
@ -155,9 +149,6 @@
[BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "audioWorklet" with the proper type]
expected: FAIL
[BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createBiquadFilter()" with the proper type]
expected: FAIL
[BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createChannelSplitter(unsigned long)" with the proper type]
expected: FAIL
@ -275,138 +266,15 @@
[AudioProcessingEvent interface: new AudioProcessingEvent('', {\n playbackTime: 0, inputBuffer: buffer, outputBuffer: buffer\n }) must inherit property "outputBuffer" with the proper type]
expected: FAIL
[BiquadFilterNode interface: existence and properties of interface object]
expected: FAIL
[BiquadFilterNode interface object length]
expected: FAIL
[BiquadFilterNode interface object name]
expected: FAIL
[BiquadFilterNode interface: existence and properties of interface prototype object]
expected: FAIL
[BiquadFilterNode interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL
[BiquadFilterNode interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
[BiquadFilterNode interface: attribute type]
expected: FAIL
[BiquadFilterNode interface: attribute frequency]
expected: FAIL
[BiquadFilterNode interface: attribute detune]
expected: FAIL
[BiquadFilterNode interface: attribute Q]
expected: FAIL
[BiquadFilterNode interface: attribute gain]
expected: FAIL
[BiquadFilterNode interface: operation getFrequencyResponse(Float32Array, Float32Array, Float32Array)]
expected: FAIL
[BiquadFilterNode must be primary interface of new BiquadFilterNode(context)]
expected: FAIL
[Stringification of new BiquadFilterNode(context)]
expected: FAIL
[BiquadFilterNode interface: new BiquadFilterNode(context) must inherit property "type" with the proper type]
expected: FAIL
[BiquadFilterNode interface: new BiquadFilterNode(context) must inherit property "frequency" with the proper type]
expected: FAIL
[BiquadFilterNode interface: new BiquadFilterNode(context) must inherit property "detune" with the proper type]
expected: FAIL
[BiquadFilterNode interface: new BiquadFilterNode(context) must inherit property "Q" with the proper type]
expected: FAIL
[BiquadFilterNode interface: new BiquadFilterNode(context) must inherit property "gain" with the proper type]
expected: FAIL
[BiquadFilterNode interface: new BiquadFilterNode(context) must inherit property "getFrequencyResponse(Float32Array, Float32Array, Float32Array)" with the proper type]
expected: FAIL
[BiquadFilterNode interface: calling getFrequencyResponse(Float32Array, Float32Array, Float32Array) on new BiquadFilterNode(context) with too few arguments must throw TypeError]
expected: FAIL
[AudioNode interface: new BiquadFilterNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper type]
expected: FAIL
[AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new BiquadFilterNode(context) with too few arguments must throw TypeError]
expected: FAIL
[AudioNode interface: new BiquadFilterNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper type]
expected: FAIL
[AudioNode interface: calling connect(AudioParam, unsigned long) on new BiquadFilterNode(context) with too few arguments must throw TypeError]
expected: FAIL
[AudioNode interface: new BiquadFilterNode(context) must inherit property "disconnect()" with the proper type]
expected: FAIL
[AudioNode interface: new BiquadFilterNode(context) must inherit property "disconnect(unsigned long)" with the proper type]
expected: FAIL
[AudioNode interface: calling disconnect(unsigned long) on new BiquadFilterNode(context) with too few arguments must throw TypeError]
expected: FAIL
[AudioNode interface: new BiquadFilterNode(context) must inherit property "disconnect(AudioNode)" with the proper type]
expected: FAIL
[AudioNode interface: calling disconnect(AudioNode) on new BiquadFilterNode(context) with too few arguments must throw TypeError]
expected: FAIL
[AudioNode interface: new BiquadFilterNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper type]
expected: FAIL
[AudioNode interface: calling disconnect(AudioNode, unsigned long) on new BiquadFilterNode(context) with too few arguments must throw TypeError]
expected: FAIL
[AudioNode interface: new BiquadFilterNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper type]
expected: FAIL
[AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new BiquadFilterNode(context) with too few arguments must throw TypeError]
expected: FAIL
[AudioNode interface: new BiquadFilterNode(context) must inherit property "disconnect(AudioParam)" with the proper type]
expected: FAIL
[AudioNode interface: calling disconnect(AudioParam) on new BiquadFilterNode(context) with too few arguments must throw TypeError]
expected: FAIL
[AudioNode interface: new BiquadFilterNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper type]
expected: FAIL
[AudioNode interface: calling disconnect(AudioParam, unsigned long) on new BiquadFilterNode(context) with too few arguments must throw TypeError]
expected: FAIL
[AudioNode interface: new BiquadFilterNode(context) must inherit property "context" with the proper type]
expected: FAIL
[AudioNode interface: new BiquadFilterNode(context) must inherit property "numberOfInputs" with the proper type]
expected: FAIL
[AudioNode interface: new BiquadFilterNode(context) must inherit property "numberOfOutputs" with the proper type]
expected: FAIL
[AudioNode interface: new BiquadFilterNode(context) must inherit property "channelCount" with the proper type]
expected: FAIL
[AudioNode interface: new BiquadFilterNode(context) must inherit property "channelCountMode" with the proper type]
expected: FAIL
[AudioNode interface: new BiquadFilterNode(context) must inherit property "channelInterpretation" with the proper type]
expected: FAIL
[ChannelSplitterNode interface: existence and properties of interface object]
expected: FAIL

View file

@ -1,2 +1,10 @@
[biquad-allpass.html]
expected: ERROR
[X Max error in Allpass filter response is not less than or equal to 3.9337e-8. Got 2.805464744567871.]
expected: FAIL
[< [test\] 1 out of 3 assertions were failed.]
expected: FAIL
[# AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed.]
expected: FAIL

View file

@ -1,2 +1,2 @@
[biquad-automation.html]
expected: ERROR
expected: CRASH

View file

@ -1,2 +1,10 @@
[biquad-bandpass.html]
expected: ERROR
[< [test\] 1 out of 3 assertions were failed.]
expected: FAIL
[X Max error in Bandpass filter response is not less than or equal to 2.2501e-8. Got 1.]
expected: FAIL
[# AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed.]
expected: FAIL

View file

@ -1,8 +1,19 @@
[biquad-basic.html]
expected: ERROR
[< [existence\] 1 out of 1 assertions were failed.]
expected: FAIL
[X context.createBiquadFilter does not exist. Got undefined.]
expected: FAIL
[X getFrequencyResponse(new Float32Array(10), new Float32Array(1), new Float32Array(20)) threw "TypeError" instead of InvalidAccessError.]
expected: FAIL
[# AUDIT TASK RUNNER FINISHED: 1 out of 5 tasks were failed.]
expected: FAIL
[X getFrequencyResponse(new Float32Array(10), new Float32Array(20), new Float32Array(1)) threw "TypeError" instead of InvalidAccessError.]
expected: FAIL
[< [exceptions-getFrequencyData\] 2 out of 5 assertions were failed.]
expected: FAIL

View file

@ -1,2 +1,10 @@
[biquad-highpass.html]
expected: ERROR
[< [test\] 1 out of 3 assertions were failed.]
expected: FAIL
[X Max error in Highpass filter response is not less than or equal to 1.5487e-8. Got 1.9329860210418701.]
expected: FAIL
[# AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed.]
expected: FAIL

View file

@ -1,2 +1,10 @@
[biquad-highshelf.html]
expected: ERROR
[< [test\] 1 out of 3 assertions were failed.]
expected: FAIL
[X Max error in Highshelf filter response is not less than or equal to 6.2577e-8. Got 2.3278465244357536.]
expected: FAIL
[# AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed.]
expected: FAIL

View file

@ -1,2 +1,10 @@
[biquad-lowpass.html]
expected: ERROR
[< [test\] 1 out of 3 assertions were failed.]
expected: FAIL
[X Max error in Lowpass filter response is not less than or equal to 9.7869e-8. Got 1.]
expected: FAIL
[# AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed.]
expected: FAIL

View file

@ -1,2 +1,10 @@
[biquad-lowshelf.html]
expected: ERROR
[< [test\] 1 out of 3 assertions were failed.]
expected: FAIL
[X Max error in Lowshelf filter response is not less than or equal to 3.8349e-8. Got 3.162277660168379.]
expected: FAIL
[# AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed.]
expected: FAIL

View file

@ -1,2 +1,10 @@
[biquad-notch.html]
expected: ERROR
[< [test\] 1 out of 3 assertions were failed.]
expected: FAIL
[X Max error in Notch filter response is not less than or equal to 1.9669e-8. Got 2.9027323722839355.]
expected: FAIL
[# AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed.]
expected: FAIL

View file

@ -1,2 +1,10 @@
[biquad-peaking.html]
expected: ERROR
[< [test\] 1 out of 3 assertions were failed.]
expected: FAIL
[X Max error in Peaking filter response is not less than or equal to 5.8234e-8. Got 3.162277660168379.]
expected: FAIL
[# AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed.]
expected: FAIL

View file

@ -1,2 +0,0 @@
[biquadfilternode-basic.html]
expected: ERROR

View file

@ -1,5 +1,4 @@
[ctor-biquadfilter.html]
expected: ERROR
[X node0 = new BiquadFilterNode(context) incorrectly threw TypeError: "window[name\] is not a constructor".]
expected: FAIL

View file

@ -27038,7 +27038,7 @@
"testharness"
],
"mozilla/interfaces.html": [
"840c233a14c3d041e43a125a6d1452670aa4fbb4",
"4863f4d1036e945cfaae1f112981fac3367b2e49",
"testharness"
],
"mozilla/interfaces.js": [

View file

@ -23,6 +23,7 @@ test_interfaces([
"AudioScheduledSourceNode",
"BaseAudioContext",
"BeforeUnloadEvent",
"BiquadFilterNode",
"Blob",
"CanvasGradient",
"CanvasRenderingContext2D",