Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(306)

Unified Diff: src/ast/scopes.cc

Issue 2544063004: Clean up --print-scopes output (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/ast/scopes.cc
diff --git a/src/ast/scopes.cc b/src/ast/scopes.cc
index fc020ccefb81466a40ad04295019d6b9a226ae65..bee9e3f11dc4987f5554fd118eadcd90dec6e578 100644
--- a/src/ast/scopes.cc
+++ b/src/ast/scopes.cc
@@ -1397,39 +1397,41 @@ static void PrintLocation(Variable* var) {
static void PrintVar(int indent, Variable* var) {
Igor Sheludko 2016/12/02 22:06:10 While you are here please put this function into a
adamk 2016/12/03 00:04:23 Wrapped all these helpers in an anonymous namespac
- if (var->is_used() || !var->IsUnallocated()) {
- Indent(indent, VariableMode2String(var->mode()));
- PrintF(" ");
- if (var->raw_name()->IsEmpty())
- PrintF(".%p", reinterpret_cast<void*>(var));
- else
- PrintName(var->raw_name());
- PrintF("; // ");
- PrintLocation(var);
- bool comma = !var->IsUnallocated();
- if (var->has_forced_context_allocation()) {
- if (comma) PrintF(", ");
- PrintF("forced context allocation");
- comma = true;
- }
- if (var->maybe_assigned() == kNotAssigned) {
- if (comma) PrintF(", ");
- PrintF("never assigned");
- }
- PrintF("\n");
- }
-}
-
-static void PrintMap(int indent, VariableMap* map, bool locals) {
+ Indent(indent, VariableMode2String(var->mode()));
+ PrintF(" ");
+ if (var->raw_name()->IsEmpty())
+ PrintF(".%p", reinterpret_cast<void*>(var));
+ else
+ PrintName(var->raw_name());
+ PrintF("; // ");
+ PrintLocation(var);
+ bool comma = !var->IsUnallocated();
+ if (var->has_forced_context_allocation()) {
+ if (comma) PrintF(", ");
+ PrintF("forced context allocation");
+ comma = true;
+ }
+ if (var->maybe_assigned() == kNotAssigned) {
+ if (comma) PrintF(", ");
+ PrintF("never assigned");
+ }
+ PrintF("\n");
+}
+
+static void PrintMap(int indent, const char* label, VariableMap* map,
Igor Sheludko 2016/12/02 22:06:10 Same here.
adamk 2016/12/03 00:04:23 Done.
+ bool locals, Variable* function_var) {
+ bool printed_label = false;
for (VariableMap::Entry* p = map->Start(); p != nullptr; p = map->Next(p)) {
Variable* var = reinterpret_cast<Variable*>(p->value);
+ if (var == function_var) continue;
bool local = !IsDynamicVariableMode(var->mode());
- if (locals ? local : !local) {
- if (var == nullptr) {
- Indent(indent, "<?>\n");
- } else {
- PrintVar(indent, var);
+ if ((locals ? local : !local) &&
+ (var->is_used() || !var->IsUnallocated())) {
+ if (!printed_label) {
+ Indent(indent, label);
+ printed_label = true;
}
+ PrintVar(indent, var);
}
}
}
@@ -1508,13 +1510,8 @@ void Scope::Print(int n) {
PrintVar(n1, function);
}
- if (variables_.occupancy() != 0) {
- Indent(n1, "// local vars:\n");
- PrintMap(n1, &variables_, true);
-
- Indent(n1, "// dynamic vars:\n");
- PrintMap(n1, &variables_, false);
- }
+ PrintMap(n1, "// local vars:\n", &variables_, true, function);
+ PrintMap(n1, "// dynamic vars:\n", &variables_, false, function);
// Print inner scopes (disable by providing negative n).
if (n >= 0) {
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698