diff --git a/src/dawn/common/ityp_stack_vec.h b/src/dawn/common/ityp_stack_vec.h
index 45aa917..875a813 100644
--- a/src/dawn/common/ityp_stack_vec.h
+++ b/src/dawn/common/ityp_stack_vec.h
@@ -29,7 +29,6 @@
 #define SRC_DAWN_COMMON_ITYP_STACK_VEC_H_
 
 #include <limits>
-#include <vector>
 
 #include "absl/container/inlined_vector.h"
 #include "dawn/common/Assert.h"
@@ -48,10 +47,18 @@
     explicit stack_vec(Index size) : Base() { Base::resize(static_cast<I>(size)); }
 
     Value& operator[](Index i) {
+#if !defined(ABSL_OPTION_HARDENED) || ABSL_OPTION_HARDENED == 0
+        // Insert our own bounds check if not already enabled in absl
+        DAWN_CHECK(i < size());
+#endif
         return Base::operator[](static_cast<I>(i));
     }
 
     constexpr const Value& operator[](Index i) const {
+#if !defined(ABSL_OPTION_HARDENED) || ABSL_OPTION_HARDENED == 0
+        // Insert our own bounds check if not already enabled in absl
+        DAWN_CHECK(i < size());
+#endif
         return Base::operator[](static_cast<I>(i));
     }
 
@@ -60,7 +67,6 @@
     void reserve(Index size) { Base::reserve(static_cast<I>(size)); }
 
     Value* data() { return Base::data(); }
-
     const Value* data() const { return Base::data(); }
 
     Index size() const { return Index(static_cast<I>(Base::size())); }
diff --git a/src/dawn/tests/unittests/ITypStackVecTests.cpp b/src/dawn/tests/unittests/ITypStackVecTests.cpp
index a56268c..b982da5 100644
--- a/src/dawn/tests/unittests/ITypStackVecTests.cpp
+++ b/src/dawn/tests/unittests/ITypStackVecTests.cpp
@@ -73,7 +73,6 @@
     }
 
     StackVec vec(Key(10));
-
     EXPECT_DEATH(vec[Key(10)], "");
 
     const StackVec& constVec = vec;
