Index: include/v8.h |
diff --git a/include/v8.h b/include/v8.h |
index 2ccab5e38384b6c8432b9c246092dea4709fa165..55059015b19113e71a1859902c28c5f88e3780f7 100644 |
--- a/include/v8.h |
+++ b/include/v8.h |
@@ -2377,6 +2377,7 @@ class V8EXPORT Function : public Object { |
}; |
#ifndef V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT |
+// The number of required internal fields can be defined by embedder. |
#define V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT 2 |
#endif |
@@ -2489,6 +2490,12 @@ class V8EXPORT ArrayBuffer : public Object { |
}; |
+#ifndef V8_ARRAY_BUFFER_VIEW_INTERNAL_FIELD_COUNT |
+// The number of required internal fields can be defined by embedder. |
+#define V8_ARRAY_BUFFER_VIEW_INTERNAL_FIELD_COUNT 2 |
+#endif |
+ |
+ |
/** |
* A base class for an instance of one of "views" over ArrayBuffer, |
* including TypedArrays and DataView (ES6 draft 15.13). |
@@ -2516,6 +2523,9 @@ class V8EXPORT ArrayBufferView : public Object { |
V8_INLINE(static ArrayBufferView* Cast(Value* obj)); |
+ static const int kInternalFieldCount = |
+ V8_ARRAY_BUFFER_VIEW_INTERNAL_FIELD_COUNT; |
+ |
private: |
ArrayBufferView(); |
static void CheckCast(Value* obj); |
@@ -3993,8 +4003,9 @@ class V8EXPORT Isolate { |
HeapProfiler* GetHeapProfiler(); |
/** |
- * Returns CPU profiler for this isolate. Will return NULL until the isolate |
- * is initialized. |
+ * Returns CPU profiler for this isolate. Will return NULL unless the isolate |
+ * is initialized. It is the embedder's responsibility to stop all CPU |
+ * profiling activities if it has started any. |
*/ |
CpuProfiler* GetCpuProfiler(); |
@@ -4477,18 +4488,25 @@ class V8EXPORT V8 { |
ReturnAddressLocationResolver return_address_resolver); |
/** |
+ * Deprecated, use the variant with the Isolate parameter below instead. |
+ */ |
+ V8_DEPRECATED(static bool SetFunctionEntryHook(FunctionEntryHook entry_hook)); |
+ |
+ /** |
* Allows the host application to provide the address of a function that's |
* invoked on entry to every V8-generated function. |
* Note that \p entry_hook is invoked at the very start of each |
* generated function. |
* |
+ * \param isolate the isolate to operate on. |
* \param entry_hook a function that will be invoked on entry to every |
* V8-generated function. |
* \returns true on success on supported platforms, false on failure. |
- * \note Setting a new entry hook function when one is already active will |
- * fail. |
+ * \note Setting an entry hook can only be done very early in an isolates |
+ * lifetime, and once set, the entry hook cannot be revoked. |
*/ |
- static bool SetFunctionEntryHook(FunctionEntryHook entry_hook); |
+ static bool SetFunctionEntryHook(Isolate* isolate, |
+ FunctionEntryHook entry_hook); |
/** |
* Allows the host application to provide the address of a function that is |
@@ -4816,7 +4834,10 @@ class V8EXPORT TryCatch { |
v8::internal::Isolate* isolate_; |
void* next_; |
void* exception_; |
- void* message_; |
+ void* message_obj_; |
+ void* message_script_; |
+ int message_start_pos_; |
+ int message_end_pos_; |
bool is_verbose_ : 1; |
bool can_continue_ : 1; |
bool capture_message_ : 1; |
@@ -5382,7 +5403,7 @@ class Internals { |
static const int kNodeIsIndependentShift = 4; |
static const int kNodeIsPartiallyDependentShift = 5; |
- static const int kJSObjectType = 0xb0; |
+ static const int kJSObjectType = 0xb1; |
static const int kFirstNonstringType = 0x80; |
static const int kOddballType = 0x83; |
static const int kForeignType = 0x88; |
@@ -5390,11 +5411,12 @@ class Internals { |
static const int kUndefinedOddballKind = 5; |
static const int kNullOddballKind = 3; |
+ static void CheckInitializedImpl(v8::Isolate* isolate); |
+ V8_INLINE(static void CheckInitialized(v8::Isolate* isolate)) { |
#ifdef V8_ENABLE_CHECKS |
- static void CheckInitialized(v8::Isolate* isolate); |
-#else |
- static void CheckInitialized(v8::Isolate* isolate) { } |
+ CheckInitializedImpl(isolate); |
#endif |
+ } |
V8_INLINE(static bool HasHeapObjectTag(internal::Object* value)) { |
return ((reinterpret_cast<intptr_t>(value) & kHeapObjectTagMask) == |