| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 13972 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13983 Smi* flags_; | 13983 Smi* flags_; |
| 13984 }; | 13984 }; |
| 13985 | 13985 |
| 13986 | 13986 |
| 13987 MaybeObject* OneByteStringKey::AsObject(Heap* heap) { | 13987 MaybeObject* OneByteStringKey::AsObject(Heap* heap) { |
| 13988 if (hash_field_ == 0) Hash(); | 13988 if (hash_field_ == 0) Hash(); |
| 13989 return heap->AllocateOneByteInternalizedString(string_, hash_field_); | 13989 return heap->AllocateOneByteInternalizedString(string_, hash_field_); |
| 13990 } | 13990 } |
| 13991 | 13991 |
| 13992 | 13992 |
| 13993 MaybeObject* SubStringOneByteStringKey::AsObject(Heap* heap) { | |
| 13994 if (hash_field_ == 0) Hash(); | |
| 13995 Vector<const uint8_t> chars(string_->GetChars() + from_, length_); | |
| 13996 return heap->AllocateOneByteInternalizedString(chars, hash_field_); | |
| 13997 } | |
| 13998 | |
| 13999 | |
| 14000 MaybeObject* TwoByteStringKey::AsObject(Heap* heap) { | 13993 MaybeObject* TwoByteStringKey::AsObject(Heap* heap) { |
| 14001 if (hash_field_ == 0) Hash(); | 13994 if (hash_field_ == 0) Hash(); |
| 14002 return heap->AllocateTwoByteInternalizedString(string_, hash_field_); | 13995 return heap->AllocateTwoByteInternalizedString(string_, hash_field_); |
| 14003 } | 13996 } |
| 14004 | 13997 |
| 14005 | 13998 |
| 13999 template<> |
| 14000 const uint8_t* SubStringKey<uint8_t>::GetChars() { |
| 14001 return string_->IsSeqOneByteString() |
| 14002 ? SeqOneByteString::cast(*string_)->GetChars() |
| 14003 : ExternalAsciiString::cast(*string_)->GetChars(); |
| 14004 } |
| 14005 |
| 14006 |
| 14007 template<> |
| 14008 const uint16_t* SubStringKey<uint16_t>::GetChars() { |
| 14009 return string_->IsSeqTwoByteString() |
| 14010 ? SeqTwoByteString::cast(*string_)->GetChars() |
| 14011 : ExternalTwoByteString::cast(*string_)->GetChars(); |
| 14012 } |
| 14013 |
| 14014 |
| 14015 template<> |
| 14016 MaybeObject* SubStringKey<uint8_t>::AsObject(Heap* heap) { |
| 14017 if (hash_field_ == 0) Hash(); |
| 14018 Vector<const uint8_t> chars(GetChars() + from_, length_); |
| 14019 return heap->AllocateOneByteInternalizedString(chars, hash_field_); |
| 14020 } |
| 14021 |
| 14022 |
| 14023 template<> |
| 14024 MaybeObject* SubStringKey<uint16_t>::AsObject( |
| 14025 Heap* heap) { |
| 14026 if (hash_field_ == 0) Hash(); |
| 14027 Vector<const uint16_t> chars(GetChars() + from_, length_); |
| 14028 return heap->AllocateTwoByteInternalizedString(chars, hash_field_); |
| 14029 } |
| 14030 |
| 14031 |
| 14032 template<> |
| 14033 bool SubStringKey<uint8_t>::IsMatch(Object* string) { |
| 14034 Vector<const uint8_t> chars(GetChars() + from_, length_); |
| 14035 return String::cast(string)->IsOneByteEqualTo(chars); |
| 14036 } |
| 14037 |
| 14038 |
| 14039 template<> |
| 14040 bool SubStringKey<uint16_t>::IsMatch(Object* string) { |
| 14041 Vector<const uint16_t> chars(GetChars() + from_, length_); |
| 14042 return String::cast(string)->IsTwoByteEqualTo(chars); |
| 14043 } |
| 14044 |
| 14045 |
| 14046 template class SubStringKey<uint8_t>; |
| 14047 template class SubStringKey<uint16_t>; |
| 14048 |
| 14049 |
| 14006 // InternalizedStringKey carries a string/internalized-string object as key. | 14050 // InternalizedStringKey carries a string/internalized-string object as key. |
| 14007 class InternalizedStringKey : public HashTableKey { | 14051 class InternalizedStringKey : public HashTableKey { |
| 14008 public: | 14052 public: |
| 14009 explicit InternalizedStringKey(String* string) | 14053 explicit InternalizedStringKey(String* string) |
| 14010 : string_(string) { } | 14054 : string_(string) { } |
| 14011 | 14055 |
| 14012 bool IsMatch(Object* string) { | 14056 bool IsMatch(Object* string) { |
| 14013 return String::cast(string)->Equals(string_); | 14057 return String::cast(string)->Equals(string_); |
| 14014 } | 14058 } |
| 14015 | 14059 |
| (...skipping 2578 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 16594 #define ERROR_MESSAGES_TEXTS(C, T) T, | 16638 #define ERROR_MESSAGES_TEXTS(C, T) T, |
| 16595 static const char* error_messages_[] = { | 16639 static const char* error_messages_[] = { |
| 16596 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS) | 16640 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS) |
| 16597 }; | 16641 }; |
| 16598 #undef ERROR_MESSAGES_TEXTS | 16642 #undef ERROR_MESSAGES_TEXTS |
| 16599 return error_messages_[reason]; | 16643 return error_messages_[reason]; |
| 16600 } | 16644 } |
| 16601 | 16645 |
| 16602 | 16646 |
| 16603 } } // namespace v8::internal | 16647 } } // namespace v8::internal |
| OLD | NEW |