| OLD | NEW |
| 1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 2010 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 1005 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1016 const v8::CpuProfileNode* root = profile->GetTopDownRoot(); | 1016 const v8::CpuProfileNode* root = profile->GetTopDownRoot(); |
| 1017 GetChild(isolate, root, "start"); | 1017 GetChild(isolate, root, "start"); |
| 1018 const v8::CpuProfileNode* startNode = | 1018 const v8::CpuProfileNode* startNode = |
| 1019 GetChild(isolate, root, "start"); | 1019 GetChild(isolate, root, "start"); |
| 1020 GetChild(isolate, startNode, "fooMethod"); | 1020 GetChild(isolate, startNode, "fooMethod"); |
| 1021 | 1021 |
| 1022 profile->Delete(); | 1022 profile->Delete(); |
| 1023 } | 1023 } |
| 1024 | 1024 |
| 1025 | 1025 |
| 1026 static const char* bound_function_test_source = "function foo(iterations) {\n" | 1026 static const char* bound_function_test_source = |
| 1027 " var r = 0;\n" | 1027 "function foo() {\n" |
| 1028 " for (var i = 0; i < iterations; i++) { r += i; }\n" | 1028 " startProfiling('my_profile');\n" |
| 1029 " return r;\n" | 1029 "}\n" |
| 1030 "}\n" | 1030 "function start() {\n" |
| 1031 "function start(duration) {\n" | 1031 " var callback = foo.bind(this);\n" |
| 1032 " var callback = foo.bind(this);\n" | 1032 " callback();\n" |
| 1033 " var start = Date.now();\n" | 1033 "}"; |
| 1034 " while (Date.now() - start < duration) {\n" | |
| 1035 " callback(10 * 1000);\n" | |
| 1036 " }\n" | |
| 1037 "}"; | |
| 1038 | 1034 |
| 1039 | 1035 |
| 1040 TEST(BoundFunctionCall) { | 1036 TEST(BoundFunctionCall) { |
| 1041 LocalContext env; | 1037 v8::HandleScope scope(CcTest::isolate()); |
| 1042 v8::HandleScope scope(env->GetIsolate()); | 1038 v8::Local<v8::Context> env = CcTest::NewContext(PROFILER_EXTENSION); |
| 1039 v8::Context::Scope context_scope(env); |
| 1043 | 1040 |
| 1044 v8::Script::Compile( | 1041 v8::Script::Compile( |
| 1045 v8::String::NewFromUtf8(env->GetIsolate(), bound_function_test_source)) | 1042 v8::String::NewFromUtf8(env->GetIsolate(), bound_function_test_source)) |
| 1046 ->Run(); | 1043 ->Run(); |
| 1047 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast( | 1044 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast( |
| 1048 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start"))); | 1045 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start"))); |
| 1049 | 1046 |
| 1050 int32_t duration_ms = 100; | 1047 v8::CpuProfile* profile = RunProfiler(env, function, NULL, 0, 0); |
| 1051 v8::Handle<v8::Value> args[] = { | |
| 1052 v8::Integer::New(env->GetIsolate(), duration_ms) | |
| 1053 }; | |
| 1054 v8::CpuProfile* profile = | |
| 1055 RunProfiler(env.local(), function, args, ARRAY_SIZE(args), 100); | |
| 1056 | 1048 |
| 1057 const v8::CpuProfileNode* root = profile->GetTopDownRoot(); | 1049 const v8::CpuProfileNode* root = profile->GetTopDownRoot(); |
| 1058 ScopedVector<v8::Handle<v8::String> > names(3); | 1050 ScopedVector<v8::Handle<v8::String> > names(3); |
| 1059 names[0] = v8::String::NewFromUtf8( | 1051 names[0] = v8::String::NewFromUtf8( |
| 1060 env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName); | 1052 env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName); |
| 1061 names[1] = v8::String::NewFromUtf8(env->GetIsolate(), | 1053 names[1] = v8::String::NewFromUtf8(env->GetIsolate(), |
| 1062 ProfileGenerator::kProgramEntryName); | 1054 ProfileGenerator::kProgramEntryName); |
| 1063 names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "start"); | 1055 names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "start"); |
| 1064 // Don't allow |foo| node to be at the top level. | 1056 // Don't allow |foo| node to be at the top level. |
| 1065 CheckChildrenNames(root, names); | 1057 CheckChildrenNames(root, names); |
| (...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1307 } | 1299 } |
| 1308 // TODO(alph): | 1300 // TODO(alph): |
| 1309 // In theory there must be one more 'foo' and a 'startProfiling' nodes, | 1301 // In theory there must be one more 'foo' and a 'startProfiling' nodes, |
| 1310 // but due to unstable top frame extraction these might be missing. | 1302 // but due to unstable top frame extraction these might be missing. |
| 1311 | 1303 |
| 1312 profile->Delete(); | 1304 profile->Delete(); |
| 1313 } | 1305 } |
| 1314 | 1306 |
| 1315 | 1307 |
| 1316 static const char* js_native_js_test_source = | 1308 static const char* js_native_js_test_source = |
| 1317 "var is_profiling = false;\n" | 1309 "function foo() {\n" |
| 1318 "function foo(iterations) {\n" | 1310 " startProfiling('my_profile');\n" |
| 1319 " if (!is_profiling) {\n" | 1311 "}\n" |
| 1320 " is_profiling = true;\n" | 1312 "function bar() {\n" |
| 1321 " startProfiling('my_profile');\n" | 1313 " try { foo(); } catch(e) {}\n" |
| 1322 " }\n" | 1314 "}\n" |
| 1323 " var r = 0;\n" | 1315 "function start() {\n" |
| 1324 " for (var i = 0; i < iterations; i++) { r += i; }\n" | 1316 " try {\n" |
| 1325 " return r;\n" | 1317 " CallJsFunction(bar);\n" |
| 1326 "}\n" | 1318 " } catch(e) {}\n" |
| 1327 "function bar(iterations) {\n" | 1319 "}"; |
| 1328 " try { foo(iterations); } catch(e) {}\n" | |
| 1329 "}\n" | |
| 1330 "function start(duration) {\n" | |
| 1331 " var start = Date.now();\n" | |
| 1332 " while (Date.now() - start < duration) {\n" | |
| 1333 " try {\n" | |
| 1334 " CallJsFunction(bar, 10 * 1000);\n" | |
| 1335 " } catch(e) {}\n" | |
| 1336 " }\n" | |
| 1337 "}"; | |
| 1338 | 1320 |
| 1339 static void CallJsFunction(const v8::FunctionCallbackInfo<v8::Value>& info) { | 1321 static void CallJsFunction(const v8::FunctionCallbackInfo<v8::Value>& info) { |
| 1340 v8::Handle<v8::Function> function = info[0].As<v8::Function>(); | 1322 v8::Handle<v8::Function> function = info[0].As<v8::Function>(); |
| 1341 v8::Handle<v8::Value> argv[] = { info[1] }; | 1323 v8::Handle<v8::Value> argv[] = { info[1] }; |
| 1342 function->Call(info.This(), ARRAY_SIZE(argv), argv); | 1324 function->Call(info.This(), ARRAY_SIZE(argv), argv); |
| 1343 } | 1325 } |
| 1344 | 1326 |
| 1345 | 1327 |
| 1346 // [Top down]: | 1328 // [Top down]: |
| 1347 // 58 0 (root) #0 1 | 1329 // 58 0 (root) #0 1 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1360 v8::Local<v8::Function> func = func_template->GetFunction(); | 1342 v8::Local<v8::Function> func = func_template->GetFunction(); |
| 1361 func->SetName(v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction")); | 1343 func->SetName(v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction")); |
| 1362 env->Global()->Set( | 1344 env->Global()->Set( |
| 1363 v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction"), func); | 1345 v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction"), func); |
| 1364 | 1346 |
| 1365 v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(), | 1347 v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(), |
| 1366 js_native_js_test_source))->Run(); | 1348 js_native_js_test_source))->Run(); |
| 1367 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast( | 1349 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast( |
| 1368 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start"))); | 1350 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start"))); |
| 1369 | 1351 |
| 1370 int32_t duration_ms = 20; | 1352 v8::CpuProfile* profile = RunProfiler(env, function, NULL, 0, 0); |
| 1371 v8::Handle<v8::Value> args[] = { | |
| 1372 v8::Integer::New(env->GetIsolate(), duration_ms) | |
| 1373 }; | |
| 1374 v8::CpuProfile* profile = | |
| 1375 RunProfiler(env, function, args, ARRAY_SIZE(args), 10); | |
| 1376 | 1353 |
| 1377 const v8::CpuProfileNode* root = profile->GetTopDownRoot(); | 1354 const v8::CpuProfileNode* root = profile->GetTopDownRoot(); |
| 1378 { | 1355 { |
| 1379 ScopedVector<v8::Handle<v8::String> > names(3); | 1356 ScopedVector<v8::Handle<v8::String> > names(3); |
| 1380 names[0] = v8::String::NewFromUtf8( | 1357 names[0] = v8::String::NewFromUtf8( |
| 1381 env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName); | 1358 env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName); |
| 1382 names[1] = v8::String::NewFromUtf8(env->GetIsolate(), | 1359 names[1] = v8::String::NewFromUtf8(env->GetIsolate(), |
| 1383 ProfileGenerator::kProgramEntryName); | 1360 ProfileGenerator::kProgramEntryName); |
| 1384 names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "start"); | 1361 names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "start"); |
| 1385 CheckChildrenNames(root, names); | 1362 CheckChildrenNames(root, names); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1396 GetChild(env->GetIsolate(), nativeFunctionNode, "bar"); | 1373 GetChild(env->GetIsolate(), nativeFunctionNode, "bar"); |
| 1397 | 1374 |
| 1398 CHECK_EQ(1, barNode->GetChildrenCount()); | 1375 CHECK_EQ(1, barNode->GetChildrenCount()); |
| 1399 GetChild(env->GetIsolate(), barNode, "foo"); | 1376 GetChild(env->GetIsolate(), barNode, "foo"); |
| 1400 | 1377 |
| 1401 profile->Delete(); | 1378 profile->Delete(); |
| 1402 } | 1379 } |
| 1403 | 1380 |
| 1404 | 1381 |
| 1405 static const char* js_native_js_runtime_js_test_source = | 1382 static const char* js_native_js_runtime_js_test_source = |
| 1406 "var is_profiling = false;\n" | 1383 "function foo() {\n" |
| 1407 "function foo(iterations) {\n" | 1384 " startProfiling('my_profile');\n" |
| 1408 " if (!is_profiling) {\n" | 1385 "}\n" |
| 1409 " is_profiling = true;\n" | 1386 "var bound = foo.bind(this);\n" |
| 1410 " startProfiling('my_profile');\n" | 1387 "function bar() {\n" |
| 1411 " }\n" | 1388 " try { bound(); } catch(e) {}\n" |
| 1412 " var r = 0;\n" | 1389 "}\n" |
| 1413 " for (var i = 0; i < iterations; i++) { r += i; }\n" | 1390 "function start() {\n" |
| 1414 " return r;\n" | 1391 " try {\n" |
| 1415 "}\n" | 1392 " CallJsFunction(bar);\n" |
| 1416 "var bound = foo.bind(this);\n" | 1393 " } catch(e) {}\n" |
| 1417 "function bar(iterations) {\n" | 1394 "}"; |
| 1418 " try { bound(iterations); } catch(e) {}\n" | |
| 1419 "}\n" | |
| 1420 "function start(duration) {\n" | |
| 1421 " var start = Date.now();\n" | |
| 1422 " while (Date.now() - start < duration) {\n" | |
| 1423 " try {\n" | |
| 1424 " CallJsFunction(bar, 10 * 1000);\n" | |
| 1425 " } catch(e) {}\n" | |
| 1426 " }\n" | |
| 1427 "}"; | |
| 1428 | 1395 |
| 1429 | 1396 |
| 1430 // [Top down]: | 1397 // [Top down]: |
| 1431 // 57 0 (root) #0 1 | 1398 // 57 0 (root) #0 1 |
| 1432 // 55 1 start #16 3 | 1399 // 55 1 start #16 3 |
| 1433 // 54 0 CallJsFunction #0 4 | 1400 // 54 0 CallJsFunction #0 4 |
| 1434 // 54 3 bar #16 5 | 1401 // 54 3 bar #16 5 |
| 1435 // 51 51 foo #16 6 | 1402 // 51 51 foo #16 6 |
| 1436 // 2 2 (program) #0 2 | 1403 // 2 2 (program) #0 2 |
| 1437 TEST(JsNativeJsRuntimeJsSample) { | 1404 TEST(JsNativeJsRuntimeJsSample) { |
| 1438 v8::HandleScope scope(CcTest::isolate()); | 1405 v8::HandleScope scope(CcTest::isolate()); |
| 1439 v8::Local<v8::Context> env = CcTest::NewContext(PROFILER_EXTENSION); | 1406 v8::Local<v8::Context> env = CcTest::NewContext(PROFILER_EXTENSION); |
| 1440 v8::Context::Scope context_scope(env); | 1407 v8::Context::Scope context_scope(env); |
| 1441 | 1408 |
| 1442 v8::Local<v8::FunctionTemplate> func_template = v8::FunctionTemplate::New( | 1409 v8::Local<v8::FunctionTemplate> func_template = v8::FunctionTemplate::New( |
| 1443 env->GetIsolate(), CallJsFunction); | 1410 env->GetIsolate(), CallJsFunction); |
| 1444 v8::Local<v8::Function> func = func_template->GetFunction(); | 1411 v8::Local<v8::Function> func = func_template->GetFunction(); |
| 1445 func->SetName(v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction")); | 1412 func->SetName(v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction")); |
| 1446 env->Global()->Set( | 1413 env->Global()->Set( |
| 1447 v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction"), func); | 1414 v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction"), func); |
| 1448 | 1415 |
| 1449 v8::Script::Compile( | 1416 v8::Script::Compile( |
| 1450 v8::String::NewFromUtf8(env->GetIsolate(), | 1417 v8::String::NewFromUtf8(env->GetIsolate(), |
| 1451 js_native_js_runtime_js_test_source))->Run(); | 1418 js_native_js_runtime_js_test_source))->Run(); |
| 1452 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast( | 1419 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast( |
| 1453 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start"))); | 1420 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start"))); |
| 1454 | 1421 |
| 1455 int32_t duration_ms = 20; | 1422 v8::CpuProfile* profile = RunProfiler(env, function, NULL, 0, 0); |
| 1456 v8::Handle<v8::Value> args[] = { | |
| 1457 v8::Integer::New(env->GetIsolate(), duration_ms) | |
| 1458 }; | |
| 1459 v8::CpuProfile* profile = | |
| 1460 RunProfiler(env, function, args, ARRAY_SIZE(args), 10); | |
| 1461 | 1423 |
| 1462 const v8::CpuProfileNode* root = profile->GetTopDownRoot(); | 1424 const v8::CpuProfileNode* root = profile->GetTopDownRoot(); |
| 1463 ScopedVector<v8::Handle<v8::String> > names(3); | 1425 ScopedVector<v8::Handle<v8::String> > names(3); |
| 1464 names[0] = v8::String::NewFromUtf8( | 1426 names[0] = v8::String::NewFromUtf8( |
| 1465 env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName); | 1427 env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName); |
| 1466 names[1] = v8::String::NewFromUtf8(env->GetIsolate(), | 1428 names[1] = v8::String::NewFromUtf8(env->GetIsolate(), |
| 1467 ProfileGenerator::kProgramEntryName); | 1429 ProfileGenerator::kProgramEntryName); |
| 1468 names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "start"); | 1430 names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "start"); |
| 1469 CheckChildrenNames(root, names); | 1431 CheckChildrenNames(root, names); |
| 1470 | 1432 |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1489 } | 1451 } |
| 1490 | 1452 |
| 1491 | 1453 |
| 1492 static void CallJsFunction2(const v8::FunctionCallbackInfo<v8::Value>& info) { | 1454 static void CallJsFunction2(const v8::FunctionCallbackInfo<v8::Value>& info) { |
| 1493 v8::base::OS::Print("In CallJsFunction2\n"); | 1455 v8::base::OS::Print("In CallJsFunction2\n"); |
| 1494 CallJsFunction(info); | 1456 CallJsFunction(info); |
| 1495 } | 1457 } |
| 1496 | 1458 |
| 1497 | 1459 |
| 1498 static const char* js_native1_js_native2_js_test_source = | 1460 static const char* js_native1_js_native2_js_test_source = |
| 1499 "var is_profiling = false;\n" | 1461 "function foo() {\n" |
| 1500 "function foo(iterations) {\n" | 1462 " try {\n" |
| 1501 " if (!is_profiling) {\n" | 1463 " startProfiling('my_profile');\n" |
| 1502 " is_profiling = true;\n" | 1464 " } catch(e) {}\n" |
| 1503 " startProfiling('my_profile');\n" | 1465 "}\n" |
| 1504 " }\n" | 1466 "function bar() {\n" |
| 1505 " var r = 0;\n" | 1467 " CallJsFunction2(foo);\n" |
| 1506 " for (var i = 0; i < iterations; i++) { r += i; }\n" | 1468 "}\n" |
| 1507 " return r;\n" | 1469 "function start() {\n" |
| 1508 "}\n" | 1470 " try {\n" |
| 1509 "function bar(iterations) {\n" | 1471 " CallJsFunction1(bar);\n" |
| 1510 " CallJsFunction2(foo, iterations);\n" | 1472 " } catch(e) {}\n" |
| 1511 "}\n" | 1473 "}"; |
| 1512 "function start(duration) {\n" | |
| 1513 " var start = Date.now();\n" | |
| 1514 " while (Date.now() - start < duration) {\n" | |
| 1515 " try {\n" | |
| 1516 " CallJsFunction1(bar, 10 * 1000);\n" | |
| 1517 " } catch(e) {}\n" | |
| 1518 " }\n" | |
| 1519 "}"; | |
| 1520 | 1474 |
| 1521 | 1475 |
| 1522 // [Top down]: | 1476 // [Top down]: |
| 1523 // 57 0 (root) #0 1 | 1477 // 57 0 (root) #0 1 |
| 1524 // 55 1 start #16 3 | 1478 // 55 1 start #16 3 |
| 1525 // 54 0 CallJsFunction1 #0 4 | 1479 // 54 0 CallJsFunction1 #0 4 |
| 1526 // 54 0 bar #16 5 | 1480 // 54 0 bar #16 5 |
| 1527 // 54 0 CallJsFunction2 #0 6 | 1481 // 54 0 CallJsFunction2 #0 6 |
| 1528 // 54 54 foo #16 7 | 1482 // 54 54 foo #16 7 |
| 1529 // 2 2 (program) #0 2 | 1483 // 2 2 (program) #0 2 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 1544 func2->SetName(v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction2")); | 1498 func2->SetName(v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction2")); |
| 1545 env->Global()->Set( | 1499 env->Global()->Set( |
| 1546 v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction2"), func2); | 1500 v8::String::NewFromUtf8(env->GetIsolate(), "CallJsFunction2"), func2); |
| 1547 | 1501 |
| 1548 v8::Script::Compile( | 1502 v8::Script::Compile( |
| 1549 v8::String::NewFromUtf8(env->GetIsolate(), | 1503 v8::String::NewFromUtf8(env->GetIsolate(), |
| 1550 js_native1_js_native2_js_test_source))->Run(); | 1504 js_native1_js_native2_js_test_source))->Run(); |
| 1551 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast( | 1505 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast( |
| 1552 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start"))); | 1506 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start"))); |
| 1553 | 1507 |
| 1554 int32_t duration_ms = 20; | 1508 v8::CpuProfile* profile = RunProfiler(env, function, NULL, 0, 0); |
| 1555 v8::Handle<v8::Value> args[] = { | |
| 1556 v8::Integer::New(env->GetIsolate(), duration_ms) | |
| 1557 }; | |
| 1558 v8::CpuProfile* profile = | |
| 1559 RunProfiler(env, function, args, ARRAY_SIZE(args), 10); | |
| 1560 | 1509 |
| 1561 const v8::CpuProfileNode* root = profile->GetTopDownRoot(); | 1510 const v8::CpuProfileNode* root = profile->GetTopDownRoot(); |
| 1562 ScopedVector<v8::Handle<v8::String> > names(3); | 1511 ScopedVector<v8::Handle<v8::String> > names(3); |
| 1563 names[0] = v8::String::NewFromUtf8( | 1512 names[0] = v8::String::NewFromUtf8( |
| 1564 env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName); | 1513 env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName); |
| 1565 names[1] = v8::String::NewFromUtf8(env->GetIsolate(), | 1514 names[1] = v8::String::NewFromUtf8(env->GetIsolate(), |
| 1566 ProfileGenerator::kProgramEntryName); | 1515 ProfileGenerator::kProgramEntryName); |
| 1567 names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "start"); | 1516 names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "start"); |
| 1568 CheckChildrenNames(root, names); | 1517 CheckChildrenNames(root, names); |
| 1569 | 1518 |
| (...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1727 inner_profile = NULL; | 1676 inner_profile = NULL; |
| 1728 CHECK_EQ(0, iprofiler->GetProfilesCount()); | 1677 CHECK_EQ(0, iprofiler->GetProfilesCount()); |
| 1729 | 1678 |
| 1730 v8::CpuProfile* outer_profile = profiler->StopProfiling(outer); | 1679 v8::CpuProfile* outer_profile = profiler->StopProfiling(outer); |
| 1731 CHECK(outer_profile); | 1680 CHECK(outer_profile); |
| 1732 CHECK_EQ(1, iprofiler->GetProfilesCount()); | 1681 CHECK_EQ(1, iprofiler->GetProfilesCount()); |
| 1733 outer_profile->Delete(); | 1682 outer_profile->Delete(); |
| 1734 outer_profile = NULL; | 1683 outer_profile = NULL; |
| 1735 CHECK_EQ(0, iprofiler->GetProfilesCount()); | 1684 CHECK_EQ(0, iprofiler->GetProfilesCount()); |
| 1736 } | 1685 } |
| OLD | NEW |