From 6e5c9970bf00dbec7b41db2030f6b613fd2a373f Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 5 Apr 2020 19:04:00 +0200 Subject: [PATCH] LibWeb: Allow window.setTimeout() with no interval If no interval is specified, it will be treated as 0 and the callback function will be called on the next event loop iteration. --- Libraries/LibWeb/Bindings/WindowObject.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Libraries/LibWeb/Bindings/WindowObject.cpp b/Libraries/LibWeb/Bindings/WindowObject.cpp index ff6aab0a72..5bd017a228 100644 --- a/Libraries/LibWeb/Bindings/WindowObject.cpp +++ b/Libraries/LibWeb/Bindings/WindowObject.cpp @@ -104,14 +104,19 @@ JS::Value WindowObject::set_timeout(JS::Interpreter& interpreter) if (!impl) return {}; auto& arguments = interpreter.call_frame().arguments; - if (arguments.size() < 2) + if (arguments.size() < 1) return {}; auto* callback_object = arguments[0].to_object(interpreter.heap()); if (!callback_object) return {}; if (!callback_object->is_function()) return interpreter.throw_exception("TypeError", "Not a function"); - impl->set_timeout(*static_cast(callback_object), arguments[1].to_i32()); + + i32 interval = 0; + if (interpreter.argument_count() >= 2) + interval = arguments[1].to_i32(); + + impl->set_timeout(*static_cast(callback_object), interval); return {}; }