Revision: 18942
Author: [email protected]
Date: Thu Jan 30 12:17:21 2014 UTC
Log: Add global_context field to GlobalObject in heap profiler.
LOG=N
[email protected], [email protected]
Review URL: https://codereview.chromium.org/143263015
http://code.google.com/p/v8/source/detail?r=18942
Modified:
/branches/bleeding_edge/src/heap-snapshot-generator.cc
/branches/bleeding_edge/test/cctest/test-heap-profiler.cc
=======================================
--- /branches/bleeding_edge/src/heap-snapshot-generator.cc Wed Jan 29
17:03:13 2014 UTC
+++ /branches/bleeding_edge/src/heap-snapshot-generator.cc Thu Jan 30
12:17:21 2014 UTC
@@ -1131,9 +1131,14 @@
SetInternalReference(global_obj, entry,
"native_context", global_obj->native_context(),
GlobalObject::kNativeContextOffset);
+ SetInternalReference(global_obj, entry,
+ "global_context", global_obj->global_context(),
+ GlobalObject::kGlobalContextOffset);
SetInternalReference(global_obj, entry,
"global_receiver", global_obj->global_receiver(),
GlobalObject::kGlobalReceiverOffset);
+ STATIC_CHECK(GlobalObject::kHeaderSize - JSObject::kHeaderSize ==
+ 4 * kPointerSize);
} else if (obj->IsJSArrayBufferView()) {
JSArrayBufferView* view = JSArrayBufferView::cast(obj);
SetInternalReference(view, entry, "buffer", view->buffer(),
=======================================
--- /branches/bleeding_edge/test/cctest/test-heap-profiler.cc Wed Jan 29
17:03:13 2014 UTC
+++ /branches/bleeding_edge/test/cctest/test-heap-profiler.cc Thu Jan 30
12:17:21 2014 UTC
@@ -1535,6 +1535,30 @@
const_cast<i::HeapEntry*>(
reinterpret_cast<const i::HeapEntry*>(global))->name());
}
+
+
+TEST(GlobalObjectFields) {
+ LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
+ v8::HeapProfiler* heap_profiler = env->GetIsolate()->GetHeapProfiler();
+ CompileRun("obj = {};");
+ const v8::HeapSnapshot* snapshot =
+ heap_profiler->TakeHeapSnapshot(v8_str("snapshot"));
+ CHECK(ValidateSnapshot(snapshot));
+ const v8::HeapGraphNode* global = GetGlobalObject(snapshot);
+ const v8::HeapGraphNode* builtins =
+ GetProperty(global, v8::HeapGraphEdge::kInternal, "builtins");
+ CHECK_NE(NULL, builtins);
+ const v8::HeapGraphNode* native_context =
+ GetProperty(global, v8::HeapGraphEdge::kInternal, "native_context");
+ CHECK_NE(NULL, native_context);
+ const v8::HeapGraphNode* global_context =
+ GetProperty(global, v8::HeapGraphEdge::kInternal, "global_context");
+ CHECK_NE(NULL, global_context);
+ const v8::HeapGraphNode* global_receiver =
+ GetProperty(global, v8::HeapGraphEdge::kInternal, "global_receiver");
+ CHECK_NE(NULL, global_receiver);
+}
TEST(NoHandleLeaks) {
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.