13 if (
top().is_null()) {
18 if (FLAG_trace_creation_allocation_sites) {
19 PrintF(
"*** Creating top level AllocationSite %p\n",
20 static_cast<void*
>(*scope_site));
25 if (FLAG_trace_creation_allocation_sites) {
26 PrintF(
"Creating nested site (top, current, new) (%p, %p, %p)\n",
27 static_cast<void*
>(*
top()),
29 static_cast<void*
>(*scope_site));
31 current()->set_nested_site(*scope_site);
42 if (!
object.is_null()) {
43 bool top_level = !scope_site.
is_null() &&
44 top().is_identical_to(scope_site);
46 scope_site->set_transition_info(*
object);
47 if (FLAG_trace_creation_allocation_sites) {
49 PrintF(
"*** Setting AllocationSite %p transition_info %p\n",
50 static_cast<void*
>(*scope_site),
51 static_cast<void*
>(*
object));
53 PrintF(
"Setting AllocationSite (%p, %p) transition_info %p\n",
54 static_cast<void*
>(*
top()),
55 static_cast<void*
>(*scope_site),
56 static_cast<void*
>(*
object));
65 if (FLAG_allocation_site_pretenuring ||
68 if (FLAG_trace_creation_allocation_sites) {
69 PrintF(
"*** Creating Memento for %s %p\n",
70 object->IsJSArray() ?
"JSArray" :
"JSObject",
71 static_cast<void*
>(*
object));
Handle< AllocationSite > current()
void InitializeTraversal(Handle< AllocationSite > site)
void update_current_site(AllocationSite *site)
Handle< AllocationSite > top()
void ExitScope(Handle< AllocationSite > site, Handle< JSObject > object)
Handle< AllocationSite > EnterNewScope()
bool ShouldCreateMemento(Handle< JSObject > object)
static bool CanTrack(InstanceType type)
static AllocationSiteMode GetMode(ElementsKind boilerplate_elements_kind)
#define DCHECK(condition)
void PrintF(const char *format,...)
Debugger support for the V8 JavaScript engine.