v8  3.25.30(node0.11.13)
V8 is Google's open source JavaScript engine
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
String Class Reference

#include <v8.h>

Inheritance diagram for String:
Collaboration diagram for String:

Data Structures

class  ExternalAsciiStringResource
 
class  ExternalStringResource
 
class  ExternalStringResourceBase
 
class  Utf8Value
 
class  Value
 

Public Types

enum  Encoding { UNKNOWN_ENCODING = 0x1, TWO_BYTE_ENCODING = 0x0, ASCII_ENCODING = 0x4, ONE_BYTE_ENCODING = 0x4 }
 
enum  WriteOptions {
  NO_OPTIONS = 0, HINT_MANY_WRITES_EXPECTED = 1, NO_NULL_TERMINATION = 2, PRESERVE_ASCII_NULL = 4,
  REPLACE_INVALID_UTF8 = 8
}
 
enum  NewStringType { kNormalString, kInternalizedString, kUndetectableString }
 
typedef ExternalAsciiStringResource ExternalOneByteStringResource
 

Public Member Functions

int Length () const
 
int Utf8Length () const
 
bool IsOneByte () const
 
bool ContainsOnlyOneByte () const
 
int Write (uint16_t *buffer, int start=0, int length=-1, int options=NO_OPTIONS) const
 
int WriteOneByte (uint8_t *buffer, int start=0, int length=-1, int options=NO_OPTIONS) const
 
int WriteUtf8 (char *buffer, int length=-1, int *nchars_ref=NULL, int options=NO_OPTIONS) const
 
bool IsExternal () const
 
bool IsExternalAscii () const
 
V8_INLINE
ExternalStringResourceBase
GetExternalStringResourceBase (Encoding *encoding_out) const
 
V8_INLINE ExternalStringResourceGetExternalStringResource () const
 
const ExternalAsciiStringResourceGetExternalAsciiStringResource () const
 
bool MakeExternal (ExternalStringResource *resource)
 
bool MakeExternal (ExternalAsciiStringResource *resource)
 
bool CanMakeExternal ()
 
- Public Member Functions inherited from Value
V8_INLINE bool IsUndefined () const
 
V8_INLINE bool IsNull () const
 
bool IsTrue () const
 
bool IsFalse () const
 
V8_INLINE bool IsString () const
 
bool IsSymbol () const
 
bool IsFunction () const
 
bool IsArray () const
 
bool IsObject () const
 
bool IsBoolean () const
 
bool IsNumber () const
 
bool IsExternal () const
 
bool IsInt32 () const
 
bool IsUint32 () const
 
bool IsDate () const
 
bool IsBooleanObject () const
 
bool IsNumberObject () const
 
bool IsStringObject () const
 
bool IsSymbolObject () const
 
bool IsNativeError () const
 
bool IsRegExp () const
 
bool IsPromise () const
 
bool IsArrayBuffer () const
 
bool IsArrayBufferView () const
 
bool IsTypedArray () const
 
bool IsUint8Array () const
 
bool IsUint8ClampedArray () const
 
bool IsInt8Array () const
 
bool IsUint16Array () const
 
bool IsInt16Array () const
 
bool IsUint32Array () const
 
bool IsInt32Array () const
 
bool IsFloat32Array () const
 
bool IsFloat64Array () const
 
bool IsDataView () const
 
Local< BooleanToBoolean () const
 
Local< NumberToNumber () const
 
Local< StringToString () const
 
Local< StringToDetailString () const
 
Local< ObjectToObject () const
 
Local< IntegerToInteger () const
 
Local< Uint32ToUint32 () const
 
Local< Int32ToInt32 () const
 
Local< Uint32ToArrayIndex () const
 
bool BooleanValue () const
 
double NumberValue () const
 
int64_t IntegerValue () const
 
uint32_t Uint32Value () const
 
int32_t Int32Value () const
 
bool Equals (Handle< Value > that) const
 
bool StrictEquals (Handle< Value > that) const
 
bool SameValue (Handle< Value > that) const
 
template<class T >
ValueCast (T *value)
 

Static Public Member Functions

static V8_INLINE v8::Local
< v8::String
Empty (Isolate *isolate)
 
static V8_INLINE StringCast (v8::Value *obj)
 
static Local< StringNewFromUtf8 (Isolate *isolate, const char *data, NewStringType type=kNormalString, int length=-1)
 
static Local< StringNewFromOneByte (Isolate *isolate, const uint8_t *data, NewStringType type=kNormalString, int length=-1)
 
