diff --git a/src/main/java/org/htmlunit/javascript/host/Storage.java b/src/main/java/org/htmlunit/javascript/host/Storage.java index 6fac8864d8..7077db25dc 100644 --- a/src/main/java/org/htmlunit/javascript/host/Storage.java +++ b/src/main/java/org/htmlunit/javascript/host/Storage.java @@ -35,6 +35,7 @@ * @author Ahmed Ashour * @author Marc Guillemot * @author Ronald Brill + * @author Kanoko Yamamoto */ @JsxClass public class Storage extends HtmlUnitScriptable { @@ -164,7 +165,8 @@ public Object getItem(final String key) { */ @JsxFunction public void setItem(final String key, final String data) { - final long storeSize = storeSize_ + data.length(); + final String existingData = store_.get(key); + final long storeSize = storeSize_ + data.length() - (existingData != null ? existingData.length() : 0); if (storeSize > STORE_SIZE_KIMIT) { throw JavaScriptEngine.throwAsScriptRuntimeEx( new DOMException((short) 22, "QuotaExceededError: Failed to execute 'setItem' on 'Storage': "