Index: src/profile-generator.cc |
=================================================================== |
--- src/profile-generator.cc (revision 9808) |
+++ src/profile-generator.cc (working copy) |
@@ -1930,9 +1930,11 @@ |
SetInternalReference(js_fun, entry, |
"context", js_fun->unchecked_context(), |
JSFunction::kContextOffset); |
- TagObject(js_fun->literals(), "(function literals)"); |
+ TagObject(js_fun->literals_or_bindings(), |
+ "(function literals_or_bindings)"); |
SetInternalReference(js_fun, entry, |
- "literals", js_fun->literals(), |
+ "literals_or_bindings", |
+ js_fun->literals_or_bindings(), |
JSFunction::kLiteralsOffset); |
} |
TagObject(js_obj->properties(), "(object properties)"); |
@@ -1949,6 +1951,10 @@ |
SetInternalReference(obj, entry, 1, cs->first()); |
SetInternalReference(obj, entry, 2, cs->second()); |
} |
+ if (obj->IsSlicedString()) { |
+ SlicedString* ss = SlicedString::cast(obj); |
+ SetInternalReference(obj, entry, "parent", ss->parent()); |
+ } |
extract_indexed_refs = false; |
} else if (obj->IsGlobalContext()) { |
Context* context = Context::cast(obj); |
@@ -2164,15 +2170,16 @@ |
String* V8HeapExplorer::GetConstructorName(JSObject* object) { |
- if (object->IsJSFunction()) return HEAP->closure_symbol(); |
+ Heap* heap = object->GetHeap(); |
+ if (object->IsJSFunction()) return heap->closure_symbol(); |
String* constructor_name = object->constructor_name(); |
- if (constructor_name == HEAP->Object_symbol()) { |
+ if (constructor_name == heap->Object_symbol()) { |
// Look up an immediate "constructor" property, if it is a function, |
// return its name. This is for instances of binding objects, which |
// have prototype constructor type "Object". |
Object* constructor_prop = NULL; |
- LookupResult result; |
- object->LocalLookupRealNamedProperty(HEAP->constructor_symbol(), &result); |
+ LookupResult result(heap->isolate()); |
+ object->LocalLookupRealNamedProperty(heap->constructor_symbol(), &result); |
if (result.IsProperty()) { |
constructor_prop = result.GetLazyValue(); |
} |