-
Seth Brenith authored
Now that we can represent specific weak types with Weak<T>, this CL updates the generated verifier functions so that they permit weak references only to the specified type. As an example, consider the verifier emitted for the following field in PrototypeInfo: object_create_map: Weak<Map>|Undefined; We used to emit the following, which allowed any weak reference: CHECK(object_create_map__value.IsWeakOrCleared() || object_create_map__value.GetHeapObjectOrSmi().IsOddball()); With this change, we emit a stricter check: CHECK(object_create_map__value.IsCleared() || (!object_create_map__value.IsWeak() && object_create_map__value.GetHeapObjectOrSmi().IsOddball()) || (object_create_map__value.IsWeak() && object_create_map__value.GetHeapObjectOrSmi().IsMap())); Bug: v8:7793 Change-Id: I4be236d97dedbcdd6c98207928aee8bda2a77f00 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1914613 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#64965}
72d440d9