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 {