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

Unified Diff: src/d8.cc

Issue 7219003: removed some unnecessary stuff from d8's initialization (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 9 years, 6 months 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 side-by-side diff with in-line comments
Download patch
Index: src/d8.cc
diff --git a/src/d8.cc b/src/d8.cc
index 56a43ad2411e375f529beca5a62dd6c2df5469ac..970e937b6d31997ec40bf3abe9eca2471821a679 100644
--- a/src/d8.cc
+++ b/src/d8.cc
@@ -490,6 +490,17 @@ void Shell::InstallUtilityScript() {
Locker lock;
HandleScope scope;
Context::Scope utility_scope(utility_context_);
+
+#ifdef ENABLE_DEBUGGER_SUPPORT
+ // Install the debugger object in the utility scope
+ i::Debug* debug = i::Isolate::Current()->debug();
+ debug->Load();
+ i::Handle<i::JSObject> js_debug
+ = i::Handle<i::JSObject>(debug->debug_context()->global());
+ utility_context_->Global()->Set(String::New("$debug"),
+ Utils::ToLocal(js_debug));
+#endif
+
Yang 2011/06/21 02:25:55 This method is called only when using interactive
Søren Thygesen Gjesse 2011/06/21 07:31:06 $debug is a legal identifier, see d8.js where it i
// Run the d8 shell utility script in the utility context
int source_index = i::NativesCollection<i::D8>::GetIndex("d8");
i::Vector<const char> shell_source =
@@ -585,7 +596,7 @@ Handle<ObjectTemplate> Shell::CreateGlobalTemplate() {
return global_template;
}
-void Shell::Initialize() {
+void Shell::Initialize(bool shell) {
Søren Thygesen Gjesse 2011/06/21 07:31:06 Rename shell to interactive?
#ifdef COMPRESS_STARTUP_DATA_BZ2
BZip2Decompressor startup_data_decompressor;
int bz2_result = startup_data_decompressor.Decompress();
@@ -604,24 +615,13 @@ void Shell::Initialize() {
V8::SetCreateHistogramFunction(CreateHistogram);
V8::SetAddHistogramSampleFunction(AddHistogramSample);
}
-
- // Initialize the global objects
- HandleScope scope;
- Handle<ObjectTemplate> global_template = CreateGlobalTemplate();
-
- utility_context_ = Context::New(NULL, global_template);
- utility_context_->SetSecurityToken(Undefined());
- Context::Scope utility_scope(utility_context_);
-
-#ifdef ENABLE_DEBUGGER_SUPPORT
- // Install the debugger object in the utility scope
- i::Debug* debug = i::Isolate::Current()->debug();
- debug->Load();
- i::Handle<i::JSObject> js_debug
- = i::Handle<i::JSObject>(debug->debug_context()->global());
- utility_context_->Global()->Set(String::New("$debug"),
- Utils::ToLocal(js_debug));
-#endif
+ if (shell) {
+ Locker lock;
+ HandleScope scope;
+ Handle<ObjectTemplate> global_template = CreateGlobalTemplate();
+ utility_context_ = Context::New(NULL, global_template);
+ utility_context_->SetSecurityToken(Undefined());
+ }
Yang 2011/06/21 02:25:55 Only initialize utility context if an interactive
}
@@ -637,7 +637,8 @@ void Shell::RenewEvaluationContext() {
evaluation_context_ = Context::New(NULL, global_template);
evaluation_context_->SetSecurityToken(Undefined());
Søren Thygesen Gjesse 2011/06/21 07:31:06 If we don't set the security token for the evaluat
- Context::Scope utility_scope(utility_context_);
+ Context::Scope utility_scope(evaluation_context_);
+
i::JSArguments js_args = i::FLAG_js_arguments;
i::Handle<i::FixedArray> arguments_array =
FACTORY->NewFixedArray(js_args.argc());
@@ -652,11 +653,12 @@ void Shell::RenewEvaluationContext() {
Utils::ToLocal(arguments_jsarray));
#ifdef ENABLE_DEBUGGER_SUPPORT
- i::Debug* debug = i::Isolate::Current()->debug();
- debug->Load();
-
- // Set the security token of the debug context to allow access.
- debug->debug_context()->set_security_token(HEAP->undefined_value());
+ if (i::FLAG_expose_debug_as != NULL) {
Yang 2011/06/21 02:25:55 If the debug object is not exposed, there is no po
+ i::Debug* debug = i::Isolate::Current()->debug();
+ debug->Load();
Søren Thygesen Gjesse 2011/06/21 07:31:06 If --expose-debug-as is specified the debugger is
+ // Set the security token of the debug context to allow access.
+ debug->debug_context()->set_security_token(HEAP->undefined_value());
+ }
// Start the debugger agent if requested.
if (i::FLAG_debugger_agent) {
@@ -943,7 +945,7 @@ int Shell::Main(int argc, char* argv[]) {
v8::V8::SetFlagsFromCommandLine(&argc, argv, true);
- Initialize();
+ Initialize(run_shell);
Søren Thygesen Gjesse 2011/06/21 07:31:06 I think it will be better to have a flag for runni
int result = 0;
if (FLAG_stress_opt || FLAG_stress_deopt) {

Powered by Google App Engine
This is Rietveld 408576698