aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/audioscheduledsourcenode.rs
diff options
context:
space:
mode:
authorFernando Jiménez Moreno <ferjmoreno@gmail.com>2018-09-24 11:53:36 +0200
committerFernando Jiménez Moreno <ferjmoreno@gmail.com>2018-09-25 17:16:17 +0200
commitbc6586a9d0489bcbc1d151320eefb8cb33e8853d (patch)
treed330fe6286c6226109d9f794ee17250754359149 /components/script/dom/audioscheduledsourcenode.rs
parentbbc35659002cf18659d31f4e6b30ef0f8b632129 (diff)
downloadservo-bc6586a9d0489bcbc1d151320eefb8cb33e8853d.tar.gz
servo-bc6586a9d0489bcbc1d151320eefb8cb33e8853d.zip
Throw if time given to AudioScheduledSourceNode.stop is negative
Diffstat (limited to 'components/script/dom/audioscheduledsourcenode.rs')
-rw-r--r--components/script/dom/audioscheduledsourcenode.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/components/script/dom/audioscheduledsourcenode.rs b/components/script/dom/audioscheduledsourcenode.rs
index cd913897cad..6e15148993c 100644
--- a/components/script/dom/audioscheduledsourcenode.rs
+++ b/components/script/dom/audioscheduledsourcenode.rs
@@ -59,6 +59,10 @@ impl AudioScheduledSourceNodeMethods for AudioScheduledSourceNode {
// https://webaudio.github.io/web-audio-api/#dom-audioscheduledsourcenode-start
fn Start(&self, when: Finite<f64>) -> Fallible<()> {
+ if *when < 0. {
+ return Err(Error::Range("'when' must be a positive value".to_owned()));
+ }
+
if self.started.get() || self.stopped.get() {
return Err(Error::InvalidState);
}
@@ -99,6 +103,10 @@ impl AudioScheduledSourceNodeMethods for AudioScheduledSourceNode {
// https://webaudio.github.io/web-audio-api/#dom-audioscheduledsourcenode-stop
fn Stop(&self, when: Finite<f64>) -> Fallible<()> {
+ if *when < 0. {
+ return Err(Error::Range("'when' must be a positive value".to_owned()));
+ }
+
if !self.started.get() {
return Err(Error::InvalidState);
}