OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/objects.h" | 5 #include "src/objects.h" |
6 | 6 |
7 #include <cmath> | 7 #include <cmath> |
8 #include <iomanip> | 8 #include <iomanip> |
9 #include <sstream> | 9 #include <sstream> |
10 | 10 |
(...skipping 9964 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9975 if (IsEmpty()) return other->IsEmpty(); | 9975 if (IsEmpty()) return other->IsEmpty(); |
9976 if (other->IsEmpty()) return false; | 9976 if (other->IsEmpty()) return false; |
9977 if (length() != other->length()) return false; | 9977 if (length() != other->length()) return false; |
9978 for (int i = 0; i < length(); ++i) { | 9978 for (int i = 0; i < length(); ++i) { |
9979 if (get(i) != other->get(i)) return false; | 9979 if (get(i) != other->get(i)) return false; |
9980 } | 9980 } |
9981 return true; | 9981 return true; |
9982 } | 9982 } |
9983 #endif | 9983 #endif |
9984 | 9984 |
| 9985 // static |
| 9986 Handle<String> String::Trim(Handle<String> string, TrimMode mode) { |
| 9987 Isolate* const isolate = string->GetIsolate(); |
| 9988 string = String::Flatten(string); |
| 9989 int const length = string->length(); |
| 9990 |
| 9991 // Perform left trimming if requested. |
| 9992 int left = 0; |
| 9993 UnicodeCache* unicode_cache = isolate->unicode_cache(); |
| 9994 if (mode == kTrim || mode == kTrimLeft) { |
| 9995 while (left < length && |
| 9996 unicode_cache->IsWhiteSpaceOrLineTerminator(string->Get(left))) { |
| 9997 left++; |
| 9998 } |
| 9999 } |
| 10000 |
| 10001 // Perform right trimming if requested. |
| 10002 int right = length; |
| 10003 if (mode == kTrim || mode == kTrimRight) { |
| 10004 while ( |
| 10005 right > left && |
| 10006 unicode_cache->IsWhiteSpaceOrLineTerminator(string->Get(right - 1))) { |
| 10007 right--; |
| 10008 } |
| 10009 } |
| 10010 |
| 10011 return isolate->factory()->NewSubString(string, left, right); |
| 10012 } |
9985 | 10013 |
9986 bool String::LooksValid() { | 10014 bool String::LooksValid() { |
9987 if (!GetIsolate()->heap()->Contains(this)) return false; | 10015 if (!GetIsolate()->heap()->Contains(this)) return false; |
9988 return true; | 10016 return true; |
9989 } | 10017 } |
9990 | 10018 |
9991 | 10019 |
9992 // static | 10020 // static |
9993 MaybeHandle<String> Name::ToFunctionName(Handle<Name> name) { | 10021 MaybeHandle<String> Name::ToFunctionName(Handle<Name> name) { |
9994 if (name->IsString()) return Handle<String>::cast(name); | 10022 if (name->IsString()) return Handle<String>::cast(name); |
(...skipping 8530 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
18525 if (cell->value() != *new_value) { | 18553 if (cell->value() != *new_value) { |
18526 cell->set_value(*new_value); | 18554 cell->set_value(*new_value); |
18527 Isolate* isolate = cell->GetIsolate(); | 18555 Isolate* isolate = cell->GetIsolate(); |
18528 cell->dependent_code()->DeoptimizeDependentCodeGroup( | 18556 cell->dependent_code()->DeoptimizeDependentCodeGroup( |
18529 isolate, DependentCode::kPropertyCellChangedGroup); | 18557 isolate, DependentCode::kPropertyCellChangedGroup); |
18530 } | 18558 } |
18531 } | 18559 } |
18532 | 18560 |
18533 } // namespace internal | 18561 } // namespace internal |
18534 } // namespace v8 | 18562 } // namespace v8 |
OLD | NEW |