aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/workerglobalscope.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/workerglobalscope.rs')
-rw-r--r--components/script/dom/workerglobalscope.rs51
1 files changed, 13 insertions, 38 deletions
diff --git a/components/script/dom/workerglobalscope.rs b/components/script/dom/workerglobalscope.rs
index 50cb8bb5aaf..7e55cbfc046 100644
--- a/components/script/dom/workerglobalscope.rs
+++ b/components/script/dom/workerglobalscope.rs
@@ -4,11 +4,10 @@
use crate::compartments::InCompartment;
use crate::dom::bindings::cell::DomRefCell;
-use crate::dom::bindings::codegen::Bindings::FunctionBinding::Function;
use crate::dom::bindings::codegen::Bindings::RequestBinding::RequestInit;
use crate::dom::bindings::codegen::Bindings::WorkerBinding::WorkerType;
use crate::dom::bindings::codegen::Bindings::WorkerGlobalScopeBinding::WorkerGlobalScopeMethods;
-use crate::dom::bindings::codegen::UnionTypes::RequestOrUSVString;
+use crate::dom::bindings::codegen::UnionTypes::{RequestOrUSVString, StringOrFunction};
use crate::dom::bindings::error::{report_pending_exception, Error, ErrorResult, Fallible};
use crate::dom::bindings::inheritance::Castable;
use crate::dom::bindings::reflector::DomObject;
@@ -297,28 +296,16 @@ impl WorkerGlobalScopeMethods for WorkerGlobalScope {
fn SetTimeout(
&self,
_cx: JSContext,
- callback: Rc<Function>,
+ callback: StringOrFunction,
timeout: i32,
args: Vec<HandleValue>,
) -> i32 {
+ let callback = match callback {
+ StringOrFunction::String(i) => TimerCallback::StringTimerCallback(i),
+ StringOrFunction::Function(i) => TimerCallback::FunctionTimerCallback(i),
+ };
self.upcast::<GlobalScope>().set_timeout_or_interval(
- TimerCallback::FunctionTimerCallback(callback),
- args,
- timeout,
- IsInterval::NonInterval,
- )
- }
-
- // https://html.spec.whatwg.org/multipage/#dom-windowtimers-settimeout
- fn SetTimeout_(
- &self,
- _cx: JSContext,
- callback: DOMString,
- timeout: i32,
- args: Vec<HandleValue>,
- ) -> i32 {
- self.upcast::<GlobalScope>().set_timeout_or_interval(
- TimerCallback::StringTimerCallback(callback),
+ callback,
args,
timeout,
IsInterval::NonInterval,
@@ -335,28 +322,16 @@ impl WorkerGlobalScopeMethods for WorkerGlobalScope {
fn SetInterval(
&self,
_cx: JSContext,
- callback: Rc<Function>,
- timeout: i32,
- args: Vec<HandleValue>,
- ) -> i32 {
- self.upcast::<GlobalScope>().set_timeout_or_interval(
- TimerCallback::FunctionTimerCallback(callback),
- args,
- timeout,
- IsInterval::Interval,
- )
- }
-
- // https://html.spec.whatwg.org/multipage/#dom-windowtimers-setinterval
- fn SetInterval_(
- &self,
- _cx: JSContext,
- callback: DOMString,
+ callback: StringOrFunction,
timeout: i32,
args: Vec<HandleValue>,
) -> i32 {
+ let callback = match callback {
+ StringOrFunction::String(i) => TimerCallback::StringTimerCallback(i),
+ StringOrFunction::Function(i) => TimerCallback::FunctionTimerCallback(i),
+ };
self.upcast::<GlobalScope>().set_timeout_or_interval(
- TimerCallback::StringTimerCallback(callback),
+ callback,
args,
timeout,
IsInterval::Interval,