Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index e64bdbfff2011658bb94022cbd5c48e2e5d29ce8..c69ee2a8af0bc0453ed3e6a574600b11883d5c3c 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -5693,7 +5693,6 @@ class StringHasher { |
uint32_t raw_running_hash_; |
uint32_t array_index_; |
bool is_array_index_; |
- bool is_first_char_; |
bool is_valid_; |
friend class TwoCharHashTableKey; |
}; |
@@ -6150,10 +6149,11 @@ class SeqString: public String { |
}; |
-// The AsciiString class captures sequential ascii string objects. |
-// Each character in the AsciiString is an ascii character. |
+// The SeqAsciiString class captures sequential ASCII string objects. |
+// Each character in the AsciiString is an ASCII character. |
class SeqAsciiString: public SeqString { |
public: |
+ typedef char CharType; |
static const bool kHasAsciiEncoding = true; |
// Dispatched behavior. |
@@ -6168,6 +6168,11 @@ class SeqAsciiString: public SeqString { |
// Casting |
static inline SeqAsciiString* cast(Object* obj); |
+ bool IsSeqAsciiString() { |
Rico
2011/09/23 07:06:52
Why this, we can always just call IsSequentialAsci
Lasse Reichstein
2011/09/23 09:54:39
As discussed offline, this is to allow templated f
|
+ ASSERT(this->Object::IsSeqAsciiString()); |
+ return true; |
+ } |
+ |
// Garbage collection support. This method is called by the |
// garbage collector to compute the actual size of an AsciiString |
// instance. |
@@ -6197,10 +6202,12 @@ class SeqAsciiString: public SeqString { |
}; |
-// The TwoByteString class captures sequential unicode string objects. |
+// The SeqTwoByteString class captures sequential unicode string objects. |
// Each character in the TwoByteString is a two-byte uint16_t. |
class SeqTwoByteString: public SeqString { |
public: |
+ typedef uc16 CharType; |
+ |
static const bool kHasAsciiEncoding = false; |
// Dispatched behavior. |
@@ -6217,6 +6224,10 @@ class SeqTwoByteString: public SeqString { |
// Casting |
static inline SeqTwoByteString* cast(Object* obj); |
+ bool IsSeqTwoByteString() { |
+ ASSERT(this->Object::IsSeqTwoByteString()); |
Rico
2011/09/23 07:06:52
Same question as for ascii
Lasse Reichstein
2011/09/23 09:54:39
Same answer.
|
+ return true; |
+ } |
// Garbage collection support. This method is called by the |
// garbage collector to compute the actual size of a TwoByteString |
@@ -6386,6 +6397,8 @@ class ExternalString: public String { |
// ASCII string. |
class ExternalAsciiString: public ExternalString { |
public: |
+ typedef char CharType; |
+ |
static const bool kHasAsciiEncoding = true; |
typedef v8::String::ExternalAsciiStringResource Resource; |
@@ -6399,6 +6412,10 @@ class ExternalAsciiString: public ExternalString { |
// Casting. |
static inline ExternalAsciiString* cast(Object* obj); |
+ bool IsExternalAsciiString() { |
+ ASSERT(this->Object::IsExternalAsciiString()); |
+ return true; |
+ } |
// Garbage collection support. |
inline void ExternalAsciiStringIterateBody(ObjectVisitor* v); |
@@ -6419,10 +6436,11 @@ class ExternalAsciiString: public ExternalString { |
}; |
-// The ExternalTwoByteString class is an external string backed by a UTF-16 |
-// encoded string. |
+// The ExternalTwoByteString class is an external string backed by a 16-bit |
+// character sequence. |
class ExternalTwoByteString: public ExternalString { |
public: |
+ typedef uc16 CharType; |
static const bool kHasAsciiEncoding = false; |
typedef v8::String::ExternalStringResource Resource; |
@@ -6439,6 +6457,10 @@ class ExternalTwoByteString: public ExternalString { |
// Casting. |
static inline ExternalTwoByteString* cast(Object* obj); |
+ bool IsExternalTwoByteString() { |
+ ASSERT(this->Object::IsExternalTwoByteString()); |
+ return true; |
+ } |
// Garbage collection support. |
inline void ExternalTwoByteStringIterateBody(ObjectVisitor* v); |