Index: test/cctest/test-log-stack-tracer.cc |
diff --git a/test/cctest/test-log-stack-tracer.cc b/test/cctest/test-log-stack-tracer.cc |
index d744acb3c10b797e89476991c96ef0129e1c5b29..f5c21932813e000768e24fff85a2a4441f6d01df 100644 |
--- a/test/cctest/test-log-stack-tracer.cc |
+++ b/test/cctest/test-log-stack-tracer.cc |
@@ -26,7 +26,6 @@ using v8::internal::byte; |
using v8::internal::Address; |
using v8::internal::Handle; |
using v8::internal::JSFunction; |
-using v8::internal::SharedFunctionInfo; |
using v8::internal::StackTracer; |
using v8::internal::TickSample; |
using v8::internal::Top; |
@@ -78,10 +77,9 @@ static void CheckRetAddrIsInFunction(const char* func_name, |
} |
-static void CheckRetAddrIsInSharedFunctionInfo( |
- const char* func_name, |
- Address ret_addr, |
- Handle<SharedFunctionInfo> func) { |
+static void CheckRetAddrIsInJSFunction(const char* func_name, |
+ Address ret_addr, |
+ Handle<JSFunction> func) { |
v8::internal::Code* func_code = func->code(); |
CheckRetAddrIsInFunction( |
func_name, ret_addr, |
@@ -192,16 +190,10 @@ static void InitializeVM() { |
} |
-static Handle<SharedFunctionInfo> CompileFunction(const char* source) { |
- Handle<v8::internal::Object> obj = |
- v8::Utils::OpenHandle(*Script::Compile(String::New(source))); |
- Handle<SharedFunctionInfo> shared; |
- if (obj->IsSharedFunctionInfo()) { |
- shared = Handle<SharedFunctionInfo>(SharedFunctionInfo::cast(*obj)); |
- } else { |
- shared = Handle<SharedFunctionInfo>(JSFunction::cast(*obj)->shared()); |
- } |
- return shared; |
+static Handle<JSFunction> CompileFunction(const char* source) { |
+ Handle<JSFunction> result(JSFunction::cast( |
+ *v8::Utils::OpenHandle(*Script::Compile(String::New(source))))); |
+ return result; |
} |
@@ -210,17 +202,16 @@ static Local<Value> GetGlobalProperty(const char* name) { |
} |
-static Handle<SharedFunctionInfo> GetGlobalJSFunction(const char* name) { |
- Handle<SharedFunctionInfo> js_func( |
- SharedFunctionInfo::cast( |
- *(v8::Utils::OpenHandle(*GetGlobalProperty(name))))); |
- return js_func; |
+static Handle<JSFunction> GetGlobalJSFunction(const char* name) { |
+ Handle<JSFunction> result(JSFunction::cast( |
+ *v8::Utils::OpenHandle(*GetGlobalProperty(name)))); |
+ return result; |
} |
-static void CheckRetAddrIsInSharedFunctionInfo(const char* func_name, |
+static void CheckRetAddrIsInJSFunction(const char* func_name, |
Address ret_addr) { |
- CheckRetAddrIsInSharedFunctionInfo(func_name, |
+ CheckRetAddrIsInJSFunction(func_name, |
ret_addr, |
Kasper Lund
2010/03/23 11:53:28
Indentation.
mnaganov (inactive)
2010/03/23 12:39:18
Done.
|
GetGlobalJSFunction(func_name)); |
} |
@@ -278,7 +269,7 @@ static void CreateTraceCallerFunction(const char* func_name, |
i::CodeGeneratorPatcher patcher; |
bool allow_natives_syntax = i::FLAG_allow_natives_syntax; |
i::FLAG_allow_natives_syntax = true; |
- Handle<SharedFunctionInfo> func = CompileFunction(trace_call_buf.start()); |
+ Handle<JSFunction> func = CompileFunction(trace_call_buf.start()); |
CHECK(!func.is_null()); |
i::FLAG_allow_natives_syntax = allow_natives_syntax; |
@@ -289,59 +280,56 @@ static void CreateTraceCallerFunction(const char* func_name, |
#endif |
SetGlobalProperty(func_name, v8::ToApi<Value>(func)); |
+ CHECK_EQ(*func, *GetGlobalJSFunction(func_name)); |
} |
TEST(CFromJSStackTrace) { |
- // TODO(657): Fixup test after FunctionBoilerplate removal. |
- return; |
- |
TickSample sample; |
InitTraceEnv(&sample); |
InitializeVM(); |
v8::HandleScope scope; |
CreateTraceCallerFunction("JSFuncDoTrace", "trace"); |
- CompileRun( |
+ CHECK(!CompileRun( |
Kasper Lund
2010/03/23 11:53:28
I would create a local handle for the result and d
mnaganov (inactive)
2010/03/23 12:39:18
Good point. Done.
|
"function JSTrace() {" |
" JSFuncDoTrace();" |
"};\n" |
- "JSTrace();"); |
+ "JSTrace();\n" |
+ "true;").IsEmpty()); |
CHECK_GT(sample.frames_count, 1); |
// Stack sampling will start from the first JS function, i.e. "JSFuncDoTrace" |
- CheckRetAddrIsInSharedFunctionInfo("JSFuncDoTrace", |
+ CheckRetAddrIsInJSFunction("JSFuncDoTrace", |
sample.stack[0]); |
Kasper Lund
2010/03/23 11:53:28
Indentation.
mnaganov (inactive)
2010/03/23 12:39:18
Done.
|
- CheckRetAddrIsInSharedFunctionInfo("JSTrace", |
+ CheckRetAddrIsInJSFunction("JSTrace", |
sample.stack[1]); |
Kasper Lund
2010/03/23 11:53:28
Indentation.
mnaganov (inactive)
2010/03/23 12:39:18
Done.
|
} |
TEST(PureJSStackTrace) { |
- // TODO(657): Fixup test after FunctionBoilerplate removal. |
- return; |
- |
TickSample sample; |
InitTraceEnv(&sample); |
InitializeVM(); |
v8::HandleScope scope; |
CreateTraceCallerFunction("JSFuncDoTrace", "js_trace"); |
- CompileRun( |
+ CHECK(!CompileRun( |
Kasper Lund
2010/03/23 11:53:28
I would create a local handle for the result and d
mnaganov (inactive)
2010/03/23 12:39:18
Done.
|
"function JSTrace() {" |
" JSFuncDoTrace();" |
"};\n" |
"function OuterJSTrace() {" |
" JSTrace();" |
"};\n" |
- "OuterJSTrace();"); |
+ "OuterJSTrace();\n" |
+ "true;").IsEmpty()); |
// The last JS function called. |
CHECK_EQ(GetGlobalJSFunction("JSFuncDoTrace")->address(), |
sample.function); |
CHECK_GT(sample.frames_count, 1); |
// Stack sampling will start from the caller of JSFuncDoTrace, i.e. "JSTrace" |
- CheckRetAddrIsInSharedFunctionInfo("JSTrace", |
+ CheckRetAddrIsInJSFunction("JSTrace", |
sample.stack[0]); |
Kasper Lund
2010/03/23 11:53:28
Indentation.
mnaganov (inactive)
2010/03/23 12:39:18
Done.
|
- CheckRetAddrIsInSharedFunctionInfo("OuterJSTrace", |
+ CheckRetAddrIsInJSFunction("OuterJSTrace", |
sample.stack[1]); |
Kasper Lund
2010/03/23 11:53:28
Indentation.
mnaganov (inactive)
2010/03/23 12:39:18
Done.
|
} |