Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(300)

Side by Side Diff: src/bootstrapper.cc

Issue 8571017: Presubmit failures fixed (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 void InitializeExperimentalGlobal(); 204 void InitializeExperimentalGlobal();
205 // Installs the contents of the native .js files on the global objects. 205 // Installs the contents of the native .js files on the global objects.
206 // Used for creating a context from scratch. 206 // Used for creating a context from scratch.
207 void InstallNativeFunctions(); 207 void InstallNativeFunctions();
208 void InstallExperimentalNativeFunctions(); 208 void InstallExperimentalNativeFunctions();
209 bool InstallNatives(); 209 bool InstallNatives();
210 bool InstallExperimentalNatives(); 210 bool InstallExperimentalNatives();
211 void InstallBuiltinFunctionIds(); 211 void InstallBuiltinFunctionIds();
212 void InstallJSFunctionResultCaches(); 212 void InstallJSFunctionResultCaches();
213 void InitializeNormalizedMapCaches(); 213 void InitializeNormalizedMapCaches();
214 214
215 enum ExtensionTraversalState { 215 enum ExtensionTraversalState {
216 UNVISITED, VISITED, INSTALLED 216 UNVISITED, VISITED, INSTALLED
217 }; 217 };
218 218
219 class ExtensionStates { 219 class ExtensionStates {
220 DISALLOW_COPY_AND_ASSIGN(ExtensionStates);
221 public: 220 public:
222 ExtensionStates(); 221 ExtensionStates();
223 ExtensionTraversalState get_state(RegisteredExtension* extension); 222 ExtensionTraversalState get_state(RegisteredExtension* extension);
224 void set_state(RegisteredExtension* extension, 223 void set_state(RegisteredExtension* extension,
225 ExtensionTraversalState state); 224 ExtensionTraversalState state);
226 private: 225 private:
227 Allocator allocator_; 226 Allocator allocator_;
228 HashMap map_; 227 HashMap map_;
228 DISALLOW_COPY_AND_ASSIGN(ExtensionStates);
229 }; 229 };
230 230
231 // Used both for deserialized and from-scratch contexts to add the extensions 231 // Used both for deserialized and from-scratch contexts to add the extensions
232 // provided. 232 // provided.
233 static bool InstallExtensions(Handle<Context> global_context, 233 static bool InstallExtensions(Handle<Context> global_context,
234 v8::ExtensionConfiguration* extensions); 234 v8::ExtensionConfiguration* extensions);
235 static bool InstallExtension(const char* name, 235 static bool InstallExtension(const char* name,
236 ExtensionStates* extension_states); 236 ExtensionStates* extension_states);
237 static bool InstallExtension(v8::RegisteredExtension* current, 237 static bool InstallExtension(v8::RegisteredExtension* current,
238 ExtensionStates* extension_states); 238 ExtensionStates* extension_states);
(...skipping 1743 matching lines...) Expand 10 before | Expand all | Expand 10 after
1982 map_.Lookup(extension, Hash(extension), true)->value = 1982 map_.Lookup(extension, Hash(extension), true)->value =
1983 reinterpret_cast<void*>(static_cast<intptr_t>(state)); 1983 reinterpret_cast<void*>(static_cast<intptr_t>(state));
1984 } 1984 }
1985 1985
1986 bool Genesis::InstallExtensions(Handle<Context> global_context, 1986 bool Genesis::InstallExtensions(Handle<Context> global_context,
1987 v8::ExtensionConfiguration* extensions) { 1987 v8::ExtensionConfiguration* extensions) {
1988 // TODO(isolates): Extensions on multiple isolates may take a little more 1988 // TODO(isolates): Extensions on multiple isolates may take a little more
1989 // effort. (The external API reads 'ignore'-- does that mean 1989 // effort. (The external API reads 'ignore'-- does that mean
1990 // we can break the interface?) 1990 // we can break the interface?)
1991 1991
1992 ExtensionStates extension_states; // All extensions have state UNVISITED. 1992
1993 ExtensionStates extension_states; // All extensions have state UNVISITED.
1993 // Install auto extensions. 1994 // Install auto extensions.
1994 v8::RegisteredExtension* current = v8::RegisteredExtension::first_extension(); 1995 v8::RegisteredExtension* current = v8::RegisteredExtension::first_extension();
1995 while (current != NULL) { 1996 while (current != NULL) {
1996 if (current->extension()->auto_enable()) 1997 if (current->extension()->auto_enable())
1997 InstallExtension(current, &extension_states); 1998 InstallExtension(current, &extension_states);
1998 current = current->next(); 1999 current = current->next();
1999 } 2000 }
2000 2001
2001 if (FLAG_expose_gc) InstallExtension("v8/gc", &extension_states); 2002 if (FLAG_expose_gc) InstallExtension("v8/gc", &extension_states);
2002 if (FLAG_expose_externalize_string) { 2003 if (FLAG_expose_externalize_string) {
(...skipping 26 matching lines...) Expand all
2029 // Didn't find the extension; fail. 2030 // Didn't find the extension; fail.
2030 if (current == NULL) { 2031 if (current == NULL) {
2031 v8::Utils::ReportApiFailure( 2032 v8::Utils::ReportApiFailure(
2032 "v8::Context::New()", "Cannot find required extension"); 2033 "v8::Context::New()", "Cannot find required extension");
2033 return false; 2034 return false;
2034 } 2035 }
2035 return InstallExtension(current, extension_states); 2036 return InstallExtension(current, extension_states);
2036 } 2037 }
2037 2038
2038 2039
2039 bool Genesis::InstallExtension(v8::RegisteredExtension* current, 2040 bool Genesis::InstallExtension(v8::RegisteredExtension* current,
2040 ExtensionStates* extension_states) { 2041 ExtensionStates* extension_states) {
2041 HandleScope scope; 2042 HandleScope scope;
2042 2043
2043 if (extension_states->get_state(current) == INSTALLED) return true; 2044 if (extension_states->get_state(current) == INSTALLED) return true;
2044 // The current node has already been visited so there must be a 2045 // The current node has already been visited so there must be a
2045 // cycle in the dependency graph; fail. 2046 // cycle in the dependency graph; fail.
2046 if (extension_states->get_state(current) == VISITED) { 2047 if (extension_states->get_state(current) == VISITED) {
2047 v8::Utils::ReportApiFailure( 2048 v8::Utils::ReportApiFailure(
2048 "v8::Context::New()", "Circular extension dependency"); 2049 "v8::Context::New()", "Circular extension dependency");
2049 return false; 2050 return false;
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after
2354 return from + sizeof(NestingCounterType); 2355 return from + sizeof(NestingCounterType);
2355 } 2356 }
2356 2357
2357 2358
2358 // Called when the top-level V8 mutex is destroyed. 2359 // Called when the top-level V8 mutex is destroyed.
2359 void Bootstrapper::FreeThreadResources() { 2360 void Bootstrapper::FreeThreadResources() {
2360 ASSERT(!IsActive()); 2361 ASSERT(!IsActive());
2361 } 2362 }
2362 2363
2363 } } // namespace v8::internal 2364 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698