Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index d1488dd9d03ca8cb67f33841a7f38c33e9965ec3..be0fb6df12af30867c515782b5d6ab5979722a0d 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -3292,6 +3292,12 @@ MaybeHandle<Object> Object::SetDataProperty(LookupIterator* it, |
ASSIGN_RETURN_ON_EXCEPTION(it->isolate(), to_assign, |
Execution::ToNumber(it->isolate(), value), |
Object); |
+ // ToNumber above might modify the receiver, causing the cached |
+ // holder_map to mismatch the actual holder->map() after this point. |
+ // Reload the map to be in consistent state. Other cached state cannot |
+ // have been invalidated since typed array elements cannot be reconfigured |
+ // in any way. |
+ it->ReloadHolderMap(); |
} |
} |