| Index: src/ast.h
|
| diff --git a/src/ast.h b/src/ast.h
|
| index 7040ff78350bcfdc524114752ca33e559b0f1199..18d19af67fb216e9952b5630f35d536bba7ce43e 100644
|
| --- a/src/ast.h
|
| +++ b/src/ast.h
|
| @@ -140,8 +140,8 @@ typedef ZoneList<Handle<Object> > ZoneObjectList;
|
|
|
|
|
| #define DECLARE_NODE_TYPE(type) \
|
| - void Accept(AstVisitor* v) OVERRIDE; \
|
| - AstNode::NodeType node_type() const FINAL { return AstNode::k##type; } \
|
| + void Accept(AstVisitor* v) override; \
|
| + AstNode::NodeType node_type() const final { return AstNode::k##type; } \
|
| friend class AstNodeFactory;
|
|
|
|
|
| @@ -166,7 +166,7 @@ class FeedbackVectorRequirements {
|
| };
|
|
|
|
|
| -class VariableICSlotPair FINAL {
|
| +class VariableICSlotPair final {
|
| public:
|
| VariableICSlotPair(Variable* variable, FeedbackVectorICSlot slot)
|
| : variable_(variable), slot_(slot) {}
|
| @@ -185,7 +185,7 @@ class VariableICSlotPair FINAL {
|
| typedef List<VariableICSlotPair> ICSlotCache;
|
|
|
|
|
| -class AstProperties FINAL BASE_EMBEDDED {
|
| +class AstProperties final BASE_EMBEDDED {
|
| public:
|
| class Flags : public EnumSet<AstPropertiesFlag, int> {};
|
|
|
| @@ -283,7 +283,7 @@ class Statement : public AstNode {
|
| };
|
|
|
|
|
| -class SmallMapList FINAL {
|
| +class SmallMapList final {
|
| public:
|
| SmallMapList() {}
|
| SmallMapList(int capacity, Zone* zone) : list_(capacity, zone) {}
|
| @@ -455,7 +455,7 @@ class BreakableStatement : public Statement {
|
| ZoneList<const AstRawString*>* labels() const { return labels_; }
|
|
|
| // Type testing & conversion.
|
| - BreakableStatement* AsBreakableStatement() FINAL { return this; }
|
| + BreakableStatement* AsBreakableStatement() final { return this; }
|
|
|
| // Code generation
|
| Label* break_target() { return &break_target_; }
|
| @@ -496,7 +496,7 @@ class BreakableStatement : public Statement {
|
| };
|
|
|
|
|
| -class Block FINAL : public BreakableStatement {
|
| +class Block final : public BreakableStatement {
|
| public:
|
| DECLARE_NODE_TYPE(Block)
|
|
|
| @@ -510,7 +510,7 @@ class Block FINAL : public BreakableStatement {
|
| static int num_ids() { return parent_num_ids() + 1; }
|
| BailoutId DeclsId() const { return BailoutId(local_id(0)); }
|
|
|
| - bool IsJump() const OVERRIDE {
|
| + bool IsJump() const override {
|
| return !statements_.is_empty() && statements_.last()->IsJump()
|
| && labels() == NULL; // Good enough as an approximation...
|
| }
|
| @@ -560,11 +560,11 @@ class Declaration : public AstNode {
|
| };
|
|
|
|
|
| -class VariableDeclaration FINAL : public Declaration {
|
| +class VariableDeclaration final : public Declaration {
|
| public:
|
| DECLARE_NODE_TYPE(VariableDeclaration)
|
|
|
| - InitializationFlag initialization() const OVERRIDE {
|
| + InitializationFlag initialization() const override {
|
| return mode() == VAR ? kCreatedInitialized : kNeedsInitialization;
|
| }
|
|
|
| @@ -580,15 +580,15 @@ class VariableDeclaration FINAL : public Declaration {
|
| };
|
|
|
|
|
| -class FunctionDeclaration FINAL : public Declaration {
|
| +class FunctionDeclaration final : public Declaration {
|
| public:
|
| DECLARE_NODE_TYPE(FunctionDeclaration)
|
|
|
| FunctionLiteral* fun() const { return fun_; }
|
| - InitializationFlag initialization() const OVERRIDE {
|
| + InitializationFlag initialization() const override {
|
| return kCreatedInitialized;
|
| }
|
| - bool IsInlineable() const OVERRIDE;
|
| + bool IsInlineable() const override;
|
|
|
| protected:
|
| FunctionDeclaration(Zone* zone,
|
| @@ -608,12 +608,12 @@ class FunctionDeclaration FINAL : public Declaration {
|
| };
|
|
|
|
|
| -class ModuleDeclaration FINAL : public Declaration {
|
| +class ModuleDeclaration final : public Declaration {
|
| public:
|
| DECLARE_NODE_TYPE(ModuleDeclaration)
|
|
|
| Module* module() const { return module_; }
|
| - InitializationFlag initialization() const OVERRIDE {
|
| + InitializationFlag initialization() const override {
|
| return kCreatedInitialized;
|
| }
|
|
|
| @@ -627,7 +627,7 @@ class ModuleDeclaration FINAL : public Declaration {
|
| };
|
|
|
|
|
| -class ImportDeclaration FINAL : public Declaration {
|
| +class ImportDeclaration final : public Declaration {
|
| public:
|
| DECLARE_NODE_TYPE(ImportDeclaration)
|
|
|
| @@ -637,7 +637,7 @@ class ImportDeclaration FINAL : public Declaration {
|
| DCHECK(module_specifier_ == NULL);
|
| module_specifier_ = module_specifier;
|
| }
|
| - InitializationFlag initialization() const OVERRIDE {
|
| + InitializationFlag initialization() const override {
|
| return kNeedsInitialization;
|
| }
|
|
|
| @@ -655,11 +655,11 @@ class ImportDeclaration FINAL : public Declaration {
|
| };
|
|
|
|
|
| -class ExportDeclaration FINAL : public Declaration {
|
| +class ExportDeclaration final : public Declaration {
|
| public:
|
| DECLARE_NODE_TYPE(ExportDeclaration)
|
|
|
| - InitializationFlag initialization() const OVERRIDE {
|
| + InitializationFlag initialization() const override {
|
| return kCreatedInitialized;
|
| }
|
|
|
| @@ -686,7 +686,7 @@ class Module : public AstNode {
|
| };
|
|
|
|
|
| -class ModuleLiteral FINAL : public Module {
|
| +class ModuleLiteral final : public Module {
|
| public:
|
| DECLARE_NODE_TYPE(ModuleLiteral)
|
|
|
| @@ -696,7 +696,7 @@ class ModuleLiteral FINAL : public Module {
|
| };
|
|
|
|
|
| -class ModulePath FINAL : public Module {
|
| +class ModulePath final : public Module {
|
| public:
|
| DECLARE_NODE_TYPE(ModulePath)
|
|
|
| @@ -713,7 +713,7 @@ class ModulePath FINAL : public Module {
|
| };
|
|
|
|
|
| -class ModuleUrl FINAL : public Module {
|
| +class ModuleUrl final : public Module {
|
| public:
|
| DECLARE_NODE_TYPE(ModuleUrl)
|
|
|
| @@ -729,7 +729,7 @@ class ModuleUrl FINAL : public Module {
|
| };
|
|
|
|
|
| -class ModuleStatement FINAL : public Statement {
|
| +class ModuleStatement final : public Statement {
|
| public:
|
| DECLARE_NODE_TYPE(ModuleStatement)
|
|
|
| @@ -747,7 +747,7 @@ class ModuleStatement FINAL : public Statement {
|
| class IterationStatement : public BreakableStatement {
|
| public:
|
| // Type testing & conversion.
|
| - IterationStatement* AsIterationStatement() FINAL { return this; }
|
| + IterationStatement* AsIterationStatement() final { return this; }
|
|
|
| Statement* body() const { return body_; }
|
|
|
| @@ -774,7 +774,7 @@ class IterationStatement : public BreakableStatement {
|
| };
|
|
|
|
|
| -class DoWhileStatement FINAL : public IterationStatement {
|
| +class DoWhileStatement final : public IterationStatement {
|
| public:
|
| DECLARE_NODE_TYPE(DoWhileStatement)
|
|
|
| @@ -786,8 +786,8 @@ class DoWhileStatement FINAL : public IterationStatement {
|
| Expression* cond() const { return cond_; }
|
|
|
| static int num_ids() { return parent_num_ids() + 2; }
|
| - BailoutId ContinueId() const OVERRIDE { return BailoutId(local_id(0)); }
|
| - BailoutId StackCheckId() const OVERRIDE { return BackEdgeId(); }
|
| + BailoutId ContinueId() const override { return BailoutId(local_id(0)); }
|
| + BailoutId StackCheckId() const override { return BackEdgeId(); }
|
| BailoutId BackEdgeId() const { return BailoutId(local_id(1)); }
|
|
|
| protected:
|
| @@ -802,7 +802,7 @@ class DoWhileStatement FINAL : public IterationStatement {
|
| };
|
|
|
|
|
| -class WhileStatement FINAL : public IterationStatement {
|
| +class WhileStatement final : public IterationStatement {
|
| public:
|
| DECLARE_NODE_TYPE(WhileStatement)
|
|
|
| @@ -814,8 +814,8 @@ class WhileStatement FINAL : public IterationStatement {
|
| Expression* cond() const { return cond_; }
|
|
|
| static int num_ids() { return parent_num_ids() + 1; }
|
| - BailoutId ContinueId() const OVERRIDE { return EntryId(); }
|
| - BailoutId StackCheckId() const OVERRIDE { return BodyId(); }
|
| + BailoutId ContinueId() const override { return EntryId(); }
|
| + BailoutId StackCheckId() const override { return BodyId(); }
|
| BailoutId BodyId() const { return BailoutId(local_id(0)); }
|
|
|
| protected:
|
| @@ -830,7 +830,7 @@ class WhileStatement FINAL : public IterationStatement {
|
| };
|
|
|
|
|
| -class ForStatement FINAL : public IterationStatement {
|
| +class ForStatement final : public IterationStatement {
|
| public:
|
| DECLARE_NODE_TYPE(ForStatement)
|
|
|
| @@ -849,8 +849,8 @@ class ForStatement FINAL : public IterationStatement {
|
| Statement* next() const { return next_; }
|
|
|
| static int num_ids() { return parent_num_ids() + 2; }
|
| - BailoutId ContinueId() const OVERRIDE { return BailoutId(local_id(0)); }
|
| - BailoutId StackCheckId() const OVERRIDE { return BodyId(); }
|
| + BailoutId ContinueId() const override { return BailoutId(local_id(0)); }
|
| + BailoutId StackCheckId() const override { return BodyId(); }
|
| BailoutId BodyId() const { return BailoutId(local_id(1)); }
|
|
|
| protected:
|
| @@ -896,7 +896,7 @@ class ForEachStatement : public IterationStatement {
|
| };
|
|
|
|
|
| -class ForInStatement FINAL : public ForEachStatement {
|
| +class ForInStatement final : public ForEachStatement {
|
| public:
|
| DECLARE_NODE_TYPE(ForInStatement)
|
|
|
| @@ -906,10 +906,10 @@ class ForInStatement FINAL : public ForEachStatement {
|
|
|
| // Type feedback information.
|
| virtual FeedbackVectorRequirements ComputeFeedbackRequirements(
|
| - Isolate* isolate, const ICSlotCache* cache) OVERRIDE {
|
| + Isolate* isolate, const ICSlotCache* cache) override {
|
| return FeedbackVectorRequirements(1, 0);
|
| }
|
| - void SetFirstFeedbackSlot(FeedbackVectorSlot slot) OVERRIDE {
|
| + void SetFirstFeedbackSlot(FeedbackVectorSlot slot) override {
|
| for_in_feedback_slot_ = slot;
|
| }
|
|
|
| @@ -929,8 +929,8 @@ class ForInStatement FINAL : public ForEachStatement {
|
| BailoutId ToObjectId() const { return BailoutId(local_id(3)); }
|
| BailoutId FilterId() const { return BailoutId(local_id(4)); }
|
| BailoutId AssignmentId() const { return BailoutId(local_id(5)); }
|
| - BailoutId ContinueId() const OVERRIDE { return EntryId(); }
|
| - BailoutId StackCheckId() const OVERRIDE { return BodyId(); }
|
| + BailoutId ContinueId() const override { return EntryId(); }
|
| + BailoutId StackCheckId() const override { return BodyId(); }
|
|
|
| protected:
|
| ForInStatement(Zone* zone, ZoneList<const AstRawString*>* labels, int pos)
|
| @@ -947,7 +947,7 @@ class ForInStatement FINAL : public ForEachStatement {
|
| };
|
|
|
|
|
| -class ForOfStatement FINAL : public ForEachStatement {
|
| +class ForOfStatement final : public ForEachStatement {
|
| public:
|
| DECLARE_NODE_TYPE(ForOfStatement)
|
|
|
| @@ -989,8 +989,8 @@ class ForOfStatement FINAL : public ForEachStatement {
|
| return assign_each_;
|
| }
|
|
|
| - BailoutId ContinueId() const OVERRIDE { return EntryId(); }
|
| - BailoutId StackCheckId() const OVERRIDE { return BackEdgeId(); }
|
| + BailoutId ContinueId() const override { return EntryId(); }
|
| + BailoutId StackCheckId() const override { return BackEdgeId(); }
|
|
|
| static int num_ids() { return parent_num_ids() + 1; }
|
| BailoutId BackEdgeId() const { return BailoutId(local_id(0)); }
|
| @@ -1014,13 +1014,13 @@ class ForOfStatement FINAL : public ForEachStatement {
|
| };
|
|
|
|
|
| -class ExpressionStatement FINAL : public Statement {
|
| +class ExpressionStatement final : public Statement {
|
| public:
|
| DECLARE_NODE_TYPE(ExpressionStatement)
|
|
|
| void set_expression(Expression* e) { expression_ = e; }
|
| Expression* expression() const { return expression_; }
|
| - bool IsJump() const OVERRIDE { return expression_->IsThrow(); }
|
| + bool IsJump() const override { return expression_->IsThrow(); }
|
|
|
| protected:
|
| ExpressionStatement(Zone* zone, Expression* expression, int pos)
|
| @@ -1033,14 +1033,14 @@ class ExpressionStatement FINAL : public Statement {
|
|
|
| class JumpStatement : public Statement {
|
| public:
|
| - bool IsJump() const FINAL { return true; }
|
| + bool IsJump() const final { return true; }
|
|
|
| protected:
|
| explicit JumpStatement(Zone* zone, int pos) : Statement(zone, pos) {}
|
| };
|
|
|
|
|
| -class ContinueStatement FINAL : public JumpStatement {
|
| +class ContinueStatement final : public JumpStatement {
|
| public:
|
| DECLARE_NODE_TYPE(ContinueStatement)
|
|
|
| @@ -1055,7 +1055,7 @@ class ContinueStatement FINAL : public JumpStatement {
|
| };
|
|
|
|
|
| -class BreakStatement FINAL : public JumpStatement {
|
| +class BreakStatement final : public JumpStatement {
|
| public:
|
| DECLARE_NODE_TYPE(BreakStatement)
|
|
|
| @@ -1070,7 +1070,7 @@ class BreakStatement FINAL : public JumpStatement {
|
| };
|
|
|
|
|
| -class ReturnStatement FINAL : public JumpStatement {
|
| +class ReturnStatement final : public JumpStatement {
|
| public:
|
| DECLARE_NODE_TYPE(ReturnStatement)
|
|
|
| @@ -1085,7 +1085,7 @@ class ReturnStatement FINAL : public JumpStatement {
|
| };
|
|
|
|
|
| -class WithStatement FINAL : public Statement {
|
| +class WithStatement final : public Statement {
|
| public:
|
| DECLARE_NODE_TYPE(WithStatement)
|
|
|
| @@ -1122,7 +1122,7 @@ class WithStatement FINAL : public Statement {
|
| };
|
|
|
|
|
| -class CaseClause FINAL : public Expression {
|
| +class CaseClause final : public Expression {
|
| public:
|
| DECLARE_NODE_TYPE(CaseClause)
|
|
|
| @@ -1156,7 +1156,7 @@ class CaseClause FINAL : public Expression {
|
| };
|
|
|
|
|
| -class SwitchStatement FINAL : public BreakableStatement {
|
| +class SwitchStatement final : public BreakableStatement {
|
| public:
|
| DECLARE_NODE_TYPE(SwitchStatement)
|
|
|
| @@ -1185,7 +1185,7 @@ class SwitchStatement FINAL : public BreakableStatement {
|
| // the parser implicitly creates an empty statement. Use the
|
| // HasThenStatement() and HasElseStatement() functions to check if a
|
| // given if-statement has a then- or an else-part containing code.
|
| -class IfStatement FINAL : public Statement {
|
| +class IfStatement final : public Statement {
|
| public:
|
| DECLARE_NODE_TYPE(IfStatement)
|
|
|
| @@ -1196,7 +1196,7 @@ class IfStatement FINAL : public Statement {
|
| Statement* then_statement() const { return then_statement_; }
|
| Statement* else_statement() const { return else_statement_; }
|
|
|
| - bool IsJump() const OVERRIDE {
|
| + bool IsJump() const override {
|
| return HasThenStatement() && then_statement()->IsJump()
|
| && HasElseStatement() && else_statement()->IsJump();
|
| }
|
| @@ -1249,7 +1249,7 @@ class TryStatement : public Statement {
|
| };
|
|
|
|
|
| -class TryCatchStatement FINAL : public TryStatement {
|
| +class TryCatchStatement final : public TryStatement {
|
| public:
|
| DECLARE_NODE_TYPE(TryCatchStatement)
|
|
|
| @@ -1278,7 +1278,7 @@ class TryCatchStatement FINAL : public TryStatement {
|
| };
|
|
|
|
|
| -class TryFinallyStatement FINAL : public TryStatement {
|
| +class TryFinallyStatement final : public TryStatement {
|
| public:
|
| DECLARE_NODE_TYPE(TryFinallyStatement)
|
|
|
| @@ -1295,7 +1295,7 @@ class TryFinallyStatement FINAL : public TryStatement {
|
| };
|
|
|
|
|
| -class DebuggerStatement FINAL : public Statement {
|
| +class DebuggerStatement final : public Statement {
|
| public:
|
| DECLARE_NODE_TYPE(DebuggerStatement)
|
|
|
| @@ -1320,7 +1320,7 @@ class DebuggerStatement FINAL : public Statement {
|
| };
|
|
|
|
|
| -class EmptyStatement FINAL : public Statement {
|
| +class EmptyStatement final : public Statement {
|
| public:
|
| DECLARE_NODE_TYPE(EmptyStatement)
|
|
|
| @@ -1329,11 +1329,11 @@ class EmptyStatement FINAL : public Statement {
|
| };
|
|
|
|
|
| -class Literal FINAL : public Expression {
|
| +class Literal final : public Expression {
|
| public:
|
| DECLARE_NODE_TYPE(Literal)
|
|
|
| - bool IsPropertyName() const OVERRIDE { return value_->IsPropertyName(); }
|
| + bool IsPropertyName() const override { return value_->IsPropertyName(); }
|
|
|
| Handle<String> AsPropertyName() {
|
| DCHECK(IsPropertyName());
|
| @@ -1345,8 +1345,8 @@ class Literal FINAL : public Expression {
|
| return value_->AsString();
|
| }
|
|
|
| - bool ToBooleanIsTrue() const OVERRIDE { return value()->BooleanValue(); }
|
| - bool ToBooleanIsFalse() const OVERRIDE { return !value()->BooleanValue(); }
|
| + bool ToBooleanIsTrue() const override { return value()->BooleanValue(); }
|
| + bool ToBooleanIsFalse() const override { return !value()->BooleanValue(); }
|
|
|
| Handle<Object> value() const { return value_->value(); }
|
| const AstValue* raw_value() const { return value_; }
|
| @@ -1426,7 +1426,7 @@ class MaterializedLiteral : public Expression {
|
| // Property is used for passing information
|
| // about an object literal's properties from the parser
|
| // to the code generator.
|
| -class ObjectLiteralProperty FINAL : public ZoneObject {
|
| +class ObjectLiteralProperty final : public ZoneObject {
|
| public:
|
| enum Kind {
|
| CONSTANT, // Property with constant value (compile time).
|
| @@ -1476,7 +1476,7 @@ class ObjectLiteralProperty FINAL : public ZoneObject {
|
|
|
| // An object literal has a boilerplate object that is used
|
| // for minimizing the work when constructing it at runtime.
|
| -class ObjectLiteral FINAL : public MaterializedLiteral {
|
| +class ObjectLiteral final : public MaterializedLiteral {
|
| public:
|
| typedef ObjectLiteralProperty Property;
|
|
|
| @@ -1560,7 +1560,7 @@ class ObjectLiteral FINAL : public MaterializedLiteral {
|
|
|
|
|
| // Node for capturing a regexp literal.
|
| -class RegExpLiteral FINAL : public MaterializedLiteral {
|
| +class RegExpLiteral final : public MaterializedLiteral {
|
| public:
|
| DECLARE_NODE_TYPE(RegExpLiteral)
|
|
|
| @@ -1584,7 +1584,7 @@ class RegExpLiteral FINAL : public MaterializedLiteral {
|
|
|
| // An array literal has a literals object that is used
|
| // for minimizing the work when constructing it at runtime.
|
| -class ArrayLiteral FINAL : public MaterializedLiteral {
|
| +class ArrayLiteral final : public MaterializedLiteral {
|
| public:
|
| DECLARE_NODE_TYPE(ArrayLiteral)
|
|
|
| @@ -1638,11 +1638,11 @@ class ArrayLiteral FINAL : public MaterializedLiteral {
|
| };
|
|
|
|
|
| -class VariableProxy FINAL : public Expression {
|
| +class VariableProxy final : public Expression {
|
| public:
|
| DECLARE_NODE_TYPE(VariableProxy)
|
|
|
| - bool IsValidReferenceExpression() const OVERRIDE { return !is_this(); }
|
| + bool IsValidReferenceExpression() const override { return !is_this(); }
|
|
|
| bool IsArguments() const { return is_resolved() && var()->is_arguments(); }
|
|
|
| @@ -1683,11 +1683,11 @@ class VariableProxy FINAL : public Expression {
|
| }
|
|
|
| virtual FeedbackVectorRequirements ComputeFeedbackRequirements(
|
| - Isolate* isolate, const ICSlotCache* cache) OVERRIDE;
|
| + Isolate* isolate, const ICSlotCache* cache) override;
|
|
|
| void SetFirstFeedbackICSlot(FeedbackVectorICSlot slot,
|
| - ICSlotCache* cache) OVERRIDE;
|
| - Code::Kind FeedbackICSlotKind(int index) OVERRIDE { return Code::LOAD_IC; }
|
| + ICSlotCache* cache) override;
|
| + Code::Kind FeedbackICSlotKind(int index) override { return Code::LOAD_IC; }
|
| FeedbackVectorICSlot VariableFeedbackSlot() {
|
| DCHECK(!UsesVariableFeedbackSlot() || !variable_feedback_slot_.IsInvalid());
|
| return variable_feedback_slot_;
|
| @@ -1720,11 +1720,11 @@ class VariableProxy FINAL : public Expression {
|
| };
|
|
|
|
|
| -class Property FINAL : public Expression {
|
| +class Property final : public Expression {
|
| public:
|
| DECLARE_NODE_TYPE(Property)
|
|
|
| - bool IsValidReferenceExpression() const OVERRIDE { return true; }
|
| + bool IsValidReferenceExpression() const override { return true; }
|
|
|
| Expression* obj() const { return obj_; }
|
| Expression* key() const { return key_; }
|
| @@ -1738,10 +1738,10 @@ class Property FINAL : public Expression {
|
| }
|
|
|
| // Type feedback information.
|
| - bool IsMonomorphic() OVERRIDE { return receiver_types_.length() == 1; }
|
| - SmallMapList* GetReceiverTypes() OVERRIDE { return &receiver_types_; }
|
| - KeyedAccessStoreMode GetStoreMode() const OVERRIDE { return STANDARD_STORE; }
|
| - IcCheckType GetKeyType() const OVERRIDE {
|
| + bool IsMonomorphic() override { return receiver_types_.length() == 1; }
|
| + SmallMapList* GetReceiverTypes() override { return &receiver_types_; }
|
| + KeyedAccessStoreMode GetStoreMode() const override { return STANDARD_STORE; }
|
| + IcCheckType GetKeyType() const override {
|
| return KeyTypeField::decode(bit_field_);
|
| }
|
| bool IsUninitialized() const {
|
| @@ -1772,14 +1772,14 @@ class Property FINAL : public Expression {
|
| }
|
|
|
| virtual FeedbackVectorRequirements ComputeFeedbackRequirements(
|
| - Isolate* isolate, const ICSlotCache* cache) OVERRIDE {
|
| + Isolate* isolate, const ICSlotCache* cache) override {
|
| return FeedbackVectorRequirements(0, FLAG_vector_ics ? 1 : 0);
|
| }
|
| void SetFirstFeedbackICSlot(FeedbackVectorICSlot slot,
|
| - ICSlotCache* cache) OVERRIDE {
|
| + ICSlotCache* cache) override {
|
| property_feedback_slot_ = slot;
|
| }
|
| - Code::Kind FeedbackICSlotKind(int index) OVERRIDE {
|
| + Code::Kind FeedbackICSlotKind(int index) override {
|
| return key()->IsPropertyName() ? Code::LOAD_IC : Code::KEYED_LOAD_IC;
|
| }
|
|
|
| @@ -1814,7 +1814,7 @@ class Property FINAL : public Expression {
|
| };
|
|
|
|
|
| -class Call FINAL : public Expression {
|
| +class Call final : public Expression {
|
| public:
|
| DECLARE_NODE_TYPE(Call)
|
|
|
| @@ -1823,15 +1823,15 @@ class Call FINAL : public Expression {
|
|
|
| // Type feedback information.
|
| virtual FeedbackVectorRequirements ComputeFeedbackRequirements(
|
| - Isolate* isolate, const ICSlotCache* cache) OVERRIDE;
|
| + Isolate* isolate, const ICSlotCache* cache) override;
|
| void SetFirstFeedbackICSlot(FeedbackVectorICSlot slot,
|
| - ICSlotCache* cache) OVERRIDE {
|
| + ICSlotCache* cache) override {
|
| ic_slot_or_slot_ = slot.ToInt();
|
| }
|
| - void SetFirstFeedbackSlot(FeedbackVectorSlot slot) OVERRIDE {
|
| + void SetFirstFeedbackSlot(FeedbackVectorSlot slot) override {
|
| ic_slot_or_slot_ = slot.ToInt();
|
| }
|
| - Code::Kind FeedbackICSlotKind(int index) OVERRIDE { return Code::CALL_IC; }
|
| + Code::Kind FeedbackICSlotKind(int index) override { return Code::CALL_IC; }
|
|
|
| FeedbackVectorSlot CallFeedbackSlot() const {
|
| DCHECK(ic_slot_or_slot_ != FeedbackVectorSlot::Invalid().ToInt());
|
| @@ -1843,14 +1843,14 @@ class Call FINAL : public Expression {
|
| return FeedbackVectorICSlot(ic_slot_or_slot_);
|
| }
|
|
|
| - SmallMapList* GetReceiverTypes() OVERRIDE {
|
| + SmallMapList* GetReceiverTypes() override {
|
| if (expression()->IsProperty()) {
|
| return expression()->AsProperty()->GetReceiverTypes();
|
| }
|
| return NULL;
|
| }
|
|
|
| - bool IsMonomorphic() OVERRIDE {
|
| + bool IsMonomorphic() override {
|
| if (expression()->IsProperty()) {
|
| return expression()->AsProperty()->IsMonomorphic();
|
| }
|
| @@ -1938,7 +1938,7 @@ class Call FINAL : public Expression {
|
| };
|
|
|
|
|
| -class CallNew FINAL : public Expression {
|
| +class CallNew final : public Expression {
|
| public:
|
| DECLARE_NODE_TYPE(CallNew)
|
|
|
| @@ -1947,10 +1947,10 @@ class CallNew FINAL : public Expression {
|
|
|
| // Type feedback information.
|
| virtual FeedbackVectorRequirements ComputeFeedbackRequirements(
|
| - Isolate* isolate, const ICSlotCache* cache) OVERRIDE {
|
| + Isolate* isolate, const ICSlotCache* cache) override {
|
| return FeedbackVectorRequirements(FLAG_pretenuring_call_new ? 2 : 1, 0);
|
| }
|
| - void SetFirstFeedbackSlot(FeedbackVectorSlot slot) OVERRIDE {
|
| + void SetFirstFeedbackSlot(FeedbackVectorSlot slot) override {
|
| callnew_feedback_slot_ = slot;
|
| }
|
|
|
| @@ -1963,7 +1963,7 @@ class CallNew FINAL : public Expression {
|
| return CallNewFeedbackSlot().next();
|
| }
|
|
|
| - bool IsMonomorphic() OVERRIDE { return is_monomorphic_; }
|
| + bool IsMonomorphic() override { return is_monomorphic_; }
|
| Handle<JSFunction> target() const { return target_; }
|
| Handle<AllocationSite> allocation_site() const {
|
| return allocation_site_;
|
| @@ -2010,7 +2010,7 @@ class CallNew FINAL : public Expression {
|
| // language construct. Instead it is used to call a C or JS function
|
| // with a set of arguments. This is used from the builtins that are
|
| // implemented in JavaScript (see "v8natives.js").
|
| -class CallRuntime FINAL : public Expression {
|
| +class CallRuntime final : public Expression {
|
| public:
|
| DECLARE_NODE_TYPE(CallRuntime)
|
|
|
| @@ -2025,14 +2025,14 @@ class CallRuntime FINAL : public Expression {
|
| return FLAG_vector_ics && is_jsruntime();
|
| }
|
| virtual FeedbackVectorRequirements ComputeFeedbackRequirements(
|
| - Isolate* isolate, const ICSlotCache* cache) OVERRIDE {
|
| + Isolate* isolate, const ICSlotCache* cache) override {
|
| return FeedbackVectorRequirements(0, HasCallRuntimeFeedbackSlot() ? 1 : 0);
|
| }
|
| void SetFirstFeedbackICSlot(FeedbackVectorICSlot slot,
|
| - ICSlotCache* cache) OVERRIDE {
|
| + ICSlotCache* cache) override {
|
| callruntime_feedback_slot_ = slot;
|
| }
|
| - Code::Kind FeedbackICSlotKind(int index) OVERRIDE { return Code::LOAD_IC; }
|
| + Code::Kind FeedbackICSlotKind(int index) override { return Code::LOAD_IC; }
|
|
|
| FeedbackVectorICSlot CallRuntimeFeedbackSlot() {
|
| DCHECK(!HasCallRuntimeFeedbackSlot() ||
|
| @@ -2066,7 +2066,7 @@ class CallRuntime FINAL : public Expression {
|
| };
|
|
|
|
|
| -class UnaryOperation FINAL : public Expression {
|
| +class UnaryOperation final : public Expression {
|
| public:
|
| DECLARE_NODE_TYPE(UnaryOperation)
|
|
|
| @@ -2079,8 +2079,7 @@ class UnaryOperation FINAL : public Expression {
|
| BailoutId MaterializeTrueId() const { return BailoutId(local_id(0)); }
|
| BailoutId MaterializeFalseId() const { return BailoutId(local_id(1)); }
|
|
|
| - virtual void RecordToBooleanTypeFeedback(
|
| - TypeFeedbackOracle* oracle) OVERRIDE;
|
| + virtual void RecordToBooleanTypeFeedback(TypeFeedbackOracle* oracle) override;
|
|
|
| protected:
|
| UnaryOperation(Zone* zone, Token::Value op, Expression* expression, int pos)
|
| @@ -2097,7 +2096,7 @@ class UnaryOperation FINAL : public Expression {
|
| };
|
|
|
|
|
| -class BinaryOperation FINAL : public Expression {
|
| +class BinaryOperation final : public Expression {
|
| public:
|
| DECLARE_NODE_TYPE(BinaryOperation)
|
|
|
| @@ -2125,8 +2124,7 @@ class BinaryOperation FINAL : public Expression {
|
| if (arg.IsJust()) fixed_right_arg_value_ = arg.FromJust();
|
| }
|
|
|
| - virtual void RecordToBooleanTypeFeedback(
|
| - TypeFeedbackOracle* oracle) OVERRIDE;
|
| + virtual void RecordToBooleanTypeFeedback(TypeFeedbackOracle* oracle) override;
|
|
|
| protected:
|
| BinaryOperation(Zone* zone, Token::Value op, Expression* left,
|
| @@ -2155,7 +2153,7 @@ class BinaryOperation FINAL : public Expression {
|
| };
|
|
|
|
|
| -class CountOperation FINAL : public Expression {
|
| +class CountOperation final : public Expression {
|
| public:
|
| DECLARE_NODE_TYPE(CountOperation)
|
|
|
| @@ -2169,12 +2167,12 @@ class CountOperation FINAL : public Expression {
|
|
|
| Expression* expression() const { return expression_; }
|
|
|
| - bool IsMonomorphic() OVERRIDE { return receiver_types_.length() == 1; }
|
| - SmallMapList* GetReceiverTypes() OVERRIDE { return &receiver_types_; }
|
| - IcCheckType GetKeyType() const OVERRIDE {
|
| + bool IsMonomorphic() override { return receiver_types_.length() == 1; }
|
| + SmallMapList* GetReceiverTypes() override { return &receiver_types_; }
|
| + IcCheckType GetKeyType() const override {
|
| return KeyTypeField::decode(bit_field_);
|
| }
|
| - KeyedAccessStoreMode GetStoreMode() const OVERRIDE {
|
| + KeyedAccessStoreMode GetStoreMode() const override {
|
| return StoreModeField::decode(bit_field_);
|
| }
|
| Type* type() const { return type_; }
|
| @@ -2225,7 +2223,7 @@ class CountOperation FINAL : public Expression {
|
| };
|
|
|
|
|
| -class CompareOperation FINAL : public Expression {
|
| +class CompareOperation final : public Expression {
|
| public:
|
| DECLARE_NODE_TYPE(CompareOperation)
|
|
|
| @@ -2269,7 +2267,7 @@ class CompareOperation FINAL : public Expression {
|
| };
|
|
|
|
|
| -class Spread FINAL : public Expression {
|
| +class Spread final : public Expression {
|
| public:
|
| DECLARE_NODE_TYPE(Spread)
|
|
|
| @@ -2289,7 +2287,7 @@ class Spread FINAL : public Expression {
|
| };
|
|
|
|
|
| -class Conditional FINAL : public Expression {
|
| +class Conditional final : public Expression {
|
| public:
|
| DECLARE_NODE_TYPE(Conditional)
|
|
|
| @@ -2319,7 +2317,7 @@ class Conditional FINAL : public Expression {
|
| };
|
|
|
|
|
| -class Assignment FINAL : public Expression {
|
| +class Assignment final : public Expression {
|
| public:
|
| DECLARE_NODE_TYPE(Assignment)
|
|
|
| @@ -2340,18 +2338,18 @@ class Assignment FINAL : public Expression {
|
|
|
| // Type feedback information.
|
| TypeFeedbackId AssignmentFeedbackId() { return TypeFeedbackId(local_id(1)); }
|
| - bool IsMonomorphic() OVERRIDE { return receiver_types_.length() == 1; }
|
| + bool IsMonomorphic() override { return receiver_types_.length() == 1; }
|
| bool IsUninitialized() const {
|
| return IsUninitializedField::decode(bit_field_);
|
| }
|
| bool HasNoTypeInformation() {
|
| return IsUninitializedField::decode(bit_field_);
|
| }
|
| - SmallMapList* GetReceiverTypes() OVERRIDE { return &receiver_types_; }
|
| - IcCheckType GetKeyType() const OVERRIDE {
|
| + SmallMapList* GetReceiverTypes() override { return &receiver_types_; }
|
| + IcCheckType GetKeyType() const override {
|
| return KeyTypeField::decode(bit_field_);
|
| }
|
| - KeyedAccessStoreMode GetStoreMode() const OVERRIDE {
|
| + KeyedAccessStoreMode GetStoreMode() const override {
|
| return StoreModeField::decode(bit_field_);
|
| }
|
| void set_is_uninitialized(bool b) {
|
| @@ -2387,7 +2385,7 @@ class Assignment FINAL : public Expression {
|
| };
|
|
|
|
|
| -class Yield FINAL : public Expression {
|
| +class Yield final : public Expression {
|
| public:
|
| DECLARE_NODE_TYPE(Yield)
|
|
|
| @@ -2419,14 +2417,14 @@ class Yield FINAL : public Expression {
|
| return FLAG_vector_ics && (yield_kind() == kDelegating);
|
| }
|
| virtual FeedbackVectorRequirements ComputeFeedbackRequirements(
|
| - Isolate* isolate, const ICSlotCache* cache) OVERRIDE {
|
| + Isolate* isolate, const ICSlotCache* cache) override {
|
| return FeedbackVectorRequirements(0, HasFeedbackSlots() ? 3 : 0);
|
| }
|
| void SetFirstFeedbackICSlot(FeedbackVectorICSlot slot,
|
| - ICSlotCache* cache) OVERRIDE {
|
| + ICSlotCache* cache) override {
|
| yield_first_feedback_slot_ = slot;
|
| }
|
| - Code::Kind FeedbackICSlotKind(int index) OVERRIDE {
|
| + Code::Kind FeedbackICSlotKind(int index) override {
|
| return index == 0 ? Code::KEYED_LOAD_IC : Code::LOAD_IC;
|
| }
|
|
|
| @@ -2460,7 +2458,7 @@ class Yield FINAL : public Expression {
|
| };
|
|
|
|
|
| -class Throw FINAL : public Expression {
|
| +class Throw final : public Expression {
|
| public:
|
| DECLARE_NODE_TYPE(Throw)
|
|
|
| @@ -2475,7 +2473,7 @@ class Throw FINAL : public Expression {
|
| };
|
|
|
|
|
| -class FunctionLiteral FINAL : public Expression {
|
| +class FunctionLiteral final : public Expression {
|
| public:
|
| enum FunctionType {
|
| ANONYMOUS_EXPRESSION,
|
| @@ -2669,7 +2667,7 @@ class FunctionLiteral FINAL : public Expression {
|
| };
|
|
|
|
|
| -class ClassLiteral FINAL : public Expression {
|
| +class ClassLiteral final : public Expression {
|
| public:
|
| typedef ObjectLiteralProperty Property;
|
|
|
| @@ -2724,7 +2722,7 @@ class ClassLiteral FINAL : public Expression {
|
| };
|
|
|
|
|
| -class NativeFunctionLiteral FINAL : public Expression {
|
| +class NativeFunctionLiteral final : public Expression {
|
| public:
|
| DECLARE_NODE_TYPE(NativeFunctionLiteral)
|
|
|
| @@ -2742,7 +2740,7 @@ class NativeFunctionLiteral FINAL : public Expression {
|
| };
|
|
|
|
|
| -class ThisFunction FINAL : public Expression {
|
| +class ThisFunction final : public Expression {
|
| public:
|
| DECLARE_NODE_TYPE(ThisFunction)
|
|
|
| @@ -2751,7 +2749,7 @@ class ThisFunction FINAL : public Expression {
|
| };
|
|
|
|
|
| -class SuperReference FINAL : public Expression {
|
| +class SuperReference final : public Expression {
|
| public:
|
| DECLARE_NODE_TYPE(SuperReference)
|
|
|
| @@ -2762,14 +2760,14 @@ class SuperReference FINAL : public Expression {
|
|
|
| // Type feedback information.
|
| virtual FeedbackVectorRequirements ComputeFeedbackRequirements(
|
| - Isolate* isolate, const ICSlotCache* cache) OVERRIDE {
|
| + Isolate* isolate, const ICSlotCache* cache) override {
|
| return FeedbackVectorRequirements(0, FLAG_vector_ics ? 1 : 0);
|
| }
|
| void SetFirstFeedbackICSlot(FeedbackVectorICSlot slot,
|
| - ICSlotCache* cache) OVERRIDE {
|
| + ICSlotCache* cache) override {
|
| homeobject_feedback_slot_ = slot;
|
| }
|
| - Code::Kind FeedbackICSlotKind(int index) OVERRIDE { return Code::LOAD_IC; }
|
| + Code::Kind FeedbackICSlotKind(int index) override { return Code::LOAD_IC; }
|
|
|
| FeedbackVectorICSlot HomeObjectFeedbackSlot() {
|
| DCHECK(!FLAG_vector_ics || !homeobject_feedback_slot_.IsInvalid());
|
| @@ -2835,19 +2833,19 @@ class RegExpTree : public ZoneObject {
|
| };
|
|
|
|
|
| -class RegExpDisjunction FINAL : public RegExpTree {
|
| +class RegExpDisjunction final : public RegExpTree {
|
| public:
|
| explicit RegExpDisjunction(ZoneList<RegExpTree*>* alternatives);
|
| - void* Accept(RegExpVisitor* visitor, void* data) OVERRIDE;
|
| + void* Accept(RegExpVisitor* visitor, void* data) override;
|
| virtual RegExpNode* ToNode(RegExpCompiler* compiler,
|
| - RegExpNode* on_success) OVERRIDE;
|
| - RegExpDisjunction* AsDisjunction() OVERRIDE;
|
| - Interval CaptureRegisters() OVERRIDE;
|
| - bool IsDisjunction() OVERRIDE;
|
| - bool IsAnchoredAtStart() OVERRIDE;
|
| - bool IsAnchoredAtEnd() OVERRIDE;
|
| - int min_match() OVERRIDE { return min_match_; }
|
| - int max_match() OVERRIDE { return max_match_; }
|
| + RegExpNode* on_success) override;
|
| + RegExpDisjunction* AsDisjunction() override;
|
| + Interval CaptureRegisters() override;
|
| + bool IsDisjunction() override;
|
| + bool IsAnchoredAtStart() override;
|
| + bool IsAnchoredAtEnd() override;
|
| + int min_match() override { return min_match_; }
|
| + int max_match() override { return max_match_; }
|
| ZoneList<RegExpTree*>* alternatives() { return alternatives_; }
|
| private:
|
| ZoneList<RegExpTree*>* alternatives_;
|
| @@ -2856,19 +2854,19 @@ class RegExpDisjunction FINAL : public RegExpTree {
|
| };
|
|
|
|
|
| -class RegExpAlternative FINAL : public RegExpTree {
|
| +class RegExpAlternative final : public RegExpTree {
|
| public:
|
| explicit RegExpAlternative(ZoneList<RegExpTree*>* nodes);
|
| - void* Accept(RegExpVisitor* visitor, void* data) OVERRIDE;
|
| + void* Accept(RegExpVisitor* visitor, void* data) override;
|
| virtual RegExpNode* ToNode(RegExpCompiler* compiler,
|
| - RegExpNode* on_success) OVERRIDE;
|
| - RegExpAlternative* AsAlternative() OVERRIDE;
|
| - Interval CaptureRegisters() OVERRIDE;
|
| - bool IsAlternative() OVERRIDE;
|
| - bool IsAnchoredAtStart() OVERRIDE;
|
| - bool IsAnchoredAtEnd() OVERRIDE;
|
| - int min_match() OVERRIDE { return min_match_; }
|
| - int max_match() OVERRIDE { return max_match_; }
|
| + RegExpNode* on_success) override;
|
| + RegExpAlternative* AsAlternative() override;
|
| + Interval CaptureRegisters() override;
|
| + bool IsAlternative() override;
|
| + bool IsAnchoredAtStart() override;
|
| + bool IsAnchoredAtEnd() override;
|
| + int min_match() override { return min_match_; }
|
| + int max_match() override { return max_match_; }
|
| ZoneList<RegExpTree*>* nodes() { return nodes_; }
|
| private:
|
| ZoneList<RegExpTree*>* nodes_;
|
| @@ -2877,7 +2875,7 @@ class RegExpAlternative FINAL : public RegExpTree {
|
| };
|
|
|
|
|
| -class RegExpAssertion FINAL : public RegExpTree {
|
| +class RegExpAssertion final : public RegExpTree {
|
| public:
|
| enum AssertionType {
|
| START_OF_LINE,
|
| @@ -2888,22 +2886,22 @@ class RegExpAssertion FINAL : public RegExpTree {
|
| NON_BOUNDARY
|
| };
|
| explicit RegExpAssertion(AssertionType type) : assertion_type_(type) { }
|
| - void* Accept(RegExpVisitor* visitor, void* data) OVERRIDE;
|
| + void* Accept(RegExpVisitor* visitor, void* data) override;
|
| virtual RegExpNode* ToNode(RegExpCompiler* compiler,
|
| - RegExpNode* on_success) OVERRIDE;
|
| - RegExpAssertion* AsAssertion() OVERRIDE;
|
| - bool IsAssertion() OVERRIDE;
|
| - bool IsAnchoredAtStart() OVERRIDE;
|
| - bool IsAnchoredAtEnd() OVERRIDE;
|
| - int min_match() OVERRIDE { return 0; }
|
| - int max_match() OVERRIDE { return 0; }
|
| + RegExpNode* on_success) override;
|
| + RegExpAssertion* AsAssertion() override;
|
| + bool IsAssertion() override;
|
| + bool IsAnchoredAtStart() override;
|
| + bool IsAnchoredAtEnd() override;
|
| + int min_match() override { return 0; }
|
| + int max_match() override { return 0; }
|
| AssertionType assertion_type() { return assertion_type_; }
|
| private:
|
| AssertionType assertion_type_;
|
| };
|
|
|
|
|
| -class CharacterSet FINAL BASE_EMBEDDED {
|
| +class CharacterSet final BASE_EMBEDDED {
|
| public:
|
| explicit CharacterSet(uc16 standard_set_type)
|
| : ranges_(NULL),
|
| @@ -2926,7 +2924,7 @@ class CharacterSet FINAL BASE_EMBEDDED {
|
| };
|
|
|
|
|
| -class RegExpCharacterClass FINAL : public RegExpTree {
|
| +class RegExpCharacterClass final : public RegExpTree {
|
| public:
|
| RegExpCharacterClass(ZoneList<CharacterRange>* ranges, bool is_negated)
|
| : set_(ranges),
|
| @@ -2934,15 +2932,15 @@ class RegExpCharacterClass FINAL : public RegExpTree {
|
| explicit RegExpCharacterClass(uc16 type)
|
| : set_(type),
|
| is_negated_(false) { }
|
| - void* Accept(RegExpVisitor* visitor, void* data) OVERRIDE;
|
| + void* Accept(RegExpVisitor* visitor, void* data) override;
|
| virtual RegExpNode* ToNode(RegExpCompiler* compiler,
|
| - RegExpNode* on_success) OVERRIDE;
|
| - RegExpCharacterClass* AsCharacterClass() OVERRIDE;
|
| - bool IsCharacterClass() OVERRIDE;
|
| - bool IsTextElement() OVERRIDE { return true; }
|
| - int min_match() OVERRIDE { return 1; }
|
| - int max_match() OVERRIDE { return 1; }
|
| - void AppendToText(RegExpText* text, Zone* zone) OVERRIDE;
|
| + RegExpNode* on_success) override;
|
| + RegExpCharacterClass* AsCharacterClass() override;
|
| + bool IsCharacterClass() override;
|
| + bool IsTextElement() override { return true; }
|
| + int min_match() override { return 1; }
|
| + int max_match() override { return 1; }
|
| + void AppendToText(RegExpText* text, Zone* zone) override;
|
| CharacterSet character_set() { return set_; }
|
| // TODO(lrn): Remove need for complex version if is_standard that
|
| // recognizes a mangled standard set and just do { return set_.is_special(); }
|
| @@ -2968,18 +2966,18 @@ class RegExpCharacterClass FINAL : public RegExpTree {
|
| };
|
|
|
|
|
| -class RegExpAtom FINAL : public RegExpTree {
|
| +class RegExpAtom final : public RegExpTree {
|
| public:
|
| explicit RegExpAtom(Vector<const uc16> data) : data_(data) { }
|
| - void* Accept(RegExpVisitor* visitor, void* data) OVERRIDE;
|
| + void* Accept(RegExpVisitor* visitor, void* data) override;
|
| virtual RegExpNode* ToNode(RegExpCompiler* compiler,
|
| - RegExpNode* on_success) OVERRIDE;
|
| - RegExpAtom* AsAtom() OVERRIDE;
|
| - bool IsAtom() OVERRIDE;
|
| - bool IsTextElement() OVERRIDE { return true; }
|
| - int min_match() OVERRIDE { return data_.length(); }
|
| - int max_match() OVERRIDE { return data_.length(); }
|
| - void AppendToText(RegExpText* text, Zone* zone) OVERRIDE;
|
| + RegExpNode* on_success) override;
|
| + RegExpAtom* AsAtom() override;
|
| + bool IsAtom() override;
|
| + bool IsTextElement() override { return true; }
|
| + int min_match() override { return data_.length(); }
|
| + int max_match() override { return data_.length(); }
|
| + void AppendToText(RegExpText* text, Zone* zone) override;
|
| Vector<const uc16> data() { return data_; }
|
| int length() { return data_.length(); }
|
| private:
|
| @@ -2987,18 +2985,18 @@ class RegExpAtom FINAL : public RegExpTree {
|
| };
|
|
|
|
|
| -class RegExpText FINAL : public RegExpTree {
|
| +class RegExpText final : public RegExpTree {
|
| public:
|
| explicit RegExpText(Zone* zone) : elements_(2, zone), length_(0) {}
|
| - void* Accept(RegExpVisitor* visitor, void* data) OVERRIDE;
|
| + void* Accept(RegExpVisitor* visitor, void* data) override;
|
| virtual RegExpNode* ToNode(RegExpCompiler* compiler,
|
| - RegExpNode* on_success) OVERRIDE;
|
| - RegExpText* AsText() OVERRIDE;
|
| - bool IsText() OVERRIDE;
|
| - bool IsTextElement() OVERRIDE { return true; }
|
| - int min_match() OVERRIDE { return length_; }
|
| - int max_match() OVERRIDE { return length_; }
|
| - void AppendToText(RegExpText* text, Zone* zone) OVERRIDE;
|
| + RegExpNode* on_success) override;
|
| + RegExpText* AsText() override;
|
| + bool IsText() override;
|
| + bool IsTextElement() override { return true; }
|
| + int min_match() override { return length_; }
|
| + int max_match() override { return length_; }
|
| + void AppendToText(RegExpText* text, Zone* zone) override;
|
| void AddElement(TextElement elm, Zone* zone) {
|
| elements_.Add(elm, zone);
|
| length_ += elm.length();
|
| @@ -3010,7 +3008,7 @@ class RegExpText FINAL : public RegExpTree {
|
| };
|
|
|
|
|
| -class RegExpQuantifier FINAL : public RegExpTree {
|
| +class RegExpQuantifier final : public RegExpTree {
|
| public:
|
| enum QuantifierType { GREEDY, NON_GREEDY, POSSESSIVE };
|
| RegExpQuantifier(int min, int max, QuantifierType type, RegExpTree* body)
|
| @@ -3025,9 +3023,9 @@ class RegExpQuantifier FINAL : public RegExpTree {
|
| max_match_ = max * body->max_match();
|
| }
|
| }
|
| - void* Accept(RegExpVisitor* visitor, void* data) OVERRIDE;
|
| + void* Accept(RegExpVisitor* visitor, void* data) override;
|
| virtual RegExpNode* ToNode(RegExpCompiler* compiler,
|
| - RegExpNode* on_success) OVERRIDE;
|
| + RegExpNode* on_success) override;
|
| static RegExpNode* ToNode(int min,
|
| int max,
|
| bool is_greedy,
|
| @@ -3035,11 +3033,11 @@ class RegExpQuantifier FINAL : public RegExpTree {
|
| RegExpCompiler* compiler,
|
| RegExpNode* on_success,
|
| bool not_at_start = false);
|
| - RegExpQuantifier* AsQuantifier() OVERRIDE;
|
| - Interval CaptureRegisters() OVERRIDE;
|
| - bool IsQuantifier() OVERRIDE;
|
| - int min_match() OVERRIDE { return min_match_; }
|
| - int max_match() OVERRIDE { return max_match_; }
|
| + RegExpQuantifier* AsQuantifier() override;
|
| + Interval CaptureRegisters() override;
|
| + bool IsQuantifier() override;
|
| + int min_match() override { return min_match_; }
|
| + int max_match() override { return max_match_; }
|
| int min() { return min_; }
|
| int max() { return max_; }
|
| bool is_possessive() { return quantifier_type_ == POSSESSIVE; }
|
| @@ -3057,24 +3055,24 @@ class RegExpQuantifier FINAL : public RegExpTree {
|
| };
|
|
|
|
|
| -class RegExpCapture FINAL : public RegExpTree {
|
| +class RegExpCapture final : public RegExpTree {
|
| public:
|
| explicit RegExpCapture(RegExpTree* body, int index)
|
| : body_(body), index_(index) { }
|
| - void* Accept(RegExpVisitor* visitor, void* data) OVERRIDE;
|
| + void* Accept(RegExpVisitor* visitor, void* data) override;
|
| virtual RegExpNode* ToNode(RegExpCompiler* compiler,
|
| - RegExpNode* on_success) OVERRIDE;
|
| + RegExpNode* on_success) override;
|
| static RegExpNode* ToNode(RegExpTree* body,
|
| int index,
|
| RegExpCompiler* compiler,
|
| RegExpNode* on_success);
|
| - RegExpCapture* AsCapture() OVERRIDE;
|
| - bool IsAnchoredAtStart() OVERRIDE;
|
| - bool IsAnchoredAtEnd() OVERRIDE;
|
| - Interval CaptureRegisters() OVERRIDE;
|
| - bool IsCapture() OVERRIDE;
|
| - int min_match() OVERRIDE { return body_->min_match(); }
|
| - int max_match() OVERRIDE { return body_->max_match(); }
|
| + RegExpCapture* AsCapture() override;
|
| + bool IsAnchoredAtStart() override;
|
| + bool IsAnchoredAtEnd() override;
|
| + Interval CaptureRegisters() override;
|
| + bool IsCapture() override;
|
| + int min_match() override { return body_->min_match(); }
|
| + int max_match() override { return body_->max_match(); }
|
| RegExpTree* body() { return body_; }
|
| int index() { return index_; }
|
| static int StartRegister(int index) { return index * 2; }
|
| @@ -3086,7 +3084,7 @@ class RegExpCapture FINAL : public RegExpTree {
|
| };
|
|
|
|
|
| -class RegExpLookahead FINAL : public RegExpTree {
|
| +class RegExpLookahead final : public RegExpTree {
|
| public:
|
| RegExpLookahead(RegExpTree* body,
|
| bool is_positive,
|
| @@ -3097,15 +3095,15 @@ class RegExpLookahead FINAL : public RegExpTree {
|
| capture_count_(capture_count),
|
| capture_from_(capture_from) { }
|
|
|
| - void* Accept(RegExpVisitor* visitor, void* data) OVERRIDE;
|
| + void* Accept(RegExpVisitor* visitor, void* data) override;
|
| virtual RegExpNode* ToNode(RegExpCompiler* compiler,
|
| - RegExpNode* on_success) OVERRIDE;
|
| - RegExpLookahead* AsLookahead() OVERRIDE;
|
| - Interval CaptureRegisters() OVERRIDE;
|
| - bool IsLookahead() OVERRIDE;
|
| - bool IsAnchoredAtStart() OVERRIDE;
|
| - int min_match() OVERRIDE { return 0; }
|
| - int max_match() OVERRIDE { return 0; }
|
| + RegExpNode* on_success) override;
|
| + RegExpLookahead* AsLookahead() override;
|
| + Interval CaptureRegisters() override;
|
| + bool IsLookahead() override;
|
| + bool IsAnchoredAtStart() override;
|
| + int min_match() override { return 0; }
|
| + int max_match() override { return 0; }
|
| RegExpTree* body() { return body_; }
|
| bool is_positive() { return is_positive_; }
|
| int capture_count() { return capture_count_; }
|
| @@ -3119,17 +3117,17 @@ class RegExpLookahead FINAL : public RegExpTree {
|
| };
|
|
|
|
|
| -class RegExpBackReference FINAL : public RegExpTree {
|
| +class RegExpBackReference final : public RegExpTree {
|
| public:
|
| explicit RegExpBackReference(RegExpCapture* capture)
|
| : capture_(capture) { }
|
| - void* Accept(RegExpVisitor* visitor, void* data) OVERRIDE;
|
| + void* Accept(RegExpVisitor* visitor, void* data) override;
|
| virtual RegExpNode* ToNode(RegExpCompiler* compiler,
|
| - RegExpNode* on_success) OVERRIDE;
|
| - RegExpBackReference* AsBackReference() OVERRIDE;
|
| - bool IsBackReference() OVERRIDE;
|
| - int min_match() OVERRIDE { return 0; }
|
| - int max_match() OVERRIDE { return capture_->max_match(); }
|
| + RegExpNode* on_success) override;
|
| + RegExpBackReference* AsBackReference() override;
|
| + bool IsBackReference() override;
|
| + int min_match() override { return 0; }
|
| + int max_match() override { return capture_->max_match(); }
|
| int index() { return capture_->index(); }
|
| RegExpCapture* capture() { return capture_; }
|
| private:
|
| @@ -3137,16 +3135,16 @@ class RegExpBackReference FINAL : public RegExpTree {
|
| };
|
|
|
|
|
| -class RegExpEmpty FINAL : public RegExpTree {
|
| +class RegExpEmpty final : public RegExpTree {
|
| public:
|
| RegExpEmpty() { }
|
| - void* Accept(RegExpVisitor* visitor, void* data) OVERRIDE;
|
| + void* Accept(RegExpVisitor* visitor, void* data) override;
|
| virtual RegExpNode* ToNode(RegExpCompiler* compiler,
|
| - RegExpNode* on_success) OVERRIDE;
|
| - RegExpEmpty* AsEmpty() OVERRIDE;
|
| - bool IsEmpty() OVERRIDE;
|
| - int min_match() OVERRIDE { return 0; }
|
| - int max_match() OVERRIDE { return 0; }
|
| + RegExpNode* on_success) override;
|
| + RegExpEmpty* AsEmpty() override;
|
| + bool IsEmpty() override;
|
| + int min_match() override { return 0; }
|
| + int max_match() override { return 0; }
|
| };
|
|
|
|
|
| @@ -3177,7 +3175,7 @@ class AstVisitor BASE_EMBEDDED {
|
|
|
| #define DEFINE_AST_VISITOR_SUBCLASS_MEMBERS() \
|
| public: \
|
| - void Visit(AstNode* node) FINAL { \
|
| + void Visit(AstNode* node) final { \
|
| if (!CheckStackOverflow()) node->Accept(this); \
|
| } \
|
| \
|
| @@ -3210,7 +3208,7 @@ class AstVisitor BASE_EMBEDDED {
|
| // ----------------------------------------------------------------------------
|
| // AstNode factory
|
|
|
| -class AstNodeFactory FINAL BASE_EMBEDDED {
|
| +class AstNodeFactory final BASE_EMBEDDED {
|
| public:
|
| explicit AstNodeFactory(AstValueFactory* ast_value_factory)
|
| : zone_(ast_value_factory->zone()),
|
|
|