v8
3.25.30(node0.11.13)
V8 is Google's open source JavaScript engine
|
#include <v8.h>
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 ExternalStringResource * | GetExternalStringResource () const |
const ExternalAsciiStringResource * | GetExternalAsciiStringResource () 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< 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 |
Local< Uint32 > | ToArrayIndex () 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 > | |
Value * | Cast (T *value) |
Static Public Member Functions | |
static V8_INLINE v8::Local < v8::String > | Empty (Isolate *isolate) |
static V8_INLINE String * | Cast (v8::Value *obj) |
static Local< String > | NewFromUtf8 (Isolate *isolate, const char *data, NewStringType type=kNormalString, int length=-1) |
static Local< String > | NewFromOneByte (Isolate *isolate, const uint8_t *data, NewStringType type=kNormalString, int length=-1) |
static Local< String > | NewFromTwoByte (Isolate *isolate, const uint16_t *data, NewStringType type=kNormalString, int length=-1) |
static Local< String > | Concat (Handle< String > left, Handle< String > right) |
static Local< String > | NewExternal (Isolate *isolate, ExternalStringResource *resource) |
static Local< String > | NewExternal (Isolate *isolate, ExternalAsciiStringResource *resource) |
Static Public Member Functions inherited from Value | |
template<class T > | |
static V8_INLINE Value * | Cast (T *value) |
enum Encoding |
enum NewStringType |
enum WriteOptions |
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.
buffer | The buffer into which the string will be copied. |
start | The starting position within the string at which copying begins. |
length | The number of characters to copy from the string. For WriteUtf8 the number of bytes in the buffer. |
nchars_ref | The number of characters written, can be NULL. |
options | Various options that might affect performance of this or subsequent operations. |
Enumerator | |
---|---|
NO_OPTIONS | |
HINT_MANY_WRITES_EXPECTED | |
NO_NULL_TERMINATION | |
PRESERVE_ASCII_NULL | |
REPLACE_INVALID_UTF8 |
bool CanMakeExternal | ( | ) |
Returns true if this string can be made external.
Definition at line 5571 of file api.cc.
References PagedSpace::Contains(), Isolate::heap(), StringTracker::IsFreshUnusedString(), ExternalString::kShortSize, Heap::old_pointer_space(), Utils::OpenHandle(), size, and Isolate::string_tracker().
Definition at line 6174 of file v8.h.
Referenced by TEST(), and THREADED_PROFILED_TEST().
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().
A zero length string.
Definition at line 6182 of file v8.h.
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.
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().
|
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().
|
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().
|
static |
|
static |
Allocates a new string from UTF-16 data.
Definition at line 5443 of file api.cc.
Referenced by TEST(), and THREADED_TEST().
|
static |
Allocates a new string from UTF-8 data.
Definition at line 5417 of file api.cc.
Referenced by Shell::AddOSMethods(), Shell::ChangeDirectory(), Shell::CreateEvaluationContext(), CreateGlobalTemplate(), CreateShellContext(), DEPENDENT_TEST(), DoLoop(), DoLoopCancelTerminate(), DoLoopNoCall(), SourceGroup::Execute(), Shell::ExecuteString(), ExternalizeStringExtension::Externalize(), FormatMessage(), Shell::GetCompletions(), TraceExtension::GetNativeFunctionTemplate(), ProfilerExtension::GetNativeFunctionTemplate(), ExecArgs::Init(), ExternalizeStringExtension::IsAscii(), Load(), Shell::Load(), Loop(), LoopGetProperty(), main(), Shell::MakeDirectory(), Object::ObjectProtoToString(), ReadLineEditor::Prompt(), Read(), ReadFile(), Shell::ReadFile(), Shell::ReadFromStdin(), ReadLine(), ReenterAfterTermination(), Shell::RemoveDirectory(), ThreadA::Run(), ShellThread::Run(), RunCppCycle(), RunMain(), RunShell(), RunWithProfiler(), Template::Set(), Shell::SetEnvironment(), Shell::SetUMask(), Shell::System(), TerminateOrReturnObject(), TEST(), THREADED_TEST(), Shell::UnsetEnvironment(), Version(), and Shell::Version().
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 |
int WriteUtf8 | ( | char * | buffer, |
int | length = -1 , |
||
int * | nchars_ref = NULL , |
||
int | options = NO_OPTIONS |
||
) | const |
Definition at line 4672 of file api.cc.
References Utf8WriterVisitor::CompleteWrite(), ENTER_V8, v8::internal::FlattenGetString(), v8::internal::FlattenString(), Utf8::kMax16BitCodeUnitSize, LOG_API, NULL, Utils::OpenHandle(), and String::VisitFlat().
Referenced by Object::ObjectProtoToString(), TEST(), and String::Utf8Value::Utf8Value().