5#ifndef V8_STRINGS_STRING_STREAM_H_
6#define V8_STRINGS_STRING_STREAM_H_
33 virtual char*
grow(
unsigned* bytes) = 0;
40 char*
allocate(
unsigned bytes)
override;
41 char*
grow(
unsigned* bytes)
override;
55 char*
allocate(
unsigned bytes)
override;
56 char*
grow(
unsigned* bytes)
override;
63template <std::
size_t kInlineSize>
76 char*
grow(
unsigned* bytes)
override {
77 unsigned new_bytes = *bytes * 2;
79 if (new_bytes <= *bytes) {
107 template <
typename T>
111 template <
typename T>
161 template <
typename... Args>
166 template <
typename... Args>
177 std::unique_ptr<char[]>
ToCString()
const;
202 bool IsMentionedObjectCacheClear(
Isolate* isolate);
void resize(size_t new_size)
FixedStringAllocator(const FixedStringAllocator &)=delete
FixedStringAllocator(char *buffer, unsigned length)
char * allocate(unsigned bytes) override
~FixedStringAllocator() override=default
char * grow(unsigned *bytes) override
FixedStringAllocator & operator=(const FixedStringAllocator &)=delete
~HeapStringAllocator() override
char * allocate(unsigned bytes) override
char * grow(unsigned *bytes) override
char * allocate(unsigned bytes) override
char * grow(unsigned *bytes) override
SmallStringOptimizedAllocator(SmallVector *vector) V8_NOEXCEPT
virtual char * grow(unsigned *bytes)=0
virtual ~StringAllocator()=default
virtual char * allocate(unsigned bytes)=0
FmtElm(const base::Vector< const base::uc16 > &value)
FmtElm(const char *value)
const base::Vector< const base::uc16 > * u_lc_str_
FmtElm(Tagged< T > value)
union v8::internal::StringStream::FmtElm::@155 data_
FmtElm(Handle< T > value)
void PrintObject(Tagged< Object > obj)
void PrintFunction(Isolate *isolate, Tagged< JSFunction > function, Tagged< Object > receiver)
void PrintByteArray(Tagged< ByteArray > ba)
void Add(base::Vector< const char > format)
void Add(const char *format, Args... args)
static V8_EXPORT_PRIVATE void ClearMentionedObjectCache(Isolate *isolate)
static const int kInitialCapacity
DirectHandle< String > ToString(Isolate *isolate)
void PrintPrototype(Isolate *isolate, Tagged< JSFunction > fun, Tagged< Object > receiver)
void PrintMentionedObjectCache(Isolate *isolate)
DISALLOW_IMPLICIT_CONSTRUCTORS(StringStream)
void PrintSecurityTokenIfChanged(Isolate *isolate, Tagged< JSFunction > function)
std::unique_ptr< char[]> ToCString() const
void OutputToFile(FILE *out)
StringStream(StringAllocator *allocator, ObjectPrintMode object_print_mode=kPrintObjectVerbose)
void PrintFixedArray(Tagged< FixedArray > array, unsigned int limit)
void Add(const char *format)
void PrintName(Tagged< Object > o)
void PrintUsingMap(Isolate *isolate, Tagged< JSObject > js_object)
void Log(Isolate *isolate)
StringAllocator * allocator_
ObjectPrintMode object_print_mode_
void Add(base::Vector< const char > format, Args... args)
base::Vector< const DirectHandle< Object > > args
constexpr Vector< T > ArrayVector(T(&arr)[N])
Vector< const char > CStrVector(const char *data)
void DeleteArray(T *array)
#define V8_EXPORT_PRIVATE