Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index 731d602b47a80a8f074a6d02d6e08eb39b29d639..392c158e1526cb3211497ba1d2c143137db6d60d 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -9862,11 +9862,18 @@ bool JSFunction::PassesFilter(const char* raw_filter) { |
Vector<const char> filter = CStrVector(raw_filter); |
if (filter.length() == 0) return name->length() == 0; |
if (filter[0] == '-') { |
+ // Negative filter. |
if (filter.length() == 1) { |
return (name->length() != 0); |
- } else if (!name->IsUtf8EqualTo(filter.SubVector(1, filter.length()))) { |
- return true; |
+ } else if (name->IsUtf8EqualTo(filter.SubVector(1, filter.length()))) { |
+ return false; |
+ } |
+ if (filter[filter.length() - 1] == '*' && |
+ name->IsUtf8EqualTo(filter.SubVector(1, filter.length() - 1), true)) { |
+ return false; |
} |
+ return true; |
+ |
} else if (name->IsUtf8EqualTo(filter)) { |
return true; |
} |