servo / servo

Servo, the embeddable, independent, memory-safe, modular, parallel web rendering engine
https://servo.org
Mozilla Public License 2.0
27.76k stars 2.98k forks source link

JS error playing Swoop demo #26272

Open jdm opened 4 years ago

jdm commented 4 years ago
joshmatthews@joshmatthews-fcmd6r servo % ./mach run -r https://playcanv.as/p/JtL2iqIH/
Powered by PlayCanvas 0.176.4 e5b7c28
[2020-04-22T15:41:20Z ERROR script::dom::bindings::error] Error at https://s3-eu-west-1.amazonaws.com/apps.playcanvas.com/R2axJfsc/playcanvas-stable.min.js:540:13 this argument is not a finite floating-point value
64 threads are still running after shutdown (bad).
jdm commented 4 years ago

This exception comes from https://github.com/servo/servo/blob/d33a784c665ec7233b8825bb87d9edc97df33d0b/components/script/dom/bindings/conversions.rs#L107. The JS in question is this.source.start(0,this.startOffset%this.source.buffer.duration). this.source is an AudioBufferSourceNode, and this.source.buffer (I think) the result of decodeAudioData. Presumably either startOffset or the buffer's duration is a non-finite value, so the % calculation becomes non-finite.