Make event logger slightly more light-weight.
[platform/upstream/v8.git] / src / log-inl.h
1 // Copyright 2006-2009 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef V8_LOG_INL_H_
6 #define V8_LOG_INL_H_
7
8 #include "src/log.h"
9 #include "src/isolate.h"
10
11 namespace v8 {
12 namespace internal {
13
14 Logger::LogEventsAndTags Logger::ToNativeByScript(Logger::LogEventsAndTags tag,
15                                                   Script* script) {
16   if ((tag == FUNCTION_TAG || tag == LAZY_COMPILE_TAG || tag == SCRIPT_TAG)
17       && script->type()->value() == Script::TYPE_NATIVE) {
18     switch (tag) {
19       case FUNCTION_TAG: return NATIVE_FUNCTION_TAG;
20       case LAZY_COMPILE_TAG: return NATIVE_LAZY_COMPILE_TAG;
21       case SCRIPT_TAG: return NATIVE_SCRIPT_TAG;
22       default: return tag;
23     }
24   } else {
25     return tag;
26   }
27 }
28
29
30 void Logger::CallEventLogger(Isolate* isolate, const char* name, StartEnd se,
31                              bool expose_to_api) {
32   if (isolate->event_logger() != NULL) {
33     if (isolate->event_logger() == DefaultEventLoggerSentinel) {
34       LOG(isolate, TimerEvent(se, name));
35     } else if (expose_to_api) {
36       isolate->event_logger()(name, se);
37     }
38   }
39 }
40 } }  // namespace v8::internal
41
42 #endif  // V8_LOG_INL_H_