Revert "DevTools: CPUProfiler: provide url for scripts that have sourceURL property."
This reverts commit d95b7bb92ad1a191cf505250830d094b86d61e8f. This reverts commit ca81c09a367600be79452e1fc53ac63b75e369c4. record-cpu-profile.html is crashing TBR= yurys@chromium.org, danno@chromium.org BUG=none Review URL: https://codereview.chromium.org/16940005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15114 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
d73dace0f5
commit
2f811dbb99
@ -1181,16 +1181,7 @@ void Compiler::RecordFunctionCompilation(Logger::LogEventsAndTags tag,
|
||||
Handle<Code> code = info->code();
|
||||
if (*code == info->isolate()->builtins()->builtin(Builtins::kLazyCompile))
|
||||
return;
|
||||
Handle<String> script_name;
|
||||
if (script->name()->IsString()) {
|
||||
script_name = Handle<String>(String::cast(script->name()));
|
||||
} else {
|
||||
Handle<Object> name = GetScriptNameOrSourceURL(script);
|
||||
if (!name.is_null() && name->IsString()) {
|
||||
script_name = Handle<String>::cast(name);
|
||||
}
|
||||
}
|
||||
if (!script_name.is_null()) {
|
||||
int line_num = GetScriptLineNumber(script, shared->start_position()) + 1;
|
||||
USE(line_num);
|
||||
PROFILE(info->isolate(),
|
||||
@ -1198,7 +1189,7 @@ void Compiler::RecordFunctionCompilation(Logger::LogEventsAndTags tag,
|
||||
*code,
|
||||
*shared,
|
||||
info,
|
||||
String::cast(*script_name),
|
||||
String::cast(script->name()),
|
||||
line_num));
|
||||
} else {
|
||||
PROFILE(info->isolate(),
|
||||
|
@ -599,9 +599,6 @@ v8::Handle<v8::Array> GetKeysForIndexedInterceptor(Handle<JSReceiver> receiver,
|
||||
|
||||
Handle<Object> GetScriptNameOrSourceURL(Handle<Script> script) {
|
||||
Isolate* isolate = script->GetIsolate();
|
||||
if (!isolate->IsInitialized()) {
|
||||
return isolate->factory()->undefined_value();
|
||||
}
|
||||
Handle<String> name_or_source_url_key =
|
||||
isolate->factory()->InternalizeOneByteString(
|
||||
STATIC_ASCII_VECTOR("nameOrSourceURL"));
|
||||
|
12
src/log.cc
12
src/log.cc
@ -1728,18 +1728,10 @@ void Logger::LogExistingFunction(Handle<SharedFunctionInfo> shared,
|
||||
Handle<String> func_name(shared->DebugName());
|
||||
if (shared->script()->IsScript()) {
|
||||
Handle<Script> script(Script::cast(shared->script()));
|
||||
Handle<String> script_name;
|
||||
if (script->name()->IsString()) {
|
||||
script_name = Handle<String>(String::cast(script->name()));
|
||||
} else {
|
||||
Handle<Object> name = GetScriptNameOrSourceURL(script);
|
||||
if (!name.is_null() && name->IsString()) {
|
||||
script_name = Handle<String>::cast(name);
|
||||
}
|
||||
}
|
||||
if (!script_name.is_null()) {
|
||||
Handle<String> script_name(String::cast(script->name()));
|
||||
int line_num = GetScriptLineNumber(script, shared->start_position());
|
||||
if (line_num > -1) {
|
||||
if (line_num > 0) {
|
||||
PROFILE(isolate_,
|
||||
CodeCreateEvent(
|
||||
Logger::ToNativeByScript(Logger::LAZY_COMPILE_TAG, *script),
|
||||
|
@ -917,89 +917,3 @@ TEST(NativeMethodMonomorphicIC) {
|
||||
|
||||
cpu_profiler->DeleteAllCpuProfiles();
|
||||
}
|
||||
|
||||
|
||||
static const char* cpu_profiler_sourceURL_source =
|
||||
"function start(timeout) {\n"
|
||||
" var start = Date.now();\n"
|
||||
" var duration = 0;\n"
|
||||
" do {\n"
|
||||
" try {\n"
|
||||
" duration = Date.now() - start;\n"
|
||||
" } catch(e) { }\n"
|
||||
" } while (duration < timeout);\n"
|
||||
" return duration;\n"
|
||||
"}\n"
|
||||
"//# sourceURL=cpu_profiler_sourceURL_source.js";
|
||||
|
||||
|
||||
TEST(SourceURLSupportForNewFunctions) {
|
||||
LocalContext env;
|
||||
v8::HandleScope scope(env->GetIsolate());
|
||||
|
||||
v8::Script::Compile(v8::String::New(cpu_profiler_sourceURL_source))->Run();
|
||||
v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
|
||||
env->Global()->Get(v8::String::New("start")));
|
||||
v8::CpuProfiler* cpu_profiler = env->GetIsolate()->GetCpuProfiler();
|
||||
int32_t profiling_interval_ms = 200;
|
||||
#if defined(_WIN32) || defined(_WIN64)
|
||||
// 200ms is not enough on Windows. See
|
||||
// https://code.google.com/p/v8/issues/detail?id=2628
|
||||
profiling_interval_ms = 500;
|
||||
#endif
|
||||
|
||||
// Cold run.
|
||||
v8::Local<v8::String> profile_name = v8::String::New("my_profile");
|
||||
cpu_profiler->StartCpuProfiling(profile_name);
|
||||
v8::Handle<v8::Value> args[] = { v8::Integer::New(profiling_interval_ms) };
|
||||
function->Call(env->Global(), ARRAY_SIZE(args), args);
|
||||
const v8::CpuProfile* profile = cpu_profiler->StopCpuProfiling(profile_name);
|
||||
CHECK_NE(NULL, profile);
|
||||
|
||||
// Dump collected profile to have a better diagnostic in case of failure.
|
||||
reinterpret_cast<i::CpuProfile*>(
|
||||
const_cast<v8::CpuProfile*>(profile))->Print();
|
||||
const v8::CpuProfileNode* root = profile->GetTopDownRoot();
|
||||
const v8::CpuProfileNode* startNode = GetChild(root, "start");
|
||||
|
||||
CHECK_EQ(v8::String::New("cpu_profiler_sourceURL_source.js"),
|
||||
startNode->GetScriptResourceName());
|
||||
|
||||
cpu_profiler->DeleteAllCpuProfiles();
|
||||
}
|
||||
|
||||
TEST(LogExistingFunctionSourceURLCheck) {
|
||||
LocalContext env;
|
||||
v8::HandleScope scope(env->GetIsolate());
|
||||
|
||||
v8::Script::Compile(v8::String::New(cpu_profiler_sourceURL_source))->Run();
|
||||
v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
|
||||
env->Global()->Get(v8::String::New("start")));
|
||||
v8::CpuProfiler* cpu_profiler = env->GetIsolate()->GetCpuProfiler();
|
||||
int32_t profiling_interval_ms = 200;
|
||||
|
||||
// Warm up.
|
||||
v8::Handle<v8::Value> args[] = { v8::Integer::New(profiling_interval_ms) };
|
||||
function->Call(env->Global(), ARRAY_SIZE(args), args);
|
||||
|
||||
#if defined(_WIN32) || defined(_WIN64)
|
||||
// 200ms is not enough on Windows. See
|
||||
// https://code.google.com/p/v8/issues/detail?id=2628
|
||||
profiling_interval_ms = 500;
|
||||
#endif
|
||||
v8::Local<v8::String> profile_name = v8::String::New("my_profile");
|
||||
cpu_profiler->StartCpuProfiling(profile_name);
|
||||
function->Call(env->Global(), ARRAY_SIZE(args), args);
|
||||
const v8::CpuProfile* profile = cpu_profiler->StopCpuProfiling(profile_name);
|
||||
CHECK_NE(NULL, profile);
|
||||
|
||||
// Dump collected profile to have a better diagnostic in case of failure.
|
||||
reinterpret_cast<i::CpuProfile*>(
|
||||
const_cast<v8::CpuProfile*>(profile))->Print();
|
||||
const v8::CpuProfileNode* root = profile->GetTopDownRoot();
|
||||
const v8::CpuProfileNode* startNode = GetChild(root, "start");
|
||||
CHECK_EQ(v8::String::New("cpu_profiler_sourceURL_source.js"),
|
||||
startNode->GetScriptResourceName());
|
||||
|
||||
cpu_profiler->DeleteAllCpuProfiles();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user