Issue #2321 - Fall back to 0 if setInterval interval not supplied

This commit is contained in:
Martok 2023-10-01 02:21:53 +02:00 committed by roytam1
commit e0e1542913
5 changed files with 14 additions and 39 deletions

View file

@ -299,28 +299,25 @@ WorkerGlobalScope::ClearTimeout(int32_t aHandle)
int32_t
WorkerGlobalScope::SetInterval(JSContext* aCx,
Function& aHandler,
const Optional<int32_t>& aTimeout,
const int32_t aTimeout,
const Sequence<JS::Value>& aArguments,
ErrorResult& aRv)
{
mWorkerPrivate->AssertIsOnWorkerThread();
bool isInterval = aTimeout.WasPassed();
int32_t timeout = aTimeout.WasPassed() ? aTimeout.Value() : 0;
nsCOMPtr<nsIScriptTimeoutHandler> handler =
NS_CreateJSTimeoutHandler(aCx, mWorkerPrivate, aHandler, aArguments, aRv);
if (NS_WARN_IF(aRv.Failed())) {
return 0;
}
return mWorkerPrivate->SetTimeout(aCx, handler, timeout, isInterval, aRv);
return mWorkerPrivate->SetTimeout(aCx, handler, aTimeout, true, aRv);
}
int32_t
WorkerGlobalScope::SetInterval(JSContext* aCx,
const nsAString& aHandler,
const Optional<int32_t>& aTimeout,
const int32_t aTimeout,
const Sequence<JS::Value>& /* unused */,
ErrorResult& aRv)
{
@ -328,12 +325,9 @@ WorkerGlobalScope::SetInterval(JSContext* aCx,
Sequence<JS::Value> dummy;
bool isInterval = aTimeout.WasPassed();
int32_t timeout = aTimeout.WasPassed() ? aTimeout.Value() : 0;
nsCOMPtr<nsIScriptTimeoutHandler> handler =
NS_CreateJSTimeoutHandler(aCx, mWorkerPrivate, aHandler);
return mWorkerPrivate->SetTimeout(aCx, handler, timeout, isInterval, aRv);
return mWorkerPrivate->SetTimeout(aCx, handler, aTimeout, true, aRv);
}
void