https://webaudio.github.io/web-audio-api/#AudioNode-creation has
For each member of dict passed in, execute these steps, with k the key of the member, and v its value. If any exceptions [sic] is thrown when executing these steps, abort the iteration and propagate the exception to the caller of the algorithm (constructor or factory method).
- If k is the name of an AudioParam on this interface, set the value attribute of this AudioParam to v.
k is a WebIDL double and the AudioParam value attribute is WebIDL float.
WebIDL defines conversion from JS value to WebIDL float, but I don't see conversion between WebIDL types defined.
Perhaps Web Audio could specify that the conversion is performed through JS, but clearer and simpler might be to specify the corresponding option dict types as float. That would be consistent with the resolution of #121
If an AudioParam value is set directly from a JS value of 2 * FLT_MAX, for example, then the conversion would throw.
Doing similarly through an AudioNode constructor options dictionary would be expected to behave similarly.
https://webaudio.github.io/web-audio-api/#AudioNode-creation has
k is a WebIDL double and the AudioParam value attribute is WebIDL float.
WebIDL defines conversion from JS value to WebIDL float, but I don't see conversion between WebIDL types defined.
Perhaps Web Audio could specify that the conversion is performed through JS, but clearer and simpler might be to specify the corresponding option dict types as float. That would be consistent with the resolution of #121
If an AudioParam value is set directly from a JS value of 2 * FLT_MAX, for example, then the conversion would throw.
Doing similarly through an AudioNode constructor options dictionary would be expected to behave similarly.