| Index: LayoutTests/webaudio/audioparam-exceptional-values-expected.txt
 | 
| diff --git a/LayoutTests/webaudio/audioparam-exceptional-values-expected.txt b/LayoutTests/webaudio/audioparam-exceptional-values-expected.txt
 | 
| index 09f4ad74ea5d273219f8fea146fe7bca1a5795c6..2dfbb46ac180794749ccfcf39e051d8b0d5acb1b 100644
 | 
| --- a/LayoutTests/webaudio/audioparam-exceptional-values-expected.txt
 | 
| +++ b/LayoutTests/webaudio/audioparam-exceptional-values-expected.txt
 | 
| @@ -1,43 +1,49 @@
 | 
| -CONSOLE ERROR: line 61: Uncaught ReferenceError: duration is not defined
 | 
|  Test exceptional arguments for AudioParam timeline events
 | 
|  
 | 
|  On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 | 
|  
 | 
|  
 | 
| -PASS gain.gain.setValueAtTime(Infinity, 1) threw exception InvalidAccessError: Failed to execute 'setValueAtTime' on 'AudioParam': Target value must be a finite number: Infinity.
 | 
| -PASS gain.gain.linearRampToValueAtTime(Infinity, 1) threw exception InvalidAccessError: Failed to execute 'linearRampToValueAtTime' on 'AudioParam': Target value must be a finite number: Infinity.
 | 
| -PASS gain.gain.exponentialRampToValueAtTime(Infinity, 1) threw exception InvalidAccessError: Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': Target value must be a finite positive number: Infinity.
 | 
| -PASS gain.gain.setTargetAtTime(Infinity, 1, 1) threw exception InvalidAccessError: Failed to execute 'setTargetAtTime' on 'AudioParam': Target value must be a finite number: Infinity.
 | 
| -PASS gain.gain.setValueAtTime(-Infinity, 1) threw exception InvalidAccessError: Failed to execute 'setValueAtTime' on 'AudioParam': Target value must be a finite number: -Infinity.
 | 
| -PASS gain.gain.linearRampToValueAtTime(-Infinity, 1) threw exception InvalidAccessError: Failed to execute 'linearRampToValueAtTime' on 'AudioParam': Target value must be a finite number: -Infinity.
 | 
| -PASS gain.gain.exponentialRampToValueAtTime(-Infinity, 1) threw exception InvalidAccessError: Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': Target value must be a finite positive number: -Infinity.
 | 
| -PASS gain.gain.setTargetAtTime(-Infinity, 1, 1) threw exception InvalidAccessError: Failed to execute 'setTargetAtTime' on 'AudioParam': Target value must be a finite number: -Infinity.
 | 
| -PASS gain.gain.setValueAtTime(NaN, 1) threw exception InvalidAccessError: Failed to execute 'setValueAtTime' on 'AudioParam': Target value must be a finite number: NaN.
 | 
| -PASS gain.gain.linearRampToValueAtTime(NaN, 1) threw exception InvalidAccessError: Failed to execute 'linearRampToValueAtTime' on 'AudioParam': Target value must be a finite number: NaN.
 | 
| -PASS gain.gain.exponentialRampToValueAtTime(NaN, 1) threw exception InvalidAccessError: Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': Target value must be a finite positive number: NaN.
 | 
| -PASS gain.gain.setTargetAtTime(NaN, 1, 1) threw exception InvalidAccessError: Failed to execute 'setTargetAtTime' on 'AudioParam': Target value must be a finite number: NaN.
 | 
| +PASS gain.gain.setValueAtTime(Infinity, 1) threw exception TypeError: Failed to execute 'setValueAtTime' on 'AudioParam': The provided float value is non-finite..
 | 
| +PASS gain.gain.linearRampToValueAtTime(Infinity, 1) threw exception TypeError: Failed to execute 'linearRampToValueAtTime' on 'AudioParam': The provided float value is non-finite..
 | 
| +PASS gain.gain.exponentialRampToValueAtTime(Infinity, 1) threw exception TypeError: Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': The provided float value is non-finite..
 | 
| +PASS gain.gain.setTargetAtTime(Infinity, 1, 1) threw exception TypeError: Failed to execute 'setTargetAtTime' on 'AudioParam': The provided float value is non-finite..
 | 
| +PASS gain.gain.setValueAtTime(-Infinity, 1) threw exception TypeError: Failed to execute 'setValueAtTime' on 'AudioParam': The provided float value is non-finite..
 | 
| +PASS gain.gain.linearRampToValueAtTime(-Infinity, 1) threw exception TypeError: Failed to execute 'linearRampToValueAtTime' on 'AudioParam': The provided float value is non-finite..
 | 
| +PASS gain.gain.exponentialRampToValueAtTime(-Infinity, 1) threw exception TypeError: Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': The provided float value is non-finite..
 | 
| +PASS gain.gain.setTargetAtTime(-Infinity, 1, 1) threw exception TypeError: Failed to execute 'setTargetAtTime' on 'AudioParam': The provided float value is non-finite..
 | 
