@@ -66,9 +66,9 @@ inline T* Realm::GetBindingData(
6666//  static
6767template  <typename  T>
6868inline  T* Realm::GetBindingData (v8::Local<v8::Context> context) {
69-   BindingDataStore* map = 
70-        static_cast <BindingDataStore*>(context-> GetAlignedPointerFromEmbedderData ( 
71-           ContextEmbedderIndex:: kBindingDataStoreIndex ) );
69+   Realm* realm =  GetCurrent (context); 
70+   DCHECK_NOT_NULL (realm); 
71+   BindingDataStore* map = realm-> binding_data_store ( );
7272  DCHECK_NOT_NULL (map);
7373  constexpr  size_t  binding_index = static_cast <size_t >(T::binding_type_int);
7474  static_assert (binding_index < std::tuple_size_v<BindingDataStore>);
@@ -81,10 +81,7 @@ inline T* Realm::GetBindingData(v8::Local<v8::Context> context) {
8181}
8282
8383template  <typename  T, typename ... Args>
84- inline  T* Realm::AddBindingData (v8::Local<v8::Context> context,
85-                                 v8::Local<v8::Object> target,
86-                                 Args&&... args) {
87-   DCHECK_EQ (GetCurrent (context), this );
84+ inline  T* Realm::AddBindingData (v8::Local<v8::Object> target, Args&&... args) {
8885  //  This won't compile if T is not a BaseObject subclass.
8986  static_assert (std::is_base_of_v<BaseObject, T>);
9087  //  The binding data must be weak so that it won't keep the realm reachable
@@ -93,15 +90,11 @@ inline T* Realm::AddBindingData(v8::Local<v8::Context> context,
9390  //  reachable throughout the lifetime of the realm.
9491  BaseObjectWeakPtr<T> item =
9592      MakeWeakBaseObject<T>(this , target, std::forward<Args>(args)...);
96-   DCHECK_EQ (context->GetAlignedPointerFromEmbedderData (
97-                 ContextEmbedderIndex::kBindingDataStoreIndex ),
98-             &binding_data_store_);
9993  constexpr  size_t  binding_index = static_cast <size_t >(T::binding_type_int);
10094  static_assert (binding_index < std::tuple_size_v<BindingDataStore>);
101-   //  Should not insert the binding twice .
95+   //  Each slot is expected to be assigned only once .
10296  CHECK (!binding_data_store_[binding_index]);
10397  binding_data_store_[binding_index] = item;
104-   DCHECK_EQ (GetBindingData<T>(context), item.get ());
10598  return  item.get ();
10699}
107100
0 commit comments