diff --git a/src/dawn/node/binding/Converter.cpp b/src/dawn/node/binding/Converter.cpp
index 31a293d..98c1619 100644
--- a/src/dawn/node/binding/Converter.cpp
+++ b/src/dawn/node/binding/Converter.cpp
@@ -153,20 +153,15 @@
 bool Converter::Convert(BufferSource& out, interop::BufferSource in) {
     out = {};
     if (auto* view = std::get_if<interop::ArrayBufferView>(&in)) {
-        return std::visit(
+        std::visit(
             [&](auto&& v) {
                 auto arr = v.ArrayBuffer();
-                if (v.ByteOffset() + v.ByteLength() > arr.ByteLength()) {
-                    Napi::Error::New(env, "offset + length exceeds underlying buffer size")
-                        .ThrowAsJavaScriptException();
-                    return false;
-                }
                 out.data = static_cast<uint8_t*>(arr.Data()) + v.ByteOffset();
                 out.size = v.ByteLength();
                 out.bytesPerElement = v.ElementSize();
-                return true;
             },
             *view);
+        return true;
     }
     if (auto* arr = std::get_if<interop::ArrayBuffer>(&in)) {
         out.data = arr->Data();