| +PASS gain.gain.setValueAtTime(NaN, 1) threw exception TypeError: Failed to execute 'setValueAtTime' on 'AudioParam': The provided float value is non-finite..
 | 
| +PASS gain.gain.linearRampToValueAtTime(NaN, 1) threw exception TypeError: Failed to execute 'linearRampToValueAtTime' on 'AudioParam': The provided float value is non-finite..
 | 
| +PASS gain.gain.exponentialRampToValueAtTime(NaN, 1) threw exception TypeError: Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': The provided float value is non-finite..
 | 
| +PASS gain.gain.setTargetAtTime(NaN, 1, 1) threw exception TypeError: Failed to execute 'setTargetAtTime' on 'AudioParam': The provided float value is non-finite..
 | 
|  PASS gain.gain.setValueAtTime(1, -1) threw exception InvalidAccessError: Failed to execute 'setValueAtTime' on 'AudioParam': Time must be a finite non-negative number: -1.
 | 
|  PASS gain.gain.linearRampToValueAtTime(1, -1) threw exception InvalidAccessError: Failed to execute 'linearRampToValueAtTime' on 'AudioParam': Time must be a finite non-negative number: -1.
 | 
|  PASS gain.gain.exponentialRampToValueAtTime(1, -1) threw exception InvalidAccessError: Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': Time must be a finite non-negative number: -1.
 | 
|  PASS gain.gain.setTargetAtTime(1, -1, 1) threw exception InvalidAccessError: Failed to execute 'setTargetAtTime' on 'AudioParam': Time must be a finite non-negative number: -1.
 | 
| -PASS gain.gain.setValueAtTime(1, Infinity) threw exception InvalidAccessError: Failed to execute 'setValueAtTime' on 'AudioParam': Time must be a finite non-negative number: Infinity.
 | 
| -PASS gain.gain.linearRampToValueAtTime(1, Infinity) threw exception InvalidAccessError: Failed to execute 'linearRampToValueAtTime' on 'AudioParam': Time must be a finite non-negative number: Infinity.
 | 
| -PASS gain.gain.exponentialRampToValueAtTime(1, Infinity) threw exception InvalidAccessError: Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': Time must be a finite non-negative number: Infinity.
 | 
| -PASS gain.gain.setTargetAtTime(1, Infinity, 1) threw exception InvalidAccessError: Failed to execute 'setTargetAtTime' on 'AudioParam': Time must be a finite non-negative number: Infinity.
 | 
| -PASS gain.gain.setValueAtTime(1, -Infinity) threw exception InvalidAccessError: Failed to execute 'setValueAtTime' on 'AudioParam': Time must be a finite non-negative number: -Infinity.
 | 
| -PASS gain.gain.linearRampToValueAtTime(1, -Infinity) threw exception InvalidAccessError: Failed to execute 'linearRampToValueAtTime' on 'AudioParam': Time must be a finite non-negative number: -Infinity.
 | 
| -PASS gain.gain.exponentialRampToValueAtTime(1, -Infinity) threw exception InvalidAccessError: Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': Time must be a finite non-negative number: -Infinity.
 | 
| -PASS gain.gain.setTargetAtTime(1, -Infinity, 1) threw exception InvalidAccessError: Failed to execute 'setTargetAtTime' on 'AudioParam': Time must be a finite non-negative number: -Infinity.
 | 
| -PASS gain.gain.setValueAtTime(1, NaN) threw exception InvalidAccessError: Failed to execute 'setValueAtTime' on 'AudioParam': Time must be a finite non-negative number: NaN.
 | 
| -PASS gain.gain.linearRampToValueAtTime(1, NaN) threw exception InvalidAccessError: Failed to execute 'linearRampToValueAtTime' on 'AudioParam': Time must be a finite non-negative number: NaN.
 | 
| -PASS gain.gain.exponentialRampToValueAtTime(1, NaN) threw exception InvalidAccessError: Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': Time must be a finite non-negative number: NaN.
 | 
| -PASS gain.gain.setTargetAtTime(1, NaN, 1) threw exception InvalidAccessError: Failed to execute 'setTargetAtTime' on 'AudioParam': Time must be a finite non-negative number: NaN.
 | 
| -PASS gain.gain.setTargetAtTime(1, 1, Infinity) threw exception InvalidAccessError: Failed to execute 'setTargetAtTime' on 'AudioParam': Time constant must be a finite non-negative number: Infinity.
 | 
| -PASS gain.gain.setTargetAtTime(1, 1, -Infinity) threw exception InvalidAccessError: Failed to execute 'setTargetAtTime' on 'AudioParam': Time constant must be a finite non-negative number: -Infinity.
 | 
| -PASS gain.gain.setTargetAtTime(1, 1, NaN) threw exception InvalidAccessError: Failed to execute 'setTargetAtTime' on 'AudioParam': Time constant must be a finite non-negative number: NaN.
 | 
| +PASS gain.gain.setValueAtTime(1, Infinity) threw exception TypeError: Failed to execute 'setValueAtTime' on 'AudioParam': The provided double value is non-finite..
 | 
