-
Notifications
You must be signed in to change notification settings - Fork 173
Description
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).
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.