static Local< StringNewFromTwoByte (Isolate *isolate, const uint16_t *data, NewStringType type=kNormalString, int length=-1)
 
static Local< StringConcat (Handle< String > left, Handle< String > right)
 
static Local< StringNewExternal (Isolate *isolate, ExternalStringResource *resource)
 
static Local< StringNewExternal (Isolate *isolate, ExternalAsciiStringResource *resource)
 
- Static Public Member Functions inherited from Value
template<class T >
static V8_INLINE ValueCast (T *value)
 

Detailed Description

A JavaScript string value (ECMA-262, 4.3.17).

Definition at line 1661 of file v8.h.

Member Typedef Documentation

Member Enumeration Documentation

enum Encoding
Enumerator
UNKNOWN_ENCODING 
TWO_BYTE_ENCODING 
ASCII_ENCODING 
ONE_BYTE_ENCODING 

Definition at line 1663 of file v8.h.

Enumerator
kNormalString 
kInternalizedString 
kUndetectableString 

Definition at line 1863 of file v8.h.

Write the contents of the string to an external buffer. If no arguments are given, expects the buffer to be large enough to hold the entire string and NULL terminator. Copies the contents of the string and the NULL terminator into the buffer.

WriteUtf8 will not write partial UTF-8 sequences, preferring to stop before the end of the buffer.

Copies up to length characters into the output buffer. Only null-terminates if there is enough space in the buffer.

Parameters
bufferThe buffer into which the string will be copied.
startThe starting position within the string at which copying begins.
lengthThe number of characters to copy from the string. For WriteUtf8 the number of bytes in the buffer.
nchars_refThe number of characters written, can be NULL.
optionsVarious options that might affect performance of this or subsequent operations.
Returns
The number of characters copied to the buffer excluding the null terminator. For WriteUtf8: The number of bytes copied to the buffer including the null terminator (if written).
Enumerator
NO_OPTIONS 
HINT_MANY_WRITES_EXPECTED 
NO_NULL_TERMINATION 
PRESERVE_ASCII_NULL 
REPLACE_INVALID_UTF8 

Definition at line 1718 of file v8.h.

Member Function Documentation

bool CanMakeExternal ( )
String * Cast ( v8::Value obj)
static

Definition at line 6174 of file v8.h.

Referenced by TEST(), and THREADED_PROFILED_TEST().

Local< String > Concat ( Handle< String left,
Handle< String right 
)
static

Creates a new string by concatenating the left and the right strings passed in as parameters.

Definition at line 5456 of file api.cc.

References CHECK, ENTER_V8, Isolate::factory(), Handle< T >::is_null(), LOG_API, Factory::NewConsString(), Utils::OpenHandle(), and Utils::ToLocal().

Referenced by Shell::ReadFromStdin().

bool ContainsOnlyOneByte ( ) const

Returns whether this string contain only one byte data. Will read the entire string in some cases.

Definition at line 4258 of file api.cc.

References ContainsOnlyOneByteHelper::Check(), and Utils::OpenHandle().

Local< String > Empty ( Isolate isolate)
static

A zero length string.

Definition at line 6182 of file v8.h.

References I, and S.

Referenced by ProfilerExtension::StartProfiling(), ProfilerExtension::StopProfiling(), and TEST().

const v8::String::ExternalAsciiStringResource * GetExternalAsciiStringResource ( ) const

Get the ExternalAsciiStringResource for an external ASCII string. Returns NULL if IsExternalAscii() doesn't return true.

Definition at line 4821 of file api.cc.

References Handle< T >::cast(), NULL, and Utils::OpenHandle().

String::ExternalStringResource * GetExternalStringResource ( ) const

Get the ExternalStringResource for an external string. Returns NULL if IsExternal() doesn't return true.

Definition at line 6191 of file v8.h.

References I, NULL, and obj.

String::ExternalStringResourceBase * GetExternalStringResourceBase ( String::Encoding encoding_out) const

If the string is an external string, return the ExternalStringResourceBase regardless of the encoding, otherwise return NULL. The encoding of the string is returned in encoding_out.

Definition at line 6209 of file v8.h.

References I, v8::internal::kStringEncodingMask, NULL, and obj.

bool IsExternal ( ) const

Returns true if the string is external

Definition at line 4769 of file api.cc.

References Utils::OpenHandle().

Referenced by VisitorImpl::VisitExternalString().

bool IsExternalAscii ( ) const

