diff options
Diffstat (limited to 'components/script/dom/workerglobalscope.rs')
-rw-r--r-- | components/script/dom/workerglobalscope.rs | 51 |
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, |