V8
Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
v8::String Class Reference

#include <v8.h>

Inheritance diagram for v8::String:
v8::Name v8::Primitive v8::Value v8::Data

Classes

class  ExternalOneByteStringResource
class  ExternalStringResource
class  ExternalStringResourceBase
class  Utf8Value
class  Value

Public Types

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

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 IsExternalOneByte () const
V8_INLINE
ExternalStringResourceBase
GetExternalStringResourceBase (Encoding *encoding_out) const
V8_INLINE ExternalStringResourceGetExternalStringResource () const
const
ExternalOneByteStringResource
GetExternalOneByteStringResource () const
bool MakeExternal (ExternalStringResource *resource)
bool MakeExternal (ExternalOneByteStringResource *resource)
bool CanMakeExternal ()

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, ExternalOneByteStringResource *resource)

Detailed Description

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

Member Enumeration Documentation

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).

Member Function Documentation

bool v8::String::CanMakeExternal ( )

Returns true if this string can be made external.

static Local<String> v8::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.

bool v8::String::ContainsOnlyOneByte ( ) const

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

Local< String > v8::String::Empty ( Isolate isolate)
static

A zero length string.

const ExternalOneByteStringResource* v8::String::GetExternalOneByteStringResource ( ) const

Get the ExternalOneByteStringResource for an external one-byte string. Returns NULL if IsExternalOneByte() doesn't return true.

String::ExternalStringResource * v8::String::GetExternalStringResource ( ) const

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

String::ExternalStringResourceBase * v8::String::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.

bool v8::String::IsExternal ( ) const

Returns true if the string is external

Reimplemented from v8::Value.

bool v8::String::IsExternalOneByte ( ) const

Returns true if the string is both external and one-byte.

bool v8::String::IsOneByte ( ) const

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

int v8::String::Length ( ) const

Returns the number of characters in this string.

bool v8::String::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.

bool v8::String::MakeExternal ( ExternalOneByteStringResource 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.

static Local<String> v8::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.

static Local<String> v8::String::NewExternal ( Isolate isolate,
ExternalOneByteStringResource resource 
)
static

Creates a new external string using the one-byte 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.

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

Allocates a new string from Latin-1 data.

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

Allocates a new string from UTF-16 data.

static Local<String> v8::String::NewFromUtf8 ( Isolate isolate,
const char *  data,
NewStringType  type = kNormalString,
int  length = -1 
)
static

Allocates a new string from UTF-8 data.

int v8::String::Utf8Length ( ) const

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


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