From dfe418b881248b64e514c891462e8298a36a57c8 Mon Sep 17 00:00:00 2001
From: Dean Shi <dean.xiaoshi@gmail.com>
Date: Sun, 16 Jan 2022 03:58:04 -0800
Subject: [PATCH] fix: Add missing worker storage length for clear method

---
 src/worker-storage.js  | 1 +
 test/worker-storage.js | 4 ++++
 2 files changed, 5 insertions(+)

diff --git a/src/worker-storage.js b/src/worker-storage.js
index ede2911a..5820d212 100644
--- a/src/worker-storage.js
+++ b/src/worker-storage.js
@@ -30,5 +30,6 @@ export default class WorkerStorage {
 
   clear() {
     this.map.clear();
+    this.length = 0;
   }
 }
diff --git a/test/worker-storage.js b/test/worker-storage.js
index b5640df4..f43d0449 100644
--- a/test/worker-storage.js
+++ b/test/worker-storage.js
@@ -15,6 +15,7 @@ describe('WorkerStorage', function () {
       workerStorage.setItem('0', 'zero');
       workerStorage.setItem('1', 'one');
       assert.isTrue(workerStorage.key(1) === 'one');
+      assert.isTrue(workerStorage.length === 2);
     });
   });
 
@@ -23,6 +24,7 @@ describe('WorkerStorage', function () {
       const workerStorage = new WorkerStorage();
       workerStorage.setItem('0', 'zero');
       assert.isTrue(workerStorage.getItem('0') === 'zero');
+      assert.isTrue(workerStorage.length === 1);
     });
   });
 
@@ -32,6 +34,7 @@ describe('WorkerStorage', function () {
       workerStorage.setItem('0', 'zero');
       workerStorage.removeItem('0');
       assert.isTrue(workerStorage.getItem('0') === undefined);
+      assert.isTrue(workerStorage.length === 0);
     });
   });
 
@@ -43,6 +46,7 @@ describe('WorkerStorage', function () {
       workerStorage.clear();
       assert.isTrue(workerStorage.getItem('0') === undefined);
       assert.isTrue(workerStorage.getItem('1') === undefined);
+      assert.isTrue(workerStorage.length === 0);
     });
   });
 });