| +PASS gain.gain.linearRampToValueAtTime(1, Infinity) threw exception TypeError: Failed to execute 'linearRampToValueAtTime' on 'AudioParam': The provided double value is non-finite..
 | 
| +PASS gain.gain.exponentialRampToValueAtTime(1, Infinity) threw exception TypeError: Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': The provided double value is non-finite..
 | 
| +PASS gain.gain.setTargetAtTime(1, Infinity, 1) threw exception TypeError: Failed to execute 'setTargetAtTime' on 'AudioParam': The provided double value is non-finite..
 | 
| +PASS gain.gain.setValueAtTime(1, -Infinity) threw exception TypeError: Failed to execute 'setValueAtTime' on 'AudioParam': The provided double value is non-finite..
 | 
| +PASS gain.gain.linearRampToValueAtTime(1, -Infinity) threw exception TypeError: Failed to execute 'linearRampToValueAtTime' on 'AudioParam': The provided double value is non-finite..
 | 
| +PASS gain.gain.exponentialRampToValueAtTime(1, -Infinity) threw exception TypeError: Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': The provided double value is non-finite..
 | 
| +PASS gain.gain.setTargetAtTime(1, -Infinity, 1) threw exception TypeError: Failed to execute 'setTargetAtTime' on 'AudioParam': The provided double value is non-finite..
 | 
| +PASS gain.gain.setValueAtTime(1, NaN) threw exception TypeError: Failed to execute 'setValueAtTime' on 'AudioParam': The provided double value is non-finite..
 | 
| +PASS gain.gain.linearRampToValueAtTime(1, NaN) threw exception TypeError: Failed to execute 'linearRampToValueAtTime' on 'AudioParam': The provided double value is non-finite..
 | 
| +PASS gain.gain.exponentialRampToValueAtTime(1, NaN) threw exception TypeError: Failed to execute 'exponentialRampToValueAtTime' on 'AudioParam': The provided double value is non-finite..
 | 
| +PASS gain.gain.setTargetAtTime(1, NaN, 1) threw exception TypeError: Failed to execute 'setTargetAtTime' on 'AudioParam': The provided double value is non-finite..
 | 
| +PASS gain.gain.setTargetAtTime(1, 1, Infinity) threw exception TypeError: Failed to execute 'setTargetAtTime' on 'AudioParam': The provided double value is non-finite..
 | 
| +PASS gain.gain.setTargetAtTime(1, 1, -Infinity) threw exception TypeError: Failed to execute 'setTargetAtTime' on 'AudioParam': The provided double value is non-finite..
 | 
| +PASS gain.gain.setTargetAtTime(1, 1, NaN) threw exception TypeError: Failed to execute 'setTargetAtTime' on 'AudioParam': The provided double value is non-finite..
 | 
|  PASS gain.gain.setValueCurveAtTime(curve, -1, 1) threw exception InvalidAccessError: Failed to execute 'setValueCurveAtTime' on 'AudioParam': Time must be a finite non-negative number: -1.
 | 
| -FAIL Unexpected error: Uncaught ReferenceError: duration is not defined
 | 
| -FAIL successfullyParsed should be true. Was false.
 | 
| +PASS gain.gain.setValueCurveAtTime(curve, Infinity, 1) threw exception TypeError: Failed to execute 'setValueCurveAtTime' on 'AudioParam': The provided double value is non-finite..
 | 
| +PASS gain.gain.setValueCurveAtTime(curve, -Infinity, 1) threw exception TypeError: Failed to execute 'setValueCurveAtTime' on 'AudioParam': The provided double value is non-finite..
 | 
| +PASS gain.gain.setValueCurveAtTime(curve, NaN, 1) threw exception TypeError: Failed to execute 'setValueCurveAtTime' on 'AudioParam': The provided double value is non-finite..
 | 
| +PASS gain.gain.setValueCurveAtTime(curve, 1, -1) threw exception InvalidAccessError: Failed to execute 'setValueCurveAtTime' on 'AudioParam': Duration must be a finite positive number: -1.
 | 
| +PASS gain.gain.setValueCurveAtTime(curve, 1, Infinity) threw exception TypeError: Failed to execute 'setValueCurveAtTime' on 'AudioParam': The provided double value is non-finite..
 | 
| +PASS gain.gain.setValueCurveAtTime(curve, 1, -Infinity) threw exception TypeError: Failed to execute 'setValueCurveAtTime' on 'AudioParam': The provided double value is non-finite..
 | 
| +PASS gain.gain.setValueCurveAtTime(curve, 1, NaN) threw exception TypeError: Failed to execute 'setValueCurveAtTime' on 'AudioParam': The provided double value is non-finite..
 | 
| +PASS gain.gain.setValueCurveAtTime(curve, 1, 0) threw exception InvalidAccessError: Failed to execute 'setValueCurveAtTime' on 'AudioParam': Duration must be a finite positive number: 0.
 | 
| +PASS successfullyParsed is true
 | 
|  
 | 
|  TEST COMPLETE
 | 
|  
 | 
| 
 |