}
+void CompareNilICStub::Types::TraceTransition(Types to) const {
+ #ifdef DEBUG
+ if (!FLAG_trace_ic) return;
+ char buffer[100];
+ NoAllocationStringAllocator allocator(buffer,
+ static_cast<unsigned>(sizeof(buffer)));
+ StringStream stream(&allocator);
+ stream.Add("[CompareNilIC : ");
+ Print(&stream);
+ stream.Add("=>");
+ to.Print(&stream);
+ stream.Add("]\n");
+ stream.OutputToStdOut();
+ #endif
+}
+
+
void CompareNilICStub::PrintName(StringStream* stream) {
stream->Add("CompareNilICStub_");
types_.Print(stream);
void ToBooleanStub::Types::TraceTransition(Types to) const {
+ #ifdef DEBUG
if (!FLAG_trace_ic) return;
char buffer[100];
NoAllocationStringAllocator allocator(buffer,
static_cast<unsigned>(sizeof(buffer)));
StringStream stream(&allocator);
- stream.Add("[ToBooleanIC (");
+ stream.Add("[ToBooleanIC : ");
Print(&stream);
- stream.Add("->");
+ stream.Add("=>");
to.Print(&stream);
- stream.Add(")]\n");
+ stream.Add("]\n");
stream.OutputToStdOut();
+ #endif
}
}
void Print(StringStream* stream) const;
+ void TraceTransition(Types to) const;
};
// At most 6 different types can be distinguished, because the Code object
// types must be supported as a result of the miss.
bool already_monomorphic = stub.IsMonomorphic();
+ CompareNilICStub::Types old_types = stub.GetTypes();
stub.Record(object);
+ old_types.TraceTransition(stub.GetTypes());
EqualityKind kind = stub.GetKind();
NilValue nil = stub.GetNilValue();