Returns true if the string is both external and ASCII

Definition at line 4776 of file api.cc.

References Utils::OpenHandle().

Referenced by VisitorImpl::VisitExternalString().

bool IsOneByte ( ) const

Returns whether this string is known to contain only one byte data. Does not read the string. False negatives are possible.

Definition at line 4143 of file api.cc.

References Utils::OpenHandle().

int Length ( ) const

Returns the number of characters in this string.

Definition at line 4137 of file api.cc.

References Utils::OpenHandle().

Referenced by TEST(), THREADED_PROFILED_TEST(), and String::Value::Value().

bool MakeExternal ( ExternalStringResource resource)

Associate an external string resource with this string by transforming it in place so that existing references to this string in the JavaScript heap will use the external string resource. The external string resource's character contents need to be equivalent to this string. Returns true if the string has been changed to be an external string. The string is not modified if the operation fails. See NewExternal for information on the lifetime of the resource.

Definition at line 5507 of file api.cc.

References ExternalStringTable::AddString(), ASSERT, CHECK, String::ExternalStringResource::data(), ENTER_V8, Heap::external_string_table(), Isolate::heap(), StringTracker::IsFreshUnusedString(), Heap::IsInGCPostProcessing(), Utils::OpenHandle(), and Isolate::string_tracker().

Referenced by TEST().

bool MakeExternal ( ExternalAsciiStringResource resource)

Associate an external string resource with this string by transforming it in place so that existing references to this string in the JavaScript heap will use the external string resource. The external string resource's character contents need to be equivalent to this string. Returns true if the string has been changed to be an external string. The string is not modified if the operation fails. See NewExternal for information on the lifetime of the resource.

Definition at line 5546 of file api.cc.

References ExternalStringTable::AddString(), ASSERT, CHECK, String::ExternalAsciiStringResource::data(), ENTER_V8, Heap::external_string_table(), Isolate::heap(), StringTracker::IsFreshUnusedString(), Heap::IsInGCPostProcessing(), Utils::OpenHandle(), and Isolate::string_tracker().

Local< String > NewExternal ( Isolate isolate,
ExternalStringResource resource 
)
static

Creates a new external string using the data defined in the given resource. When the external string is no longer live on V8's heap the resource will be disposed by calling its Dispose method. The caller of 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.

Definition at line 5493 of file api.cc.

References ExternalStringTable::AddString(), CHECK, String::ExternalStringResource::data(), ENTER_V8, Heap::external_string_table(), Isolate::heap(), LOG_API, and Utils::ToLocal().

Referenced by ReleaseStackTraceDataTest(), and TEST().

Local< String > NewExternal ( Isolate isolate,
ExternalAsciiStringResource resource 
)
static

Creates a new external string using the ASCII data defined in the given resource. When the external string is no longer live on V8's heap the resource will be disposed by calling its Dispose method. The caller of 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.

Definition at line 5531 of file api.cc.

References ExternalStringTable::AddString(), CHECK, String::ExternalAsciiStringResource::data(), ENTER_V8, Heap::external_string_table(), Isolate::heap(), LOG_API, and Utils::ToLocal().

Local< String > NewFromOneByte ( Isolate isolate,
const uint8_t *  data,
NewStringType  type = kNormalString,
int  length = -1 
)
static

Allocates a new string from Latin-1 data.

Definition at line 5430 of file api.cc.

Local< String > NewFromTwoByte ( Isolate isolate,
const uint16_t data,
NewStringType  type = kNormalString,
int  length = -1 
)
static

Allocates a new string from UTF-16 data.

Definition at line 5443 of file api.cc.

Referenced by TEST(), and THREADED_TEST().

int Utf8Length ( ) const

Returns the number of bytes in the UTF-8 encoded representation of this string.

Definition at line 4460 of file api.cc.

References Utils::OpenHandle().

Referenced by Object::ObjectProtoToString(), and TEST().

int Write ( uint16_t buffer,
int  start = 0,
int  length = -1,
int  options = NO_OPTIONS 
) const

Definition at line 4761 of file api.cc.

Referenced by TEST(), and String::Value::Value().

int WriteOneByte ( uint8_t *  buffer,
int  start = 0,
int  length = -1,
int  options = NO_OPTIONS 
) const

Definition at line 4753 of file api.cc.

int WriteUtf8 ( char *  buffer,
int  length = -1,
int *  nchars_ref = NULL,
int  options = NO_OPTIONS 
) const

The documentation for this class was generated from the following files: