Author: [email protected] Date: Thu Mar 19 16:35:09 2009 New Revision: 1556 Modified: branches/bleeding_edge/include/v8.h branches/bleeding_edge/src/api.cc
Log: Add a public API for using an empty sring. v8::String::Empty() Review URL: http://codereview.chromium.org/42423 Modified: branches/bleeding_edge/include/v8.h ============================================================================== --- branches/bleeding_edge/include/v8.h (original) +++ branches/bleeding_edge/include/v8.h Thu Mar 19 16:35:09 2009 @@ -736,6 +736,11 @@ int WriteUtf8(char* buffer, int length = -1) const; // UTF-8 /** + * A zero length string. + */ + static v8::Local<v8::String> Empty(); + + /** * Returns true if the string is external */ bool IsExternal() const; Modified: branches/bleeding_edge/src/api.cc ============================================================================== --- branches/bleeding_edge/src/api.cc (original) +++ branches/bleeding_edge/src/api.cc Thu Mar 19 16:35:09 2009 @@ -2472,9 +2472,17 @@ } +Local<String> v8::String::Empty() { + EnsureInitialized("v8::String::Empty()"); + LOG_API("String::Empty()"); + return Utils::ToLocal(i::Factory::empty_symbol()); +} + + Local<String> v8::String::New(const char* data, int length) { EnsureInitialized("v8::String::New()"); LOG_API("String::New(char)"); + if (length == 0) return Empty(); if (length == -1) length = strlen(data); i::Handle<i::String> result = i::Factory::NewStringFromUtf8(i::Vector<const char>(data, length)); @@ -2503,6 +2511,7 @@ Local<String> v8::String::New(const uint16_t* data, int length) { EnsureInitialized("v8::String::New()"); LOG_API("String::New(uint16_)"); + if (length == 0) return Empty(); if (length == -1) length = TwoByteStringLength(data); i::Handle<i::String> result = i::Factory::NewStringFromTwoByte(i::Vector<const uint16_t>(data, length)); --~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---
