1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 11:57:35 +00:00

LibWeb: Ignore non-finite args in CanvasRenderingContext2D.{scale,translate}()

This commit is contained in:
Linus Groh 2020-05-21 01:37:48 +01:00 committed by Andreas Kling
parent b962728c4e
commit 7defc521be

View file

@ -160,13 +160,14 @@ JS::Value CanvasRenderingContext2DWrapper::scale(JS::Interpreter& interpreter)
if (!impl) if (!impl)
return {}; return {};
if (interpreter.argument_count() >= 2) { if (interpreter.argument_count() >= 2) {
auto sx = interpreter.argument(0).to_double(interpreter); auto sx = interpreter.argument(0).to_number(interpreter);
if (interpreter.exception()) if (interpreter.exception())
return {}; return {};
auto sy = interpreter.argument(1).to_double(interpreter); auto sy = interpreter.argument(1).to_number(interpreter);
if (interpreter.exception()) if (interpreter.exception())
return {}; return {};
impl->scale(sx, sy); if (sx.is_finite_number() && sy.is_finite_number())
impl->scale(sx.as_double(), sy.as_double());
} }
return JS::js_undefined(); return JS::js_undefined();
} }
@ -177,13 +178,14 @@ JS::Value CanvasRenderingContext2DWrapper::translate(JS::Interpreter& interprete
if (!impl) if (!impl)
return {}; return {};
if (interpreter.argument_count() >= 2) { if (interpreter.argument_count() >= 2) {
auto tx = interpreter.argument(0).to_double(interpreter); auto tx = interpreter.argument(0).to_number(interpreter);
if (interpreter.exception()) if (interpreter.exception())
return {}; return {};
auto ty = interpreter.argument(1).to_double(interpreter); auto ty = interpreter.argument(1).to_number(interpreter);
if (interpreter.exception()) if (interpreter.exception())
return {}; return {};
impl->translate(tx, ty); if (tx.is_finite_number() && ty.is_finite_number())
impl->translate(tx.as_double(), ty.as_double());
} }
return JS::js_undefined(); return JS::js_undefined();
} }