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

Side by Side Diff: src/ast/scopes.cc

Issue 1901413002: [debugger] Hide scopes that originate from desugaring. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: fix test Created 4 years, 8 months 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 unified diff | Download patch
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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/ast/scopes.h" 5 #include "src/ast/scopes.h"
6 6
7 #include "src/accessors.h" 7 #include "src/accessors.h"
8 #include "src/ast/scopeinfo.h" 8 #include "src/ast/scopeinfo.h"
9 #include "src/bootstrapper.h" 9 #include "src/bootstrapper.h"
10 #include "src/messages.h" 10 #include "src/messages.h"
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 num_stack_slots_ = 0; 186 num_stack_slots_ = 0;
187 num_heap_slots_ = 0; 187 num_heap_slots_ = 0;
188 num_global_slots_ = 0; 188 num_global_slots_ = 0;
189 arity_ = 0; 189 arity_ = 0;
190 has_simple_parameters_ = true; 190 has_simple_parameters_ = true;
191 rest_parameter_ = NULL; 191 rest_parameter_ = NULL;
192 rest_index_ = -1; 192 rest_index_ = -1;
193 scope_info_ = scope_info; 193 scope_info_ = scope_info;
194 start_position_ = RelocInfo::kNoPosition; 194 start_position_ = RelocInfo::kNoPosition;
195 end_position_ = RelocInfo::kNoPosition; 195 end_position_ = RelocInfo::kNoPosition;
196 is_hidden_ = false;
196 if (!scope_info.is_null()) { 197 if (!scope_info.is_null()) {
197 scope_calls_eval_ = scope_info->CallsEval(); 198 scope_calls_eval_ = scope_info->CallsEval();
198 language_mode_ = scope_info->language_mode(); 199 language_mode_ = scope_info->language_mode();
199 is_declaration_scope_ = scope_info->is_declaration_scope(); 200 is_declaration_scope_ = scope_info->is_declaration_scope();
200 function_kind_ = scope_info->function_kind(); 201 function_kind_ = scope_info->function_kind();
201 } 202 }
202 } 203 }
203 204
204 205
205 Scope* Scope::DeserializeScopeChain(Isolate* isolate, Zone* zone, 206 Scope* Scope::DeserializeScopeChain(Isolate* isolate, Zone* zone,
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 info->script()); 281 info->script());
281 return false; 282 return false;
282 } 283 }
283 } 284 }
284 285
285 #ifdef DEBUG 286 #ifdef DEBUG
286 if (info->script_is_native() ? FLAG_print_builtin_scopes 287 if (info->script_is_native() ? FLAG_print_builtin_scopes
287 : FLAG_print_scopes) { 288 : FLAG_print_scopes) {
288 scope->Print(); 289 scope->Print();
289 } 290 }
291 scope->CheckScopePositions();
290 #endif 292 #endif
291 293
292 info->set_scope(scope); 294 info->set_scope(scope);
293 return true; 295 return true;
294 } 296 }
295 297
296 298
297 void Scope::Initialize() { 299 void Scope::Initialize() {
298 DCHECK(!already_resolved()); 300 DCHECK(!already_resolved());
299 301
(...skipping 700 matching lines...) Expand 10 before | Expand all | Expand 10 after
1000 // Print inner scopes (disable by providing negative n). 1002 // Print inner scopes (disable by providing negative n).
1001 if (n >= 0) { 1003 if (n >= 0) {
1002 for (int i = 0; i < inner_scopes_.length(); i++) { 1004 for (int i = 0; i < inner_scopes_.length(); i++) {
1003 PrintF("\n"); 1005 PrintF("\n");
1004 inner_scopes_[i]->Print(n1); 1006 inner_scopes_[i]->Print(n1);
1005 } 1007 }
1006 } 1008 }
1007 1009
1008 Indent(n0, "}\n"); 1010 Indent(n0, "}\n");
1009 } 1011 }
1012
1013 void Scope::CheckScopePositions() {
1014 // A scope is allowed to have invalid positions if it is hidden and has no
1015 // inner scopes
1016 if (!is_hidden() && inner_scopes_.length() == 0) {
1017 CHECK_NE(RelocInfo::kNoPosition, start_position());
1018 CHECK_NE(RelocInfo::kNoPosition, end_position());
1019 }
1020 for (Scope* scope : inner_scopes_) scope->CheckScopePositions();
1021 }
1010 #endif // DEBUG 1022 #endif // DEBUG
1011 1023
1012 1024
1013 Variable* Scope::NonLocal(const AstRawString* name, VariableMode mode) { 1025 Variable* Scope::NonLocal(const AstRawString* name, VariableMode mode) {
1014 if (dynamics_ == NULL) dynamics_ = new (zone()) DynamicScopePart(zone()); 1026 if (dynamics_ == NULL) dynamics_ = new (zone()) DynamicScopePart(zone());
1015 VariableMap* map = dynamics_->GetMap(mode); 1027 VariableMap* map = dynamics_->GetMap(mode);
1016 Variable* var = map->Lookup(name); 1028 Variable* var = map->Lookup(name);
1017 if (var == NULL) { 1029 if (var == NULL) {
1018 // Declare a new non-local. 1030 // Declare a new non-local.
1019 InitializationFlag init_flag = (mode == VAR) 1031 InitializationFlag init_flag = (mode == VAR)
(...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after
1499 function_ != NULL && function_->proxy()->var()->IsContextSlot(); 1511 function_ != NULL && function_->proxy()->var()->IsContextSlot();
1500 return num_heap_slots() - Context::MIN_CONTEXT_SLOTS - num_global_slots() - 1512 return num_heap_slots() - Context::MIN_CONTEXT_SLOTS - num_global_slots() -
1501 (is_function_var_in_context ? 1 : 0); 1513 (is_function_var_in_context ? 1 : 0);
1502 } 1514 }
1503 1515
1504 1516
1505 int Scope::ContextGlobalCount() const { return num_global_slots(); } 1517 int Scope::ContextGlobalCount() const { return num_global_slots(); }
1506 1518
1507 } // namespace internal 1519 } // namespace internal
1508 } // namespace v8 1520 } // namespace v8
OLDNEW
« no previous file with comments | « src/ast/scopes.h ('k') | src/debug/debug-scopes.cc » ('j') | src/parsing/parser.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698