| OLD | NEW | 
|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 // Review notes: | 5 // Review notes: | 
| 6 // | 6 // | 
| 7 // - The use of macros in these inline functions may seem superfluous | 7 // - The use of macros in these inline functions may seem superfluous | 
| 8 // but it is absolutely needed to make sure gcc generates optimal | 8 // but it is absolutely needed to make sure gcc generates optimal | 
| 9 // code. gcc is not happy when attempting to inline too deep. | 9 // code. gcc is not happy when attempting to inline too deep. | 
| 10 // | 10 // | 
| (...skipping 7058 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 7069   DCHECK(IsInternalizedString()); | 7069   DCHECK(IsInternalizedString()); | 
| 7070   if (HasHashCode()) return this; | 7070   if (HasHashCode()) return this; | 
| 7071   String* canonical = String::cast(READ_FIELD(this, kHashFieldSlot)); | 7071   String* canonical = String::cast(READ_FIELD(this, kHashFieldSlot)); | 
| 7072   DCHECK(canonical->IsInternalizedString()); | 7072   DCHECK(canonical->IsInternalizedString()); | 
| 7073   DCHECK(SlowEquals(canonical)); | 7073   DCHECK(SlowEquals(canonical)); | 
| 7074   DCHECK(canonical->HasHashCode()); | 7074   DCHECK(canonical->HasHashCode()); | 
| 7075   return canonical; | 7075   return canonical; | 
| 7076 } | 7076 } | 
| 7077 | 7077 | 
| 7078 | 7078 | 
|  | 7079 // static | 
|  | 7080 Maybe<bool> Object::GreaterThan(Handle<Object> x, Handle<Object> y, | 
|  | 7081                                 Strength strength) { | 
|  | 7082   Maybe<ComparisonResult> result = Compare(x, y, strength); | 
|  | 7083   if (result.IsJust()) { | 
|  | 7084     switch (result.FromJust()) { | 
|  | 7085       case ComparisonResult::kGreaterThan: | 
|  | 7086         return Just(true); | 
|  | 7087       case ComparisonResult::kLessThan: | 
|  | 7088       case ComparisonResult::kEqual: | 
|  | 7089       case ComparisonResult::kUndefined: | 
|  | 7090         return Just(false); | 
|  | 7091     } | 
|  | 7092   } | 
|  | 7093   return Nothing<bool>(); | 
|  | 7094 } | 
|  | 7095 | 
|  | 7096 | 
|  | 7097 // static | 
|  | 7098 Maybe<bool> Object::GreaterThanOrEqual(Handle<Object> x, Handle<Object> y, | 
|  | 7099                                        Strength strength) { | 
|  | 7100   Maybe<ComparisonResult> result = Compare(x, y, strength); | 
|  | 7101   if (result.IsJust()) { | 
|  | 7102     switch (result.FromJust()) { | 
|  | 7103       case ComparisonResult::kEqual: | 
|  | 7104       case ComparisonResult::kGreaterThan: | 
|  | 7105         return Just(true); | 
|  | 7106       case ComparisonResult::kLessThan: | 
|  | 7107       case ComparisonResult::kUndefined: | 
|  | 7108         return Just(false); | 
|  | 7109     } | 
|  | 7110   } | 
|  | 7111   return Nothing<bool>(); | 
|  | 7112 } | 
|  | 7113 | 
|  | 7114 | 
|  | 7115 // static | 
|  | 7116 Maybe<bool> Object::LessThan(Handle<Object> x, Handle<Object> y, | 
|  | 7117                              Strength strength) { | 
|  | 7118   Maybe<ComparisonResult> result = Compare(x, y, strength); | 
|  | 7119   if (result.IsJust()) { | 
|  | 7120     switch (result.FromJust()) { | 
|  | 7121       case ComparisonResult::kLessThan: | 
|  | 7122         return Just(true); | 
|  | 7123       case ComparisonResult::kEqual: | 
|  | 7124       case ComparisonResult::kGreaterThan: | 
|  | 7125       case ComparisonResult::kUndefined: | 
|  | 7126         return Just(false); | 
|  | 7127     } | 
|  | 7128   } | 
|  | 7129   return Nothing<bool>(); | 
|  | 7130 } | 
|  | 7131 | 
|  | 7132 | 
|  | 7133 // static | 
|  | 7134 Maybe<bool> Object::LessThanOrEqual(Handle<Object> x, Handle<Object> y, | 
|  | 7135                                     Strength strength) { | 
|  | 7136   Maybe<ComparisonResult> result = Compare(x, y, strength); | 
|  | 7137   if (result.IsJust()) { | 
|  | 7138     switch (result.FromJust()) { | 
|  | 7139       case ComparisonResult::kEqual: | 
|  | 7140       case ComparisonResult::kLessThan: | 
|  | 7141         return Just(true); | 
|  | 7142       case ComparisonResult::kGreaterThan: | 
|  | 7143       case ComparisonResult::kUndefined: | 
|  | 7144         return Just(false); | 
|  | 7145     } | 
|  | 7146   } | 
|  | 7147   return Nothing<bool>(); | 
|  | 7148 } | 
|  | 7149 | 
|  | 7150 | 
| 7079 MaybeHandle<Object> Object::GetPropertyOrElement(Handle<Object> object, | 7151 MaybeHandle<Object> Object::GetPropertyOrElement(Handle<Object> object, | 
| 7080                                                  Handle<Name> name, | 7152                                                  Handle<Name> name, | 
| 7081                                                  LanguageMode language_mode) { | 7153                                                  LanguageMode language_mode) { | 
| 7082   LookupIterator it = | 7154   LookupIterator it = | 
| 7083       LookupIterator::PropertyOrElement(name->GetIsolate(), object, name); | 7155       LookupIterator::PropertyOrElement(name->GetIsolate(), object, name); | 
| 7084   return GetProperty(&it, language_mode); | 7156   return GetProperty(&it, language_mode); | 
| 7085 } | 7157 } | 
| 7086 | 7158 | 
| 7087 | 7159 | 
| 7088 Maybe<bool> JSReceiver::HasProperty(Handle<JSReceiver> object, | 7160 Maybe<bool> JSReceiver::HasProperty(Handle<JSReceiver> object, | 
| (...skipping 854 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 7943 #undef READ_INT64_FIELD | 8015 #undef READ_INT64_FIELD | 
| 7944 #undef WRITE_INT64_FIELD | 8016 #undef WRITE_INT64_FIELD | 
| 7945 #undef READ_BYTE_FIELD | 8017 #undef READ_BYTE_FIELD | 
| 7946 #undef WRITE_BYTE_FIELD | 8018 #undef WRITE_BYTE_FIELD | 
| 7947 #undef NOBARRIER_READ_BYTE_FIELD | 8019 #undef NOBARRIER_READ_BYTE_FIELD | 
| 7948 #undef NOBARRIER_WRITE_BYTE_FIELD | 8020 #undef NOBARRIER_WRITE_BYTE_FIELD | 
| 7949 | 8021 | 
| 7950 } }  // namespace v8::internal | 8022 } }  // namespace v8::internal | 
| 7951 | 8023 | 
| 7952 #endif  // V8_OBJECTS_INL_H_ | 8024 #endif  // V8_OBJECTS_INL_H_ | 
| OLD | NEW | 
|---|