Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(142)

Unified Diff: src/objects-inl.h

Issue 2915793002: [api] Prototype WeakRef implementation
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/objects-debug.cc ('k') | src/objects-printer.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/objects-inl.h
diff --git a/src/objects-inl.h b/src/objects-inl.h
index 6199fc19d135743058af2ef78539abe9230aa05f..abaef8d6d4487bf10916b0f958e665086cd76853 100644
--- a/src/objects-inl.h
+++ b/src/objects-inl.h
@@ -176,6 +176,7 @@ TYPE_CHECKER(JSTypedArray, JS_TYPED_ARRAY_TYPE)
TYPE_CHECKER(JSValue, JS_VALUE_TYPE)
TYPE_CHECKER(JSWeakMap, JS_WEAK_MAP_TYPE)
TYPE_CHECKER(JSWeakSet, JS_WEAK_SET_TYPE)
+TYPE_CHECKER(JSWeakRef, JS_WEAK_REF_TYPE)
TYPE_CHECKER(Map, MAP_TYPE)
TYPE_CHECKER(MutableHeapNumber, MUTABLE_HEAP_NUMBER_TYPE)
TYPE_CHECKER(Oddball, ODDBALL_TYPE)
@@ -369,7 +370,7 @@ bool HeapObject::IsJSArrayIterator() const {
}
bool HeapObject::IsJSWeakCollection() const {
- return IsJSWeakMap() || IsJSWeakSet();
+ return IsJSWeakMap() || IsJSWeakSet() || IsJSWeakRef();
}
bool HeapObject::IsJSCollection() const { return IsJSMap() || IsJSSet(); }
@@ -677,6 +678,7 @@ CAST_ACCESSOR(JSValue)
CAST_ACCESSOR(JSWeakCollection)
CAST_ACCESSOR(JSWeakMap)
CAST_ACCESSOR(JSWeakSet)
+CAST_ACCESSOR(JSWeakRef)
CAST_ACCESSOR(LayoutDescriptor)
CAST_ACCESSOR(Map)
CAST_ACCESSOR(ModuleInfo)
@@ -2136,6 +2138,8 @@ int JSObject::GetHeaderSize(InstanceType type) {
return JSWeakMap::kSize;
case JS_WEAK_SET_TYPE:
return JSWeakSet::kSize;
+ case JS_WEAK_REF_TYPE:
+ return JSWeakRef::kSize;
case JS_PROMISE_CAPABILITY_TYPE:
return JSPromiseCapability::kSize;
case JS_PROMISE_TYPE:
@@ -6661,6 +6665,12 @@ ORDERED_HASH_TABLE_ITERATOR_ACCESSORS(kind, Object, kKindOffset)
ACCESSORS(JSWeakCollection, table, Object, kTableOffset)
ACCESSORS(JSWeakCollection, next, Object, kNextOffset)
+ACCESSORS(JSWeakRef, executor, JSFunction, kExecutorOffset)
+ACCESSORS(JSWeakRef, target, WeakCell, kTargetOffset)
+ACCESSORS(JSWeakRef, holdings, Object, kHoldingsOffset)
+SMI_ACCESSORS(JSWeakRef, flags, kFlagsOffset)
+BOOL_ACCESSORS(JSWeakRef, flags, held, kHeldBit)
+BOOL_ACCESSORS(JSWeakRef, flags, queued, kQueuedBit)
Address Foreign::foreign_address() {
return AddressFrom<Address>(READ_INTPTR_FIELD(this, kForeignAddressOffset));
@@ -6893,7 +6903,6 @@ int Code::CodeSize() { return SizeFor(body_size()); }
ACCESSORS(JSArray, length, Object, kLengthOffset)
-
void* JSArrayBuffer::backing_store() const {
intptr_t ptr = READ_INTPTR_FIELD(this, kBackingStoreOffset);
return reinterpret_cast<void*>(ptr);
« no previous file with comments | « src/objects-debug.cc ('k') | src/objects-printer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698