OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <errno.h> | 5 #include <errno.h> |
6 #include <stdlib.h> | 6 #include <stdlib.h> |
7 #include <string.h> | 7 #include <string.h> |
8 #include <sys/stat.h> | 8 #include <sys/stat.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
11 #include <fstream> | 11 #include <fstream> |
12 #include <unordered_map> | 12 #include <unordered_map> |
13 #include <utility> | 13 #include <utility> |
14 #include <vector> | 14 #include <vector> |
15 | 15 |
16 #ifdef ENABLE_VTUNE_JIT_INTERFACE | 16 #ifdef ENABLE_VTUNE_JIT_INTERFACE |
17 #include "src/third_party/vtune/v8-vtune.h" | 17 #include "src/third_party/vtune/v8-vtune.h" |
18 #endif | 18 #endif |
19 | 19 |
| 20 #include "src/d8-console.h" |
20 #include "src/d8.h" | 21 #include "src/d8.h" |
21 #include "src/ostreams.h" | 22 #include "src/ostreams.h" |
22 | 23 |
23 #include "include/libplatform/libplatform.h" | 24 #include "include/libplatform/libplatform.h" |
24 #include "include/libplatform/v8-tracing.h" | 25 #include "include/libplatform/v8-tracing.h" |
25 #include "include/v8-inspector.h" | 26 #include "include/v8-inspector.h" |
26 #include "src/api.h" | 27 #include "src/api.h" |
27 #include "src/base/cpu.h" | 28 #include "src/base/cpu.h" |
28 #include "src/base/logging.h" | 29 #include "src/base/logging.h" |
29 #include "src/base/platform/platform.h" | 30 #include "src/base/platform/platform.h" |
(...skipping 2224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2254 // OS-specific padding for thread startup code. 2Mbytes seems to be enough. | 2255 // OS-specific padding for thread startup code. 2Mbytes seems to be enough. |
2255 return base::Thread::Options("IsolateThread", 2 * MB); | 2256 return base::Thread::Options("IsolateThread", 2 * MB); |
2256 } | 2257 } |
2257 | 2258 |
2258 void SourceGroup::ExecuteInThread() { | 2259 void SourceGroup::ExecuteInThread() { |
2259 Isolate::CreateParams create_params; | 2260 Isolate::CreateParams create_params; |
2260 create_params.array_buffer_allocator = Shell::array_buffer_allocator; | 2261 create_params.array_buffer_allocator = Shell::array_buffer_allocator; |
2261 create_params.host_import_module_dynamically_callback_ = | 2262 create_params.host_import_module_dynamically_callback_ = |
2262 Shell::HostImportModuleDynamically; | 2263 Shell::HostImportModuleDynamically; |
2263 Isolate* isolate = Isolate::New(create_params); | 2264 Isolate* isolate = Isolate::New(create_params); |
| 2265 D8Console console(isolate); |
| 2266 debug::SetConsoleDelegate(isolate, &console); |
2264 for (int i = 0; i < Shell::options.stress_runs; ++i) { | 2267 for (int i = 0; i < Shell::options.stress_runs; ++i) { |
2265 next_semaphore_.Wait(); | 2268 next_semaphore_.Wait(); |
2266 { | 2269 { |
2267 Isolate::Scope iscope(isolate); | 2270 Isolate::Scope iscope(isolate); |
2268 { | 2271 { |
2269 HandleScope scope(isolate); | 2272 HandleScope scope(isolate); |
2270 PerIsolateData data(isolate); | 2273 PerIsolateData data(isolate); |
2271 Local<Context> context = Shell::CreateEvaluationContext(isolate); | 2274 Local<Context> context = Shell::CreateEvaluationContext(isolate); |
2272 { | 2275 { |
2273 Context::Scope cscope(context); | 2276 Context::Scope cscope(context); |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2394 thread_->Join(); | 2397 thread_->Join(); |
2395 } | 2398 } |
2396 | 2399 |
2397 | 2400 |
2398 void Worker::ExecuteInThread() { | 2401 void Worker::ExecuteInThread() { |
2399 Isolate::CreateParams create_params; | 2402 Isolate::CreateParams create_params; |
2400 create_params.array_buffer_allocator = Shell::array_buffer_allocator; | 2403 create_params.array_buffer_allocator = Shell::array_buffer_allocator; |
2401 create_params.host_import_module_dynamically_callback_ = | 2404 create_params.host_import_module_dynamically_callback_ = |
2402 Shell::HostImportModuleDynamically; | 2405 Shell::HostImportModuleDynamically; |
2403 Isolate* isolate = Isolate::New(create_params); | 2406 Isolate* isolate = Isolate::New(create_params); |
| 2407 D8Console console(isolate); |
| 2408 debug::SetConsoleDelegate(isolate, &console); |
2404 { | 2409 { |
2405 Isolate::Scope iscope(isolate); | 2410 Isolate::Scope iscope(isolate); |
2406 { | 2411 { |
2407 HandleScope scope(isolate); | 2412 HandleScope scope(isolate); |
2408 PerIsolateData data(isolate); | 2413 PerIsolateData data(isolate); |
2409 Local<Context> context = Shell::CreateEvaluationContext(isolate); | 2414 Local<Context> context = Shell::CreateEvaluationContext(isolate); |
2410 { | 2415 { |
2411 Context::Scope cscope(context); | 2416 Context::Scope cscope(context); |
2412 PerIsolateData::RealmScope realm_scope(PerIsolateData::Get(isolate)); | 2417 PerIsolateData::RealmScope realm_scope(PerIsolateData::Get(isolate)); |
2413 | 2418 |
(...skipping 596 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3010 Shell::HostImportModuleDynamically; | 3015 Shell::HostImportModuleDynamically; |
3011 | 3016 |
3012 if (i::trap_handler::UseTrapHandler()) { | 3017 if (i::trap_handler::UseTrapHandler()) { |
3013 if (!v8::V8::RegisterDefaultSignalHandler()) { | 3018 if (!v8::V8::RegisterDefaultSignalHandler()) { |
3014 fprintf(stderr, "Could not register signal handler"); | 3019 fprintf(stderr, "Could not register signal handler"); |
3015 exit(1); | 3020 exit(1); |
3016 } | 3021 } |
3017 } | 3022 } |
3018 | 3023 |
3019 Isolate* isolate = Isolate::New(create_params); | 3024 Isolate* isolate = Isolate::New(create_params); |
| 3025 D8Console console(isolate); |
3020 { | 3026 { |
3021 Isolate::Scope scope(isolate); | 3027 Isolate::Scope scope(isolate); |
3022 Initialize(isolate); | 3028 Initialize(isolate); |
3023 PerIsolateData data(isolate); | 3029 PerIsolateData data(isolate); |
| 3030 debug::SetConsoleDelegate(isolate, &console); |
3024 | 3031 |
3025 if (options.trace_enabled) { | 3032 if (options.trace_enabled) { |
3026 platform::tracing::TraceConfig* trace_config; | 3033 platform::tracing::TraceConfig* trace_config; |
3027 if (options.trace_config) { | 3034 if (options.trace_config) { |
3028 int size = 0; | 3035 int size = 0; |
3029 char* trace_config_json_str = ReadChars(options.trace_config, &size); | 3036 char* trace_config_json_str = ReadChars(options.trace_config, &size); |
3030 trace_config = | 3037 trace_config = |
3031 tracing::CreateTraceConfigFromJSON(isolate, trace_config_json_str); | 3038 tracing::CreateTraceConfigFromJSON(isolate, trace_config_json_str); |
3032 delete[] trace_config_json_str; | 3039 delete[] trace_config_json_str; |
3033 } else { | 3040 } else { |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3092 } | 3099 } |
3093 | 3100 |
3094 } // namespace v8 | 3101 } // namespace v8 |
3095 | 3102 |
3096 | 3103 |
3097 #ifndef GOOGLE3 | 3104 #ifndef GOOGLE3 |
3098 int main(int argc, char* argv[]) { | 3105 int main(int argc, char* argv[]) { |
3099 return v8::Shell::Main(argc, argv); | 3106 return v8::Shell::Main(argc, argv); |
3100 } | 3107 } |
3101 #endif | 3108 #endif |
OLD | NEW |