diff --git a/src/browser/tests/storage.html b/src/browser/tests/storage.html
index 7633293b..cb41bb3d 100644
--- a/src/browser/tests/storage.html
+++ b/src/browser/tests/storage.html
@@ -88,3 +88,12 @@
localStorage.clear();
testing.expectEqual(0, localStorage.length)
+
+
diff --git a/src/browser/webapi/storage/storage.zig b/src/browser/webapi/storage/storage.zig
index 752ef1d3..1787dfee 100644
--- a/src/browser/webapi/storage/storage.zig
+++ b/src/browser/webapi/storage/storage.zig
@@ -86,11 +86,15 @@ pub const Lookup = struct {
pub fn removeItem(self: *Lookup, key_: ?[]const u8) void {
const k = key_ orelse return;
- _ = self._data.remove(k);
+ if (self._data.get(k)) |value| {
+ self._size -= value.len;
+ _ = self._data.remove(k);
+ }
}
pub fn clear(self: *Lookup) void {
self._data.clearRetainingCapacity();
+ self._size = 0;
}
pub fn key(self: *const Lookup, index: u32) ?[]const u8 {