| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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/v8.h" | 5 #include "src/v8.h" |
| 6 | 6 |
| 7 #include "src/accessors.h" | 7 #include "src/accessors.h" |
| 8 #include "src/allocation-site-scopes.h" | 8 #include "src/allocation-site-scopes.h" |
| 9 #include "src/api.h" | 9 #include "src/api.h" |
| 10 #include "src/arguments.h" | 10 #include "src/arguments.h" |
| (...skipping 13876 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13887 return isolate->factory()->NewOneByteInternalizedString(string_, hash_field_); | 13887 return isolate->factory()->NewOneByteInternalizedString(string_, hash_field_); |
| 13888 } | 13888 } |
| 13889 | 13889 |
| 13890 | 13890 |
| 13891 Handle<Object> TwoByteStringKey::AsHandle(Isolate* isolate) { | 13891 Handle<Object> TwoByteStringKey::AsHandle(Isolate* isolate) { |
| 13892 if (hash_field_ == 0) Hash(); | 13892 if (hash_field_ == 0) Hash(); |
| 13893 return isolate->factory()->NewTwoByteInternalizedString(string_, hash_field_); | 13893 return isolate->factory()->NewTwoByteInternalizedString(string_, hash_field_); |
| 13894 } | 13894 } |
| 13895 | 13895 |
| 13896 | 13896 |
| 13897 template<> | 13897 Handle<Object> SeqOneByteSubStringKey::AsHandle(Isolate* isolate) { |
| 13898 const uint8_t* SubStringKey<uint8_t>::GetChars() { | 13898 if (hash_field_ == 0) Hash(); |
| 13899 return string_->IsSeqOneByteString() | 13899 return isolate->factory()->NewOneByteInternalizedSubString( |
| 13900 ? SeqOneByteString::cast(*string_)->GetChars() | 13900 string_, from_, length_, hash_field_); |
| 13901 : ExternalAsciiString::cast(*string_)->GetChars(); | |
| 13902 } | 13901 } |
| 13903 | 13902 |
| 13904 | 13903 |
| 13905 template<> | 13904 bool SeqOneByteSubStringKey::IsMatch(Object* string) { |
| 13906 const uint16_t* SubStringKey<uint16_t>::GetChars() { | 13905 Vector<const uint8_t> chars(string_->GetChars() + from_, length_); |
| 13907 return string_->IsSeqTwoByteString() | |
| 13908 ? SeqTwoByteString::cast(*string_)->GetChars() | |
| 13909 : ExternalTwoByteString::cast(*string_)->GetChars(); | |
| 13910 } | |
| 13911 | |
| 13912 | |
| 13913 template<> | |
| 13914 Handle<Object> SubStringKey<uint8_t>::AsHandle(Isolate* isolate) { | |
| 13915 if (hash_field_ == 0) Hash(); | |
| 13916 Vector<const uint8_t> chars(GetChars() + from_, length_); | |
| 13917 return isolate->factory()->NewOneByteInternalizedString(chars, hash_field_); | |
| 13918 } | |
| 13919 | |
| 13920 | |
| 13921 template<> | |
| 13922 Handle<Object> SubStringKey<uint16_t>::AsHandle(Isolate* isolate) { | |
| 13923 if (hash_field_ == 0) Hash(); | |
| 13924 Vector<const uint16_t> chars(GetChars() + from_, length_); | |
| 13925 return isolate->factory()->NewTwoByteInternalizedString(chars, hash_field_); | |
| 13926 } | |
| 13927 | |
| 13928 | |
| 13929 template<> | |
| 13930 bool SubStringKey<uint8_t>::IsMatch(Object* string) { | |
| 13931 Vector<const uint8_t> chars(GetChars() + from_, length_); | |
| 13932 return String::cast(string)->IsOneByteEqualTo(chars); | 13906 return String::cast(string)->IsOneByteEqualTo(chars); |
| 13933 } | 13907 } |
| 13934 | 13908 |
| 13935 | 13909 |
| 13936 template<> | |
| 13937 bool SubStringKey<uint16_t>::IsMatch(Object* string) { | |
| 13938 Vector<const uint16_t> chars(GetChars() + from_, length_); | |
| 13939 return String::cast(string)->IsTwoByteEqualTo(chars); | |
| 13940 } | |
| 13941 | |
| 13942 | |
| 13943 template class SubStringKey<uint8_t>; | |
| 13944 template class SubStringKey<uint16_t>; | |
| 13945 | |
| 13946 | |
| 13947 // InternalizedStringKey carries a string/internalized-string object as key. | 13910 // InternalizedStringKey carries a string/internalized-string object as key. |
| 13948 class InternalizedStringKey : public HashTableKey { | 13911 class InternalizedStringKey : public HashTableKey { |
| 13949 public: | 13912 public: |
| 13950 explicit InternalizedStringKey(Handle<String> string) | 13913 explicit InternalizedStringKey(Handle<String> string) |
| 13951 : string_(string) { } | 13914 : string_(string) { } |
| 13952 | 13915 |
| 13953 virtual bool IsMatch(Object* string) V8_OVERRIDE { | 13916 virtual bool IsMatch(Object* string) V8_OVERRIDE { |
| 13954 return String::cast(string)->Equals(*string_); | 13917 return String::cast(string)->Equals(*string_); |
| 13955 } | 13918 } |
| 13956 | 13919 |
| (...skipping 2687 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 16644 #define ERROR_MESSAGES_TEXTS(C, T) T, | 16607 #define ERROR_MESSAGES_TEXTS(C, T) T, |
| 16645 static const char* error_messages_[] = { | 16608 static const char* error_messages_[] = { |
| 16646 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS) | 16609 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS) |
| 16647 }; | 16610 }; |
| 16648 #undef ERROR_MESSAGES_TEXTS | 16611 #undef ERROR_MESSAGES_TEXTS |
| 16649 return error_messages_[reason]; | 16612 return error_messages_[reason]; |
| 16650 } | 16613 } |
| 16651 | 16614 |
| 16652 | 16615 |
| 16653 } } // namespace v8::internal | 16616 } } // namespace v8::internal |
| OLD | NEW |