| 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 "src/objects.h" | 5 #include "src/objects.h" | 
| 6 | 6 | 
| 7 #include <cmath> | 7 #include <cmath> | 
| 8 #include <iomanip> | 8 #include <iomanip> | 
| 9 #include <sstream> | 9 #include <sstream> | 
| 10 | 10 | 
| (...skipping 1526 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1537 | 1537 | 
| 1538 void String::PrintUC16(std::ostream& os, int start, int end) {  // NOLINT | 1538 void String::PrintUC16(std::ostream& os, int start, int end) {  // NOLINT | 
| 1539   if (end < 0) end = length(); | 1539   if (end < 0) end = length(); | 
| 1540   StringCharacterStream stream(this, start); | 1540   StringCharacterStream stream(this, start); | 
| 1541   for (int i = start; i < end && stream.HasMore(); i++) { | 1541   for (int i = start; i < end && stream.HasMore(); i++) { | 
| 1542     os << AsUC16(stream.GetNext()); | 1542     os << AsUC16(stream.GetNext()); | 
| 1543   } | 1543   } | 
| 1544 } | 1544 } | 
| 1545 | 1545 | 
| 1546 | 1546 | 
|  | 1547 // The filter is a pattern that matches string names in this way: | 
|  | 1548 //   "*"      all; the default | 
|  | 1549 //   "-name"  all but "name" | 
|  | 1550 //   "name"   only the function "name" | 
|  | 1551 //   "name*"  only functions starting with "name" | 
|  | 1552 //   "~"      none; the tilde is not an identifier | 
|  | 1553 bool String::PassesFilter(const char* raw_filter) { | 
|  | 1554   if (*raw_filter == '*') return true; | 
|  | 1555 | 
|  | 1556   Vector<const char> filter = CStrVector(raw_filter); | 
|  | 1557   if (filter.length() == 0) return length() == 0; | 
|  | 1558   if (filter[0] == '-') { | 
|  | 1559     // Negative filter. | 
|  | 1560     if (filter.length() == 1) { | 
|  | 1561       return (length() != 0); | 
|  | 1562     } else if (IsUtf8EqualTo(filter.SubVector(1, filter.length()))) { | 
|  | 1563       return false; | 
|  | 1564     } | 
|  | 1565     if (filter[filter.length() - 1] == '*' && | 
|  | 1566         IsUtf8EqualTo(filter.SubVector(1, filter.length() - 1), true)) { | 
|  | 1567       return false; | 
|  | 1568     } | 
|  | 1569     return true; | 
|  | 1570 | 
|  | 1571   } else if (IsUtf8EqualTo(filter)) { | 
|  | 1572     return true; | 
|  | 1573   } | 
|  | 1574   if (filter[filter.length() - 1] == '*' && | 
|  | 1575       IsUtf8EqualTo(filter.SubVector(0, filter.length() - 1), true)) { | 
|  | 1576     return true; | 
|  | 1577   } | 
|  | 1578   return false; | 
|  | 1579 } | 
|  | 1580 | 
|  | 1581 | 
| 1547 void JSObject::JSObjectShortPrint(StringStream* accumulator) { | 1582 void JSObject::JSObjectShortPrint(StringStream* accumulator) { | 
| 1548   switch (map()->instance_type()) { | 1583   switch (map()->instance_type()) { | 
| 1549     case JS_ARRAY_TYPE: { | 1584     case JS_ARRAY_TYPE: { | 
| 1550       double length = JSArray::cast(this)->length()->IsUndefined() | 1585       double length = JSArray::cast(this)->length()->IsUndefined() | 
| 1551           ? 0 | 1586           ? 0 | 
| 1552           : JSArray::cast(this)->length()->Number(); | 1587           : JSArray::cast(this)->length()->Number(); | 
| 1553       accumulator->Add("<JS Array[%u]>", static_cast<uint32_t>(length)); | 1588       accumulator->Add("<JS Array[%u]>", static_cast<uint32_t>(length)); | 
| 1554       break; | 1589       break; | 
| 1555     } | 1590     } | 
| 1556     case JS_WEAK_MAP_TYPE: { | 1591     case JS_WEAK_MAP_TYPE: { | 
| (...skipping 9400 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 10957 | 10992 | 
| 10958 // The filter is a pattern that matches function names in this way: | 10993 // The filter is a pattern that matches function names in this way: | 
| 10959 //   "*"      all; the default | 10994 //   "*"      all; the default | 
| 10960 //   "-"      all but the top-level function | 10995 //   "-"      all but the top-level function | 
| 10961 //   "-name"  all but the function "name" | 10996 //   "-name"  all but the function "name" | 
| 10962 //   ""       only the top-level function | 10997 //   ""       only the top-level function | 
| 10963 //   "name"   only the function "name" | 10998 //   "name"   only the function "name" | 
| 10964 //   "name*"  only functions starting with "name" | 10999 //   "name*"  only functions starting with "name" | 
| 10965 //   "~"      none; the tilde is not an identifier | 11000 //   "~"      none; the tilde is not an identifier | 
| 10966 bool JSFunction::PassesFilter(const char* raw_filter) { | 11001 bool JSFunction::PassesFilter(const char* raw_filter) { | 
| 10967   if (*raw_filter == '*') return true; |  | 
| 10968   String* name = shared()->DebugName(); | 11002   String* name = shared()->DebugName(); | 
| 10969   Vector<const char> filter = CStrVector(raw_filter); | 11003   return name->PassesFilter(raw_filter); | 
| 10970   if (filter.length() == 0) return name->length() == 0; |  | 
| 10971   if (filter[0] == '-') { |  | 
| 10972     // Negative filter. |  | 
| 10973     if (filter.length() == 1) { |  | 
| 10974       return (name->length() != 0); |  | 
| 10975     } else if (name->IsUtf8EqualTo(filter.SubVector(1, filter.length()))) { |  | 
| 10976       return false; |  | 
| 10977     } |  | 
| 10978     if (filter[filter.length() - 1] == '*' && |  | 
| 10979         name->IsUtf8EqualTo(filter.SubVector(1, filter.length() - 1), true)) { |  | 
| 10980       return false; |  | 
| 10981     } |  | 
| 10982     return true; |  | 
| 10983 |  | 
| 10984   } else if (name->IsUtf8EqualTo(filter)) { |  | 
| 10985     return true; |  | 
| 10986   } |  | 
| 10987   if (filter[filter.length() - 1] == '*' && |  | 
| 10988       name->IsUtf8EqualTo(filter.SubVector(0, filter.length() - 1), true)) { |  | 
| 10989     return true; |  | 
| 10990   } |  | 
| 10991   return false; |  | 
| 10992 } | 11004 } | 
| 10993 | 11005 | 
| 10994 | 11006 | 
| 10995 Handle<String> JSFunction::GetDebugName(Handle<JSFunction> function) { | 11007 Handle<String> JSFunction::GetDebugName(Handle<JSFunction> function) { | 
| 10996   Isolate* isolate = function->GetIsolate(); | 11008   Isolate* isolate = function->GetIsolate(); | 
| 10997   Handle<Object> name = | 11009   Handle<Object> name = | 
| 10998       JSReceiver::GetDataProperty(function, isolate->factory()->name_string()); | 11010       JSReceiver::GetDataProperty(function, isolate->factory()->name_string()); | 
| 10999   if (name->IsString()) return Handle<String>::cast(name); | 11011   if (name->IsString()) return Handle<String>::cast(name); | 
| 11000   return handle(function->shared()->DebugName(), isolate); | 11012   return handle(function->shared()->DebugName(), isolate); | 
| 11001 } | 11013 } | 
| (...skipping 5888 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 16890   if (cell->value() != *new_value) { | 16902   if (cell->value() != *new_value) { | 
| 16891     cell->set_value(*new_value); | 16903     cell->set_value(*new_value); | 
| 16892     Isolate* isolate = cell->GetIsolate(); | 16904     Isolate* isolate = cell->GetIsolate(); | 
| 16893     cell->dependent_code()->DeoptimizeDependentCodeGroup( | 16905     cell->dependent_code()->DeoptimizeDependentCodeGroup( | 
| 16894         isolate, DependentCode::kPropertyCellChangedGroup); | 16906         isolate, DependentCode::kPropertyCellChangedGroup); | 
| 16895   } | 16907   } | 
| 16896 } | 16908 } | 
| 16897 | 16909 | 
| 16898 }  // namespace internal | 16910 }  // namespace internal | 
| 16899 }  // namespace v8 | 16911 }  // namespace v8 | 
| OLD | NEW | 
|---|