diff --git a/Tests/LibWeb/Text/expected/Wasm/WebAssembly-instantiate.txt b/Tests/LibWeb/Text/expected/Wasm/WebAssembly-instantiate.txt
new file mode 100644
index 0000000000..a10952f22b
--- /dev/null
+++ b/Tests/LibWeb/Text/expected/Wasm/WebAssembly-instantiate.txt
@@ -0,0 +1,16 @@
+-------------
+ArrayBuffer
+-------------
+Hello from wasm!!!!!!
+FIXME: Run test for Uint8Array. Not running due to flakiness.
+FIXME: Run test for Uint8ClampedArray. Not running due to flakiness.
+FIXME: Run test for Uint16Array. Not running due to flakiness.
+FIXME: Run test for Uint32Array. Not running due to flakiness.
+FIXME: Run test for Int8Array. Not running due to flakiness.
+FIXME: Run test for Int16Array. Not running due to flakiness.
+FIXME: Run test for Float32Array. Not running due to flakiness.
+FIXME: Run test for Float64Array. Not running due to flakiness.
+FIXME: Run test for BigUint64Array. Not running due to flakiness.
+FIXME: Run test for BigInt64Array. Not running due to flakiness.
+FIXME: Run test for DataView. Not running due to flakiness.
+FIXME: Run test for WebAssembly.Module. Not running due to flakiness.
\ No newline at end of file
diff --git a/Tests/LibWeb/Text/input/Wasm/WebAssembly-instantiate.html b/Tests/LibWeb/Text/input/Wasm/WebAssembly-instantiate.html
new file mode 100644
index 0000000000..7015f87bb9
--- /dev/null
+++ b/Tests/LibWeb/Text/input/Wasm/WebAssembly-instantiate.html
@@ -0,0 +1,111 @@
+
+
diff --git a/Userland/Libraries/LibWeb/WebIDL/OverloadResolution.cpp b/Userland/Libraries/LibWeb/WebIDL/OverloadResolution.cpp
index 8678c460b2..3a5007b4ba 100644
--- a/Userland/Libraries/LibWeb/WebIDL/OverloadResolution.cpp
+++ b/Userland/Libraries/LibWeb/WebIDL/OverloadResolution.cpp
@@ -186,7 +186,7 @@ JS::ThrowCompletionOr resolve_overload(JS::VM& vm, IDL::Effect
// then remove from S all other entries.
else if (value.is_object() && is(value.as_object())
&& has_overload_with_argument_type_or_subtype_matching(overloads, i, [](IDL::Type const& type) {
- if (type.is_plain() && type.name() == "ArrayBuffer")
+ if (type.is_plain() && (type.name() == "ArrayBuffer" || type.name() == "BufferSource"))
return true;
if (type.is_object())
return true;
@@ -204,7 +204,7 @@ JS::ThrowCompletionOr resolve_overload(JS::VM& vm, IDL::Effect
// then remove from S all other entries.
else if (value.is_object() && is(value.as_object())
&& has_overload_with_argument_type_or_subtype_matching(overloads, i, [](IDL::Type const& type) {
- if (type.is_plain() && type.name() == "DataView")
+ if (type.is_plain() && (type.name() == "DataView" || type.name() == "BufferSource"))
return true;
if (type.is_object())
return true;
@@ -222,7 +222,7 @@ JS::ThrowCompletionOr resolve_overload(JS::VM& vm, IDL::Effect
// then remove from S all other entries.
else if (value.is_object() && value.as_object().is_typed_array()
&& has_overload_with_argument_type_or_subtype_matching(overloads, i, [&](IDL::Type const& type) {
- if (type.is_plain() && type.name() == static_cast(value.as_object()).element_name())
+ if (type.is_plain() && (type.name() == static_cast(value.as_object()).element_name() || type.name() == "BufferSource"))
return true;
if (type.is_object())
return true;