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

Side by Side Diff: src/ast.h

Issue 1226123010: Represent implicit 'this' binding by 'super' in AST. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Addressed comments. Created 5 years, 5 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/arm64/full-codegen-arm64.cc ('k') | src/ast.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_AST_H_ 5 #ifndef V8_AST_H_
6 #define V8_AST_H_ 6 #define V8_AST_H_
7 7
8 #include "src/v8.h" 8 #include "src/v8.h"
9 9
10 #include "src/assembler.h" 10 #include "src/assembler.h"
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 // code generation. 332 // code generation.
333 kUninitialized, 333 kUninitialized,
334 // Evaluated for its side effects. 334 // Evaluated for its side effects.
335 kEffect, 335 kEffect,
336 // Evaluated for its value (and side effects). 336 // Evaluated for its value (and side effects).
337 kValue, 337 kValue,
338 // Evaluated for control flow (and side effects). 338 // Evaluated for control flow (and side effects).
339 kTest 339 kTest
340 }; 340 };
341 341
342 // True iff the expression is a valid reference expression.
342 virtual bool IsValidReferenceExpression() const { return false; } 343 virtual bool IsValidReferenceExpression() const { return false; }
343 344
344 // Helpers for ToBoolean conversion. 345 // Helpers for ToBoolean conversion.
345 virtual bool ToBooleanIsTrue() const { return false; } 346 virtual bool ToBooleanIsTrue() const { return false; }
346 virtual bool ToBooleanIsFalse() const { return false; } 347 virtual bool ToBooleanIsFalse() const { return false; }
347 348
348 // Symbols that cannot be parsed as array indices are considered property 349 // Symbols that cannot be parsed as array indices are considered property
349 // names. We do not treat symbols that can be array indexes as property 350 // names. We do not treat symbols that can be array indexes as property
350 // names because [] for string objects is handled only by keyed ICs. 351 // names because [] for string objects is handled only by keyed ICs.
351 virtual bool IsPropertyName() const { return false; } 352 virtual bool IsPropertyName() const { return false; }
352 353
353 // True iff the expression is a literal represented as a smi. 354 // True iff the expression is a literal represented as a smi.
354 bool IsSmiLiteral() const; 355 bool IsSmiLiteral() const;
355 356
356 // True iff the expression is a string literal. 357 // True iff the expression is a string literal.
357 bool IsStringLiteral() const; 358 bool IsStringLiteral() const;
358 359
359 // True iff the expression is the null literal. 360 // True iff the expression is the null literal.
360 bool IsNullLiteral() const; 361 bool IsNullLiteral() const;
361 362
362 // True if we can prove that the expression is the undefined literal. 363 // True if we can prove that the expression is the undefined literal.
363 bool IsUndefinedLiteral(Isolate* isolate) const; 364 bool IsUndefinedLiteral(Isolate* isolate) const;
364 365
366 // True iff the expression is a valid target for an assignment.
367 bool IsValidReferenceExpressionOrThis() const;
368
365 // Expression type bounds 369 // Expression type bounds
366 Bounds bounds() const { return bounds_; } 370 Bounds bounds() const { return bounds_; }
367 void set_bounds(Bounds bounds) { bounds_ = bounds; } 371 void set_bounds(Bounds bounds) { bounds_ = bounds; }
368 372
369 // Type feedback information for assignments and properties. 373 // Type feedback information for assignments and properties.
370 virtual bool IsMonomorphic() { 374 virtual bool IsMonomorphic() {
371 UNREACHABLE(); 375 UNREACHABLE();
372 return false; 376 return false;
373 } 377 }
374 virtual SmallMapList* GetReceiverTypes() { 378 virtual SmallMapList* GetReceiverTypes() {
(...skipping 3248 matching lines...) Expand 10 before | Expand all | Expand 10 after
3623 3627
3624 private: 3628 private:
3625 Zone* zone_; 3629 Zone* zone_;
3626 AstValueFactory* ast_value_factory_; 3630 AstValueFactory* ast_value_factory_;
3627 }; 3631 };
3628 3632
3629 3633
3630 } } // namespace v8::internal 3634 } } // namespace v8::internal
3631 3635
3632 #endif // V8_AST_H_ 3636 #endif // V8_AST_H_
OLDNEW
« no previous file with comments | « src/arm64/full-codegen-arm64.cc ('k') | src/ast.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698