}
void Logger::LogRegExpSource(Handle<JSValue> regexp) {
- // Prints "/" + re.source + "/" +
+ // Prints "/" + re.source + "/" +
// (re.global?"g":"") + (re.ignorecase?"i":"") + (re.multiline?"m":"")
Handle<Object> source = GetProperty(regexp, "source");
void Logger::RegExpExecEvent(Handle<JSValue> regexp,
int start_index,
- Handle<String> string) {
+ Handle<String> input_string) {
#ifdef ENABLE_LOGGING_AND_PROFILING
if (logfile_ == NULL || !FLAG_log_regexp) return;
ScopedLock sl(mutex_);
fprintf(logfile_, "regexp-run,");
LogRegExpSource(regexp);
- fprintf(logfile_, ",0x%08x,%d..%d\n", string->Hash(), start_index, string->length());
+ fprintf(logfile_, ",0x%08x,%d..%d\n",
+ input_string->Hash(), start_index, input_string->length());
#endif
}
//
// --log-all
// Log all events to the file, default is off. This is the same as combining
-// --log-api, --log-code, and --log-gc.
+// --log-api, --log-code, --log-gc, and --log-regexp.
//
// --log-api
// Log API events to the logfile, default is off. --log-api implies --log.
// Log GC heap samples after each GC that can be processed by hp2ps, default
// is off. --log-gc implies --log.
//
+// --log-regexp
+// Log creation and use of regular expressions, Default is off.
+// --log-regexp implies --log.
+//
// --logfile <filename>
// Specify the name of the logfile, default is "v8.log".
//
static void RegExpCompileEvent(Handle<JSValue> regexp);
- static void RegExpExecEvent(Handle<JSValue> regexp,
- int start_index,
- Handle<String> string);
+ static void RegExpExecEvent(Handle<JSValue> regexp,
+ int start_index,
+ Handle<String> input_string);
#ifdef ENABLE_LOGGING_AND_PROFILING
static StateTag state() {
// ROBUST_STRING_TRAVERSAL invokes behaviour that is robust This means it
// handles unexpected data without causing assert failures and it does not
// do any heap allocations. This is useful when printing stack traces.
- SmartPointer<uc16> ToWideCString(RobustnessFlag robustness_flag = FAST_STRING_TRAVERSAL);
+ SmartPointer<uc16> ToWideCString(
+ RobustnessFlag robustness_flag = FAST_STRING_TRAVERSAL);
// Tells whether the hash code has been computed.
inline bool HasHashCode();
class SmartPointer {
public:
- // Default constructor. Construct an empty scoped pointer.
+ // Default constructor. Construct an empty scoped pointer.
inline SmartPointer() : p(NULL) {}
// the copy constructor it removes the pointer in the original to avoid
// double freeing.
inline SmartPointer& operator=(const SmartPointer<T>& rhs) {
- ASSERT(p == NULL);
- T* tmp = rhs.p; // swap to handle self-assignment
+ ASSERT(p == NULL);
+ T* tmp = rhs.p; // swap to handle self-assignment
const_cast<SmartPointer<T>&>(rhs).p = NULL;
p = tmp;
return *this;