diff options
author | Peter Varga <pvarga@inf.u-szeged.hu> | 2012-04-17 11:03:39 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-04-26 08:55:55 +0200 |
commit | 227e72d1bba70d518639996aab4146b060507cd6 (patch) | |
tree | 723564e760e94a7d205a3d3300c44192e1d2f2e1 /src/3rdparty/v8/src/objects-printer.cc | |
parent | 5b1fcb16da41f711f27f2e8ff84de8b70a30b645 (diff) |
Updated V8 from git://github.com/v8/v8.git to 57f8959fb264354ba1a2e5118db512f588917061
Update V8 source to version 3.10.1.
* Added optimizations and stability improvements on all platforms.
* Various performance improvements.
* Cleanup ScopeInfo and SerializedScopeInfo.
* Introduce extended mode.
* Implemented performance improvements to the incremental garbage
collector.
* Fixed handling of arrays in DefineOwnProperty. (issue 1756)
* Fixed GCC 4.7 warnings.
* Performance improvements for large Smi-only arrays.
* Reduce the space used by the stack for the profiling thread.
* Reduced memory use immediately after starting V8.
* Fixed VFP detection through compiler defines. (issue 1996)
* Remove static initializers in v8. (issue 1859)
* Optimized boot-up memory use.
* Optimized regular expressions.
Change-Id: I2dad3092612de279179950dae4dd43daf0463a9f
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Diffstat (limited to 'src/3rdparty/v8/src/objects-printer.cc')
-rw-r--r-- | src/3rdparty/v8/src/objects-printer.cc | 71 |
1 files changed, 67 insertions, 4 deletions
diff --git a/src/3rdparty/v8/src/objects-printer.cc b/src/3rdparty/v8/src/objects-printer.cc index 1ca97de..2353a95 100644 --- a/src/3rdparty/v8/src/objects-printer.cc +++ b/src/3rdparty/v8/src/objects-printer.cc @@ -1,4 +1,4 @@ -// Copyright 2011 the V8 project authors. All rights reserved. +// Copyright 2012 the V8 project authors. All rights reserved. // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: @@ -151,6 +151,9 @@ void HeapObject::HeapObjectPrint(FILE* out) { PrintF(out, "Value wrapper around:"); JSValue::cast(this)->value()->Print(out); break; + case JS_DATE_TYPE: + JSDate::cast(this)->value()->Print(out); + break; case CODE_TYPE: Code::cast(this)->CodePrint(out); break; @@ -295,7 +298,9 @@ void JSObject::PrintProperties(FILE* out) { case NULL_DESCRIPTOR: PrintF(out, "(null descriptor)\n"); break; - default: + case NORMAL: // only in slow mode + case HANDLER: // only in lookup results, not in descriptors + case INTERCEPTOR: // only in lookup results, not in descriptors UNREACHABLE(); break; } @@ -444,6 +449,9 @@ static const char* TypeToString(InstanceType type) { case EXTERNAL_ASCII_SYMBOL_TYPE: case EXTERNAL_SYMBOL_WITH_ASCII_DATA_TYPE: case EXTERNAL_SYMBOL_TYPE: return "EXTERNAL_SYMBOL"; + case SHORT_EXTERNAL_ASCII_SYMBOL_TYPE: + case SHORT_EXTERNAL_SYMBOL_WITH_ASCII_DATA_TYPE: + case SHORT_EXTERNAL_SYMBOL_TYPE: return "SHORT_EXTERNAL_SYMBOL"; case ASCII_STRING_TYPE: return "ASCII_STRING"; case STRING_TYPE: return "TWO_BYTE_STRING"; case CONS_STRING_TYPE: @@ -451,6 +459,9 @@ static const char* TypeToString(InstanceType type) { case EXTERNAL_ASCII_STRING_TYPE: case EXTERNAL_STRING_WITH_ASCII_DATA_TYPE: case EXTERNAL_STRING_TYPE: return "EXTERNAL_STRING"; + case SHORT_EXTERNAL_ASCII_STRING_TYPE: + case SHORT_EXTERNAL_STRING_WITH_ASCII_DATA_TYPE: + case SHORT_EXTERNAL_STRING_TYPE: return "SHORT_EXTERNAL_STRING"; case FIXED_ARRAY_TYPE: return "FIXED_ARRAY"; case BYTE_ARRAY_TYPE: return "BYTE_ARRAY"; case FREE_SPACE_TYPE: return "FREE_SPACE"; @@ -546,6 +557,21 @@ void PolymorphicCodeCache::PolymorphicCodeCachePrint(FILE* out) { } +void TypeFeedbackInfo::TypeFeedbackInfoPrint(FILE* out) { + HeapObject::PrintHeader(out, "TypeFeedbackInfo"); + PrintF(out, "\n - ic_total_count: %d, ic_with_type_info_count: %d", + ic_total_count(), ic_with_type_info_count()); + PrintF(out, "\n - type_feedback_cells: "); + type_feedback_cells()->FixedArrayPrint(out); +} + + +void AliasedArgumentsEntry::AliasedArgumentsEntryPrint(FILE* out) { + HeapObject::PrintHeader(out, "AliasedArgumentsEntry"); + PrintF(out, "\n - aliased_context_slot: %d", aliased_context_slot()); +} + + void FixedArray::FixedArrayPrint(FILE* out) { HeapObject::PrintHeader(out, "FixedArray"); PrintF(out, " - length: %d", length()); @@ -561,7 +587,11 @@ void FixedDoubleArray::FixedDoubleArrayPrint(FILE* out) { HeapObject::PrintHeader(out, "FixedDoubleArray"); PrintF(out, " - length: %d", length()); for (int i = 0; i < length(); i++) { - PrintF(out, "\n [%d]: %g", i, get_scalar(i)); + if (is_the_hole(i)) { + PrintF(out, "\n [%d]: <the hole>", i); + } else { + PrintF(out, "\n [%d]: %g", i, get_scalar(i)); + } } PrintF(out, "\n"); } @@ -619,7 +649,7 @@ void String::StringPrint(FILE* out) { // This method is only meant to be called from gdb for debugging purposes. -// Since the string can also be in two-byte encoding, non-ascii characters +// Since the string can also be in two-byte encoding, non-ASCII characters // will be ignored in the output. char* String::ToAsciiArray() { // Static so that subsequent calls frees previously allocated space. @@ -633,6 +663,30 @@ char* String::ToAsciiArray() { } +static const char* const weekdays[] = { + "???", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" +}; + +void JSDate::JSDatePrint(FILE* out) { + HeapObject::PrintHeader(out, "JSDate"); + PrintF(out, " - map = 0x%p\n", reinterpret_cast<void*>(map())); + PrintF(out, " - value = "); + value()->Print(out); + if (!year()->IsSmi()) { + PrintF(out, " - time = NaN\n"); + } else { + PrintF(out, " - time = %s %04d/%02d/%02d %02d:%02d:%02d\n", + weekdays[weekday()->IsSmi() ? Smi::cast(weekday())->value() + 1 : 0], + year()->IsSmi() ? Smi::cast(year())->value() : -1, + month()->IsSmi() ? Smi::cast(month())->value() : -1, + day()->IsSmi() ? Smi::cast(day())->value() : -1, + hour()->IsSmi() ? Smi::cast(hour())->value() : -1, + min()->IsSmi() ? Smi::cast(min())->value() : -1, + sec()->IsSmi() ? Smi::cast(sec())->value() : -1); + } +} + + void JSProxy::JSProxyPrint(FILE* out) { HeapObject::PrintHeader(out, "JSProxy"); PrintF(out, " - map = 0x%p\n", reinterpret_cast<void*>(map())); @@ -778,6 +832,15 @@ void AccessorInfo::AccessorInfoPrint(FILE* out) { } +void AccessorPair::AccessorPairPrint(FILE* out) { + HeapObject::PrintHeader(out, "AccessorPair"); + PrintF(out, "\n - getter: "); + getter()->ShortPrint(out); + PrintF(out, "\n - setter: "); + setter()->ShortPrint(out); +} + + void AccessCheckInfo::AccessCheckInfoPrint(FILE* out) { HeapObject::PrintHeader(out, "AccessCheckInfo"); PrintF(out, "\n - named_callback: "); |