Fix bug with not marking array or object dirty after deleting a property
authorNick Downing <nick@ndcode.org>
Mon, 24 Jan 2022 02:20:17 +0000 (13:20 +1100)
committerNick Downing <nick@ndcode.org>
Mon, 24 Jan 2022 02:24:21 +0000 (13:24 +1100)
LazyArray.mjs
LazyObject.mjs

index f53988b..53b69fc 100644 (file)
@@ -42,7 +42,10 @@ class LazyArray extends LazyValue {
   }
 
   delete(key) {
-    delete this.array[key]
+    if (this.has(key)) {
+      this.ptr_len = null // mark dirty
+      delete this.array[key]
+    }
   }
 
   push(value) {
index 51a3e4a..895a6d3 100644 (file)
@@ -40,7 +40,10 @@ class LazyObject extends LazyValue {
   }
 
   delete(key) {
-    delete this.object[key]
+    if (this.has(key)) {
+      this.ptr_len = null // mark dirty
+      delete this.object[key]
+    }
   }
 
   keys() {