Chromium Code Reviews| Index: src/bootstrapper.cc |
| diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc |
| index 234a2118bdd7002189906df3e21f6446869f594e..c2c6d1b6e7a244793313a971aa57aaf5b8c28e19 100644 |
| --- a/src/bootstrapper.cc |
| +++ b/src/bootstrapper.cc |
| @@ -1308,10 +1308,6 @@ void Genesis::InitializeGlobal(Handle<GlobalObject> inner_global, |
| // Initialize the embedder data slot. |
| Handle<FixedArray> embedder_data = factory->NewFixedArray(2); |
| native_context()->set_embedder_data(*embedder_data); |
| - |
| - // Allocate the random seed slot. |
| - Handle<ByteArray> random_seed = factory->NewByteArray(kRandomStateSize); |
| - native_context()->set_random_seed(*random_seed); |
| } |
| @@ -2637,11 +2633,21 @@ Genesis::Genesis(Isolate* isolate, |
| // Initially seed the per-context random number generator |
| // using the per-isolate random number generator. |
| - uint32_t* state = reinterpret_cast<uint32_t*>( |
| - native_context()->random_seed()->GetDataStartAddress()); |
| + uint32_t state[2]; |
| do { |
| - isolate->random_number_generator()->NextBytes(state, kRandomStateSize); |
| + isolate->random_number_generator()->NextBytes(state, sizeof(state)); |
| } while (state[0] == 0 || state[1] == 0); |
| + Handle<JSBuiltinsObject> builtins(native_context()->builtins()); |
| + ForceSetProperty(builtins, |
| + factory()->InternalizeOneByteString( |
| + STATIC_ASCII_VECTOR("random0")), |
| + factory()->NewHeapNumber(state[0]), |
|
Michael Starzinger
2013/11/11 14:11:12
Better use Factory::NewNumberFromUint here and in
Sven Panne
2013/11/12 07:09:12
Done.
|
| + NONE); |
| + ForceSetProperty(builtins, |
| + factory()->InternalizeOneByteString( |
| + STATIC_ASCII_VECTOR("random1")), |
| + factory()->NewHeapNumber(state[1]), |
| + NONE); |
| result_ = native_context(); |
| } |