Index: include/v8.h |
diff --git a/include/v8.h b/include/v8.h |
index bc2f5e7630c8c8722807bcd04358ca9a4b7c2d97..5d8c1952e30510ee4c72521050a7b1d0211b7edc 100644 |
--- a/include/v8.h |
+++ b/include/v8.h |
@@ -611,7 +611,7 @@ class V8EXPORT ScriptData { // NOLINT |
/** |
* The origin, within a file, of a script. |
*/ |
-class V8EXPORT ScriptOrigin { |
+class ScriptOrigin { |
public: |
V8_INLINE(ScriptOrigin( |
Handle<Value> resource_name, |
@@ -904,7 +904,7 @@ class V8EXPORT StackFrame { |
/** |
* The superclass of all JavaScript values and objects. |
*/ |
-class V8EXPORT Value : public Data { |
+class Value : public Data { |
public: |
/** |
* Returns true if this value is the undefined value. See ECMA-262 |
@@ -921,12 +921,12 @@ class V8EXPORT Value : public Data { |
/** |
* Returns true if this value is true. |
*/ |
- bool IsTrue() const; |
+ V8EXPORT bool IsTrue() const; |
/** |
* Returns true if this value is false. |
*/ |
- bool IsFalse() const; |
+ V8EXPORT bool IsFalse() const; |
/** |
* Returns true if this value is an instance of the String type. |
@@ -937,121 +937,121 @@ class V8EXPORT Value : public Data { |
/** |
* Returns true if this value is a function. |
*/ |
- bool IsFunction() const; |
+ V8EXPORT bool IsFunction() const; |
/** |
* Returns true if this value is an array. |
*/ |
- bool IsArray() const; |
+ V8EXPORT bool IsArray() const; |
/** |
* Returns true if this value is an object. |
*/ |
- bool IsObject() const; |
+ V8EXPORT bool IsObject() const; |
/** |
* Returns true if this value is boolean. |
*/ |
- bool IsBoolean() const; |
+ V8EXPORT bool IsBoolean() const; |
/** |
* Returns true if this value is a number. |
*/ |
- bool IsNumber() const; |
+ V8EXPORT bool IsNumber() const; |
/** |
* Returns true if this value is external. |
*/ |
- bool IsExternal() const; |
+ V8EXPORT bool IsExternal() const; |
/** |
* Returns true if this value is a 32-bit signed integer. |
*/ |
- bool IsInt32() const; |
+ V8EXPORT bool IsInt32() const; |
/** |
* Returns true if this value is a 32-bit unsigned integer. |
*/ |
- bool IsUint32() const; |
+ V8EXPORT bool IsUint32() const; |
/** |
* Returns true if this value is a Date. |
*/ |
- bool IsDate() const; |
+ V8EXPORT bool IsDate() const; |
/** |
* Returns true if this value is a Boolean object. |
*/ |
- bool IsBooleanObject() const; |
+ V8EXPORT bool IsBooleanObject() const; |
/** |
* Returns true if this value is a Number object. |
*/ |
- bool IsNumberObject() const; |
+ V8EXPORT bool IsNumberObject() const; |
/** |
* Returns true if this value is a String object. |
*/ |
- bool IsStringObject() const; |
+ V8EXPORT bool IsStringObject() const; |
/** |
* Returns true if this value is a NativeError. |
*/ |
- bool IsNativeError() const; |
+ V8EXPORT bool IsNativeError() const; |
/** |
* Returns true if this value is a RegExp. |
*/ |
- bool IsRegExp() const; |
+ V8EXPORT bool IsRegExp() const; |
- Local<Boolean> ToBoolean() const; |
- Local<Number> ToNumber() const; |
- Local<String> ToString() const; |
- Local<String> ToDetailString() const; |
- Local<Object> ToObject() const; |
- Local<Integer> ToInteger() const; |
- Local<Uint32> ToUint32() const; |
- Local<Int32> ToInt32() const; |
+ V8EXPORT Local<Boolean> ToBoolean() const; |
+ V8EXPORT Local<Number> ToNumber() const; |
+ V8EXPORT Local<String> ToString() const; |
+ V8EXPORT Local<String> ToDetailString() const; |
+ V8EXPORT Local<Object> ToObject() const; |
+ V8EXPORT Local<Integer> ToInteger() const; |
+ V8EXPORT Local<Uint32> ToUint32() const; |
+ V8EXPORT Local<Int32> ToInt32() const; |
/** |
* Attempts to convert a string to an array index. |
* Returns an empty handle if the conversion fails. |
*/ |
- Local<Uint32> ToArrayIndex() const; |
+ V8EXPORT Local<Uint32> ToArrayIndex() const; |
- bool BooleanValue() const; |
- double NumberValue() const; |
- int64_t IntegerValue() const; |
- uint32_t Uint32Value() const; |
- int32_t Int32Value() const; |
+ V8EXPORT bool BooleanValue() const; |
+ V8EXPORT double NumberValue() const; |
+ V8EXPORT int64_t IntegerValue() const; |
+ V8EXPORT uint32_t Uint32Value() const; |
+ V8EXPORT int32_t Int32Value() const; |
/** JS == */ |
- bool Equals(Handle<Value> that) const; |
- bool StrictEquals(Handle<Value> that) const; |
+ V8EXPORT bool Equals(Handle<Value> that) const; |
+ V8EXPORT bool StrictEquals(Handle<Value> that) const; |
private: |
V8_INLINE(bool QuickIsUndefined() const); |
V8_INLINE(bool QuickIsNull() const); |
V8_INLINE(bool QuickIsString() const); |
- bool FullIsUndefined() const; |
- bool FullIsNull() const; |
- bool FullIsString() const; |
+ V8EXPORT bool FullIsUndefined() const; |
+ V8EXPORT bool FullIsNull() const; |
+ V8EXPORT bool FullIsString() const; |
}; |
/** |
* The superclass of primitive values. See ECMA-262 4.3.2. |
*/ |
-class V8EXPORT Primitive : public Value { }; |
+class Primitive : public Value { }; |
/** |
* A primitive boolean value (ECMA-262, 4.3.14). Either the true |
* or false value. |
*/ |
-class V8EXPORT Boolean : public Primitive { |
+class Boolean : public Primitive { |
public: |
- bool Value() const; |
+ V8EXPORT bool Value() const; |
V8_INLINE(static Handle<Boolean> New(bool value)); |
}; |
@@ -1059,24 +1059,23 @@ class V8EXPORT Boolean : public Primitive { |
/** |
* A JavaScript string value (ECMA-262, 4.3.17). |
*/ |
-class V8EXPORT String : public Primitive { |
+class String : public Primitive { |
public: |
enum Encoding { |
UNKNOWN_ENCODING = 0x1, |
TWO_BYTE_ENCODING = 0x0, |
- ASCII_ENCODING = 0x4, |
- ONE_BYTE_ENCODING = 0x4 |
+ ASCII_ENCODING = 0x4 |
}; |
/** |
* Returns the number of characters in this string. |
*/ |
- int Length() const; |
+ V8EXPORT int Length() const; |
/** |
* Returns the number of bytes in the UTF-8 encoded |
* representation of this string. |
*/ |
- int Utf8Length() const; |
+ V8EXPORT int Utf8Length() const; |
/** |
* A fast conservative check for non-ASCII characters. May |
@@ -1084,12 +1083,7 @@ class V8EXPORT String : public Primitive { |
* false you can be sure that all characters are in the range |
* 0-127. |
*/ |
- bool MayContainNonAscii() const; |
- |
- /** |
- * Returns whether this string contains only one byte data. |
- */ |
- bool IsOneByte() const; |
+ V8EXPORT bool MayContainNonAscii() const; |
/** |
* Write the contents of the string to an external buffer. |
@@ -1124,41 +1118,36 @@ class V8EXPORT String : public Primitive { |
}; |
// 16-bit character codes. |
- int Write(uint16_t* buffer, |
- int start = 0, |
- int length = -1, |
- int options = NO_OPTIONS) const; |
+ V8EXPORT int Write(uint16_t* buffer, |
+ int start = 0, |
+ int length = -1, |
+ int options = NO_OPTIONS) const; |
// ASCII characters. |
- int WriteAscii(char* buffer, |
- int start = 0, |
- int length = -1, |
- int options = NO_OPTIONS) const; |
- // One byte characters. |
- int WriteOneByte(uint8_t* buffer, |
- int start = 0, |
- int length = -1, |
- int options = NO_OPTIONS) const; |
+ V8EXPORT int WriteAscii(char* buffer, |
+ int start = 0, |
+ int length = -1, |
+ int options = NO_OPTIONS) const; |
// UTF-8 encoded characters. |
- int WriteUtf8(char* buffer, |
- int length = -1, |
- int* nchars_ref = NULL, |
- int options = NO_OPTIONS) const; |
+ V8EXPORT int WriteUtf8(char* buffer, |
+ int length = -1, |
+ int* nchars_ref = NULL, |
+ int options = NO_OPTIONS) const; |
/** |
* A zero length string. |
*/ |
- static v8::Local<v8::String> Empty(); |
+ V8EXPORT static v8::Local<v8::String> Empty(); |
V8_INLINE(static v8::Local<v8::String> Empty(Isolate* isolate)); |
/** |
* Returns true if the string is external |
*/ |
- bool IsExternal() const; |
+ V8EXPORT bool IsExternal() const; |
/** |
* Returns true if the string is both external and ASCII |
*/ |
- bool IsExternalAscii() const; |
+ V8EXPORT bool IsExternalAscii() const; |
class V8EXPORT ExternalStringResourceBase { // NOLINT |
public: |
@@ -1239,8 +1228,6 @@ class V8EXPORT String : public Primitive { |
ExternalAsciiStringResource() {} |
}; |
- typedef ExternalAsciiStringResource ExternalOneByteStringResource; |
- |
/** |
* If the string is an external string, return the ExternalStringResourceBase |
* regardless of the encoding, otherwise return NULL. The encoding of the |
@@ -1259,7 +1246,8 @@ class V8EXPORT String : public Primitive { |
* Get the ExternalAsciiStringResource for an external ASCII string. |
* Returns NULL if IsExternalAscii() doesn't return true. |
*/ |
- const ExternalAsciiStringResource* GetExternalAsciiStringResource() const; |
+ V8EXPORT const ExternalAsciiStringResource* GetExternalAsciiStringResource() |
+ const; |
V8_INLINE(static String* Cast(v8::Value* obj)); |
@@ -1268,19 +1256,20 @@ class V8EXPORT String : public Primitive { |
* The second parameter 'length' gives the buffer length. If omitted, |
* the function calls 'strlen' to determine the buffer length. |
*/ |
- static Local<String> New(const char* data, int length = -1); |
+ V8EXPORT static Local<String> New(const char* data, int length = -1); |
/** Allocates a new string from 16-bit character codes.*/ |
- static Local<String> New(const uint16_t* data, int length = -1); |
+ V8EXPORT static Local<String> New(const uint16_t* data, int length = -1); |
/** Creates a symbol. Returns one if it exists already.*/ |
- static Local<String> NewSymbol(const char* data, int length = -1); |
+ V8EXPORT static Local<String> NewSymbol(const char* data, int length = -1); |
/** |
* Creates a new string by concatenating the left and the right strings |
* passed in as parameters. |
*/ |
- static Local<String> Concat(Handle<String> left, Handle<String> right); |
+ V8EXPORT static Local<String> Concat(Handle<String> left, |
+ Handle<String> right); |
/** |
* Creates a new external string using the data defined in the given |
@@ -1290,7 +1279,7 @@ class V8EXPORT String : public Primitive { |
* should the underlying buffer be deallocated or modified except through the |
* destructor of the external string resource. |
*/ |
- static Local<String> NewExternal(ExternalStringResource* resource); |
+ V8EXPORT static Local<String> NewExternal(ExternalStringResource* resource); |
/** |
* Associate an external string resource with this string by transforming it |
@@ -1301,7 +1290,7 @@ class V8EXPORT String : public Primitive { |
* The string is not modified if the operation fails. See NewExternal for |
* information on the lifetime of the resource. |
*/ |
- bool MakeExternal(ExternalStringResource* resource); |
+ V8EXPORT bool MakeExternal(ExternalStringResource* resource); |
/** |
* Creates a new external string using the ASCII data defined in the given |
@@ -1310,8 +1299,8 @@ class V8EXPORT String : public Primitive { |
* this function should not otherwise delete or modify the resource. Neither |
* should the underlying buffer be deallocated or modified except through the |
* destructor of the external string resource. |
- */ |
- static Local<String> NewExternal(ExternalAsciiStringResource* resource); |
+ */ V8EXPORT static Local<String> NewExternal( |
+ ExternalAsciiStringResource* resource); |
/** |
* Associate an external string resource with this string by transforming it |
@@ -1322,18 +1311,20 @@ class V8EXPORT String : public Primitive { |
* The string is not modified if the operation fails. See NewExternal for |
* information on the lifetime of the resource. |
*/ |
- bool MakeExternal(ExternalAsciiStringResource* resource); |
+ V8EXPORT bool MakeExternal(ExternalAsciiStringResource* resource); |
/** |
* Returns true if this string can be made external. |
*/ |
- bool CanMakeExternal(); |
+ V8EXPORT bool CanMakeExternal(); |
/** Creates an undetectable string from the supplied ASCII or UTF-8 data.*/ |
- static Local<String> NewUndetectable(const char* data, int length = -1); |
+ V8EXPORT static Local<String> NewUndetectable(const char* data, |
+ int length = -1); |
/** Creates an undetectable string from the supplied 16-bit character codes.*/ |
- static Local<String> NewUndetectable(const uint16_t* data, int length = -1); |
+ V8EXPORT static Local<String> NewUndetectable(const uint16_t* data, |
+ int length = -1); |
/** |
* Converts an object to a UTF-8-encoded character array. Useful if |
@@ -1404,63 +1395,63 @@ class V8EXPORT String : public Primitive { |
}; |
private: |
- void VerifyExternalStringResourceBase(ExternalStringResourceBase* v, |
- Encoding encoding) const; |
- void VerifyExternalStringResource(ExternalStringResource* val) const; |
- static void CheckCast(v8::Value* obj); |
+ V8EXPORT void VerifyExternalStringResourceBase(ExternalStringResourceBase* v, |
+ Encoding encoding) const; |
+ V8EXPORT void VerifyExternalStringResource(ExternalStringResource* val) const; |
+ V8EXPORT static void CheckCast(v8::Value* obj); |
}; |
/** |
* A JavaScript number value (ECMA-262, 4.3.20) |
*/ |
-class V8EXPORT Number : public Primitive { |
+class Number : public Primitive { |
public: |
- double Value() const; |
- static Local<Number> New(double value); |
+ V8EXPORT double Value() const; |
+ V8EXPORT static Local<Number> New(double value); |
V8_INLINE(static Number* Cast(v8::Value* obj)); |
private: |
- Number(); |
- static void CheckCast(v8::Value* obj); |
+ V8EXPORT Number(); |
+ V8EXPORT static void CheckCast(v8::Value* obj); |
}; |
/** |
* A JavaScript value representing a signed integer. |
*/ |
-class V8EXPORT Integer : public Number { |
+class Integer : public Number { |
public: |
- static Local<Integer> New(int32_t value); |
- static Local<Integer> NewFromUnsigned(uint32_t value); |
- static Local<Integer> New(int32_t value, Isolate*); |
- static Local<Integer> NewFromUnsigned(uint32_t value, Isolate*); |
- int64_t Value() const; |
+ V8EXPORT static Local<Integer> New(int32_t value); |
+ V8EXPORT static Local<Integer> NewFromUnsigned(uint32_t value); |
+ V8EXPORT static Local<Integer> New(int32_t value, Isolate*); |
+ V8EXPORT static Local<Integer> NewFromUnsigned(uint32_t value, Isolate*); |
+ V8EXPORT int64_t Value() const; |
V8_INLINE(static Integer* Cast(v8::Value* obj)); |
private: |
- Integer(); |
- static void CheckCast(v8::Value* obj); |
+ V8EXPORT Integer(); |
+ V8EXPORT static void CheckCast(v8::Value* obj); |
}; |
/** |
* A JavaScript value representing a 32-bit signed integer. |
*/ |
-class V8EXPORT Int32 : public Integer { |
+class Int32 : public Integer { |
public: |
- int32_t Value() const; |
+ V8EXPORT int32_t Value() const; |
private: |
- Int32(); |
+ V8EXPORT Int32(); |
}; |
/** |
* A JavaScript value representing a 32-bit unsigned integer. |
*/ |
-class V8EXPORT Uint32 : public Integer { |
+class Uint32 : public Integer { |
public: |
- uint32_t Value() const; |
+ V8EXPORT uint32_t Value() const; |
private: |
- Uint32(); |
+ V8EXPORT Uint32(); |
}; |
@@ -1521,13 +1512,14 @@ enum AccessControl { |
/** |
* A JavaScript object (ECMA-262, 4.3.3) |
*/ |
-class V8EXPORT Object : public Value { |
+class Object : public Value { |
public: |
- bool Set(Handle<Value> key, |
- Handle<Value> value, |
- PropertyAttribute attribs = None); |
+ V8EXPORT bool Set(Handle<Value> key, |
+ Handle<Value> value, |
+ PropertyAttribute attribs = None); |
- bool Set(uint32_t index, Handle<Value> value); |
+ V8EXPORT bool Set(uint32_t index, |
+ Handle<Value> value); |
// Sets a local property on this object bypassing interceptors and |
// overriding accessors or read-only properties. |
@@ -1537,41 +1529,41 @@ class V8EXPORT Object : public Value { |
// will only be returned if the interceptor doesn't return a value. |
// |
// Note also that this only works for named properties. |
- bool ForceSet(Handle<Value> key, |
- Handle<Value> value, |
- PropertyAttribute attribs = None); |
+ V8EXPORT bool ForceSet(Handle<Value> key, |
+ Handle<Value> value, |
+ PropertyAttribute attribs = None); |
- Local<Value> Get(Handle<Value> key); |
+ V8EXPORT Local<Value> Get(Handle<Value> key); |
- Local<Value> Get(uint32_t index); |
+ V8EXPORT Local<Value> Get(uint32_t index); |
/** |
* Gets the property attributes of a property which can be None or |
* any combination of ReadOnly, DontEnum and DontDelete. Returns |
* None when the property doesn't exist. |
*/ |
- PropertyAttribute GetPropertyAttributes(Handle<Value> key); |
+ V8EXPORT PropertyAttribute GetPropertyAttributes(Handle<Value> key); |
// TODO(1245389): Replace the type-specific versions of these |
// functions with generic ones that accept a Handle<Value> key. |
- bool Has(Handle<String> key); |
+ V8EXPORT bool Has(Handle<String> key); |
- bool Delete(Handle<String> key); |
+ V8EXPORT bool Delete(Handle<String> key); |
// Delete a property on this object bypassing interceptors and |
// ignoring dont-delete attributes. |
- bool ForceDelete(Handle<Value> key); |
+ V8EXPORT bool ForceDelete(Handle<Value> key); |
- bool Has(uint32_t index); |
+ V8EXPORT bool Has(uint32_t index); |
- bool Delete(uint32_t index); |
+ V8EXPORT bool Delete(uint32_t index); |
- bool SetAccessor(Handle<String> name, |
- AccessorGetter getter, |
- AccessorSetter setter = 0, |
- Handle<Value> data = Handle<Value>(), |
- AccessControl settings = DEFAULT, |
- PropertyAttribute attribute = None); |
+ V8EXPORT bool SetAccessor(Handle<String> name, |
+ AccessorGetter getter, |
+ AccessorSetter setter = 0, |
+ Handle<Value> data = Handle<Value>(), |
+ AccessControl settings = DEFAULT, |
+ PropertyAttribute attribute = None); |
/** |
* Returns an array containing the names of the enumerable properties |
@@ -1579,61 +1571,78 @@ class V8EXPORT Object : public Value { |
* array returned by this method contains the same values as would |
* be enumerated by a for-in statement over this object. |
*/ |
- Local<Array> GetPropertyNames(); |
+ V8EXPORT Local<Array> GetPropertyNames(); |
/** |
* This function has the same functionality as GetPropertyNames but |
* the returned array doesn't contain the names of properties from |
* prototype objects. |
*/ |
- Local<Array> GetOwnPropertyNames(); |
+ V8EXPORT Local<Array> GetOwnPropertyNames(); |
/** |
* Get the prototype object. This does not skip objects marked to |
* be skipped by __proto__ and it does not consult the security |
* handler. |
*/ |
- Local<Value> GetPrototype(); |
+ V8EXPORT Local<Value> GetPrototype(); |
/** |
* Set the prototype object. This does not skip objects marked to |
* be skipped by __proto__ and it does not consult the security |
* handler. |
*/ |
- bool SetPrototype(Handle<Value> prototype); |
+ V8EXPORT bool SetPrototype(Handle<Value> prototype); |
/** |
* Finds an instance of the given function template in the prototype |
* chain. |
*/ |
- Local<Object> FindInstanceInPrototypeChain(Handle<FunctionTemplate> tmpl); |
+ V8EXPORT Local<Object> FindInstanceInPrototypeChain( |
+ Handle<FunctionTemplate> tmpl); |
/** |
* Call builtin Object.prototype.toString on this object. |
* This is different from Value::ToString() that may call |
* user-defined toString function. This one does not. |
*/ |
- Local<String> ObjectProtoToString(); |
+ V8EXPORT Local<String> ObjectProtoToString(); |
/** |
* Returns the function invoked as a constructor for this object. |
* May be the null value. |
*/ |
- Local<Value> GetConstructor(); |
+ V8EXPORT Local<Value> GetConstructor(); |
/** |
* Returns the name of the function invoked as a constructor for this object. |
*/ |
- Local<String> GetConstructorName(); |
+ V8EXPORT Local<String> GetConstructorName(); |
/** Gets the number of internal fields for this Object. */ |
- int InternalFieldCount(); |
+ V8EXPORT int InternalFieldCount(); |
/** Gets the value from an internal field. */ |
V8_INLINE(Local<Value> GetInternalField(int index)); |
/** Sets the value in an internal field. */ |
- void SetInternalField(int index, Handle<Value> value); |
+ V8EXPORT void SetInternalField(int index, Handle<Value> value); |
+ |
+ /** |
+ * Gets a native pointer from an internal field. Deprecated. If the pointer is |
+ * always 2-byte-aligned, use GetAlignedPointerFromInternalField instead, |
+ * otherwise use a combination of GetInternalField, External::Cast and |
+ * External::Value. |
+ */ |
+ V8EXPORT V8_DEPRECATED(void* GetPointerFromInternalField(int index)); |
+ |
+ /** |
+ * Sets a native pointer in an internal field. Deprecated. If the pointer is |
+ * always 2-byte aligned, use SetAlignedPointerInInternalField instead, |
+ * otherwise use a combination of External::New and SetInternalField. |
+ */ |
+ V8_DEPRECATED(V8_INLINE(void SetPointerInInternalField(int index, |
+ void* value))); |
/** |
* Gets a 2-byte-aligned native pointer from an internal field. This field |
@@ -1647,39 +1656,40 @@ class V8EXPORT Object : public Value { |
* a field, GetAlignedPointerFromInternalField must be used, everything else |
* leads to undefined behavior. |
*/ |
- void SetAlignedPointerInInternalField(int index, void* value); |
+ V8EXPORT void SetAlignedPointerInInternalField(int index, void* value); |
// Testers for local properties. |
- bool HasOwnProperty(Handle<String> key); |
- bool HasRealNamedProperty(Handle<String> key); |
- bool HasRealIndexedProperty(uint32_t index); |
- bool HasRealNamedCallbackProperty(Handle<String> key); |
+ V8EXPORT bool HasOwnProperty(Handle<String> key); |
+ V8EXPORT bool HasRealNamedProperty(Handle<String> key); |
+ V8EXPORT bool HasRealIndexedProperty(uint32_t index); |
+ V8EXPORT bool HasRealNamedCallbackProperty(Handle<String> key); |
/** |
* If result.IsEmpty() no real property was located in the prototype chain. |
* This means interceptors in the prototype chain are not called. |
*/ |
- Local<Value> GetRealNamedPropertyInPrototypeChain(Handle<String> key); |
+ V8EXPORT Local<Value> GetRealNamedPropertyInPrototypeChain( |
+ Handle<String> key); |
/** |
* If result.IsEmpty() no real property was located on the object or |
* in the prototype chain. |
* This means interceptors in the prototype chain are not called. |
*/ |
- Local<Value> GetRealNamedProperty(Handle<String> key); |
+ V8EXPORT Local<Value> GetRealNamedProperty(Handle<String> key); |
/** Tests for a named lookup interceptor.*/ |
- bool HasNamedLookupInterceptor(); |
+ V8EXPORT bool HasNamedLookupInterceptor(); |
/** Tests for an index lookup interceptor.*/ |
- bool HasIndexedLookupInterceptor(); |
+ V8EXPORT bool HasIndexedLookupInterceptor(); |
/** |
* Turns on access check on the object if the object is an instance of |
* a template that has access check callbacks. If an object has no |
* access check info, the object cannot be accessed by anyone. |
*/ |
- void TurnOnAccessCheck(); |
+ V8EXPORT void TurnOnAccessCheck(); |
/** |
* Returns the identity hash for this object. The current implementation |
@@ -1688,7 +1698,7 @@ class V8EXPORT Object : public Value { |
* The return value will never be 0. Also, it is not guaranteed to be |
* unique. |
*/ |
- int GetIdentityHash(); |
+ V8EXPORT int GetIdentityHash(); |
/** |
* Access hidden properties on JavaScript objects. These properties are |
@@ -1696,9 +1706,9 @@ class V8EXPORT Object : public Value { |
* C++ API. Hidden properties introduced by V8 internally (for example the |
* identity hash) are prefixed with "v8::". |
*/ |
- bool SetHiddenValue(Handle<String> key, Handle<Value> value); |
- Local<Value> GetHiddenValue(Handle<String> key); |
- bool DeleteHiddenValue(Handle<String> key); |
+ V8EXPORT bool SetHiddenValue(Handle<String> key, Handle<Value> value); |
+ V8EXPORT Local<Value> GetHiddenValue(Handle<String> key); |
+ V8EXPORT bool DeleteHiddenValue(Handle<String> key); |
/** |
* Returns true if this is an instance of an api function (one |
@@ -1707,18 +1717,18 @@ class V8EXPORT Object : public Value { |
* conservative and may return true for objects that haven't actually |
* been modified. |
*/ |
- bool IsDirty(); |
+ V8EXPORT bool IsDirty(); |
/** |
* Clone this object with a fast but shallow copy. Values will point |
* to the same values as the original object. |
*/ |
- Local<Object> Clone(); |
+ V8EXPORT Local<Object> Clone(); |
/** |
* Returns the context in which the object was created. |
*/ |
- Local<Context> CreationContext(); |
+ V8EXPORT Local<Context> CreationContext(); |
/** |
* Set the backing store of the indexed properties to be managed by the |
@@ -1727,10 +1737,10 @@ class V8EXPORT Object : public Value { |
* Note: The embedding program still owns the data and needs to ensure that |
* the backing store is preserved while V8 has a reference. |
*/ |
- void SetIndexedPropertiesToPixelData(uint8_t* data, int length); |
- bool HasIndexedPropertiesInPixelData(); |
- uint8_t* GetIndexedPropertiesPixelData(); |
- int GetIndexedPropertiesPixelDataLength(); |
+ V8EXPORT void SetIndexedPropertiesToPixelData(uint8_t* data, int length); |
+ V8EXPORT bool HasIndexedPropertiesInPixelData(); |
+ V8EXPORT uint8_t* GetIndexedPropertiesPixelData(); |
+ V8EXPORT int GetIndexedPropertiesPixelDataLength(); |
/** |
* Set the backing store of the indexed properties to be managed by the |
@@ -1739,83 +1749,87 @@ class V8EXPORT Object : public Value { |
* Note: The embedding program still owns the data and needs to ensure that |
* the backing store is preserved while V8 has a reference. |
*/ |
- void SetIndexedPropertiesToExternalArrayData(void* data, |
- ExternalArrayType array_type, |
- int number_of_elements); |
- bool HasIndexedPropertiesInExternalArrayData(); |
- void* GetIndexedPropertiesExternalArrayData(); |
- ExternalArrayType GetIndexedPropertiesExternalArrayDataType(); |
- int GetIndexedPropertiesExternalArrayDataLength(); |
+ V8EXPORT void SetIndexedPropertiesToExternalArrayData( |
+ void* data, |
+ ExternalArrayType array_type, |
+ int number_of_elements); |
+ V8EXPORT bool HasIndexedPropertiesInExternalArrayData(); |
+ V8EXPORT void* GetIndexedPropertiesExternalArrayData(); |
+ V8EXPORT ExternalArrayType GetIndexedPropertiesExternalArrayDataType(); |
+ V8EXPORT int GetIndexedPropertiesExternalArrayDataLength(); |
/** |
* Checks whether a callback is set by the |
* ObjectTemplate::SetCallAsFunctionHandler method. |
* When an Object is callable this method returns true. |
*/ |
- bool IsCallable(); |
+ V8EXPORT bool IsCallable(); |
/** |
* Call an Object as a function if a callback is set by the |
* ObjectTemplate::SetCallAsFunctionHandler method. |
*/ |
- Local<Value> CallAsFunction(Handle<Object> recv, |
- int argc, |
- Handle<Value> argv[]); |
+ V8EXPORT Local<Value> CallAsFunction(Handle<Object> recv, |
+ int argc, |
+ Handle<Value> argv[]); |
/** |
* Call an Object as a constructor if a callback is set by the |
* ObjectTemplate::SetCallAsFunctionHandler method. |
* Note: This method behaves like the Function::NewInstance method. |
*/ |
- Local<Value> CallAsConstructor(int argc, Handle<Value> argv[]); |
+ V8EXPORT Local<Value> CallAsConstructor(int argc, |
+ Handle<Value> argv[]); |
- static Local<Object> New(); |
+ V8EXPORT static Local<Object> New(); |
V8_INLINE(static Object* Cast(Value* obj)); |
private: |
- Object(); |
- static void CheckCast(Value* obj); |
- Local<Value> SlowGetInternalField(int index); |
- void* SlowGetAlignedPointerFromInternalField(int index); |
+ V8EXPORT Object(); |
+ V8EXPORT static void CheckCast(Value* obj); |
+ V8EXPORT Local<Value> SlowGetInternalField(int index); |
+ V8EXPORT void* SlowGetAlignedPointerFromInternalField(int index); |
}; |
/** |
* An instance of the built-in array constructor (ECMA-262, 15.4.2). |
*/ |
-class V8EXPORT Array : public Object { |
+class Array : public Object { |
public: |
- uint32_t Length() const; |
+ V8EXPORT uint32_t Length() const; |
/** |
* Clones an element at index |index|. Returns an empty |
* handle if cloning fails (for any reason). |
*/ |
- Local<Object> CloneElementAt(uint32_t index); |
+ V8EXPORT Local<Object> CloneElementAt(uint32_t index); |
/** |
* Creates a JavaScript array with the given length. If the length |
* is negative the returned array will have length 0. |
*/ |
- static Local<Array> New(int length = 0); |
+ V8EXPORT static Local<Array> New(int length = 0); |
V8_INLINE(static Array* Cast(Value* obj)); |
private: |
- Array(); |
- static void CheckCast(Value* obj); |
+ V8EXPORT Array(); |
+ V8EXPORT static void CheckCast(Value* obj); |
}; |
/** |
* A JavaScript function object (ECMA-262, 15.3). |
*/ |
-class V8EXPORT Function : public Object { |
+class Function : public Object { |
public: |
- Local<Object> NewInstance() const; |
- Local<Object> NewInstance(int argc, Handle<Value> argv[]) const; |
- Local<Value> Call(Handle<Object> recv, int argc, Handle<Value> argv[]); |
- void SetName(Handle<String> name); |
- Handle<Value> GetName() const; |
+ V8EXPORT Local<Object> NewInstance() const; |
+ V8EXPORT Local<Object> NewInstance(int argc, Handle<Value> argv[]) const; |
+ V8EXPORT Local<Value> Call(Handle<Object> recv, |
+ int argc, |
+ Handle<Value> argv[]); |
+ V8EXPORT void SetName(Handle<String> name); |
+ V8EXPORT Handle<Value> GetName() const; |
/** |
* Name inferred from variable or property assignment of this function. |
@@ -1823,41 +1837,41 @@ class V8EXPORT Function : public Object { |
* in an OO style, where many functions are anonymous but are assigned |
* to object properties. |
*/ |
- Handle<Value> GetInferredName() const; |
+ V8EXPORT Handle<Value> GetInferredName() const; |
/** |
* Returns zero based line number of function body and |
* kLineOffsetNotFound if no information available. |
*/ |
- int GetScriptLineNumber() const; |
+ V8EXPORT int GetScriptLineNumber() const; |
/** |
* Returns zero based column number of function body and |
* kLineOffsetNotFound if no information available. |
*/ |
- int GetScriptColumnNumber() const; |
- Handle<Value> GetScriptId() const; |
- ScriptOrigin GetScriptOrigin() const; |
+ V8EXPORT int GetScriptColumnNumber() const; |
+ V8EXPORT Handle<Value> GetScriptId() const; |
+ V8EXPORT ScriptOrigin GetScriptOrigin() const; |
V8_INLINE(static Function* Cast(Value* obj)); |
- static const int kLineOffsetNotFound; |
+ V8EXPORT static const int kLineOffsetNotFound; |
private: |
- Function(); |
- static void CheckCast(Value* obj); |
+ V8EXPORT Function(); |
+ V8EXPORT static void CheckCast(Value* obj); |
}; |
/** |
* An instance of the built-in Date constructor (ECMA-262, 15.9). |
*/ |
-class V8EXPORT Date : public Object { |
+class Date : public Object { |
public: |
- static Local<Value> New(double time); |
+ V8EXPORT static Local<Value> New(double time); |
/** |
* A specialization of Value::NumberValue that is more efficient |
* because we know the structure of this object. |
*/ |
- double NumberValue() const; |
+ V8EXPORT double NumberValue() const; |
V8_INLINE(static Date* Cast(v8::Value* obj)); |
@@ -1873,74 +1887,74 @@ class V8EXPORT Date : public Object { |
* This API should not be called more than needed as it will |
* negatively impact the performance of date operations. |
*/ |
- static void DateTimeConfigurationChangeNotification(); |
+ V8EXPORT static void DateTimeConfigurationChangeNotification(); |
private: |
- static void CheckCast(v8::Value* obj); |
+ V8EXPORT static void CheckCast(v8::Value* obj); |
}; |
/** |
* A Number object (ECMA-262, 4.3.21). |
*/ |
-class V8EXPORT NumberObject : public Object { |
+class NumberObject : public Object { |
public: |
- static Local<Value> New(double value); |
+ V8EXPORT static Local<Value> New(double value); |
/** |
* Returns the Number held by the object. |
*/ |
- double NumberValue() const; |
+ V8EXPORT double NumberValue() const; |
V8_INLINE(static NumberObject* Cast(v8::Value* obj)); |
private: |
- static void CheckCast(v8::Value* obj); |
+ V8EXPORT static void CheckCast(v8::Value* obj); |
}; |
/** |
* A Boolean object (ECMA-262, 4.3.15). |
*/ |
-class V8EXPORT BooleanObject : public Object { |
+class BooleanObject : public Object { |
public: |
- static Local<Value> New(bool value); |
+ V8EXPORT static Local<Value> New(bool value); |
/** |
* Returns the Boolean held by the object. |
*/ |
- bool BooleanValue() const; |
+ V8EXPORT bool BooleanValue() const; |
V8_INLINE(static BooleanObject* Cast(v8::Value* obj)); |
private: |
- static void CheckCast(v8::Value* obj); |
+ V8EXPORT static void CheckCast(v8::Value* obj); |
}; |
/** |
* A String object (ECMA-262, 4.3.18). |
*/ |
-class V8EXPORT StringObject : public Object { |
+class StringObject : public Object { |
public: |
- static Local<Value> New(Handle<String> value); |
+ V8EXPORT static Local<Value> New(Handle<String> value); |
/** |
* Returns the String held by the object. |
*/ |
- Local<String> StringValue() const; |
+ V8EXPORT Local<String> StringValue() const; |
V8_INLINE(static StringObject* Cast(v8::Value* obj)); |
private: |
- static void CheckCast(v8::Value* obj); |
+ V8EXPORT static void CheckCast(v8::Value* obj); |
}; |
/** |
* An instance of the built-in RegExp constructor (ECMA-262, 15.10). |
*/ |
-class V8EXPORT RegExp : public Object { |
+class RegExp : public Object { |
public: |
/** |
* Regular expression flag bits. They can be or'ed to enable a set |
@@ -1963,23 +1977,24 @@ class V8EXPORT RegExp : public Object { |
* static_cast<RegExp::Flags>(kGlobal | kMultiline)) |
* is equivalent to evaluating "/foo/gm". |
*/ |
- static Local<RegExp> New(Handle<String> pattern, Flags flags); |
+ V8EXPORT static Local<RegExp> New(Handle<String> pattern, |
+ Flags flags); |
/** |
* Returns the value of the source property: a string representing |
* the regular expression. |
*/ |
- Local<String> GetSource() const; |
+ V8EXPORT Local<String> GetSource() const; |
/** |
* Returns the flags bit field. |
*/ |
- Flags GetFlags() const; |
+ V8EXPORT Flags GetFlags() const; |
V8_INLINE(static RegExp* Cast(v8::Value* obj)); |
private: |
- static void CheckCast(v8::Value* obj); |
+ V8EXPORT static void CheckCast(v8::Value* obj); |
}; |
@@ -1987,13 +2002,19 @@ class V8EXPORT RegExp : public Object { |
* A JavaScript value that wraps a C++ void*. This type of value is mainly used |
* to associate C++ data structures with JavaScript objects. |
*/ |
-class V8EXPORT External : public Value { |
+class External : public Value { |
public: |
- static Local<External> New(void* value); |
+ /** Deprecated, use New instead. */ |
+ V8_DEPRECATED(V8_INLINE(static Local<Value> Wrap(void* value))); |
+ |
+ /** Deprecated, use a combination of Cast and Value instead. */ |
+ V8_DEPRECATED(V8_INLINE(static void* Unwrap(Handle<Value> obj))); |
+ |
+ V8EXPORT static Local<External> New(void* value); |
V8_INLINE(static External* Cast(Value* obj)); |
- void* Value() const; |
+ V8EXPORT void* Value() const; |
private: |
- static void CheckCast(v8::Value* obj); |
+ V8EXPORT static void CheckCast(v8::Value* obj); |
}; |
@@ -2023,7 +2044,7 @@ class V8EXPORT Template : public Data { |
* including the receiver, the number and values of arguments, and |
* the holder of the function. |
*/ |
-class V8EXPORT Arguments { |
+class Arguments { |
public: |
V8_INLINE(int Length() const); |
V8_INLINE(Local<Value> operator[](int i) const); |
@@ -2923,7 +2944,7 @@ class V8EXPORT Isolate { |
}; |
-class V8EXPORT StartupData { |
+class StartupData { |
public: |
enum CompressionAlgorithm { |
kUncompressed, |
@@ -3797,6 +3818,18 @@ class V8EXPORT Context { |
static bool InContext(); |
/** |
+ * Gets embedder data with index 0. Deprecated, use GetEmbedderData with index |
+ * 0 instead. |
+ */ |
+ V8_DEPRECATED(V8_INLINE(Local<Value> GetData())); |
+ |
+ /** |
+ * Sets embedder data with index 0. Deprecated, use SetEmbedderData with index |
+ * 0 instead. |
+ */ |
+ 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. |
@@ -4490,6 +4523,11 @@ Local<Value> Object::GetInternalField(int index) { |
} |
+void Object::SetPointerInInternalField(int index, void* value) { |
+ SetInternalField(index, External::New(value)); |
+} |
+ |
+ |
void* Object::GetAlignedPointerFromInternalField(int index) { |
#ifndef V8_ENABLE_CHECKS |
typedef internal::Object O; |
@@ -4694,6 +4732,16 @@ Function* Function::Cast(v8::Value* value) { |
} |
+Local<Value> External::Wrap(void* value) { |
+ return External::New(value); |
+} |
+ |
+ |
+void* External::Unwrap(Handle<v8::Value> obj) { |
+ return External::Cast(*obj)->Value(); |
+} |
+ |
+ |
External* External::Cast(v8::Value* value) { |
#ifdef V8_ENABLE_CHECKS |
CheckCast(value); |
@@ -4770,6 +4818,15 @@ void* Isolate::GetData() { |
} |
+Local<Value> Context::GetData() { |
+ return GetEmbedderData(0); |
+} |
+ |
+void Context::SetData(Handle<Value> data) { |
+ SetEmbedderData(0, data); |
+} |
+ |
+ |
Local<Value> Context::GetEmbedderData(int index) { |
#ifndef V8_ENABLE_CHECKS |
typedef internal::Object O; |