Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 2163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2174 | 2174 |
| 2175 // Allocate the foreign for __proto__. | 2175 // Allocate the foreign for __proto__. |
| 2176 { MaybeObject* maybe_obj = | 2176 { MaybeObject* maybe_obj = |
| 2177 AllocateForeign((Address) &Accessors::ObjectPrototype); | 2177 AllocateForeign((Address) &Accessors::ObjectPrototype); |
| 2178 if (!maybe_obj->ToObject(&obj)) return false; | 2178 if (!maybe_obj->ToObject(&obj)) return false; |
| 2179 } | 2179 } |
| 2180 set_prototype_accessors(Foreign::cast(obj)); | 2180 set_prototype_accessors(Foreign::cast(obj)); |
| 2181 | 2181 |
| 2182 // Allocate the code_stubs dictionary. The initial size is set to avoid | 2182 // Allocate the code_stubs dictionary. The initial size is set to avoid |
| 2183 // expanding the dictionary during bootstrapping. | 2183 // expanding the dictionary during bootstrapping. |
| 2184 { MaybeObject* maybe_obj = NumberDictionary::Allocate(128); | 2184 { MaybeObject* maybe_obj = UnseededNumberDictionary::Allocate(128); |
| 2185 if (!maybe_obj->ToObject(&obj)) return false; | 2185 if (!maybe_obj->ToObject(&obj)) return false; |
| 2186 } | 2186 } |
| 2187 set_code_stubs(NumberDictionary::cast(obj)); | 2187 set_code_stubs(UnseededNumberDictionary::cast(obj)); |
| 2188 | 2188 |
| 2189 // Allocate the non_monomorphic_cache used in stub-cache.cc. The initial size | 2189 // Allocate the non_monomorphic_cache used in stub-cache.cc. The initial size |
| 2190 // is set to avoid expanding the dictionary during bootstrapping. | 2190 // is set to avoid expanding the dictionary during bootstrapping. |
| 2191 { MaybeObject* maybe_obj = NumberDictionary::Allocate(64); | 2191 { MaybeObject* maybe_obj = UnseededNumberDictionary::Allocate(64); |
| 2192 if (!maybe_obj->ToObject(&obj)) return false; | 2192 if (!maybe_obj->ToObject(&obj)) return false; |
| 2193 } | 2193 } |
| 2194 set_non_monomorphic_cache(NumberDictionary::cast(obj)); | 2194 set_non_monomorphic_cache(UnseededNumberDictionary::cast(obj)); |
| 2195 | 2195 |
| 2196 { MaybeObject* maybe_obj = AllocatePolymorphicCodeCache(); | 2196 { MaybeObject* maybe_obj = AllocatePolymorphicCodeCache(); |
| 2197 if (!maybe_obj->ToObject(&obj)) return false; | 2197 if (!maybe_obj->ToObject(&obj)) return false; |
| 2198 } | 2198 } |
| 2199 set_polymorphic_code_cache(PolymorphicCodeCache::cast(obj)); | 2199 set_polymorphic_code_cache(PolymorphicCodeCache::cast(obj)); |
| 2200 | 2200 |
| 2201 set_instanceof_cache_function(Smi::FromInt(0)); | 2201 set_instanceof_cache_function(Smi::FromInt(0)); |
| 2202 set_instanceof_cache_map(Smi::FromInt(0)); | 2202 set_instanceof_cache_map(Smi::FromInt(0)); |
| 2203 set_instanceof_cache_answer(Smi::FromInt(0)); | 2203 set_instanceof_cache_answer(Smi::FromInt(0)); |
| 2204 | 2204 |
| (...skipping 3150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5355 if (cell_space_ == NULL) return false; | 5355 if (cell_space_ == NULL) return false; |
| 5356 if (!cell_space_->Setup(NULL, 0)) return false; | 5356 if (!cell_space_->Setup(NULL, 0)) return false; |
| 5357 | 5357 |
| 5358 // The large object code space may contain code or data. We set the memory | 5358 // The large object code space may contain code or data. We set the memory |
| 5359 // to be non-executable here for safety, but this means we need to enable it | 5359 // to be non-executable here for safety, but this means we need to enable it |
| 5360 // explicitly when allocating large code objects. | 5360 // explicitly when allocating large code objects. |
| 5361 lo_space_ = new LargeObjectSpace(this, LO_SPACE); | 5361 lo_space_ = new LargeObjectSpace(this, LO_SPACE); |
| 5362 if (lo_space_ == NULL) return false; | 5362 if (lo_space_ == NULL) return false; |
| 5363 if (!lo_space_->Setup()) return false; | 5363 if (!lo_space_->Setup()) return false; |
| 5364 | 5364 |
| 5365 // Set up the seed that is used to randomize the string hash function. | 5365 // Setup the seed that is used to randomize the string hash function. |
|
Erik Corry
2012/01/19 15:35:00
AAAAArhg! :-)
| |
| 5366 ASSERT(string_hash_seed() == 0); | 5366 ASSERT(hash_seed() == 0); |
| 5367 if (FLAG_randomize_string_hashes) { | 5367 if (FLAG_randomize_hashes) { |
| 5368 if (FLAG_string_hash_seed == 0) { | 5368 if (FLAG_hash_seed == 0) { |
| 5369 set_string_hash_seed( | 5369 set_hash_seed( |
| 5370 Smi::FromInt(V8::RandomPrivate(isolate()) & 0x3fffffff)); | 5370 Smi::FromInt(V8::RandomPrivate(isolate()) & 0x3fffffff)); |
| 5371 } else { | 5371 } else { |
| 5372 set_string_hash_seed(Smi::FromInt(FLAG_string_hash_seed)); | 5372 set_hash_seed(Smi::FromInt(FLAG_hash_seed)); |
| 5373 } | 5373 } |
| 5374 } | 5374 } |
| 5375 | 5375 |
| 5376 if (create_heap_objects) { | 5376 if (create_heap_objects) { |
| 5377 // Create initial maps. | 5377 // Create initial maps. |
| 5378 if (!CreateInitialMaps()) return false; | 5378 if (!CreateInitialMaps()) return false; |
| 5379 if (!CreateApiObjects()) return false; | 5379 if (!CreateApiObjects()) return false; |
| 5380 | 5380 |
| 5381 // Create initial objects | 5381 // Create initial objects |
| 5382 if (!CreateInitialObjects()) return false; | 5382 if (!CreateInitialObjects()) return false; |
| (...skipping 903 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6286 } | 6286 } |
| 6287 | 6287 |
| 6288 | 6288 |
| 6289 void ExternalStringTable::TearDown() { | 6289 void ExternalStringTable::TearDown() { |
| 6290 new_space_strings_.Free(); | 6290 new_space_strings_.Free(); |
| 6291 old_space_strings_.Free(); | 6291 old_space_strings_.Free(); |
| 6292 } | 6292 } |
| 6293 | 6293 |
| 6294 | 6294 |
| 6295 } } // namespace v8::internal | 6295 } } // namespace v8::internal |
| OLD | NEW |