| 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 | 5 |
| 6 // Defined when linking against shared lib on Windows. | 6 // Defined when linking against shared lib on Windows. |
| 7 #if defined(USING_V8_SHARED) && !defined(V8_SHARED) | 7 #if defined(USING_V8_SHARED) && !defined(V8_SHARED) |
| 8 #define V8_SHARED | 8 #define V8_SHARED |
| 9 #endif | 9 #endif |
| 10 | 10 |
| 11 #include <errno.h> | 11 #include <errno.h> |
| 12 #include <stdlib.h> | 12 #include <stdlib.h> |
| 13 #include <string.h> | 13 #include <string.h> |
| 14 #include <sys/stat.h> | 14 #include <sys/stat.h> |
| 15 | 15 |
| 16 #ifdef V8_SHARED | 16 #ifdef V8_SHARED |
| 17 #include <assert.h> | 17 #include <assert.h> |
| 18 #endif // V8_SHARED | 18 #endif // V8_SHARED |
| 19 | 19 |
| 20 #ifndef V8_SHARED | 20 #ifndef V8_SHARED |
| 21 #include <algorithm> | 21 #include <algorithm> |
| 22 #include <fstream> |
| 22 #include <vector> | 23 #include <vector> |
| 23 #endif // !V8_SHARED | 24 #endif // !V8_SHARED |
| 24 | 25 |
| 25 #ifdef V8_SHARED | 26 #ifdef V8_SHARED |
| 26 #include "include/v8-testing.h" | 27 #include "include/v8-testing.h" |
| 27 #endif // V8_SHARED | 28 #endif // V8_SHARED |
| 28 | 29 |
| 29 #ifdef ENABLE_VTUNE_JIT_INTERFACE | 30 #ifdef ENABLE_VTUNE_JIT_INTERFACE |
| 30 #include "src/third_party/vtune/v8-vtune.h" | 31 #include "src/third_party/vtune/v8-vtune.h" |
| 31 #endif | 32 #endif |
| (...skipping 1237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1269 #ifndef V8_SHARED | 1270 #ifndef V8_SHARED |
| 1270 struct CounterAndKey { | 1271 struct CounterAndKey { |
| 1271 Counter* counter; | 1272 Counter* counter; |
| 1272 const char* key; | 1273 const char* key; |
| 1273 }; | 1274 }; |
| 1274 | 1275 |
| 1275 | 1276 |
| 1276 inline bool operator<(const CounterAndKey& lhs, const CounterAndKey& rhs) { | 1277 inline bool operator<(const CounterAndKey& lhs, const CounterAndKey& rhs) { |
| 1277 return strcmp(lhs.key, rhs.key) < 0; | 1278 return strcmp(lhs.key, rhs.key) < 0; |
| 1278 } | 1279 } |
| 1280 |
| 1281 void Shell::WriteIgnitionDispatchCountersFile(v8::Isolate* isolate) { |
| 1282 HandleScope handle_scope(isolate); |
| 1283 Local<Context> context = Context::New(isolate); |
| 1284 Context::Scope context_scope(context); |
| 1285 |
| 1286 Local<Object> dispatch_counters = reinterpret_cast<i::Isolate*>(isolate) |
| 1287 ->interpreter() |
| 1288 ->GetDispatchCountersObject(); |
| 1289 std::ofstream dispatch_counters_stream( |
| 1290 i::FLAG_trace_ignition_dispatches_output_file); |
| 1291 dispatch_counters_stream << *String::Utf8Value( |
| 1292 JSON::Stringify(context, dispatch_counters).ToLocalChecked()); |
| 1293 } |
| 1294 |
| 1279 #endif // !V8_SHARED | 1295 #endif // !V8_SHARED |
| 1280 | 1296 |
| 1281 | 1297 |
| 1282 void Shell::OnExit(v8::Isolate* isolate) { | 1298 void Shell::OnExit(v8::Isolate* isolate) { |
| 1283 #ifndef V8_SHARED | 1299 #ifndef V8_SHARED |
| 1284 if (i::FLAG_dump_counters) { | 1300 if (i::FLAG_dump_counters) { |
| 1285 int number_of_counters = 0; | 1301 int number_of_counters = 0; |
| 1286 for (CounterMap::Iterator i(counter_map_); i.More(); i.Next()) { | 1302 for (CounterMap::Iterator i(counter_map_); i.More(); i.Next()) { |
| 1287 number_of_counters++; | 1303 number_of_counters++; |
| 1288 } | 1304 } |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1307 printf("| t:%-60s | %11i |\n", key, counter->sample_total()); | 1323 printf("| t:%-60s | %11i |\n", key, counter->sample_total()); |
| 1308 } else { | 1324 } else { |
| 1309 printf("| %-62s | %11i |\n", key, counter->count()); | 1325 printf("| %-62s | %11i |\n", key, counter->count()); |
| 1310 } | 1326 } |
| 1311 } | 1327 } |
| 1312 printf("+----------------------------------------------------------------+" | 1328 printf("+----------------------------------------------------------------+" |
| 1313 "-------------+\n"); | 1329 "-------------+\n"); |
| 1314 delete [] counters; | 1330 delete [] counters; |
| 1315 } | 1331 } |
| 1316 | 1332 |
| 1317 if (i::FLAG_trace_ignition_dispatches) { | |
| 1318 reinterpret_cast<i::Isolate*>(isolate) | |
| 1319 ->interpreter() | |
| 1320 ->WriteDispatchCounters(); | |
| 1321 } | |
| 1322 | |
| 1323 delete counters_file_; | 1333 delete counters_file_; |
| 1324 delete counter_map_; | 1334 delete counter_map_; |
| 1325 #endif // !V8_SHARED | 1335 #endif // !V8_SHARED |
| 1326 } | 1336 } |
| 1327 | 1337 |
| 1328 | 1338 |
| 1329 | 1339 |
| 1330 static FILE* FOpen(const char* path, const char* mode) { | 1340 static FILE* FOpen(const char* path, const char* mode) { |
| 1331 #if defined(_MSC_VER) && (defined(_WIN32) || defined(_WIN64)) | 1341 #if defined(_MSC_VER) && (defined(_WIN32) || defined(_WIN64)) |
| 1332 FILE* result; | 1342 FILE* result; |
| (...skipping 1144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2477 bool last_run = true; | 2487 bool last_run = true; |
| 2478 result = RunMain(isolate, argc, argv, last_run); | 2488 result = RunMain(isolate, argc, argv, last_run); |
| 2479 } | 2489 } |
| 2480 | 2490 |
| 2481 // Run interactive shell if explicitly requested or if no script has been | 2491 // Run interactive shell if explicitly requested or if no script has been |
| 2482 // executed, but never on --test | 2492 // executed, but never on --test |
| 2483 if (options.use_interactive_shell()) { | 2493 if (options.use_interactive_shell()) { |
| 2484 RunShell(isolate); | 2494 RunShell(isolate); |
| 2485 } | 2495 } |
| 2486 | 2496 |
| 2497 #ifndef V8_SHARED |
| 2498 if (i::FLAG_ignition && i::FLAG_trace_ignition_dispatches) { |
| 2499 WriteIgnitionDispatchCountersFile(isolate); |
| 2500 } |
| 2501 #endif |
| 2502 |
| 2487 // Shut down contexts and collect garbage. | 2503 // Shut down contexts and collect garbage. |
| 2488 evaluation_context_.Reset(); | 2504 evaluation_context_.Reset(); |
| 2489 #ifndef V8_SHARED | 2505 #ifndef V8_SHARED |
| 2490 stringify_function_.Reset(); | 2506 stringify_function_.Reset(); |
| 2491 #endif // !V8_SHARED | 2507 #endif // !V8_SHARED |
| 2492 CollectGarbage(isolate); | 2508 CollectGarbage(isolate); |
| 2493 } | 2509 } |
| 2494 OnExit(isolate); | 2510 OnExit(isolate); |
| 2495 #ifndef V8_SHARED | 2511 #ifndef V8_SHARED |
| 2496 // Dump basic block profiling data. | 2512 // Dump basic block profiling data. |
| (...skipping 12 matching lines...) Expand all Loading... |
| 2509 } | 2525 } |
| 2510 | 2526 |
| 2511 } // namespace v8 | 2527 } // namespace v8 |
| 2512 | 2528 |
| 2513 | 2529 |
| 2514 #ifndef GOOGLE3 | 2530 #ifndef GOOGLE3 |
| 2515 int main(int argc, char* argv[]) { | 2531 int main(int argc, char* argv[]) { |
| 2516 return v8::Shell::Main(argc, argv); | 2532 return v8::Shell::Main(argc, argv); |
| 2517 } | 2533 } |
| 2518 #endif | 2534 #endif |
| OLD | NEW |