| 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 |