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

Side by Side Diff: src/scopes.h

Issue 924123002: ES6 Classes: Remove tracking of super construct calls. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 10 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
« no previous file with comments | « src/preparser.h ('k') | src/scopes.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #ifndef V8_SCOPES_H_ 5 #ifndef V8_SCOPES_H_
6 #define V8_SCOPES_H_ 6 #define V8_SCOPES_H_
7 7
8 #include "src/ast.h" 8 #include "src/ast.h"
9 #include "src/zone.h" 9 #include "src/zone.h"
10 10
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 210
211 // Inform the scope that the corresponding code contains an eval call. 211 // Inform the scope that the corresponding code contains an eval call.
212 void RecordEvalCall() { if (!is_script_scope()) scope_calls_eval_ = true; } 212 void RecordEvalCall() { if (!is_script_scope()) scope_calls_eval_ = true; }
213 213
214 // Inform the scope that the corresponding code uses "arguments". 214 // Inform the scope that the corresponding code uses "arguments".
215 void RecordArgumentsUsage() { scope_uses_arguments_ = true; } 215 void RecordArgumentsUsage() { scope_uses_arguments_ = true; }
216 216
217 // Inform the scope that the corresponding code uses "super". 217 // Inform the scope that the corresponding code uses "super".
218 void RecordSuperPropertyUsage() { scope_uses_super_property_ = true; } 218 void RecordSuperPropertyUsage() { scope_uses_super_property_ = true; }
219 219
220 // Inform the scope that the corresponding code invokes "super" constructor.
221 void RecordSuperConstructorCallUsage() {
222 scope_uses_super_constructor_call_ = true;
223 }
224
225 // Inform the scope that the corresponding code uses "this". 220 // Inform the scope that the corresponding code uses "this".
226 void RecordThisUsage() { scope_uses_this_ = true; } 221 void RecordThisUsage() { scope_uses_this_ = true; }
227 222
228 // Set the language mode flag (unless disabled by a global flag). 223 // Set the language mode flag (unless disabled by a global flag).
229 void SetLanguageMode(LanguageMode language_mode) { 224 void SetLanguageMode(LanguageMode language_mode) {
230 language_mode_ = language_mode; 225 language_mode_ = language_mode;
231 } 226 }
232 227
233 // Set the ASM module flag. 228 // Set the ASM module flag.
234 void SetAsmModule() { asm_module_ = true; } 229 void SetAsmModule() { asm_module_ = true; }
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 // Does this scope access "arguments". 309 // Does this scope access "arguments".
315 bool uses_arguments() const { return scope_uses_arguments_; } 310 bool uses_arguments() const { return scope_uses_arguments_; }
316 // Does any inner scope access "arguments". 311 // Does any inner scope access "arguments".
317 bool inner_uses_arguments() const { return inner_scope_uses_arguments_; } 312 bool inner_uses_arguments() const { return inner_scope_uses_arguments_; }
318 // Does this scope access "super" property (super.foo). 313 // Does this scope access "super" property (super.foo).
319 bool uses_super_property() const { return scope_uses_super_property_; } 314 bool uses_super_property() const { return scope_uses_super_property_; }
320 // Does any inner scope access "super" property. 315 // Does any inner scope access "super" property.
321 bool inner_uses_super_property() const { 316 bool inner_uses_super_property() const {
322 return inner_scope_uses_super_property_; 317 return inner_scope_uses_super_property_;
323 } 318 }
324 // Does this scope calls "super" constructor.
325 bool uses_super_constructor_call() const {
326 return scope_uses_super_constructor_call_;
327 }
328 // Does any inner scope calls "super" constructor.
329 bool inner_uses_super_constructor_call() const {
330 return inner_scope_uses_super_constructor_call_;
331 }
332 // Does this scope access "this". 319 // Does this scope access "this".
333 bool uses_this() const { return scope_uses_this_; } 320 bool uses_this() const { return scope_uses_this_; }
334 // Does any inner scope access "this". 321 // Does any inner scope access "this".
335 bool inner_uses_this() const { return inner_scope_uses_this_; } 322 bool inner_uses_this() const { return inner_scope_uses_this_; }
336 323
337 // --------------------------------------------------------------------------- 324 // ---------------------------------------------------------------------------
338 // Accessors. 325 // Accessors.
339 326
340 // The type of this scope. 327 // The type of this scope.
341 ScopeType scope_type() const { return scope_type_; } 328 ScopeType scope_type() const { return scope_type_; }
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
536 bool scope_inside_with_; 523 bool scope_inside_with_;
537 // This scope contains a 'with' statement. 524 // This scope contains a 'with' statement.
538 bool scope_contains_with_; 525 bool scope_contains_with_;
539 // This scope or a nested catch scope or with scope contain an 'eval' call. At 526 // This scope or a nested catch scope or with scope contain an 'eval' call. At
540 // the 'eval' call site this scope is the declaration scope. 527 // the 'eval' call site this scope is the declaration scope.
541 bool scope_calls_eval_; 528 bool scope_calls_eval_;
542 // This scope uses "arguments". 529 // This scope uses "arguments".
543 bool scope_uses_arguments_; 530 bool scope_uses_arguments_;
544 // This scope uses "super" property ('super.foo'). 531 // This scope uses "super" property ('super.foo').
545 bool scope_uses_super_property_; 532 bool scope_uses_super_property_;
546 // This scope uses "super" constructor ('super(..)').
547 bool scope_uses_super_constructor_call_;
548 // This scope uses "this". 533 // This scope uses "this".
549 bool scope_uses_this_; 534 bool scope_uses_this_;
550 // This scope contains an "use asm" annotation. 535 // This scope contains an "use asm" annotation.
551 bool asm_module_; 536 bool asm_module_;
552 // This scope's outer context is an asm module. 537 // This scope's outer context is an asm module.
553 bool asm_function_; 538 bool asm_function_;
554 // The language mode of this scope. 539 // The language mode of this scope.
555 LanguageMode language_mode_; 540 LanguageMode language_mode_;
556 // Source positions. 541 // Source positions.
557 int start_position_; 542 int start_position_;
558 int end_position_; 543 int end_position_;
559 544
560 // Computed via PropagateScopeInfo. 545 // Computed via PropagateScopeInfo.
561 bool outer_scope_calls_sloppy_eval_; 546 bool outer_scope_calls_sloppy_eval_;
562 bool inner_scope_calls_eval_; 547 bool inner_scope_calls_eval_;
563 bool inner_scope_uses_arguments_; 548 bool inner_scope_uses_arguments_;
564 bool inner_scope_uses_super_property_; 549 bool inner_scope_uses_super_property_;
565 bool inner_scope_uses_super_constructor_call_;
566 bool inner_scope_uses_this_; 550 bool inner_scope_uses_this_;
567 bool force_eager_compilation_; 551 bool force_eager_compilation_;
568 bool force_context_allocation_; 552 bool force_context_allocation_;
569 553
570 // True if it doesn't need scope resolution (e.g., if the scope was 554 // True if it doesn't need scope resolution (e.g., if the scope was
571 // constructed based on a serialized scope info or a catch context). 555 // constructed based on a serialized scope info or a catch context).
572 bool already_resolved_; 556 bool already_resolved_;
573 557
574 // Computed as variables are declared. 558 // Computed as variables are declared.
575 int num_var_or_const_; 559 int num_var_or_const_;
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
703 Scope* outer_scope, 687 Scope* outer_scope,
704 Handle<ScopeInfo> scope_info); 688 Handle<ScopeInfo> scope_info);
705 689
706 AstValueFactory* ast_value_factory_; 690 AstValueFactory* ast_value_factory_;
707 Zone* zone_; 691 Zone* zone_;
708 }; 692 };
709 693
710 } } // namespace v8::internal 694 } } // namespace v8::internal
711 695
712 #endif // V8_SCOPES_H_ 696 #endif // V8_SCOPES_H_
OLDNEW
« no previous file with comments | « src/preparser.h ('k') | src/scopes.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698