OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <sstream> | 5 #include <sstream> |
6 | 6 |
7 #include "src/v8.h" | 7 #include "src/v8.h" |
8 | 8 |
9 #include "src/accessors.h" | 9 #include "src/accessors.h" |
10 #include "src/allocation-site-scopes.h" | 10 #include "src/allocation-site-scopes.h" |
(...skipping 1516 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1527 os << "<true>"; | 1527 os << "<true>"; |
1528 } else if (IsFalse()) { | 1528 } else if (IsFalse()) { |
1529 os << "<false>"; | 1529 os << "<false>"; |
1530 } else { | 1530 } else { |
1531 os << "<Odd Oddball>"; | 1531 os << "<Odd Oddball>"; |
1532 } | 1532 } |
1533 break; | 1533 break; |
1534 } | 1534 } |
1535 case SYMBOL_TYPE: { | 1535 case SYMBOL_TYPE: { |
1536 Symbol* symbol = Symbol::cast(this); | 1536 Symbol* symbol = Symbol::cast(this); |
1537 os << "<Symbol: " << symbol->Hash(); | 1537 symbol->SymbolShortPrint(os); |
1538 if (!symbol->name()->IsUndefined()) { | |
1539 os << " "; | |
1540 HeapStringAllocator allocator; | |
1541 StringStream accumulator(&allocator); | |
1542 String::cast(symbol->name())->StringShortPrint(&accumulator); | |
1543 os << accumulator.ToCString().get(); | |
1544 } | |
1545 os << ">"; | |
1546 break; | 1538 break; |
1547 } | 1539 } |
1548 case HEAP_NUMBER_TYPE: { | 1540 case HEAP_NUMBER_TYPE: { |
1549 os << "<Number: "; | 1541 os << "<Number: "; |
1550 HeapNumber::cast(this)->HeapNumberPrint(os); | 1542 HeapNumber::cast(this)->HeapNumberPrint(os); |
1551 os << ">"; | 1543 os << ">"; |
1552 break; | 1544 break; |
1553 } | 1545 } |
1554 case MUTABLE_HEAP_NUMBER_TYPE: { | 1546 case MUTABLE_HEAP_NUMBER_TYPE: { |
1555 os << "<MutableNumber: "; | 1547 os << "<MutableNumber: "; |
(...skipping 12067 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13623 DCHECK(!storage || storage->length() == counter); | 13615 DCHECK(!storage || storage->length() == counter); |
13624 return counter; | 13616 return counter; |
13625 } | 13617 } |
13626 | 13618 |
13627 | 13619 |
13628 int JSObject::GetEnumElementKeys(FixedArray* storage) { | 13620 int JSObject::GetEnumElementKeys(FixedArray* storage) { |
13629 return GetOwnElementKeys(storage, static_cast<PropertyAttributes>(DONT_ENUM)); | 13621 return GetOwnElementKeys(storage, static_cast<PropertyAttributes>(DONT_ENUM)); |
13630 } | 13622 } |
13631 | 13623 |
13632 | 13624 |
| 13625 const char* Symbol::PrivateSymbolToName() const { |
| 13626 Heap* heap = GetIsolate()->heap(); |
| 13627 #define SYMBOL_CHECK_AND_PRINT(name) \ |
| 13628 if (this == heap->name()) return #name; |
| 13629 PRIVATE_SYMBOL_LIST(SYMBOL_CHECK_AND_PRINT) |
| 13630 #undef SYMBOL_CHECK_AND_PRINT |
| 13631 return "UNKNOWN"; |
| 13632 } |
| 13633 |
| 13634 |
| 13635 void Symbol::SymbolShortPrint(std::ostream& os) { |
| 13636 os << "<Symbol: " << Hash(); |
| 13637 if (!name()->IsUndefined()) { |
| 13638 os << " "; |
| 13639 HeapStringAllocator allocator; |
| 13640 StringStream accumulator(&allocator); |
| 13641 String::cast(name())->StringShortPrint(&accumulator); |
| 13642 os << accumulator.ToCString().get(); |
| 13643 } else { |
| 13644 os << " (" << PrivateSymbolToName() << ")"; |
| 13645 } |
| 13646 os << ">"; |
| 13647 } |
| 13648 |
| 13649 |
13633 // StringSharedKeys are used as keys in the eval cache. | 13650 // StringSharedKeys are used as keys in the eval cache. |
13634 class StringSharedKey : public HashTableKey { | 13651 class StringSharedKey : public HashTableKey { |
13635 public: | 13652 public: |
13636 StringSharedKey(Handle<String> source, | 13653 StringSharedKey(Handle<String> source, |
13637 Handle<SharedFunctionInfo> shared, | 13654 Handle<SharedFunctionInfo> shared, |
13638 StrictMode strict_mode, | 13655 StrictMode strict_mode, |
13639 int scope_position) | 13656 int scope_position) |
13640 : source_(source), | 13657 : source_(source), |
13641 shared_(shared), | 13658 shared_(shared), |
13642 strict_mode_(strict_mode), | 13659 strict_mode_(strict_mode), |
(...skipping 2826 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
16469 Handle<DependentCode> codes = | 16486 Handle<DependentCode> codes = |
16470 DependentCode::Insert(handle(cell->dependent_code(), info->isolate()), | 16487 DependentCode::Insert(handle(cell->dependent_code(), info->isolate()), |
16471 DependentCode::kPropertyCellChangedGroup, | 16488 DependentCode::kPropertyCellChangedGroup, |
16472 info->object_wrapper()); | 16489 info->object_wrapper()); |
16473 if (*codes != cell->dependent_code()) cell->set_dependent_code(*codes); | 16490 if (*codes != cell->dependent_code()) cell->set_dependent_code(*codes); |
16474 info->dependencies(DependentCode::kPropertyCellChangedGroup)->Add( | 16491 info->dependencies(DependentCode::kPropertyCellChangedGroup)->Add( |
16475 cell, info->zone()); | 16492 cell, info->zone()); |
16476 } | 16493 } |
16477 | 16494 |
16478 } } // namespace v8::internal | 16495 } } // namespace v8::internal |
OLD | NEW |