if (FLAG_strict || is_contextual()) {
return ReferenceError("not_defined", name);
}
- String* class_name = object->IsJSObject()
- ? Handle<JSObject>::cast(object)->class_name()
- : Heap::empty_string();
- LOG(SuspectReadEvent(*name, class_name));
- USE(class_name);
+ LOG(SuspectReadEvent(*name, *object));
}
// Update inline cache and stub cache.
}
-void Logger::SuspectReadEvent(String* name, String* obj) {
+void Logger::SuspectReadEvent(String* name, Object* obj) {
#ifdef ENABLE_LOGGING_AND_PROFILING
if (logfile_ == NULL || !FLAG_log_suspect) return;
+ String* class_name = obj->IsJSObject()
+ ? JSObject::cast(obj)->class_name()
+ : Heap::empty_string();
ScopedLock sl(mutex_);
fprintf(logfile_, "suspect-read,");
- obj->PrintOn(logfile_);
+ class_name->PrintOn(logfile_);
fprintf(logfile_, ",\"");
name->PrintOn(logfile_);
fprintf(logfile_, "\"\n");
// Emits an event that an undefined property was read from an
// object.
- static void SuspectReadEvent(String* name, String* obj);
+ static void SuspectReadEvent(String* name, Object* obj);
// Emits an event when a message is put on or read from a debugging queue.
// DebugTag lets us put a call-site specific label on the event.