aboutsummaryrefslogtreecommitdiffstats
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
parentbbc35659002cf18659d31f4e6b30ef0f8b632129 (diff)
downloadservo-bc6586a9d0489bcbc1d151320eefb8cb33e8853d.tar.gz
servo-bc6586a9d0489bcbc1d151320eefb8cb33e8853d.zip
Throw if time given to AudioScheduledSourceNode.stop is negative
-rw-r--r--components/script/dom/audiobuffersourcenode.rs4
-rw-r--r--components/script/dom/audioscheduledsourcenode.rs8
2 files changed, 8 insertions, 4 deletions
diff --git a/components/script/dom/audiobuffersourcenode.rs b/components/script/dom/audiobuffersourcenode.rs
index 85ece3be5d9..7a2817e1204 100644
--- a/components/script/dom/audiobuffersourcenode.rs
+++ b/components/script/dom/audiobuffersourcenode.rs
@@ -200,10 +200,6 @@ impl AudioBufferSourceNodeMethods for AudioBufferSourceNode {
offset: Option<Finite<f64>>,
duration: Option<Finite<f64>>,
) -> Fallible<()> {
- if *when < 0. {
- return Err(Error::Range("'when' must be a positive value".to_owned()));
- }
-
if let Some(offset) = offset {
if *offset < 0. {
return Err(Error::Range("'offset' must be a positive value".to_owned()));
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);
}