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 4701 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4712 | 4712 |
4713 | 4713 |
4714 Smi* JSReceiver::GenerateIdentityHash() { | 4714 Smi* JSReceiver::GenerateIdentityHash() { |
4715 Isolate* isolate = GetIsolate(); | 4715 Isolate* isolate = GetIsolate(); |
4716 | 4716 |
4717 int hash_value; | 4717 int hash_value; |
4718 int attempts = 0; | 4718 int attempts = 0; |
4719 do { | 4719 do { |
4720 // Generate a random 32-bit hash value but limit range to fit | 4720 // Generate a random 32-bit hash value but limit range to fit |
4721 // within a smi. | 4721 // within a smi. |
4722 hash_value = V8::RandomPrivate(isolate) & Smi::kMaxValue; | 4722 hash_value = isolate->random_number_generator()->NextInt() & Smi::kMaxValue; |
4723 attempts++; | 4723 attempts++; |
4724 } while (hash_value == 0 && attempts < 30); | 4724 } while (hash_value == 0 && attempts < 30); |
4725 hash_value = hash_value != 0 ? hash_value : 1; // never return 0 | 4725 hash_value = hash_value != 0 ? hash_value : 1; // never return 0 |
4726 | 4726 |
4727 return Smi::FromInt(hash_value); | 4727 return Smi::FromInt(hash_value); |
4728 } | 4728 } |
4729 | 4729 |
4730 | 4730 |
4731 void JSObject::SetIdentityHash(Handle<JSObject> object, Smi* hash) { | 4731 void JSObject::SetIdentityHash(Handle<JSObject> object, Smi* hash) { |
4732 CALL_HEAP_FUNCTION_VOID(object->GetIsolate(), | 4732 CALL_HEAP_FUNCTION_VOID(object->GetIsolate(), |
(...skipping 11320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
16053 #define ERROR_MESSAGES_TEXTS(C, T) T, | 16053 #define ERROR_MESSAGES_TEXTS(C, T) T, |
16054 static const char* error_messages_[] = { | 16054 static const char* error_messages_[] = { |
16055 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS) | 16055 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS) |
16056 }; | 16056 }; |
16057 #undef ERROR_MESSAGES_TEXTS | 16057 #undef ERROR_MESSAGES_TEXTS |
16058 return error_messages_[reason]; | 16058 return error_messages_[reason]; |
16059 } | 16059 } |
16060 | 16060 |
16061 | 16061 |
16062 } } // namespace v8::internal | 16062 } } // namespace v8::internal |
OLD | NEW |