Chromium Code Reviews| 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 | |
| 9989 // Flatten the input {string}. | |
|
Franzi
2016/05/27 14:20:08
Do we need this comment?
Benedikt Meurer
2016/05/27 17:20:58
Done.
| |
| 9990 string = String::Flatten(string); | |
| 9991 int const length = string->length(); | |
| 9992 | |
| 9993 // Perform left trimming if requested. | |
| 9994 int left = 0; | |
| 9995 UnicodeCache* unicode_cache = isolate->unicode_cache(); | |
| 9996 if (mode & kTrimLeft) { | |
|
Franzi
2016/05/27 14:20:08
For readability, I would prefer
if (mode == kTrim
Benedikt Meurer
2016/05/27 17:20:58
Good suggestion, thanks. Did that.
| |
| 9997 while (left < length && | |
| 9998 unicode_cache->IsWhiteSpaceOrLineTerminator(string->Get(left))) { | |
| 9999 left++; | |
| 10000 } | |
| 10001 } | |
| 10002 | |
| 10003 // Perform right trimming if requested. | |
| 10004 int right = length; | |
| 10005 if (mode & kTrimRight) { | |
| 10006 while ( | |
| 10007 right > left && | |
| 10008 unicode_cache->IsWhiteSpaceOrLineTerminator(string->Get(right - 1))) { | |
| 10009 right--; | |
| 10010 } | |
| 10011 } | |
| 10012 | |
| 10013 return isolate->factory()->NewSubString(string, left, right); | |
| 10014 } | |
| 9985 | 10015 |
| 9986 bool String::LooksValid() { | 10016 bool String::LooksValid() { |
| 9987 if (!GetIsolate()->heap()->Contains(this)) return false; | 10017 if (!GetIsolate()->heap()->Contains(this)) return false; |
| 9988 return true; | 10018 return true; |
| 9989 } | 10019 } |
| 9990 | 10020 |
| 9991 | 10021 |
| 9992 // static | 10022 // static |
| 9993 MaybeHandle<String> Name::ToFunctionName(Handle<Name> name) { | 10023 MaybeHandle<String> Name::ToFunctionName(Handle<Name> name) { |
| 9994 if (name->IsString()) return Handle<String>::cast(name); | 10024 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) { | 18555 if (cell->value() != *new_value) { |
| 18526 cell->set_value(*new_value); | 18556 cell->set_value(*new_value); |
| 18527 Isolate* isolate = cell->GetIsolate(); | 18557 Isolate* isolate = cell->GetIsolate(); |
| 18528 cell->dependent_code()->DeoptimizeDependentCodeGroup( | 18558 cell->dependent_code()->DeoptimizeDependentCodeGroup( |
| 18529 isolate, DependentCode::kPropertyCellChangedGroup); | 18559 isolate, DependentCode::kPropertyCellChangedGroup); |
| 18530 } | 18560 } |
| 18531 } | 18561 } |
| 18532 | 18562 |
| 18533 } // namespace internal | 18563 } // namespace internal |
| 18534 } // namespace v8 | 18564 } // namespace v8 |
| OLD | NEW |