1 CONSOLE WARNING: The provided value 'fancy' is not a valid enum value of type ChannelCountMode.
2 CONSOLE WARNING: The provided value 'undefined' is not a valid enum value of type ChannelInterpretation.
3 CONSOLE WARNING: The provided value '9x' is not a valid enum value of type OverSampleType.
4 CONSOLE WARNING: The provided value 'junk' is not a valid enum value of type ChannelCountMode.
5 CONSOLE WARNING: The provided value 'junk' is not a valid enum value of type ChannelCountMode.
6 Tests DOM exception messages
8 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
10 PASS context.createBuffer(99, 1, context.sampleRate) threw exception NotSupportedError: Failed to execute 'createBuffer' on 'AudioContext': The number of channels provided (99) is outside the range [1, 32]..
11 PASS context.createBuffer(0, 1, context.sampleRate) threw exception NotSupportedError: Failed to execute 'createBuffer' on 'AudioContext': The number of channels provided (0) is outside the range [1, 32]..
12 PASS context.createBuffer(1, 1, 1) threw exception NotSupportedError: Failed to execute 'createBuffer' on 'AudioContext': The sample rate provided (1) is outside the range [3000, 192000]..
13 PASS context.createBuffer(1, 1, 1e6) threw exception NotSupportedError: Failed to execute 'createBuffer' on 'AudioContext': The sample rate provided (1.00000e+6) is outside the range [3000, 192000]..
14 PASS context.createBuffer(1, 1, 3000) did not throw exception.
15 PASS context.createBuffer(1, 1, 192000) did not throw exception.
16 PASS context.createBuffer(1, 0, context.sampleRate) threw exception NotSupportedError: Failed to execute 'createBuffer' on 'AudioContext': The number of frames provided (0) is less than or equal to the minimum bound (0)..
17 PASS context.createBuffer(new ArrayBuffer(100), true) threw exception TypeError: Failed to execute 'createBuffer' on 'AudioContext': 3 arguments required, but only 2 present..
18 PASS context.decodeAudioData(null, function() {}, function () {}) threw exception SyntaxError: Failed to execute 'decodeAudioData' on 'AudioContext': invalid ArrayBuffer for audioData..
19 PASS context.createMediaElementSource(null) threw exception InvalidStateError: Failed to execute 'createMediaElementSource' on 'AudioContext': invalid HTMLMedialElement..
20 PASS context.createMediaStreamSource(null) threw exception InvalidStateError: Failed to execute 'createMediaStreamSource' on 'AudioContext': invalid MediaStream source.
21 PASS context.createScriptProcessor(1, 1, 1) threw exception IndexSizeError: Failed to execute 'createScriptProcessor' on 'AudioContext': buffer size (1) must be a power of two between 256 and 16384..
22 PASS context.createScriptProcessor(4096, 100, 1) threw exception IndexSizeError: Failed to execute 'createScriptProcessor' on 'AudioContext': number of input channels (100) exceeds maximum (32)..
23 PASS context.createScriptProcessor(4096, 1, 100) threw exception IndexSizeError: Failed to execute 'createScriptProcessor' on 'AudioContext': number of output channels (1) exceeds maximum (32)..
24 PASS context.createScriptProcessor() did not throw exception.
25 PASS context.createScriptProcessor(0) did not throw exception.
26 PASS context.createChannelSplitter(0) threw exception IndexSizeError: Failed to execute 'createChannelSplitter' on 'AudioContext': number of outputs (0) must be between 1 and 32..
27 PASS context.createChannelSplitter(99) threw exception IndexSizeError: Failed to execute 'createChannelSplitter' on 'AudioContext': number of outputs (99) must be between 1 and 32..
28 PASS context.createChannelMerger(0) threw exception IndexSizeError: Failed to execute 'createChannelMerger' on 'AudioContext': The number of inputs provided (0) is outside the range [1, 32]..
29 PASS context.createChannelMerger(99) threw exception IndexSizeError: Failed to execute 'createChannelMerger' on 'AudioContext': The number of inputs provided (99) is outside the range [1, 32]..
30 PASS context.createPeriodicWave(null, null) threw exception SyntaxError: Failed to execute 'createPeriodicWave' on 'AudioContext': invalid real array.
31 PASS context.createPeriodicWave(new Float32Array(10), null) threw exception SyntaxError: Failed to execute 'createPeriodicWave' on 'AudioContext': invalid imaginary array.
32 PASS context.createPeriodicWave(new Float32Array(4100), new Float32Array(4100)) did not throw exception.
33 PASS context.createPeriodicWave(new Float32Array(8192), new Float32Array(8192)) did not throw exception.
34 PASS context.createPeriodicWave(new Float32Array(10000), new Float32Array(10000)) did not throw exception.
35 PASS context.createPeriodicWave(new Float32Array(10), new Float32Array(7)) threw exception IndexSizeError: Failed to execute 'createPeriodicWave' on 'AudioContext': length of real array (10) and length of imaginary array (7) must match..
36 PASS node.fftSize = 42 threw exception IndexSizeError: Failed to set the 'fftSize' property on 'AnalyserNode': The value provided (42) is not a power of two..
37 PASS node.fftSize is not 42
38 PASS node.fftSize = 16 threw exception IndexSizeError: Failed to set the 'fftSize' property on 'AnalyserNode': The FFT size provided (16) is outside the range [32, 32768]..
39 PASS node.fftSize is not 16
40 PASS node.fftSize = 32768 did not throw exception.
41 PASS node.fftSize = 65536 threw exception IndexSizeError: Failed to set the 'fftSize' property on 'AnalyserNode': The FFT size provided (65536) is outside the range [32, 32768]..
42 PASS node.fftSize is not 65536
43 PASS node.minDecibels = -10 threw exception IndexSizeError: Failed to set the 'minDecibels' property on 'AnalyserNode': The minDecibels provided (-10) is greater than the maximum bound (-30)..
44 PASS node.minDecibels is not -10
45 PASS node.maxDecibels = -150 threw exception IndexSizeError: Failed to set the 'maxDecibels' property on 'AnalyserNode': The maxDecibels provided (-150) is less than the minimum bound (-100)..
46 PASS node.maxDecibels is not -150
47 PASS node.minDecibels = -30 threw exception IndexSizeError: Failed to set the 'minDecibels' property on 'AnalyserNode': The minDecibels provided (-30) is greater than or equal to the maximum bound (-30)..
48 PASS node.minDecibels is not -30
49 PASS node.maxDecibels = -100 threw exception IndexSizeError: Failed to set the 'maxDecibels' property on 'AnalyserNode': The maxDecibels provided (-100) is less than or equal to the minimum bound (-100)..
50 PASS node.maxDecibels is not -100
51 PASS node.smoothingTimeConstant = -0.1 threw exception IndexSizeError: Failed to set the 'smoothingTimeConstant' property on 'AnalyserNode': The smoothing value provided (-0.1) is outside the range [0, 1]..
52 PASS node.smoothingTimeConstant is not -0.1
53 PASS node.smoothingTimeConstant = 1.5 threw exception IndexSizeError: Failed to set the 'smoothingTimeConstant' property on 'AnalyserNode': The smoothing value provided (1.5) is outside the range [0, 1]..
54 PASS node.smoothingTimeConstant is not 1.5
55 PASS node.getChannelData(2) threw exception IndexSizeError: Failed to execute 'getChannelData' on 'AudioBuffer': channel index (2) exceeds number of channels (1).
56 PASS node.connect(null, 0, 0) threw exception TypeError: Failed to execute 'connect' on 'AudioNode': parameter 1 is not of type 'AudioNode'..
57 PASS node.connect(context.destination, 100, 0) threw exception IndexSizeError: Failed to execute 'connect' on 'AudioNode': output index (100) exceeds number of outputs (1)..
58 PASS node.connect(context.destination, 0, 100) threw exception IndexSizeError: Failed to execute 'connect' on 'AudioNode': input index (100) exceeds number of inputs (1)..
59 PASS node.connect(node2.gain, 100) threw exception IndexSizeError: Failed to execute 'connect' on 'AudioNode': output index (100) exceeds number of outputs (1)..
60 PASS node.disconnect(99) threw exception IndexSizeError: Failed to execute 'disconnect' on 'AudioNode': The output index provided (99) is outside the range [0, 0]..
61 PASS node.connect(otherContext.destination) threw exception SyntaxError: Failed to execute 'connect' on 'AudioNode': cannot connect to a destination belonging to a different audio context..
62 PASS node.channelCount = 99 threw exception NotSupportedError: Failed to set the 'channelCount' property on 'AudioNode': The channel count provided (99) is outside the range [1, 32]..
63 PASS node.channelCount is not 99
64 PASS node.channelCountMode = 'fancy' did not throw exception.
65 PASS Invalid channelCountMode value did not change mode
66 PASS node.channelInterpretation = mode did not throw exception.
67 PASS Invalid channelInterpration value did not change mode
68 PASS context.destination.channelCount = 99 threw IndexSizeError exception on invalid channel count.
69 PASS new OfflineAudioContext(32, 100, context.sampleRate) did not throw exception.
70 PASS new OfflineAudioContext(99, 100, context.sampleRate) threw exception IndexSizeError: Failed to construct 'OfflineAudioContext': The number of channels provided (99) is outside the range [0, 32]..
71 PASS new OfflineAudioContext(1, 100, 1) threw exception IndexSizeError: Failed to construct 'OfflineAudioContext': The sampleRate provided (1) is outside the range [3000, 192000]..
72 PASS new OfflineAudioContext(1, 100, 1e6) threw exception IndexSizeError: Failed to construct 'OfflineAudioContext': The sampleRate provided (1.00000e+6) is outside the range [3000, 192000]..
73 PASS new OfflineAudioContext(1, -88200000000000, 44100) threw exception NotSupportedError: Failed to construct 'OfflineAudioContext': OfflineAudioContext(1, 1448390656, 44100).
74 PASS node.oversample = '9x' did not throw exception.
75 PASS Invalid oversample value did not change node.oversample
76 PASS node.curve = new Float32Array(1) threw exception InvalidAccessError: Failed to set the 'curve' property on 'WaveShaperNode': The curve length provided (1) is less than the minimum bound (2)..
77 PASS node.curve is null
78 PASS node.curve = new Float32Array(2) did not throw exception.
79 PASS node.curve = null did not throw exception.
80 PASS source = context.createBufferSource() did not throw exception.
81 PASS source.buffer = buffer did not throw exception.
82 PASS source.buffer = context.createBuffer(1, 10, context.sampleRate) threw exception InvalidStateError: Failed to set the 'buffer' property on 'AudioBufferSourceNode': Cannot set buffer after it has been already been set.
83 PASS source.start(-1) threw exception InvalidAccessError: Failed to execute 'start' on 'AudioBufferSourceNode': The start time provided (-1) is less than the minimum bound (0)..
84 PASS source.start(Infinity) threw exception TypeError: Failed to execute 'start' on 'AudioBufferSourceNode': The provided double value is non-finite..
85 PASS source.start(-Infinity) threw exception TypeError: Failed to execute 'start' on 'AudioBufferSourceNode': The provided double value is non-finite..
86 PASS source.start(NaN) threw exception TypeError: Failed to execute 'start' on 'AudioBufferSourceNode': The provided double value is non-finite..
87 PASS source.start(1, Infinity) threw exception TypeError: Failed to execute 'start' on 'AudioBufferSourceNode': The provided double value is non-finite..
88 PASS source.start(1, -Infinity) threw exception TypeError: Failed to execute 'start' on 'AudioBufferSourceNode': The provided double value is non-finite..
89 PASS source.start(1, NaN) threw exception TypeError: Failed to execute 'start' on 'AudioBufferSourceNode': The provided double value is non-finite..
90 PASS source.start(1, -1) threw exception InvalidStateError: Failed to execute 'start' on 'AudioBufferSourceNode': The offset provided (-1) is less than the minimum bound (0)..
91 PASS source.start(1, -Number.MIN_VALUE) threw exception InvalidStateError: Failed to execute 'start' on 'AudioBufferSourceNode': The offset provided (-4.94066e-324) is less than the minimum bound (0)..
92 PASS source.start(1, 1, Infinity) threw exception TypeError: Failed to execute 'start' on 'AudioBufferSourceNode': The provided double value is non-finite..
93 PASS source.start(1, 1, -Infinity) threw exception TypeError: Failed to execute 'start' on 'AudioBufferSourceNode': The provided double value is non-finite..
94 PASS source.start(1, 1, NaN) threw exception TypeError: Failed to execute 'start' on 'AudioBufferSourceNode': The provided double value is non-finite..
95 PASS source.start(1, 1, -1) threw exception InvalidStateError: Failed to execute 'start' on 'AudioBufferSourceNode': The duration provided (-1) is less than the minimum bound (0)..
96 PASS source.start(1, 1, -Number.MIN_VALUE) threw exception InvalidStateError: Failed to execute 'start' on 'AudioBufferSourceNode': The duration provided (-4.94066e-324) is less than the minimum bound (0)..
97 PASS source.start() did not throw exception.
98 PASS source.stop(-Number.MIN_VALUE) threw exception InvalidAccessError: Failed to execute 'stop' on 'AudioBufferSourceNode': The stop time provided (-4.94066e-324) is less than the minimum bound (0)..
99 PASS source.stop(Infinity) threw exception TypeError: Failed to execute 'stop' on 'AudioBufferSourceNode': The provided double value is non-finite..
100 PASS source.stop(-Infinity) threw exception TypeError: Failed to execute 'stop' on 'AudioBufferSourceNode': The provided double value is non-finite..
101 PASS source.stop(NaN) threw exception TypeError: Failed to execute 'stop' on 'AudioBufferSourceNode': The provided double value is non-finite..
102 PASS source.stop() did not throw exception.
103 PASS source = context.createBufferSource() did not throw exception.
104 PASS source.buffer = buffer did not throw exception.
105 PASS source.start(0, 0) did not throw exception.
106 PASS source = context.createBufferSource() did not throw exception.
107 PASS source.buffer = buffer did not throw exception.
108 PASS source.start(0, -1/Infinity) did not throw exception.
109 PASS source = context.createBufferSource() did not throw exception.
110 PASS source.start() did not throw exception.
111 PASS source = context.createBufferSource() did not throw exception.
112 PASS source.buffer = buffer did not throw exception.
113 PASS source.stop() threw exception InvalidStateError: Failed to execute 'stop' on 'AudioBufferSourceNode': cannot call stop without calling start first..
114 PASS source = context.createBufferSource() did not throw exception.
115 PASS source.buffer = buffer did not throw exception.
116 PASS source.start() did not throw exception.
117 PASS source.start() threw exception InvalidStateError: Failed to execute 'start' on 'AudioBufferSourceNode': cannot call start more than once..
118 PASS source = context.createBufferSource() did not throw exception.
119 PASS source.buffer = buffer did not throw exception.
120 PASS source.start() did not throw exception.
121 PASS source.stop() did not throw exception.
122 PASS source = context.createOscillator() did not throw exception.
123 PASS source.start(-Number.MIN_VALUE) threw exception InvalidAccessError: Failed to execute 'start' on 'OscillatorNode': The start time provided (-4.94066e-324) is less than the minimum bound (0)..
124 PASS source.start(Infinity) threw exception TypeError: Failed to execute 'start' on 'OscillatorNode': The provided double value is non-finite..
125 PASS source.start(-Infinity) threw exception TypeError: Failed to execute 'start' on 'OscillatorNode': The provided double value is non-finite..
126 PASS source.start(NaN) threw exception TypeError: Failed to execute 'start' on 'OscillatorNode': The provided double value is non-finite..
127 PASS source.start() did not throw exception.
128 PASS source.stop(-Number.MIN_VALUE) threw exception InvalidAccessError: Failed to execute 'stop' on 'OscillatorNode': The stop time provided (-4.94066e-324) is less than the minimum bound (0)..
129 PASS source.stop(Infinity) threw exception TypeError: Failed to execute 'stop' on 'OscillatorNode': The provided double value is non-finite..
130 PASS source.stop(-Infinity) threw exception TypeError: Failed to execute 'stop' on 'OscillatorNode': The provided double value is non-finite..
131 PASS source.stop(NaN) threw exception TypeError: Failed to execute 'stop' on 'OscillatorNode': The provided double value is non-finite..
132 PASS source.stop() did not throw exception.
133 PASS osc = context.createOscillator() did not throw exception.
134 PASS osc.stop() threw exception InvalidStateError: Failed to execute 'stop' on 'OscillatorNode': cannot call stop without calling start first..
135 PASS osc1 = context.createOscillator() did not throw exception.
136 PASS osc1.start() did not throw exception.
137 PASS osc1.stop() did not throw exception.
138 PASS node.gain.exponentialRampToValueAtTime(-1, 0.1) threw exception InvalidAccessError: Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': The float target value provided (-1) is outside the range [1.40130e-45, Infinity)..
139 PASS node.gain.exponentialRampToValueAtTime(0, 0.1) threw exception InvalidAccessError: Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': The float target value provided (0) is outside the range [1.40130e-45, Infinity)..
140 PASS node.gain.exponentialRampToValueAtTime(Math.pow(2, -149), 0.1) did not throw exception.
141 PASS node.gain.exponentialRampToValueAtTime(Math.pow(2, -150), 0.1) threw exception InvalidAccessError: Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': The float target value provided (0) is outside the range [1.40130e-45, Infinity)..
142 PASS oc = new OfflineAudioContext(1, 44100, 44100) did not throw exception.
143 PASS conv = oc.createConvolver() did not throw exception.
144 PASS conv.buffer = oc.createBuffer(1, 100, 22050) threw exception NotSupportedError: Failed to set the 'buffer' property on 'ConvolverNode': The buffer sample rate of 22050 does not match the context rate of 44100 Hz..
145 PASS conv.buffer is null
146 PASS panner.channelCount = 1 did not throw exception.
147 PASS panner.channelCount = 2 did not throw exception.
148 PASS panner.channelCount = 0 threw exception NotSupportedError: Failed to set the 'channelCount' property on 'AudioNode': The channelCount provided (0) is outside the range [1, 2]..
149 PASS panner.channelCount is not 0
150 PASS panner.channelCount = 3 threw exception NotSupportedError: Failed to set the 'channelCount' property on 'AudioNode': The channelCount provided (3) is outside the range [1, 2]..
151 PASS panner.channelCount is not 3
152 PASS panner.channelCountMode = 'max' threw exception NotSupportedError: Failed to set the 'channelCountMode' property on 'AudioNode': Panner: 'max' is not allowed.
153 PASS panner.channelCountMode is not 'max'
154 PASS panner.channelCountMode = 'explicit' did not throw exception.
155 PASS panner.channelCountMode = 'clamped-max' did not throw exception.
156 PASS panner.channelCountMode = 'junk' did not throw exception.
157 PASS script = context.createScriptProcessor(256, 3) did not throw exception.
158 PASS script.channelCount is 3
159 PASS script.channelCountMode is "explicit"
160 PASS script.channelCount = 3 did not throw exception.
161 PASS script.channelCount = 1 threw exception NotSupportedError: Failed to set the 'channelCount' property on 'AudioNode': channelCount cannot be changed from 3 to 1.
162 PASS script.channelCount is not 1
163 PASS script.channelCount = 7 threw exception NotSupportedError: Failed to set the 'channelCount' property on 'AudioNode': channelCount cannot be changed from 3 to 7.
164 PASS script.channelCount is not 7
165 PASS script.channelCountMode = 'explicit' did not throw exception.
166 PASS script.channelCountMode = 'max' threw exception NotSupportedError: Failed to set the 'channelCountMode' property on 'AudioNode': channelCountMode cannot be changed from 'explicit' to 'max'.
167 PASS script.channelCountMode is not 'max'
168 PASS script.channelCountMode = 'clamped-max' threw exception NotSupportedError: Failed to set the 'channelCountMode' property on 'AudioNode': channelCountMode cannot be changed from 'explicit' to 'clamped-max'.
169 PASS script.channelCountMode is not 'clamped-max'
170 PASS script.channelCountMode = 'junk' did not throw exception.
171 PASS osc.noteOn is undefined.
172 PASS osc.noteOff is undefined.
173 PASS source.noteOn is undefined.
174 PASS source.noteOff is undefined.
175 PASS successfullyParsed is true