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

Unified Diff: include/v8.h

Issue 11411355: Force inlining for hot interface functions. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Rebased Created 8 years 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 | no next file » | no next file with comments »
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 74f489d2ab7870bba38e7bb46dfd10b1bba93401..e93555e2b59f9c6c2a663fce683ccff9140ff77b 100644
--- a/include/v8.h
+++ b/include/v8.h
@@ -76,12 +76,20 @@
#endif // _WIN32
+#if defined(__GNUC__) && !defined(DEBUG)
+#define V8_INLINE(declarator) inline __attribute__((always_inline)) declarator
+#elif defined(_MSC_VER) && !defined(DEBUG)
+#define V8_INLINE(declarator) __forceinline declarator
+#else
+#define V8_INLINE(declarator) inline declarator
+#endif
+
#if defined(__GNUC__) && !V8_DISABLE_DEPRECATIONS
-#define V8_DEPRECATED(func) func __attribute__ ((deprecated))
+#define V8_DEPRECATED(declarator) declarator __attribute__ ((deprecated))
#elif defined(_MSC_VER) && !V8_DISABLE_DEPRECATIONS
-#define V8_DEPRECATED(func) __declspec(deprecated) func
+#define V8_DEPRECATED(declarator) __declspec(deprecated) declarator
#else
-#define V8_DEPRECATED(func) func
+#define V8_DEPRECATED(declarator) declarator
#endif
/**
@@ -184,12 +192,12 @@ template <class T> class Handle {
/**
* Creates an empty handle.
*/
- inline Handle() : val_(0) {}
+ V8_INLINE(Handle()) : val_(0) {}
/**
* Creates a new handle for the specified value.
*/
- inline explicit Handle(T* val) : val_(val) {}
+ V8_INLINE(explicit Handle(T* val)) : val_(val) {}
/**
* Creates a handle for the contents of the specified handle. This
@@ -201,7 +209,7 @@ template <class T> class Handle {
* Handle<String> to a variable declared as Handle<Value>, is legal
* because String is a subclass of Value.
*/
- template <class S> inline Handle(Handle<S> that)
+ template <class S> V8_INLINE(Handle(Handle<S> that))
: val_(reinterpret_cast<T*>(*that)) {
/**
* This check fails when trying to convert between incompatible
@@ -214,16 +222,16 @@ template <class T> class Handle {
/**
* Returns true if the handle is empty.
*/
- inline bool IsEmpty() const { return val_ == 0; }
+ V8_INLINE(bool IsEmpty() const) { return val_ == 0; }
/**
* Sets the handle to be empty. IsEmpty() will then return true.
*/
- inline void Clear() { val_ = 0; }
+ V8_INLINE(void Clear()) { val_ = 0; }
- inline T* operator->() const { return val_; }
+ V8_INLINE(T* operator->() const) { return val_; }
- inline T* operator*() const { return val_; }
+ V8_INLINE(T* operator*() const) { return val_; }
/**
* Checks whether two handles are the same.
@@ -231,7 +239,7 @@ template <class T> class Handle {
* to which they refer are identical.
* The handles' references are not checked.
*/
- template <class S> inline bool operator==(Handle<S> that) const {
+ template <class S> V8_INLINE(bool operator==(Handle<S> that) const) {
internal::Object** a = reinterpret_cast<internal::Object**>(**this);
internal::Object** b = reinterpret_cast<internal::Object**>(*that);
if (a == 0) return b == 0;
@@ -245,11 +253,11 @@ template <class T> class Handle {
* the objects to which they refer are different.
* The handles' references are not checked.
*/
- template <class S> inline bool operator!=(Handle<S> that) const {
+ template <class S> V8_INLINE(bool operator!=(Handle<S> that) const) {
return !operator==(that);
}
- template <class S> static inline Handle<T> Cast(Handle<S> that) {
+ template <class S> V8_INLINE(static Handle<T> Cast(Handle<S> that)) {
#ifdef V8_ENABLE_CHECKS
// If we're going to perform the type check then we have to check
// that the handle isn't empty before doing the checked cast.
@@ -258,7 +266,7 @@ template <class T> class Handle {
return Handle<T>(T::Cast(*that));
}
- template <class S> inline Handle<S> As() {
+ template <class S> V8_INLINE(Handle<S> As()) {
return Handle<S>::Cast(*this);
}
@@ -276,8 +284,8 @@ template <class T> class Handle {
*/
template <class T> class Local : public Handle<T> {
public:
- inline Local();
- template <class S> inline Local(Local<S> that)
+ V8_INLINE(Local());
+ template <class S> V8_INLINE(Local(Local<S> that))
: Handle<T>(reinterpret_cast<T*>(*that)) {
/**
* This check fails when trying to convert between incompatible
@@ -286,8 +294,8 @@ template <class T> class Local : public Handle<T> {
*/
TYPE_CHECK(T, S);
}
- template <class S> inline Local(S* that) : Handle<T>(that) { }
- template <class S> static inline Local<T> Cast(Local<S> that) {
+ template <class S> V8_INLINE(Local(S* that) : Handle<T>(that)) { }
+ template <class S> V8_INLINE(static Local<T> Cast(Local<S> that)) {
#ifdef V8_ENABLE_CHECKS
// If we're going to perform the type check then we have to check
// that the handle isn't empty before doing the checked cast.
@@ -296,7 +304,7 @@ template <class T> class Local : public Handle<T> {
return Local<T>(T::Cast(*that));
}
- template <class S> inline Local<S> As() {
+ template <class S> V8_INLINE(Local<S> As()) {
return Local<S>::Cast(*this);
}
@@ -304,7 +312,7 @@ template <class T> class Local : public Handle<T> {
* The referee is kept alive by the local handle even when
* the original handle is destroyed/disposed.
*/
- inline static Local<T> New(Handle<T> that);
+ V8_INLINE(static Local<T> New(Handle<T> that));
};
@@ -331,7 +339,7 @@ template <class T> class Persistent : public Handle<T> {
* Creates an empty persistent handle that doesn't point to any
* storage cell.
*/
- inline Persistent();
+ V8_INLINE(Persistent());
/**
* Creates a persistent handle for the same storage cell as the
@@ -344,7 +352,7 @@ template <class T> class Persistent : public Handle<T> {
* Persistent<String> to a variable declared as Persistent<Value>,
* is allowed as String is a subclass of Value.
*/
- template <class S> inline Persistent(Persistent<S> that)
+ template <class S> V8_INLINE(Persistent(Persistent<S> that))
: Handle<T>(reinterpret_cast<T*>(*that)) {
/**
* This check fails when trying to convert between incompatible
@@ -354,16 +362,16 @@ template <class T> class Persistent : public Handle<T> {
TYPE_CHECK(T, S);
}
- template <class S> inline Persistent(S* that) : Handle<T>(that) { }
+ template <class S> V8_INLINE(Persistent(S* that)) : Handle<T>(that) { }
/**
* "Casts" a plain handle which is known to be a persistent handle
* to a persistent handle.
*/
- template <class S> explicit inline Persistent(Handle<S> that)
+ template <class S> explicit V8_INLINE(Persistent(Handle<S> that))
: Handle<T>(*that) { }
- template <class S> static inline Persistent<T> Cast(Persistent<S> that) {
+ template <class S> V8_INLINE(static Persistent<T> Cast(Persistent<S> that)) {
#ifdef V8_ENABLE_CHECKS
// If we're going to perform the type check then we have to check
// that the handle isn't empty before doing the checked cast.
@@ -372,7 +380,7 @@ template <class T> class Persistent : public Handle<T> {
return Persistent<T>(T::Cast(*that));
}
- template <class S> inline Persistent<S> As() {
+ template <class S> V8_INLINE(Persistent<S> As()) {
return Persistent<S>::Cast(*this);
}
@@ -380,7 +388,7 @@ template <class T> class Persistent : public Handle<T> {
* Creates a new persistent handle for an existing local or
* persistent handle.
*/
- inline static Persistent<T> New(Handle<T> that);
+ V8_INLINE(static Persistent<T> New(Handle<T> that));
/**
* Releases the storage cell referenced by this persistent handle.
@@ -388,8 +396,8 @@ template <class T> class Persistent : public Handle<T> {
* This handle's reference, and any other references to the storage
* cell remain and IsEmpty will still return false.
*/
- inline void Dispose();
- inline void Dispose(Isolate* isolate);
+ V8_INLINE(void Dispose());
+ V8_INLINE(void Dispose(Isolate* isolate));
/**
* Make the reference to this object weak. When only weak handles
@@ -397,10 +405,10 @@ template <class T> class Persistent : public Handle<T> {
* callback to the given V8::WeakReferenceCallback function, passing
* it the object reference and the given parameters.
*/
- inline void MakeWeak(void* parameters, WeakReferenceCallback callback);
+ V8_INLINE(void MakeWeak(void* parameters, WeakReferenceCallback callback));
/** Clears the weak reference to this object. */
- inline void ClearWeak();
+ V8_INLINE(void ClearWeak());
/**
* Marks the reference to this object independent. Garbage collector
@@ -409,8 +417,8 @@ template <class T> class Persistent : public Handle<T> {
* assume that it will be preceded by a global GC prologue callback
* or followed by a global GC epilogue callback.
*/
- inline void MarkIndependent();
- inline void MarkIndependent(Isolate* isolate);
+ V8_INLINE(void MarkIndependent());
+ V8_INLINE(void MarkIndependent(Isolate* isolate));
/**
* Marks the reference to this object partially dependent. Partially
@@ -420,30 +428,30 @@ template <class T> class Persistent : public Handle<T> {
* subset of all external dependencies. This mark is automatically cleared
* after each garbage collection.
*/
- inline void MarkPartiallyDependent();
- inline void MarkPartiallyDependent(Isolate* isolate);
+ V8_INLINE(void MarkPartiallyDependent());
+ V8_INLINE(void MarkPartiallyDependent(Isolate* isolate));
/** Returns true if this handle was previously marked as independent. */
- inline bool IsIndependent() const;
- inline bool IsIndependent(Isolate* isolate) const;
+ V8_INLINE(bool IsIndependent() const);
+ V8_INLINE(bool IsIndependent(Isolate* isolate) const);
/** Checks if the handle holds the only reference to an object. */
- inline bool IsNearDeath() const;
+ V8_INLINE(bool IsNearDeath() const);
/** Returns true if the handle's reference is weak. */
- inline bool IsWeak() const;
+ V8_INLINE(bool IsWeak() const);
/**
* Assigns a wrapper class ID to the handle. See RetainedObjectInfo
* interface description in v8-profiler.h for details.
*/
- inline void SetWrapperClassId(uint16_t class_id);
+ V8_INLINE(void SetWrapperClassId(uint16_t class_id));
/**
* Returns the class ID previously assigned to this handle or 0 if no class
* ID was previously assigned.
*/
- inline uint16_t WrapperClassId() const;
+ V8_INLINE(uint16_t WrapperClassId() const);
private:
friend class ImplementationUtilities;
@@ -504,7 +512,7 @@ class V8EXPORT HandleScope {
internal::Object** next;
internal::Object** limit;
int level;
- inline void Initialize() {
+ V8_INLINE(void Initialize()) {
next = limit = NULL;
level = 0;
}
@@ -597,16 +605,16 @@ class V8EXPORT ScriptData { // NOLINT
*/
class ScriptOrigin {
public:
- inline ScriptOrigin(
+ V8_INLINE(ScriptOrigin(
Handle<Value> resource_name,
Handle<Integer> resource_line_offset = Handle<Integer>(),
- Handle<Integer> resource_column_offset = Handle<Integer>())
+ Handle<Integer> resource_column_offset = Handle<Integer>()))
: resource_name_(resource_name),
resource_line_offset_(resource_line_offset),
resource_column_offset_(resource_column_offset) { }
- inline Handle<Value> ResourceName() const;
- inline Handle<Integer> ResourceLineOffset() const;
- inline Handle<Integer> ResourceColumnOffset() const;
+ V8_INLINE(Handle<Value> ResourceName() const);
+ V8_INLINE(Handle<Integer> ResourceLineOffset() const);
+ V8_INLINE(Handle<Integer> ResourceColumnOffset() const);
private:
Handle<Value> resource_name_;
Handle<Integer> resource_line_offset_;
@@ -894,13 +902,13 @@ class Value : public Data {
* Returns true if this value is the undefined value. See ECMA-262
* 4.3.10.
*/
- inline bool IsUndefined() const;
+ V8_INLINE(bool IsUndefined() const);
/**
* Returns true if this value is the null value. See ECMA-262
* 4.3.11.
*/
- inline bool IsNull() const;
+ V8_INLINE(bool IsNull() const);
/**
* Returns true if this value is true.
@@ -916,7 +924,7 @@ class Value : public Data {
* Returns true if this value is an instance of the String type.
* See ECMA-262 8.4.
*/
- inline bool IsString() const;
+ V8_INLINE(bool IsString() const);
/**
* Returns true if this value is a function.
@@ -1014,9 +1022,9 @@ class Value : public Data {
V8EXPORT bool StrictEquals(Handle<Value> that) const;
private:
- inline bool QuickIsUndefined() const;
- inline bool QuickIsNull() const;
- inline bool QuickIsString() const;
+ V8_INLINE(bool QuickIsUndefined() const);
+ V8_INLINE(bool QuickIsNull() const);
+ V8_INLINE(bool QuickIsString() const);
V8EXPORT bool FullIsUndefined() const;
V8EXPORT bool FullIsNull() const;
V8EXPORT bool FullIsString() const;
@@ -1036,7 +1044,7 @@ class Primitive : public Value { };
class Boolean : public Primitive {
public:
V8EXPORT bool Value() const;
- static inline Handle<Boolean> New(bool value);
+ V8_INLINE(static Handle<Boolean> New(bool value));
};
@@ -1121,7 +1129,7 @@ class String : public Primitive {
* A zero length string.
*/
V8EXPORT static v8::Local<v8::String> Empty();
- inline static v8::Local<v8::String> Empty(Isolate* isolate);
+ V8_INLINE(static v8::Local<v8::String> Empty(Isolate* isolate));
/**
* Returns true if the string is external
@@ -1217,14 +1225,14 @@ class String : public Primitive {
* regardless of the encoding, otherwise return NULL. The encoding of the
* string is returned in encoding_out.
*/
- inline ExternalStringResourceBase* GetExternalStringResourceBase(
- Encoding* encoding_out) const;
+ V8_INLINE(ExternalStringResourceBase* GetExternalStringResourceBase(
+ Encoding* encoding_out) const);
/**
* Get the ExternalStringResource for an external string. Returns
* NULL if IsExternal() doesn't return true.
*/
- inline ExternalStringResource* GetExternalStringResource() const;
+ V8_INLINE(ExternalStringResource* GetExternalStringResource() const);
/**
* Get the ExternalAsciiStringResource for an external ASCII string.
@@ -1233,7 +1241,7 @@ class String : public Primitive {
V8EXPORT const ExternalAsciiStringResource* GetExternalAsciiStringResource()
const;
- static inline String* Cast(v8::Value* obj);
+ V8_INLINE(static String* Cast(v8::Value* obj));
/**
* Allocates a new string from either UTF-8 encoded or ASCII data.
@@ -1397,7 +1405,7 @@ class Number : public Primitive {
public:
V8EXPORT double Value() const;
V8EXPORT static Local<Number> New(double value);
- static inline Number* Cast(v8::Value* obj);
+ V8_INLINE(static Number* Cast(v8::Value* obj));
private:
V8EXPORT Number();
V8EXPORT static void CheckCast(v8::Value* obj);
@@ -1414,7 +1422,7 @@ class Integer : public Number {
V8EXPORT static Local<Integer> New(int32_t value, Isolate*);
V8EXPORT static Local<Integer> NewFromUnsigned(uint32_t value, Isolate*);
V8EXPORT int64_t Value() const;
- static inline Integer* Cast(v8::Value* obj);
+ V8_INLINE(static Integer* Cast(v8::Value* obj));
private:
V8EXPORT Integer();
V8EXPORT static void CheckCast(v8::Value* obj);
@@ -1611,7 +1619,7 @@ class Object : public Value {
V8EXPORT int InternalFieldCount();
/** Gets the value from an internal field. */
- inline Local<Value> GetInternalField(int index);
+ V8_INLINE(Local<Value> GetInternalField(int index));
/** Sets the value in an internal field. */
V8EXPORT void SetInternalField(int index, Handle<Value> value);
@@ -1629,14 +1637,15 @@ class Object : public Value {
* always 2-byte aligned, use SetAlignedPointerInInternalField instead,
* otherwise use a combination of External::New and SetInternalField.
*/
- inline V8_DEPRECATED(void SetPointerInInternalField(int index, void* value));
+ V8_DEPRECATED(V8_INLINE(void SetPointerInInternalField(int index,
+ void* value)));
/**
* Gets a 2-byte-aligned native pointer from an internal field. This field
* must have been set by SetAlignedPointerInInternalField, everything else
* leads to undefined behavior.
*/
- inline void* GetAlignedPointerFromInternalField(int index);
+ V8_INLINE(void* GetAlignedPointerFromInternalField(int index));
/**
* Sets a 2-byte-aligned native pointer in an internal field. To retrieve such
@@ -1769,7 +1778,7 @@ class Object : public Value {
Handle<Value> argv[]);
V8EXPORT static Local<Object> New();
- static inline Object* Cast(Value* obj);
+ V8_INLINE(static Object* Cast(Value* obj));
private:
V8EXPORT Object();
@@ -1798,7 +1807,7 @@ class Array : public Object {
*/
V8EXPORT static Local<Array> New(int length = 0);
- static inline Array* Cast(Value* obj);
+ V8_INLINE(static Array* Cast(Value* obj));
private:
V8EXPORT Array();
V8EXPORT static void CheckCast(Value* obj);
@@ -1838,7 +1847,7 @@ class Function : public Object {
V8EXPORT int GetScriptColumnNumber() const;
V8EXPORT Handle<Value> GetScriptId() const;
V8EXPORT ScriptOrigin GetScriptOrigin() const;
- static inline Function* Cast(Value* obj);
+ V8_INLINE(static Function* Cast(Value* obj));
V8EXPORT static const int kLineOffsetNotFound;
private:
@@ -1860,7 +1869,7 @@ class Date : public Object {
*/
V8EXPORT double NumberValue() const;
- static inline Date* Cast(v8::Value* obj);
+ V8_INLINE(static Date* Cast(v8::Value* obj));
/**
* Notification that the embedder has changed the time zone,
@@ -1893,7 +1902,7 @@ class NumberObject : public Object {
*/
V8EXPORT double NumberValue() const;
- static inline NumberObject* Cast(v8::Value* obj);
+ V8_INLINE(static NumberObject* Cast(v8::Value* obj));
private:
V8EXPORT static void CheckCast(v8::Value* obj);
@@ -1912,7 +1921,7 @@ class BooleanObject : public Object {
*/
V8EXPORT bool BooleanValue() const;
- static inline BooleanObject* Cast(v8::Value* obj);
+ V8_INLINE(static BooleanObject* Cast(v8::Value* obj));
private:
V8EXPORT static void CheckCast(v8::Value* obj);
@@ -1931,7 +1940,7 @@ class StringObject : public Object {
*/
V8EXPORT Local<String> StringValue() const;
- static inline StringObject* Cast(v8::Value* obj);
+ V8_INLINE(static StringObject* Cast(v8::Value* obj));
private:
V8EXPORT static void CheckCast(v8::Value* obj);
@@ -1978,7 +1987,7 @@ class RegExp : public Object {
*/
V8EXPORT Flags GetFlags() const;
- static inline RegExp* Cast(v8::Value* obj);
+ V8_INLINE(static RegExp* Cast(v8::Value* obj));
private:
V8EXPORT static void CheckCast(v8::Value* obj);
@@ -1992,13 +2001,13 @@ class RegExp : public Object {
class External : public Value {
public:
/** Deprecated, use New instead. */
- V8_DEPRECATED(static inline Local<Value> Wrap(void* value));
+ V8_DEPRECATED(V8_INLINE(static Local<Value> Wrap(void* value)));
/** Deprecated, use a combination of Cast and Value instead. */
- V8_DEPRECATED(static inline void* Unwrap(Handle<Value> obj));
+ V8_DEPRECATED(V8_INLINE(static void* Unwrap(Handle<Value> obj)));
V8EXPORT static Local<External> New(void* value);
- static inline External* Cast(Value* obj);
+ V8_INLINE(static External* Cast(Value* obj));
V8EXPORT void* Value() const;
private:
V8EXPORT static void CheckCast(v8::Value* obj);
@@ -2016,7 +2025,7 @@ class V8EXPORT Template : public Data {
/** Adds a property to each instance created by this template.*/
void Set(Handle<String> name, Handle<Data> value,
PropertyAttribute attributes = None);
- inline void Set(const char* name, Handle<Data> value);
+ V8_INLINE(void Set(const char* name, Handle<Data> value));
private:
Template();
@@ -2033,14 +2042,14 @@ class V8EXPORT Template : public Data {
*/
class Arguments {
public:
- inline int Length() const;
- inline Local<Value> operator[](int i) const;
- inline Local<Function> Callee() const;
- inline Local<Object> This() const;
- inline Local<Object> Holder() const;
- inline bool IsConstructCall() const;
- inline Local<Value> Data() const;
- inline Isolate* GetIsolate() const;
+ V8_INLINE(int Length() const);
+ V8_INLINE(Local<Value> operator[](int i) const);
+ V8_INLINE(Local<Function> Callee() const);
+ V8_INLINE(Local<Object> This() const);
+ V8_INLINE(Local<Object> Holder() const);
+ V8_INLINE(bool IsConstructCall() const);
+ V8_INLINE(Local<Value> Data() const);
+ V8_INLINE(Isolate* GetIsolate() const);
private:
static const int kIsolateIndex = 0;
@@ -2049,10 +2058,10 @@ class Arguments {
static const int kHolderIndex = -3;
friend class ImplementationUtilities;
- inline Arguments(internal::Object** implicit_args,
+ V8_INLINE(Arguments(internal::Object** implicit_args,
internal::Object** values,
int length,
- bool is_construct_call);
+ bool is_construct_call));
internal::Object** implicit_args_;
internal::Object** values_;
int length_;
@@ -2066,12 +2075,12 @@ class Arguments {
*/
class V8EXPORT AccessorInfo {
public:
- inline AccessorInfo(internal::Object** args)
+ V8_INLINE(AccessorInfo(internal::Object** args))
: args_(args) { }
- inline Isolate* GetIsolate() const;
- inline Local<Value> Data() const;
- inline Local<Object> This() const;
- inline Local<Object> Holder() const;
+ V8_INLINE(Isolate* GetIsolate() const);
+ V8_INLINE(Local<Value> Data() const);
+ V8_INLINE(Local<Object> This() const);
+ V8_INLINE(Local<Object> Holder() const);
private:
internal::Object** args_;
@@ -2636,7 +2645,7 @@ void V8EXPORT RegisterExtension(Extension* extension);
*/
class V8EXPORT DeclareExtension {
public:
- inline DeclareExtension(Extension* extension) {
+ V8_INLINE(DeclareExtension(Extension* extension)) {
RegisterExtension(extension);
}
};
@@ -2650,10 +2659,10 @@ Handle<Primitive> V8EXPORT Null();
Handle<Boolean> V8EXPORT True();
Handle<Boolean> V8EXPORT False();
-inline Handle<Primitive> Undefined(Isolate* isolate);
-inline Handle<Primitive> Null(Isolate* isolate);
-inline Handle<Boolean> True(Isolate* isolate);
-inline Handle<Boolean> False(Isolate* isolate);
+V8_INLINE(Handle<Primitive> Undefined(Isolate* isolate));
+V8_INLINE(Handle<Primitive> Null(Isolate* isolate));
+V8_INLINE(Handle<Boolean> True(Isolate* isolate));
+V8_INLINE(Handle<Boolean> False(Isolate* isolate));
/**
@@ -2910,13 +2919,13 @@ class V8EXPORT Isolate {
/**
* Associate embedder-specific data with the isolate
*/
- inline void SetData(void* data);
+ V8_INLINE(void SetData(void* data));
/**
* Retrieve embedder-specific data from the isolate.
* Returns NULL if SetData has never been called.
*/
- inline void* GetData();
+ V8_INLINE(void* GetData());
private:
Isolate();
@@ -3801,20 +3810,20 @@ class V8EXPORT Context {
* Gets embedder data with index 0. Deprecated, use GetEmbedderData with index
* 0 instead.
*/
- V8_DEPRECATED(inline Local<Value> GetData());
+ V8_DEPRECATED(V8_INLINE(Local<Value> GetData()));
/**
* Sets embedder data with index 0. Deprecated, use SetEmbedderData with index
* 0 instead.
*/
- V8_DEPRECATED(inline void SetData(Handle<Value> value));
+ V8_DEPRECATED(V8_INLINE(void SetData(Handle<Value> value)));
/**
* Gets the embedder data with the given index, which must have been set by a
* previous call to SetEmbedderData with the same index. Note that index 0
* currently has a special meaning for Chrome's debugger.
*/
- inline Local<Value> GetEmbedderData(int index);
+ V8_INLINE(Local<Value> GetEmbedderData(int index));
/**
* Sets the embedder data with the given index, growing the data as
@@ -3829,7 +3838,7 @@ class V8EXPORT Context {
* SetAlignedPointerInEmbedderData with the same index. Note that index 0
* currently has a special meaning for Chrome's debugger.
*/
- inline void* GetAlignedPointerFromEmbedderData(int index);
+ V8_INLINE(void* GetAlignedPointerFromEmbedderData(int index));
/**
* Sets a 2-byte-aligned native pointer in the embedder data with the given
@@ -3872,10 +3881,10 @@ class V8EXPORT Context {
*/
class Scope {
public:
- explicit inline Scope(Handle<Context> context) : context_(context) {
+ explicit V8_INLINE(Scope(Handle<Context> context)) : context_(context) {
context_->Enter();
}
- inline ~Scope() { context_->Exit(); }
+ V8_INLINE(~Scope()) { context_->Exit(); }
private:
Handle<Context> context_;
};
@@ -4116,7 +4125,7 @@ template <size_t ptr_size> struct SmiTagging;
template <> struct SmiTagging<4> {
static const int kSmiShiftSize = 0;
static const int kSmiValueSize = 31;
- static inline int SmiToInt(internal::Object* value) {
+ V8_INLINE(static int SmiToInt(internal::Object* value)) {
int shift_bits = kSmiTagSize + kSmiShiftSize;
// Throw away top 32 bits and shift down (requires >> to be sign extending).
return static_cast<int>(reinterpret_cast<intptr_t>(value)) >> shift_bits;
@@ -4127,7 +4136,7 @@ template <> struct SmiTagging<4> {
template <> struct SmiTagging<8> {
static const int kSmiShiftSize = 31;
static const int kSmiValueSize = 32;
- static inline int SmiToInt(internal::Object* value) {
+ V8_INLINE(static int SmiToInt(internal::Object* value)) {
int shift_bits = kSmiTagSize + kSmiShiftSize;
// Shift down and throw away top 32 bits.
return static_cast<int>(reinterpret_cast<intptr_t>(value) >> shift_bits);
@@ -4179,61 +4188,62 @@ class Internals {
static const int kUndefinedOddballKind = 5;
static const int kNullOddballKind = 3;
- static inline bool HasHeapObjectTag(internal::Object* value) {
+ V8_INLINE(static bool HasHeapObjectTag(internal::Object* value)) {
return ((reinterpret_cast<intptr_t>(value) & kHeapObjectTagMask) ==
kHeapObjectTag);
}
- static inline int SmiValue(internal::Object* value) {
+ V8_INLINE(static int SmiValue(internal::Object* value)) {
return PlatformSmiTagging::SmiToInt(value);
}
- static inline int GetInstanceType(internal::Object* obj) {
+ V8_INLINE(static int GetInstanceType(internal::Object* obj)) {
typedef internal::Object O;
O* map = ReadField<O*>(obj, kHeapObjectMapOffset);
return ReadField<uint8_t>(map, kMapInstanceTypeOffset);
}
- static inline int GetOddballKind(internal::Object* obj) {
+ V8_INLINE(static int GetOddballKind(internal::Object* obj)) {
typedef internal::Object O;
return SmiValue(ReadField<O*>(obj, kOddballKindOffset));
}
- static inline bool IsExternalTwoByteString(int instance_type) {
+ V8_INLINE(static bool IsExternalTwoByteString(int instance_type)) {
int representation = (instance_type & kFullStringRepresentationMask);
return representation == kExternalTwoByteRepresentationTag;
}
- static inline bool IsInitialized(v8::Isolate* isolate) {
+ V8_INLINE(static bool IsInitialized(v8::Isolate* isolate)) {
uint8_t* addr = reinterpret_cast<uint8_t*>(isolate) + kIsolateStateOffset;
return *reinterpret_cast<int*>(addr) == 1;
}
- static inline void SetEmbedderData(v8::Isolate* isolate, void* data) {
+ V8_INLINE(static void SetEmbedderData(v8::Isolate* isolate, void* data)) {
uint8_t* addr = reinterpret_cast<uint8_t*>(isolate) +
kIsolateEmbedderDataOffset;
*reinterpret_cast<void**>(addr) = data;
}
- static inline void* GetEmbedderData(v8::Isolate* isolate) {
+ V8_INLINE(static void* GetEmbedderData(v8::Isolate* isolate)) {
uint8_t* addr = reinterpret_cast<uint8_t*>(isolate) +
kIsolateEmbedderDataOffset;
return *reinterpret_cast<void**>(addr);
}
- static inline internal::Object** GetRoot(v8::Isolate* isolate, int index) {
+ V8_INLINE(static internal::Object** GetRoot(v8::Isolate* isolate,
+ int index)) {
uint8_t* addr = reinterpret_cast<uint8_t*>(isolate) + kIsolateRootsOffset;
return reinterpret_cast<internal::Object**>(addr + index * kApiPointerSize);
}
template <typename T>
- static inline T ReadField(Object* ptr, int offset) {
+ V8_INLINE(static T ReadField(Object* ptr, int offset)) {
uint8_t* addr = reinterpret_cast<uint8_t*>(ptr) + offset - kHeapObjectTag;
return *reinterpret_cast<T*>(addr);
}
template <typename T>
- static inline T ReadEmbedderData(Context* context, int index) {
+ V8_INLINE(static T ReadEmbedderData(Context* context, int index)) {
typedef internal::Object O;
typedef internal::Internals I;
O* ctx = *reinterpret_cast<O**>(context);
@@ -4245,13 +4255,13 @@ class Internals {
return I::ReadField<T>(embedder_data, value_offset);
}
- static inline bool CanCastToHeapObject(void* o) { return false; }
- static inline bool CanCastToHeapObject(Context* o) { return true; }
- static inline bool CanCastToHeapObject(String* o) { return true; }
- static inline bool CanCastToHeapObject(Object* o) { return true; }
- static inline bool CanCastToHeapObject(Message* o) { return true; }
- static inline bool CanCastToHeapObject(StackTrace* o) { return true; }
- static inline bool CanCastToHeapObject(StackFrame* o) { return true; }
+ V8_INLINE(static bool CanCastToHeapObject(void* o)) { return false; }
+ V8_INLINE(static bool CanCastToHeapObject(Context* o)) { return true; }
+ V8_INLINE(static bool CanCastToHeapObject(String* o)) { return true; }
+ V8_INLINE(static bool CanCastToHeapObject(Object* o)) { return true; }
+ V8_INLINE(static bool CanCastToHeapObject(Message* o)) { return true; }
+ V8_INLINE(static bool CanCastToHeapObject(StackTrace* o)) { return true; }
+ V8_INLINE(static bool CanCastToHeapObject(StackFrame* o)) { return true; }
};
} // namespace internal
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698