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

LibWeb: Let HTMLCanvasElement.getContext() return null for unknown types

Currently we would assert. Also make it case sensitive.
This commit is contained in:
Linus Groh 2020-05-20 23:37:29 +01:00 committed by Andreas Kling
parent 50c0944767
commit abb33d425e
2 changed files with 8 additions and 10 deletions

View file

@ -74,15 +74,13 @@ JS::Value HTMLCanvasElementWrapper::get_context(JS::Interpreter& interpreter)
auto* impl = impl_from(interpreter); auto* impl = impl_from(interpreter);
if (!impl) if (!impl)
return {}; return {};
auto& arguments = interpreter.call_frame().arguments; auto context_type = interpreter.call_frame().arguments[0].to_string(interpreter);
if (arguments.size() >= 1) { if (interpreter.exception())
auto string = arguments[0].to_string(interpreter); return {};
if (interpreter.exception()) if (context_type != "2d")
return {}; return JS::js_null();
auto* context = impl->get_context(string); auto* context = impl->get_context(context_type);
return wrap(interpreter.heap(), *context); return wrap(interpreter.heap(), *context);
}
return JS::js_undefined();
} }
JS::Value HTMLCanvasElementWrapper::width_getter(JS::Interpreter& interpreter) JS::Value HTMLCanvasElementWrapper::width_getter(JS::Interpreter& interpreter)

View file

@ -76,7 +76,7 @@ RefPtr<LayoutNode> HTMLCanvasElement::create_layout_node(const StyleProperties*
CanvasRenderingContext2D* HTMLCanvasElement::get_context(String type) CanvasRenderingContext2D* HTMLCanvasElement::get_context(String type)
{ {
ASSERT(type.to_lowercase() == "2d"); ASSERT(type == "2d");
if (!m_context) if (!m_context)
m_context = CanvasRenderingContext2D::create(*this); m_context = CanvasRenderingContext2D::create(*this);
return m_context; return m_context;