@@ -2411,9 +2411,9 @@ class IsIdentifierHelper {
24112411 public:
24122412 IsIdentifierHelper () : is_identifier_(false ), first_char_(true ) {}
24132413
2414- bool Check (i::String* string) {
2415- i::ConsString* cons_string = i::String::VisitFlat (this , string, 0 );
2416- if (cons_string == nullptr ) return is_identifier_;
2414+ bool Check (i::String string) {
2415+ i::ConsString cons_string = i::String::VisitFlat (this , string, 0 );
2416+ if (cons_string. is_null () ) return is_identifier_;
24172417 // We don't support cons strings here.
24182418 return false ;
24192419 }
@@ -5203,9 +5203,9 @@ static inline const uint16_t* Align(const uint16_t* chars) {
52035203class ContainsOnlyOneByteHelper {
52045204 public:
52055205 ContainsOnlyOneByteHelper () : is_one_byte_(true ) {}
5206- bool Check (i::String* string) {
5207- i::ConsString* cons_string = i::String::VisitFlat (this , string, 0 );
5208- if (cons_string == nullptr ) return is_one_byte_;
5206+ bool Check (i::String string) {
5207+ i::ConsString cons_string = i::String::VisitFlat (this , string, 0 );
5208+ if (cons_string. is_null () ) return is_one_byte_;
52095209 return CheckCons (cons_string);
52105210 }
52115211 void VisitOneByteString (const uint8_t * chars, int length) {
@@ -5244,20 +5244,18 @@ class ContainsOnlyOneByteHelper {
52445244 }
52455245
52465246 private:
5247- bool CheckCons (i::ConsString* cons_string) {
5247+ bool CheckCons (i::ConsString cons_string) {
52485248 while (true ) {
52495249 // Check left side if flat.
5250- i::String* left = cons_string->first ();
5251- i::ConsString* left_as_cons =
5252- i::String::VisitFlat (this , left, 0 );
5250+ i::String left = cons_string->first ();
5251+ i::ConsString left_as_cons = i::String::VisitFlat (this , left, 0 );
52535252 if (!is_one_byte_) return false ;
52545253 // Check right side if flat.
5255- i::String* right = cons_string->second ();
5256- i::ConsString* right_as_cons =
5257- i::String::VisitFlat (this , right, 0 );
5254+ i::String right = cons_string->second ();
5255+ i::ConsString right_as_cons = i::String::VisitFlat (this , right, 0 );
52585256 if (!is_one_byte_) return false ;
52595257 // Standard recurse/iterate trick.
5260- if (left_as_cons != nullptr && right_as_cons != nullptr ) {
5258+ if (! left_as_cons. is_null () && !right_as_cons. is_null () ) {
52615259 if (left->length () < right->length ()) {
52625260 CheckCons (left_as_cons);
52635261 cons_string = right_as_cons;
@@ -5270,12 +5268,12 @@ class ContainsOnlyOneByteHelper {
52705268 continue ;
52715269 }
52725270 // Descend left in place.
5273- if (left_as_cons != nullptr ) {
5271+ if (!left_as_cons. is_null () ) {
52745272 cons_string = left_as_cons;
52755273 continue ;
52765274 }
52775275 // Descend right in place.
5278- if (right_as_cons != nullptr ) {
5276+ if (!right_as_cons. is_null () ) {
52795277 cons_string = right_as_cons;
52805278 continue ;
52815279 }
@@ -5499,16 +5497,16 @@ class Utf8WriterVisitor {
54995497 DISALLOW_IMPLICIT_CONSTRUCTORS (Utf8WriterVisitor);
55005498};
55015499
5502-
5503- static bool RecursivelySerializeToUtf8 (i::String* current,
5500+ // TODO(yangguo): Simplify this. We can now expect the string to be flat.
5501+ static bool RecursivelySerializeToUtf8 (i::String current,
55045502 Utf8WriterVisitor* writer,
55055503 int recursion_budget) {
55065504 while (!writer->IsDone ()) {
5507- i::ConsString* cons_string = i::String::VisitFlat (writer, current);
5508- if (cons_string == nullptr ) return true ; // Leaf node.
5505+ i::ConsString cons_string = i::String::VisitFlat (writer, current);
5506+ if (cons_string. is_null () ) return true ; // Leaf node.
55095507 if (recursion_budget <= 0 ) return false ;
55105508 // Must write the left branch first.
5511- i::String* first = cons_string->first ();
5509+ i::String first = cons_string->first ();
55125510 bool success = RecursivelySerializeToUtf8 (first,
55135511 writer,
55145512 recursion_budget - 1 );
@@ -5615,7 +5613,7 @@ bool v8::String::IsExternalOneByte() const {
56155613void v8::String::VerifyExternalStringResource (
56165614 v8::String::ExternalStringResource* value) const {
56175615 i::DisallowHeapAllocation no_allocation;
5618- i::String* str = *Utils::OpenHandle (this );
5616+ i::String str = *Utils::OpenHandle (this );
56195617 const v8::String::ExternalStringResource* expected;
56205618
56215619 if (str->IsThinString ()) {
@@ -5634,7 +5632,7 @@ void v8::String::VerifyExternalStringResource(
56345632void v8::String::VerifyExternalStringResourceBase (
56355633 v8::String::ExternalStringResourceBase* value, Encoding encoding) const {
56365634 i::DisallowHeapAllocation no_allocation;
5637- i::String* str = *Utils::OpenHandle (this );
5635+ i::String str = *Utils::OpenHandle (this );
56385636 const v8::String::ExternalStringResourceBase* expected;
56395637 Encoding expectedEncoding;
56405638
@@ -5662,15 +5660,14 @@ void v8::String::VerifyExternalStringResourceBase(
56625660String::ExternalStringResource* String::GetExternalStringResourceSlow () const {
56635661 i::DisallowHeapAllocation no_allocation;
56645662 typedef internal::Internals I;
5665- i::String* str = *Utils::OpenHandle (this );
5663+ i::String str = *Utils::OpenHandle (this );
56665664
56675665 if (str->IsThinString ()) {
56685666 str = i::ThinString::cast (str)->actual ();
56695667 }
56705668
56715669 if (i::StringShape (str).IsExternalTwoByte ()) {
5672- void * value = I::ReadField<void *>(reinterpret_cast <i::Address>(str),
5673- I::kStringResourceOffset );
5670+ void * value = I::ReadField<void *>(str.ptr (), I::kStringResourceOffset );
56745671 return reinterpret_cast <String::ExternalStringResource*>(value);
56755672 }
56765673 return nullptr ;
@@ -5681,13 +5678,13 @@ String::ExternalStringResourceBase* String::GetExternalStringResourceBaseSlow(
56815678 i::DisallowHeapAllocation no_allocation;
56825679 typedef internal::Internals I;
56835680 ExternalStringResourceBase* resource = nullptr ;
5684- i::String* str = *Utils::OpenHandle (this );
5681+ i::String str = *Utils::OpenHandle (this );
56855682
56865683 if (str->IsThinString ()) {
56875684 str = i::ThinString::cast (str)->actual ();
56885685 }
56895686
5690- internal::Address string = reinterpret_cast <internal::Address>( str);
5687+ internal::Address string = str. ptr ( );
56915688 int type = I::GetInstanceType (string) & I::kFullStringRepresentationMask ;
56925689 *encoding_out = static_cast <Encoding>(type & I::kStringEncodingMask );
56935690 if (i::StringShape (str).IsExternalOneByte () ||
@@ -5701,7 +5698,7 @@ String::ExternalStringResourceBase* String::GetExternalStringResourceBaseSlow(
57015698const v8::String::ExternalOneByteStringResource*
57025699v8::String::GetExternalOneByteStringResource () const {
57035700 i::DisallowHeapAllocation no_allocation;
5704- i::String* str = *Utils::OpenHandle (this );
5701+ i::String str = *Utils::OpenHandle (this );
57055702 if (i::StringShape (str).IsExternalOneByte ()) {
57065703 return i::ExternalOneByteString::cast (str)->resource ();
57075704 } else if (str->IsThinString ()) {
@@ -6620,7 +6617,7 @@ Local<String> v8::String::NewExternal(
66206617bool v8::String::MakeExternal (v8::String::ExternalStringResource* resource) {
66216618 i::DisallowHeapAllocation no_allocation;
66226619
6623- i::String* obj = *Utils::OpenHandle (this );
6620+ i::String obj = *Utils::OpenHandle (this );
66246621
66256622 if (obj->IsThinString ()) {
66266623 obj = i::ThinString::cast (obj)->actual ();
@@ -6649,7 +6646,7 @@ bool v8::String::MakeExternal(
66496646 v8::String::ExternalOneByteStringResource* resource) {
66506647 i::DisallowHeapAllocation no_allocation;
66516648
6652- i::String* obj = *Utils::OpenHandle (this );
6649+ i::String obj = *Utils::OpenHandle (this );
66536650
66546651 if (obj->IsThinString ()) {
66556652 obj = i::ThinString::cast (obj)->actual ();
@@ -6676,7 +6673,7 @@ bool v8::String::MakeExternal(
66766673
66776674bool v8::String::CanMakeExternal () {
66786675 i::DisallowHeapAllocation no_allocation;
6679- i::String* obj = *Utils::OpenHandle (this );
6676+ i::String obj = *Utils::OpenHandle (this );
66806677
66816678 if (obj->IsThinString ()) {
66826679 obj = i::ThinString::cast (obj)->actual ();
@@ -9762,7 +9759,7 @@ void debug::GlobalLexicalScopeNames(
97629759 i::Handle<i::ScopeInfo> scope_info (context->scope_info (), isolate);
97639760 int local_count = scope_info->ContextLocalCount ();
97649761 for (int j = 0 ; j < local_count; ++j) {
9765- i::String* name = scope_info->ContextLocalName (j);
9762+ i::String name = scope_info->ContextLocalName (j);
97669763 if (i::ScopeInfo::VariableIsSynthetic (name)) continue ;
97679764 names->Append (Utils::ToLocal (handle (name, isolate)));
97689765 }
0 commit comments