diff --git a/Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator.cpp b/Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator.cpp index 8b9f70f1b7..9861f8215d 100644 --- a/Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator.cpp +++ b/Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator.cpp @@ -1138,6 +1138,14 @@ static void generate_to_cpp(SourceGenerator& generator, ParameterType& parameter @js_name@@js_suffix@ = new_promise; } auto @cpp_name@ = JS::make_handle(&static_cast(@js_name@@js_suffix@.as_object())); +)~~~"); + } else if (parameter.type->name == "BufferSource") { + scoped_generator.append(R"~~~( + if (!@js_name@@js_suffix@.is_object() || !(is(@js_name@@js_suffix@.as_object()) || is(@js_name@@js_suffix@.as_object()) || is(@js_name@@js_suffix@.as_object()))) + return vm.throw_completion(global_object, JS::ErrorType::NotAnObjectOfType, "@parameter.type.name@"); + + // TODO: Should we make this a Variant? + auto @cpp_name@ = JS::make_handle(&@js_name@@js_suffix@.as_object()); )~~~"); } else if (parameter.type->name == "any") { if (!optional) { @@ -2756,6 +2764,7 @@ void generate_prototype_implementation(IDL::Interface const& interface) generator.append(R"~~~( #include #include +#include #include #include #include