OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include "vm/object.h" | 5 #include "vm/object.h" |
6 | 6 |
7 #include "include/dart_api.h" | 7 #include "include/dart_api.h" |
8 #include "platform/assert.h" | 8 #include "platform/assert.h" |
9 #include "vm/assembler.h" | 9 #include "vm/assembler.h" |
10 #include "vm/cpu.h" | 10 #include "vm/cpu.h" |
(...skipping 7636 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7647 } | 7647 } |
7648 | 7648 |
7649 | 7649 |
7650 void Namespace::PrintToJSONStream(JSONStream* stream, bool ref) const { | 7650 void Namespace::PrintToJSONStream(JSONStream* stream, bool ref) const { |
7651 stream->OpenObject(); | 7651 stream->OpenObject(); |
7652 stream->CloseObject(); | 7652 stream->CloseObject(); |
7653 } | 7653 } |
7654 | 7654 |
7655 | 7655 |
7656 bool Namespace::HidesName(const String& name) const { | 7656 bool Namespace::HidesName(const String& name) const { |
| 7657 // Quick check for common case with no combinators. |
| 7658 if (hide_names() == show_names()) { |
| 7659 ASSERT(hide_names() == Array::null()); |
| 7660 return false; |
| 7661 } |
| 7662 const String* plain_name = &name; |
| 7663 if (Field::IsGetterName(name)) { |
| 7664 plain_name = &String::Handle(Field::NameFromGetter(name)); |
| 7665 } else if (Field::IsSetterName(name)) { |
| 7666 plain_name = &String::Handle(Field::NameFromSetter(name)); |
| 7667 } |
7657 // Check whether the name is in the list of explicitly hidden names. | 7668 // Check whether the name is in the list of explicitly hidden names. |
7658 if (hide_names() != Array::null()) { | 7669 if (hide_names() != Array::null()) { |
7659 const Array& names = Array::Handle(hide_names()); | 7670 const Array& names = Array::Handle(hide_names()); |
7660 String& hidden = String::Handle(); | 7671 String& hidden = String::Handle(); |
7661 intptr_t num_names = names.Length(); | 7672 intptr_t num_names = names.Length(); |
7662 for (intptr_t i = 0; i < num_names; i++) { | 7673 for (intptr_t i = 0; i < num_names; i++) { |
7663 hidden ^= names.At(i); | 7674 hidden ^= names.At(i); |
7664 if (name.Equals(hidden)) { | 7675 if (plain_name->Equals(hidden)) { |
7665 return true; | 7676 return true; |
7666 } | 7677 } |
7667 } | 7678 } |
7668 } | 7679 } |
7669 // The name is not explicitly hidden. Now check whether it is in the | 7680 // The name is not explicitly hidden. Now check whether it is in the |
7670 // list of explicitly visible names, if there is one. | 7681 // list of explicitly visible names, if there is one. |
7671 if (show_names() != Array::null()) { | 7682 if (show_names() != Array::null()) { |
7672 const Array& names = Array::Handle(show_names()); | 7683 const Array& names = Array::Handle(show_names()); |
7673 String& shown = String::Handle(); | 7684 String& shown = String::Handle(); |
7674 intptr_t num_names = names.Length(); | 7685 intptr_t num_names = names.Length(); |
7675 for (intptr_t i = 0; i < num_names; i++) { | 7686 for (intptr_t i = 0; i < num_names; i++) { |
7676 shown ^= names.At(i); | 7687 shown ^= names.At(i); |
7677 if (name.Equals(shown)) { | 7688 if (plain_name->Equals(shown)) { |
7678 return false; | 7689 return false; |
7679 } | 7690 } |
7680 } | 7691 } |
7681 // There is a list of visible names. The name we're looking for is not | 7692 // There is a list of visible names. The name we're looking for is not |
7682 // contained in the list, so it is hidden. | 7693 // contained in the list, so it is hidden. |
7683 return true; | 7694 return true; |
7684 } | 7695 } |
7685 // The name is not filtered out. | 7696 // The name is not filtered out. |
7686 return false; | 7697 return false; |
7687 } | 7698 } |
(...skipping 7213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14901 } | 14912 } |
14902 | 14913 |
14903 | 14914 |
14904 void MirrorReference::PrintToJSONStream(JSONStream* stream, bool ref) const { | 14915 void MirrorReference::PrintToJSONStream(JSONStream* stream, bool ref) const { |
14905 stream->OpenObject(); | 14916 stream->OpenObject(); |
14906 stream->CloseObject(); | 14917 stream->CloseObject(); |
14907 } | 14918 } |
14908 | 14919 |
14909 | 14920 |
14910 } // namespace dart | 14921 } // namespace dart |
OLD | NEW |