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

Unified Diff: include/v8.h

Issue 2741683004: [rename] Rename internal field to embedder field. (Closed)
Patch Set: DEPRECATE_SOON(GetInternalField) Created 3 years, 9 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 | « no previous file | include/v8-experimental.h » ('j') | include/v8-experimental.h » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: include/v8.h
diff --git a/include/v8.h b/include/v8.h
index f012b3bdd1a6137ea8db88d783781590296060f1..6e04f54ca590142ea998489bce8dad3e1a488c21 100644
--- a/include/v8.h
+++ b/include/v8.h
@@ -379,9 +379,9 @@ template <class T> class Eternal {
int index_;
};
-
+// TODO(internal): deprecate this constant soon.
static const int kInternalFieldsInWeakCallback = 2;
-
+static const int kEmbedderFieldsInWeakCallback = 2;
template <typename T>
class WeakCallbackInfo {
@@ -389,25 +389,27 @@ class WeakCallbackInfo {
typedef void (*Callback)(const WeakCallbackInfo<T>& data);
WeakCallbackInfo(Isolate* isolate, T* parameter,
- void* internal_fields[kInternalFieldsInWeakCallback],
+ void* embedder_fields[kEmbedderFieldsInWeakCallback],
Callback* callback)
: isolate_(isolate), parameter_(parameter), callback_(callback) {
- for (int i = 0; i < kInternalFieldsInWeakCallback; ++i) {
- internal_fields_[i] = internal_fields[i];
+ for (int i = 0; i < kEmbedderFieldsInWeakCallback; ++i) {
+ embedder_fields_[i] = embedder_fields[i];
}
}
V8_INLINE Isolate* GetIsolate() const { return isolate_; }
V8_INLINE T* GetParameter() const { return parameter_; }
- V8_INLINE void* GetInternalField(int index) const;
+ V8_INLINE V8_DEPRECATE_SOON("use GetEmbedderField(int index)",
+ void* GetInternalField(int index) const);
+ V8_INLINE void* GetEmbedderField(int index) const;
- V8_INLINE V8_DEPRECATED("use indexed version",
+ V8_INLINE V8_DEPRECATED("use GetEmbedderField(int index)",
void* GetInternalField1() const) {
- return internal_fields_[0];
+ return embedder_fields_[0];
}
- V8_INLINE V8_DEPRECATED("use indexed version",
+ V8_INLINE V8_DEPRECATED("use GetEmbedderField(int index)",
void* GetInternalField2() const) {
- return internal_fields_[1];
+ return embedder_fields_[1];
}
V8_DEPRECATED("Not realiable once SetSecondPassCallback() was used.",
@@ -427,16 +429,20 @@ class WeakCallbackInfo {
Isolate* isolate_;
T* parameter_;
Callback* callback_;
- void* internal_fields_[kInternalFieldsInWeakCallback];
+ void* embedder_fields_[kEmbedderFieldsInWeakCallback];
};
-
-// kParameter will pass a void* parameter back to the callback, kInternalFields
-// will pass the first two internal fields back to the callback, kFinalizer
+// kParameter will pass a void* parameter back to the callback, kEmbedderFields
+// will pass the first two embedder fields back to the callback, kFinalizer
// will pass a void* parameter back, but is invoked before the object is
// actually collected, so it can be resurrected. In the last case, it is not
// possible to request a second pass callback.
-enum class WeakCallbackType { kParameter, kInternalFields, kFinalizer };
+enum class WeakCallbackType {
+ kParameter,
+ kEmbedderFields,
+ kInternalFields = kEmbedderFields, // TODO(v8): deprecate
+ kFinalizer
+};
/**
* An object reference that is independent of any handle scope. Where
@@ -866,7 +872,7 @@ class V8_EXPORT HandleScope {
// Local::New uses CreateHandle with an Isolate* parameter.
template<class F> friend class Local;
- // Object::GetInternalField and Context::GetEmbedderData use CreateHandle with
+ // Object::GetExternalField and Context::GetEmbedderData use CreateHandle with
// a HeapObject* in their shortcuts.
friend class Object;
friend class Context;
@@ -3115,41 +3121,75 @@ class V8_EXPORT Object : public Value {
*/
Maybe<bool> SetIntegrityLevel(Local<Context> context, IntegrityLevel level);
- /** Gets the number of internal fields for this Object. */
- int InternalFieldCount();
+ /** Gets the number of embedder fields for this Object. */
+ // TODO(internal): deprecate soon
+ int V8_DEPRECATE_SOON("use EmbedderFieldCount()", InternalFieldCount());
+ int EmbedderFieldCount();
/** Same as above, but works for Persistents */
- V8_INLINE static int InternalFieldCount(
- const PersistentBase<Object>& object) {
+ // TODO(internal): deprecate soon
+ V8_INLINE static int V8_DEPRECATE_SOON(
+ "use EmbedderFieldCount()",
+ InternalFieldCount(const PersistentBase<Object>& object)) {
return object.val_->InternalFieldCount();
}
- /** Gets the value from an internal field. */
- V8_INLINE Local<Value> GetInternalField(int index);
+ /** Same as above, but works for Persistents */
+ V8_INLINE static int EmbedderFieldCount(
+ const PersistentBase<Object>& object) {
+ return object.val_->EmbedderFieldCount();
+ }
+
+ /** Gets the value from an embedder field. */
+ V8_INLINE Local<Value> V8_DEPRECATE_SOON("use GetEmbedderField",
+ GetInternalField(int index));
+
+ /** Gets the value from an embedder field. */
+ V8_INLINE Local<Value> GetEmbedderField(int index);
+
+ /** Sets the value in an embedder field. */
+ void V8_DEPRECATE_SOON("use SetEmbedderField",
+ SetInternalField(int index, Local<Value> value));
- /** Sets the value in an internal field. */
- void SetInternalField(int index, Local<Value> value);
+ /** Sets the value in an embedder field. */
+ void SetEmbedderField(int index, Local<Value> value);
/**
- * Gets a 2-byte-aligned native pointer from an internal field. This field
- * must have been set by SetAlignedPointerInInternalField, everything else
+ * Gets a 2-byte-aligned native pointer from an embedder field. This field
+ * must have been set by SetAlignedPointerInExternalField, everything else
* leads to undefined behavior.
*/
- V8_INLINE void* GetAlignedPointerFromInternalField(int index);
+ V8_INLINE void* V8_DEPRECATE_SOON(
+ "use GetAlignedPointerFromEmbedderField()",
+ GetAlignedPointerFromInternalField(int index));
+ V8_INLINE void* GetAlignedPointerFromEmbedderField(int index);
/** Same as above, but works for Persistents */
- V8_INLINE static void* GetAlignedPointerFromInternalField(
+ V8_INLINE static void* GetAlignedPointerFromEmbedderField(
const PersistentBase<Object>& object, int index) {
- return object.val_->GetAlignedPointerFromInternalField(index);
+ return object.val_->GetAlignedPointerFromEmbedderField(index);
}
+ V8_INLINE static void* V8_DEPRECATE_SOON(
+ "use GetAlignedPointerFromEmbedderField",
+ GetAlignedPointerFromInternalField(const PersistentBase<Object>& object,
+ int index)) {
+ return object.val_->GetAlignedPointerFromEmbedderField(index);
+ }
/**
- * Sets a 2-byte-aligned native pointer in an internal field. To retrieve such
+ * Sets a 2-byte-aligned native pointer in an embedder field. To retrieve such
* a field, GetAlignedPointerFromInternalField must be used, everything else
* leads to undefined behavior.
*/
- void SetAlignedPointerInInternalField(int index, void* value);
- void SetAlignedPointerInInternalFields(int argc, int indices[],
+ void V8_DEPRECATE_SOON("use SetAlignedPointerInEmbedderField",
+ SetAlignedPointerInInternalField(int index,
+ void* value));
+ void V8_DEPRECATE_SOON("use SetAlignedPointerInInternalFields",
+ SetAlignedPointerInInternalFields(int argc,
+ int indices[],
+ void* values[]));
+ void SetAlignedPointerInEmbedderField(int index, void* value);
+ void SetAlignedPointerInEmbedderFields(int argc, int indices[],
void* values[]);
// Testers for local properties.
@@ -3313,8 +3353,8 @@ class V8_EXPORT Object : public Value {
private:
Object();
static void CheckCast(Value* obj);
- Local<Value> SlowGetInternalField(int index);
- void* SlowGetAlignedPointerFromInternalField(int index);
+ Local<Value> SlowGetEmbedderField(int index);
+ void* SlowGetAlignedPointerFromEmbedderField(int index);
};
@@ -3933,12 +3973,21 @@ class V8_EXPORT WasmCompiledModule : public Object {
static void CheckCast(Value* obj);
};
+#ifndef V8_ARRAY_BUFFER_EMBEDDER_FIELD_COUNT
+// The number of required embedder fields for array buffers.
+#define V8_ARRAY_BUFFER_EMBEDDER_FIELD_COUNT 2
+#endif
+
+// TODO(v8): deprecate this constant in favor of {..._EMBEDDER_FIELD_COUNT}
#ifndef V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT
-// The number of required internal fields can be defined by embedder.
+// The number of required embedder fields for array buffers.
#define V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT 2
+#else
+#undef V8_ARRAY_BUFFER_EMBEDDER_FIELD_COUNT
+#define V8_ARRAY_BUFFER_EMBEDDER_FIELD_COUNT \
+ V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT
#endif
-
enum class ArrayBufferCreationMode { kInternalized, kExternalized };
@@ -4082,7 +4131,9 @@ class V8_EXPORT ArrayBuffer : public Object {
V8_INLINE static ArrayBuffer* Cast(Value* obj);
- static const int kInternalFieldCount = V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT;
+ // TODO(internal)
+ static const int kInternalFieldCount = V8_ARRAY_BUFFER_EMBEDDER_FIELD_COUNT;
+ static const int kEmbedderFieldCount = V8_ARRAY_BUFFER_EMBEDDER_FIELD_COUNT;
private:
ArrayBuffer();
@@ -4091,10 +4142,20 @@ class V8_EXPORT ArrayBuffer : public Object {
#ifndef V8_ARRAY_BUFFER_VIEW_INTERNAL_FIELD_COUNT
-// The number of required internal fields can be defined by embedder.
+// The number of required embedder fields can be defined by embedder.
#define V8_ARRAY_BUFFER_VIEW_INTERNAL_FIELD_COUNT 2
#endif
+// TODO(internal): deprecate this constant in favor of
+// {..._EMBEDDER_FIELD_COUNT}
+#ifndef V8_ARRAY_BUFFER_VIEW_INTERNAL_FIELD_COUNT
+// The number of required embedder fields can be defined by embedder.
+#define V8_ARRAY_BUFFER_VIEW_INTERNAL_FIELD_COUNT 2
+#else
+#undef V8_ARRAY_BUFFER_VIEW_EMBEDDER_FIELD_COUNT
+#define V8_ARRAY_BUFFER_VIEW_EMBEDDER_FIELD_COUNT \
+ V8_ARRAY_BUFFER_VIEW_INTERNAL_FIELD_COUNT
+#endif
/**
* A base class for an instance of one of "views" over ArrayBuffer,
@@ -4135,7 +4196,9 @@ class V8_EXPORT ArrayBufferView : public Object {
V8_INLINE static ArrayBufferView* Cast(Value* obj);
static const int kInternalFieldCount =
- V8_ARRAY_BUFFER_VIEW_INTERNAL_FIELD_COUNT;
+ V8_ARRAY_BUFFER_VIEW_EMBEDDER_FIELD_COUNT;
+ static const int kEmbedderFieldCount =
+ V8_ARRAY_BUFFER_VIEW_EMBEDDER_FIELD_COUNT;
private:
ArrayBufferView();
@@ -4424,7 +4487,9 @@ class V8_EXPORT SharedArrayBuffer : public Object {
V8_INLINE static SharedArrayBuffer* Cast(Value* obj);
- static const int kInternalFieldCount = V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT;
+ // TODO(internal): deprecate
+ static const int kInternalFieldCount = V8_ARRAY_BUFFER_EMBEDDER_FIELD_COUNT;
+ static const int kEmbedderFieldCount = V8_ARRAY_BUFFER_EMBEDDER_FIELD_COUNT;
private:
SharedArrayBuffer();
@@ -5538,16 +5603,18 @@ class V8_EXPORT ObjectTemplate : public Template {
Local<Value> data = Local<Value>());
/**
- * Gets the number of internal fields for objects generated from
+ * Gets the number of embedder fields for objects generated from
* this template.
*/
int InternalFieldCount();
+ int EmbedderFieldCount();
/**
- * Sets the number of internal fields for objects generated from
+ * Sets the number of embedder fields for objects generated from
* this template.
*/
void SetInternalFieldCount(int value);
+ void SetEmbedderFieldCount(int value);
/**
* Returns true if the object will be an immutable prototype exotic object.
@@ -6243,13 +6310,13 @@ class V8_EXPORT EmbedderHeapTracer {
};
/**
- * Called by v8 to register internal fields of found wrappers.
+ * Called by v8 to register embedder fields of found wrappers.
*
* The embedder is expected to store them somewhere and trace reachable
* wrappers from them when called through |AdvanceTracing|.
*/
virtual void RegisterV8References(
- const std::vector<std::pair<void*, void*> >& internal_fields) = 0;
+ const std::vector<std::pair<void*, void*> >& embedder_fields) = 0;
/**
* Called at the beginning of a GC cycle.
@@ -6301,32 +6368,47 @@ class V8_EXPORT EmbedderHeapTracer {
/**
* Callback and supporting data used in SnapshotCreator to implement embedder
- * logic to serialize internal fields.
+ * logic to serialize embedder fields.
*/
-struct SerializeInternalFieldsCallback {
+class SerializeEmbedderFieldsCallback {
+ public:
typedef StartupData (*CallbackFunction)(Local<Object> holder, int index,
void* data);
- SerializeInternalFieldsCallback(CallbackFunction function = nullptr,
+ SerializeEmbedderFieldsCallback(CallbackFunction function = nullptr,
void* data_arg = nullptr)
: callback(function), data(data_arg) {}
CallbackFunction callback;
void* data;
};
+class SerializeInternalFieldsCallback : public SerializeEmbedderFieldsCallback {
+ public:
+ SerializeInternalFieldsCallback(CallbackFunction function = nullptr,
+ void* data_arg = nullptr)
+ : SerializeEmbedderFieldsCallback(function, data_arg) {}
+};
/**
* Callback and supporting data used to implement embedder logic to deserialize
- * internal fields.
+ * embedder fields.
*/
-struct DeserializeInternalFieldsCallback {
+class DeserializeEmbedderFieldsCallback {
+ public:
typedef void (*CallbackFunction)(Local<Object> holder, int index,
StartupData payload, void* data);
- DeserializeInternalFieldsCallback(CallbackFunction function = nullptr,
+ DeserializeEmbedderFieldsCallback(CallbackFunction function = nullptr,
void* data_arg = nullptr)
: callback(function), data(data_arg) {}
void (*callback)(Local<Object> holder, int index, StartupData payload,
void* data);
void* data;
};
+class DeserializeInternalFieldsCallback
+ : public DeserializeEmbedderFieldsCallback {
+ public:
+ DeserializeInternalFieldsCallback(CallbackFunction function = nullptr,
+ void* data_arg = nullptr)
+ : DeserializeEmbedderFieldsCallback(function, data_arg) {}
+};
/**
* Isolate represents an isolated instance of the V8 engine. V8 isolates have
@@ -7645,9 +7727,9 @@ class V8_EXPORT V8 {
WeakCallbackType type);
static void MakeWeak(internal::Object** location, void* data,
// Must be 0 or -1.
- int internal_field_index1,
+ int embedder_field_index1,
// Must be 1 or -1.
- int internal_field_index2,
+ int embedder_field_index2,
WeakCallbackInfo<void>::Callback weak_callback);
static void MakeWeak(internal::Object*** location_addr);
static void* ClearWeak(internal::Object** location);
@@ -7664,7 +7746,7 @@ class V8_EXPORT V8 {
static void FromJustIsNothing();
static void ToLocalEmpty();
- static void InternalFieldOutOfBounds(int index);
+ static void EmbedderFieldOutOfBounds(int index);
template <class T> friend class Local;
template <class T>
friend class MaybeLocal;
@@ -7714,13 +7796,13 @@ class V8_EXPORT SnapshotCreator {
* Add additional context to be included in the snapshot blob.
* The snapshot will include the global proxy.
*
- * \param callback optional callback to serialize internal fields.
+ * \param callback optional callback to serialize embedder fields.
*
* \returns the index of the context in the snapshot blob.
*/
size_t AddContext(Local<Context> context,
- SerializeInternalFieldsCallback callback =
- SerializeInternalFieldsCallback());
+ SerializeEmbedderFieldsCallback callback =
+ SerializeEmbedderFieldsCallback());
/**
* Add a template to be included in the snapshot blob.
@@ -8049,8 +8131,8 @@ class V8_EXPORT Context {
* \param context_snapshot_index The index of the context snapshot to
* deserialize from. Use v8::Context::New for the default snapshot.
*
- * \param internal_fields_deserializer Optional callback to deserialize
- * internal fields. It should match the SerializeInternalFieldCallback used
+ * \param embedder_fields_deserializer Optional callback to deserialize
+ * embedder fields. It should match the SerializeInternalFieldCallback used
* to serialize.
*
* \param extensions See v8::Context::New.
@@ -8060,8 +8142,8 @@ class V8_EXPORT Context {
static MaybeLocal<Context> FromSnapshot(
Isolate* isolate, size_t context_snapshot_index,
- DeserializeInternalFieldsCallback internal_fields_deserializer =
- DeserializeInternalFieldsCallback(),
+ DeserializeEmbedderFieldsCallback embedder_fields_deserializer =
+ DeserializeEmbedderFieldsCallback(),
ExtensionConfiguration* extensions = nullptr,
MaybeLocal<Value> global_object = MaybeLocal<Value>());
@@ -8635,15 +8717,18 @@ Local<T> MaybeLocal<T>::ToLocalChecked() {
return Local<T>(val_);
}
-
template <class T>
-void* WeakCallbackInfo<T>::GetInternalField(int index) const {
+void* WeakCallbackInfo<T>::GetEmbedderField(int index) const {
#ifdef V8_ENABLE_CHECKS
- if (index < 0 || index >= kInternalFieldsInWeakCallback) {
- V8::InternalFieldOutOfBounds(index);
+ if (index < 0 || index >= kEmbedderFieldsInWeakCallback) {
+ V8::EmbedderFieldOutOfBounds(index);
}
#endif
- return internal_fields_[index];
+ return embedder_fields_[index];
+}
+template <class T>
+void* WeakCallbackInfo<T>::GetInternalField(int index) const {
+ return WeakCallbackInfo<T>::GetEmbedderField(index);
}
@@ -9066,15 +9151,14 @@ void Template::Set(Isolate* isolate, const char* name, Local<Data> value) {
value);
}
-
-Local<Value> Object::GetInternalField(int index) {
+Local<Value> Object::GetEmbedderField(int index) {
#ifndef V8_ENABLE_CHECKS
typedef internal::Object O;
typedef internal::HeapObject HO;
typedef internal::Internals I;
O* obj = *reinterpret_cast<O**>(this);
// Fast path: If the object is a plain JSObject, which is the common case, we
- // know where to find the internal fields and can return the value directly.
+ // know where to find the embedder fields and can return the value directly.
auto instance_type = I::GetInstanceType(obj);
if (instance_type == I::kJSObjectType ||
instance_type == I::kJSApiObjectType) {
@@ -9084,17 +9168,20 @@ Local<Value> Object::GetInternalField(int index) {
return Local<Value>(reinterpret_cast<Value*>(result));
}
#endif
- return SlowGetInternalField(index);
+ return SlowGetEmbedderField(index);
}
+Local<Value> Object::GetInternalField(int index) {
+ return GetEmbedderField(index); // non-deprecated method.
+}
-void* Object::GetAlignedPointerFromInternalField(int index) {
+void* Object::GetAlignedPointerFromEmbedderField(int index) {
#ifndef V8_ENABLE_CHECKS
typedef internal::Object O;
typedef internal::Internals I;
O* obj = *reinterpret_cast<O**>(this);
// Fast path: If the object is a plain JSObject, which is the common case, we
- // know where to find the internal fields and can return the value directly.
+ // know where to find the embedder fields and can return the value directly.
auto instance_type = I::GetInstanceType(obj);
if (V8_LIKELY(instance_type == I::kJSObjectType ||
instance_type == I::kJSApiObjectType)) {
@@ -9102,7 +9189,11 @@ void* Object::GetAlignedPointerFromInternalField(int index) {
return I::ReadField<void*>(obj, offset);
}
#endif
- return SlowGetAlignedPointerFromInternalField(index);
+ return SlowGetAlignedPointerFromEmbedderField(index);
+}
+
+void* Object::GetAlignedPointerFromInternalField(int index) {
+ return GetAlignedPointerFromEmbedderField(index); // non-deprecated method.
}
String* String::Cast(v8::Value* value) {
« no previous file with comments | « no previous file | include/v8-experimental.h » ('j') | include/v8-experimental.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698