| Index: include/v8.h
|
| diff --git a/include/v8.h b/include/v8.h
|
| index 5ab8d401f2f1e903d6f09192a5cf8f6cd1a3cc7c..44a74ed5fea97282ce307cafd3d88df161da1adc 100644
|
| --- a/include/v8.h
|
| +++ b/include/v8.h
|
| @@ -712,6 +712,7 @@ template <class T, class M> class Persistent {
|
| V8_INLINE T* operator*() const { return val_; }
|
|
|
| private:
|
| + friend class Isolate;
|
| friend class Utils;
|
| template<class F> friend class Handle;
|
| template<class F> friend class Local;
|
| @@ -2478,6 +2479,12 @@ class V8_EXPORT Function : public Object {
|
| Handle<Value> GetInferredName() const;
|
|
|
| /**
|
| + * User-defined name assigned to the "displayName" property of this function.
|
| + * Used to facilitate debugging and profiling of JavaScript code.
|
| + */
|
| + Handle<Value> GetDisplayName() const;
|
| +
|
| + /**
|
| * Returns zero based line number of function body and
|
| * kLineOffsetNotFound if no information available.
|
| */
|
| @@ -2489,6 +2496,11 @@ class V8_EXPORT Function : public Object {
|
| int GetScriptColumnNumber() const;
|
|
|
| /**
|
| + * Tells whether this function is builtin.
|
| + */
|
| + bool IsBuiltin() const;
|
| +
|
| + /**
|
| * Returns scriptId object.
|
| */
|
| V8_DEPRECATED("Use ScriptId instead", Handle<Value> GetScriptId()) const;
|
| @@ -4066,8 +4078,8 @@ class V8_EXPORT Isolate {
|
| * garbage collection types it is sufficient to provide object groups
|
| * for partially dependent handles only.
|
| */
|
| - void SetObjectGroupId(const Persistent<Value>& object,
|
| - UniqueId id);
|
| + template<typename T> void SetObjectGroupId(const Persistent<T>& object,
|
| + UniqueId id);
|
|
|
| /**
|
| * Allows the host application to declare implicit references from an object
|
| @@ -4076,8 +4088,8 @@ class V8_EXPORT Isolate {
|
| * are removed. It is intended to be used in the before-garbage-collection
|
| * callback function.
|
| */
|
| - void SetReferenceFromGroup(UniqueId id,
|
| - const Persistent<Value>& child);
|
| + template<typename T> void SetReferenceFromGroup(UniqueId id,
|
| + const Persistent<T>& child);
|
|
|
| /**
|
| * Allows the host application to declare implicit references from an object
|
| @@ -4085,8 +4097,8 @@ class V8_EXPORT Isolate {
|
| * too. After each garbage collection, all implicit references are removed. It
|
| * is intended to be used in the before-garbage-collection callback function.
|
| */
|
| - void SetReference(const Persistent<Object>& parent,
|
| - const Persistent<Value>& child);
|
| + template<typename T, typename S>
|
| + void SetReference(const Persistent<T>& parent, const Persistent<S>& child);
|
|
|
| typedef void (*GCPrologueCallback)(Isolate* isolate,
|
| GCType type,
|
| @@ -4140,8 +4152,11 @@ class V8_EXPORT Isolate {
|
| Isolate& operator=(const Isolate&);
|
| void* operator new(size_t size);
|
| void operator delete(void*, size_t);
|
| -};
|
|
|
| + void SetObjectGroupId(internal::Object** object, UniqueId id);
|
| + void SetReferenceFromGroup(UniqueId id, internal::Object** object);
|
| + void SetReference(internal::Object** parent, internal::Object** child);
|
| +};
|
|
|
| class V8_EXPORT StartupData {
|
| public:
|
| @@ -5393,7 +5408,7 @@ class Internals {
|
| static const int kNullValueRootIndex = 7;
|
| static const int kTrueValueRootIndex = 8;
|
| static const int kFalseValueRootIndex = 9;
|
| - static const int kEmptyStringRootIndex = 131;
|
| + static const int kEmptyStringRootIndex = 132;
|
|
|
| static const int kNodeClassIdOffset = 1 * kApiPointerSize;
|
| static const int kNodeFlagsOffset = 1 * kApiPointerSize + 3;
|
| @@ -5404,7 +5419,7 @@ class Internals {
|
| static const int kNodeIsIndependentShift = 4;
|
| static const int kNodeIsPartiallyDependentShift = 5;
|
|
|
| - static const int kJSObjectType = 0xb1;
|
| + static const int kJSObjectType = 0xb2;
|
| static const int kFirstNonstringType = 0x80;
|
| static const int kOddballType = 0x83;
|
| static const int kForeignType = 0x87;
|
| @@ -6420,6 +6435,33 @@ void* Isolate::GetData() {
|
| }
|
|
|
|
|
| +template<typename T>
|
| +void Isolate::SetObjectGroupId(const Persistent<T>& object,
|
| + UniqueId id) {
|
| + TYPE_CHECK(Value, T);
|
| + SetObjectGroupId(reinterpret_cast<v8::internal::Object**>(object.val_), id);
|
| +}
|
| +
|
| +
|
| +template<typename T>
|
| +void Isolate::SetReferenceFromGroup(UniqueId id,
|
| + const Persistent<T>& object) {
|
| + TYPE_CHECK(Value, T);
|
| + SetReferenceFromGroup(id,
|
| + reinterpret_cast<v8::internal::Object**>(object.val_));
|
| +}
|
| +
|
| +
|
| +template<typename T, typename S>
|
| +void Isolate::SetReference(const Persistent<T>& parent,
|
| + const Persistent<S>& child) {
|
| + TYPE_CHECK(Object, T);
|
| + TYPE_CHECK(Value, S);
|
| + SetReference(reinterpret_cast<v8::internal::Object**>(parent.val_),
|
| + reinterpret_cast<v8::internal::Object**>(child.val_));
|
| +}
|
| +
|
| +
|
| Local<Value> Context::GetEmbedderData(int index) {
|
| #ifndef V8_ENABLE_CHECKS
|
| typedef internal::Object O;
|
|
|