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 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 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. 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