| Index: src/mips/lithium-mips.h | 
| diff --git a/src/mips/lithium-mips.h b/src/mips/lithium-mips.h | 
| index 46ed444e5b87bd9db9ecd9b5a2270f4d9eeb9897..c5d2eb28cea5072950a159c000c7980debb75c2c 100644 | 
| --- a/src/mips/lithium-mips.h | 
| +++ b/src/mips/lithium-mips.h | 
| @@ -162,9 +162,9 @@ class LCodeGen; | 
| V(WrapReceiver) | 
|  | 
| #define DECLARE_CONCRETE_INSTRUCTION(type, mnemonic)            \ | 
| -  Opcode opcode() const FINAL { return LInstruction::k##type; } \ | 
| -  void CompileToNative(LCodeGen* generator) FINAL;              \ | 
| -  const char* Mnemonic() const FINAL { return mnemonic; }       \ | 
| +  Opcode opcode() const final { return LInstruction::k##type; } \ | 
| +  void CompileToNative(LCodeGen* generator) final;              \ | 
| +  const char* Mnemonic() const final { return mnemonic; }       \ | 
| static L##type* cast(LInstruction* instr) {                   \ | 
| DCHECK(instr->Is##type());                                  \ | 
| return reinterpret_cast<L##type*>(instr);                   \ | 
| @@ -282,9 +282,9 @@ class LTemplateResultInstruction : public LInstruction { | 
| public: | 
| // Allow 0 or 1 output operands. | 
| STATIC_ASSERT(R == 0 || R == 1); | 
| -  bool HasResult() const FINAL { return R != 0 && result() != NULL; } | 
| +  bool HasResult() const final { return R != 0 && result() != NULL; } | 
| void set_result(LOperand* operand) { results_[0] = operand; } | 
| -  LOperand* result() const OVERRIDE { return results_[0]; } | 
| +  LOperand* result() const override { return results_[0]; } | 
|  | 
| protected: | 
| EmbeddedContainer<LOperand*, R> results_; | 
| @@ -302,11 +302,11 @@ class LTemplateInstruction : public LTemplateResultInstruction<R> { | 
|  | 
| private: | 
| // Iterator support. | 
| -  int InputCount() FINAL { return I; } | 
| -  LOperand* InputAt(int i) FINAL { return inputs_[i]; } | 
| +  int InputCount() final { return I; } | 
| +  LOperand* InputAt(int i) final { return inputs_[i]; } | 
|  | 
| -  int TempCount() FINAL { return T; } | 
| -  LOperand* TempAt(int i) FINAL { return temps_[i]; } | 
| +  int TempCount() final { return T; } | 
| +  LOperand* TempAt(int i) final { return temps_[i]; } | 
| }; | 
|  | 
|  | 
| @@ -321,8 +321,8 @@ class LGap : public LTemplateInstruction<0, 0, 0> { | 
| } | 
|  | 
| // Can't use the DECLARE-macro here because of sub-classes. | 
| -  bool IsGap() const FINAL { return true; } | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  bool IsGap() const final { return true; } | 
| +  void PrintDataTo(StringStream* stream) override; | 
| static LGap* cast(LInstruction* instr) { | 
| DCHECK(instr->IsGap()); | 
| return reinterpret_cast<LGap*>(instr); | 
| @@ -358,11 +358,11 @@ class LGap : public LTemplateInstruction<0, 0, 0> { | 
| }; | 
|  | 
|  | 
| -class LInstructionGap FINAL : public LGap { | 
| +class LInstructionGap final : public LGap { | 
| public: | 
| explicit LInstructionGap(HBasicBlock* block) : LGap(block) { } | 
|  | 
| -  bool HasInterestingComment(LCodeGen* gen) const OVERRIDE { | 
| +  bool HasInterestingComment(LCodeGen* gen) const override { | 
| return !IsRedundant(); | 
| } | 
|  | 
| @@ -370,14 +370,14 @@ class LInstructionGap FINAL : public LGap { | 
| }; | 
|  | 
|  | 
| -class LGoto FINAL : public LTemplateInstruction<0, 0, 0> { | 
| +class LGoto final : public LTemplateInstruction<0, 0, 0> { | 
| public: | 
| explicit LGoto(HBasicBlock* block) : block_(block) { } | 
|  | 
| -  bool HasInterestingComment(LCodeGen* gen) const OVERRIDE; | 
| +  bool HasInterestingComment(LCodeGen* gen) const override; | 
| DECLARE_CONCRETE_INSTRUCTION(Goto, "goto") | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| -  bool IsControl() const OVERRIDE { return true; } | 
| +  void PrintDataTo(StringStream* stream) override; | 
| +  bool IsControl() const override { return true; } | 
|  | 
| int block_id() const { return block_->block_id(); } | 
|  | 
| @@ -386,7 +386,7 @@ class LGoto FINAL : public LTemplateInstruction<0, 0, 0> { | 
| }; | 
|  | 
|  | 
| -class LLazyBailout FINAL : public LTemplateInstruction<0, 0, 0> { | 
| +class LLazyBailout final : public LTemplateInstruction<0, 0, 0> { | 
| public: | 
| LLazyBailout() : gap_instructions_size_(0) { } | 
|  | 
| @@ -402,14 +402,14 @@ class LLazyBailout FINAL : public LTemplateInstruction<0, 0, 0> { | 
| }; | 
|  | 
|  | 
| -class LDummy FINAL : public LTemplateInstruction<1, 0, 0> { | 
| +class LDummy final : public LTemplateInstruction<1, 0, 0> { | 
| public: | 
| LDummy() {} | 
| DECLARE_CONCRETE_INSTRUCTION(Dummy, "dummy") | 
| }; | 
|  | 
|  | 
| -class LDummyUse FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LDummyUse final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| explicit LDummyUse(LOperand* value) { | 
| inputs_[0] = value; | 
| @@ -418,23 +418,23 @@ class LDummyUse FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LDeoptimize FINAL : public LTemplateInstruction<0, 0, 0> { | 
| +class LDeoptimize final : public LTemplateInstruction<0, 0, 0> { | 
| public: | 
| -  bool IsControl() const OVERRIDE { return true; } | 
| +  bool IsControl() const override { return true; } | 
| DECLARE_CONCRETE_INSTRUCTION(Deoptimize, "deoptimize") | 
| DECLARE_HYDROGEN_ACCESSOR(Deoptimize) | 
| }; | 
|  | 
|  | 
| -class LLabel FINAL : public LGap { | 
| +class LLabel final : public LGap { | 
| public: | 
| explicit LLabel(HBasicBlock* block) | 
| : LGap(block), replacement_(NULL) { } | 
|  | 
| -  bool HasInterestingComment(LCodeGen* gen) const OVERRIDE { return false; } | 
| +  bool HasInterestingComment(LCodeGen* gen) const override { return false; } | 
| DECLARE_CONCRETE_INSTRUCTION(Label, "label") | 
|  | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
|  | 
| int block_id() const { return block()->block_id(); } | 
| bool is_loop_header() const { return block()->IsLoopHeader(); } | 
| @@ -450,14 +450,14 @@ class LLabel FINAL : public LGap { | 
| }; | 
|  | 
|  | 
| -class LParameter FINAL : public LTemplateInstruction<1, 0, 0> { | 
| +class LParameter final : public LTemplateInstruction<1, 0, 0> { | 
| public: | 
| -  bool HasInterestingComment(LCodeGen* gen) const OVERRIDE { return false; } | 
| +  bool HasInterestingComment(LCodeGen* gen) const override { return false; } | 
| DECLARE_CONCRETE_INSTRUCTION(Parameter, "parameter") | 
| }; | 
|  | 
|  | 
| -class LCallStub FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LCallStub final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| explicit LCallStub(LOperand* context) { | 
| inputs_[0] = context; | 
| @@ -470,7 +470,7 @@ class LCallStub FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LTailCallThroughMegamorphicCache FINAL | 
| +class LTailCallThroughMegamorphicCache final | 
| : public LTemplateInstruction<0, 3, 0> { | 
| public: | 
| LTailCallThroughMegamorphicCache(LOperand* context, LOperand* receiver, | 
| @@ -490,9 +490,9 @@ class LTailCallThroughMegamorphicCache FINAL | 
| }; | 
|  | 
|  | 
| -class LUnknownOSRValue FINAL : public LTemplateInstruction<1, 0, 0> { | 
| +class LUnknownOSRValue final : public LTemplateInstruction<1, 0, 0> { | 
| public: | 
| -  bool HasInterestingComment(LCodeGen* gen) const OVERRIDE { return false; } | 
| +  bool HasInterestingComment(LCodeGen* gen) const override { return false; } | 
| DECLARE_CONCRETE_INSTRUCTION(UnknownOSRValue, "unknown-osr-value") | 
| }; | 
|  | 
| @@ -502,7 +502,7 @@ class LControlInstruction : public LTemplateInstruction<0, I, T> { | 
| public: | 
| LControlInstruction() : false_label_(NULL), true_label_(NULL) { } | 
|  | 
| -  bool IsControl() const FINAL { return true; } | 
| +  bool IsControl() const final { return true; } | 
|  | 
| int SuccessorCount() { return hydrogen()->SuccessorCount(); } | 
| HBasicBlock* SuccessorAt(int i) { return hydrogen()->SuccessorAt(i); } | 
| @@ -541,7 +541,7 @@ class LControlInstruction : public LTemplateInstruction<0, I, T> { | 
| }; | 
|  | 
|  | 
| -class LWrapReceiver FINAL : public LTemplateInstruction<1, 2, 0> { | 
| +class LWrapReceiver final : public LTemplateInstruction<1, 2, 0> { | 
| public: | 
| LWrapReceiver(LOperand* receiver, LOperand* function) { | 
| inputs_[0] = receiver; | 
| @@ -556,7 +556,7 @@ class LWrapReceiver FINAL : public LTemplateInstruction<1, 2, 0> { | 
| }; | 
|  | 
|  | 
| -class LApplyArguments FINAL : public LTemplateInstruction<1, 4, 0> { | 
| +class LApplyArguments final : public LTemplateInstruction<1, 4, 0> { | 
| public: | 
| LApplyArguments(LOperand* function, | 
| LOperand* receiver, | 
| @@ -577,7 +577,7 @@ class LApplyArguments FINAL : public LTemplateInstruction<1, 4, 0> { | 
| }; | 
|  | 
|  | 
| -class LAccessArgumentsAt FINAL : public LTemplateInstruction<1, 3, 0> { | 
| +class LAccessArgumentsAt final : public LTemplateInstruction<1, 3, 0> { | 
| public: | 
| LAccessArgumentsAt(LOperand* arguments, LOperand* length, LOperand* index) { | 
| inputs_[0] = arguments; | 
| @@ -591,11 +591,11 @@ class LAccessArgumentsAt FINAL : public LTemplateInstruction<1, 3, 0> { | 
| LOperand* length() { return inputs_[1]; } | 
| LOperand* index() { return inputs_[2]; } | 
|  | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
| }; | 
|  | 
|  | 
| -class LArgumentsLength FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LArgumentsLength final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| explicit LArgumentsLength(LOperand* elements) { | 
| inputs_[0] = elements; | 
| @@ -607,14 +607,14 @@ class LArgumentsLength FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LArgumentsElements FINAL : public LTemplateInstruction<1, 0, 0> { | 
| +class LArgumentsElements final : public LTemplateInstruction<1, 0, 0> { | 
| public: | 
| DECLARE_CONCRETE_INSTRUCTION(ArgumentsElements, "arguments-elements") | 
| DECLARE_HYDROGEN_ACCESSOR(ArgumentsElements) | 
| }; | 
|  | 
|  | 
| -class LModByPowerOf2I FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LModByPowerOf2I final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| LModByPowerOf2I(LOperand* dividend, int32_t divisor) { | 
| inputs_[0] = dividend; | 
| @@ -632,7 +632,7 @@ class LModByPowerOf2I FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LModByConstI FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LModByConstI final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| LModByConstI(LOperand* dividend, int32_t divisor) { | 
| inputs_[0] = dividend; | 
| @@ -650,7 +650,7 @@ class LModByConstI FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LModI FINAL : public LTemplateInstruction<1, 2, 3> { | 
| +class LModI final : public LTemplateInstruction<1, 2, 3> { | 
| public: | 
| LModI(LOperand* left, | 
| LOperand* right) { | 
| @@ -666,7 +666,7 @@ class LModI FINAL : public LTemplateInstruction<1, 2, 3> { | 
| }; | 
|  | 
|  | 
| -class LDivByPowerOf2I FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LDivByPowerOf2I final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| LDivByPowerOf2I(LOperand* dividend, int32_t divisor) { | 
| inputs_[0] = dividend; | 
| @@ -684,7 +684,7 @@ class LDivByPowerOf2I FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LDivByConstI FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LDivByConstI final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| LDivByConstI(LOperand* dividend, int32_t divisor) { | 
| inputs_[0] = dividend; | 
| @@ -702,7 +702,7 @@ class LDivByConstI FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LDivI FINAL : public LTemplateInstruction<1, 2, 1> { | 
| +class LDivI final : public LTemplateInstruction<1, 2, 1> { | 
| public: | 
| LDivI(LOperand* dividend, LOperand* divisor, LOperand* temp) { | 
| inputs_[0] = dividend; | 
| @@ -719,7 +719,7 @@ class LDivI FINAL : public LTemplateInstruction<1, 2, 1> { | 
| }; | 
|  | 
|  | 
| -class LFlooringDivByPowerOf2I FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LFlooringDivByPowerOf2I final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| LFlooringDivByPowerOf2I(LOperand* dividend, int32_t divisor) { | 
| inputs_[0] = dividend; | 
| @@ -738,7 +738,7 @@ class LFlooringDivByPowerOf2I FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LFlooringDivByConstI FINAL : public LTemplateInstruction<1, 1, 2> { | 
| +class LFlooringDivByConstI final : public LTemplateInstruction<1, 1, 2> { | 
| public: | 
| LFlooringDivByConstI(LOperand* dividend, int32_t divisor, LOperand* temp) { | 
| inputs_[0] = dividend; | 
| @@ -758,7 +758,7 @@ class LFlooringDivByConstI FINAL : public LTemplateInstruction<1, 1, 2> { | 
| }; | 
|  | 
|  | 
| -class LFlooringDivI FINAL : public LTemplateInstruction<1, 2, 0> { | 
| +class LFlooringDivI final : public LTemplateInstruction<1, 2, 0> { | 
| public: | 
| LFlooringDivI(LOperand* dividend, LOperand* divisor) { | 
| inputs_[0] = dividend; | 
| @@ -773,7 +773,7 @@ class LFlooringDivI FINAL : public LTemplateInstruction<1, 2, 0> { | 
| }; | 
|  | 
|  | 
| -class LMulI FINAL : public LTemplateInstruction<1, 2, 0> { | 
| +class LMulI final : public LTemplateInstruction<1, 2, 0> { | 
| public: | 
| LMulI(LOperand* left, LOperand* right) { | 
| inputs_[0] = left; | 
| @@ -789,7 +789,7 @@ class LMulI FINAL : public LTemplateInstruction<1, 2, 0> { | 
|  | 
|  | 
| // Instruction for computing multiplier * multiplicand + addend. | 
| -class LMultiplyAddD FINAL : public LTemplateInstruction<1, 3, 0> { | 
| +class LMultiplyAddD final : public LTemplateInstruction<1, 3, 0> { | 
| public: | 
| LMultiplyAddD(LOperand* addend, LOperand* multiplier, | 
| LOperand* multiplicand) { | 
| @@ -806,13 +806,13 @@ class LMultiplyAddD FINAL : public LTemplateInstruction<1, 3, 0> { | 
| }; | 
|  | 
|  | 
| -class LDebugBreak FINAL : public LTemplateInstruction<0, 0, 0> { | 
| +class LDebugBreak final : public LTemplateInstruction<0, 0, 0> { | 
| public: | 
| DECLARE_CONCRETE_INSTRUCTION(DebugBreak, "break") | 
| }; | 
|  | 
|  | 
| -class LCompareNumericAndBranch FINAL : public LControlInstruction<2, 0> { | 
| +class LCompareNumericAndBranch final : public LControlInstruction<2, 0> { | 
| public: | 
| LCompareNumericAndBranch(LOperand* left, LOperand* right) { | 
| inputs_[0] = left; | 
| @@ -831,11 +831,11 @@ class LCompareNumericAndBranch FINAL : public LControlInstruction<2, 0> { | 
| return hydrogen()->representation().IsDouble(); | 
| } | 
|  | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
| }; | 
|  | 
|  | 
| -class LMathFloor FINAL : public LTemplateInstruction<1, 1, 1> { | 
| +class LMathFloor final : public LTemplateInstruction<1, 1, 1> { | 
| public: | 
| LMathFloor(LOperand* value, LOperand* temp) { | 
| inputs_[0] = value; | 
| @@ -850,7 +850,7 @@ class LMathFloor FINAL : public LTemplateInstruction<1, 1, 1> { | 
| }; | 
|  | 
|  | 
| -class LMathRound FINAL : public LTemplateInstruction<1, 1, 1> { | 
| +class LMathRound final : public LTemplateInstruction<1, 1, 1> { | 
| public: | 
| LMathRound(LOperand* value, LOperand* temp) { | 
| inputs_[0] = value; | 
| @@ -865,7 +865,7 @@ class LMathRound FINAL : public LTemplateInstruction<1, 1, 1> { | 
| }; | 
|  | 
|  | 
| -class LMathFround FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LMathFround final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| explicit LMathFround(LOperand* value) { inputs_[0] = value; } | 
|  | 
| @@ -875,7 +875,7 @@ class LMathFround FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LMathAbs FINAL : public LTemplateInstruction<1, 2, 0> { | 
| +class LMathAbs final : public LTemplateInstruction<1, 2, 0> { | 
| public: | 
| LMathAbs(LOperand* context, LOperand* value) { | 
| inputs_[1] = context; | 
| @@ -890,7 +890,7 @@ class LMathAbs FINAL : public LTemplateInstruction<1, 2, 0> { | 
| }; | 
|  | 
|  | 
| -class LMathLog FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LMathLog final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| explicit LMathLog(LOperand* value) { | 
| inputs_[0] = value; | 
| @@ -902,7 +902,7 @@ class LMathLog FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LMathClz32 FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LMathClz32 final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| explicit LMathClz32(LOperand* value) { | 
| inputs_[0] = value; | 
| @@ -914,7 +914,7 @@ class LMathClz32 FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LMathExp FINAL : public LTemplateInstruction<1, 1, 3> { | 
| +class LMathExp final : public LTemplateInstruction<1, 1, 3> { | 
| public: | 
| LMathExp(LOperand* value, | 
| LOperand* double_temp, | 
| @@ -936,7 +936,7 @@ class LMathExp FINAL : public LTemplateInstruction<1, 1, 3> { | 
| }; | 
|  | 
|  | 
| -class LMathSqrt FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LMathSqrt final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| explicit LMathSqrt(LOperand* value) { | 
| inputs_[0] = value; | 
| @@ -948,7 +948,7 @@ class LMathSqrt FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LMathPowHalf FINAL : public LTemplateInstruction<1, 1, 1> { | 
| +class LMathPowHalf final : public LTemplateInstruction<1, 1, 1> { | 
| public: | 
| LMathPowHalf(LOperand* value, LOperand* temp) { | 
| inputs_[0] = value; | 
| @@ -962,7 +962,7 @@ class LMathPowHalf FINAL : public LTemplateInstruction<1, 1, 1> { | 
| }; | 
|  | 
|  | 
| -class LCmpObjectEqAndBranch FINAL : public LControlInstruction<2, 0> { | 
| +class LCmpObjectEqAndBranch final : public LControlInstruction<2, 0> { | 
| public: | 
| LCmpObjectEqAndBranch(LOperand* left, LOperand* right) { | 
| inputs_[0] = left; | 
| @@ -977,7 +977,7 @@ class LCmpObjectEqAndBranch FINAL : public LControlInstruction<2, 0> { | 
| }; | 
|  | 
|  | 
| -class LCmpHoleAndBranch FINAL : public LControlInstruction<1, 0> { | 
| +class LCmpHoleAndBranch final : public LControlInstruction<1, 0> { | 
| public: | 
| explicit LCmpHoleAndBranch(LOperand* object) { | 
| inputs_[0] = object; | 
| @@ -990,7 +990,7 @@ class LCmpHoleAndBranch FINAL : public LControlInstruction<1, 0> { | 
| }; | 
|  | 
|  | 
| -class LCompareMinusZeroAndBranch FINAL : public LControlInstruction<1, 1> { | 
| +class LCompareMinusZeroAndBranch final : public LControlInstruction<1, 1> { | 
| public: | 
| LCompareMinusZeroAndBranch(LOperand* value, LOperand* temp) { | 
| inputs_[0] = value; | 
| @@ -1006,7 +1006,7 @@ class LCompareMinusZeroAndBranch FINAL : public LControlInstruction<1, 1> { | 
| }; | 
|  | 
|  | 
| -class LIsObjectAndBranch FINAL : public LControlInstruction<1, 1> { | 
| +class LIsObjectAndBranch final : public LControlInstruction<1, 1> { | 
| public: | 
| LIsObjectAndBranch(LOperand* value, LOperand* temp) { | 
| inputs_[0] = value; | 
| @@ -1019,11 +1019,11 @@ class LIsObjectAndBranch FINAL : public LControlInstruction<1, 1> { | 
| DECLARE_CONCRETE_INSTRUCTION(IsObjectAndBranch, "is-object-and-branch") | 
| DECLARE_HYDROGEN_ACCESSOR(IsObjectAndBranch) | 
|  | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
| }; | 
|  | 
|  | 
| -class LIsStringAndBranch FINAL : public LControlInstruction<1, 1> { | 
| +class LIsStringAndBranch final : public LControlInstruction<1, 1> { | 
| public: | 
| LIsStringAndBranch(LOperand* value, LOperand* temp) { | 
| inputs_[0] = value; | 
| @@ -1036,11 +1036,11 @@ class LIsStringAndBranch FINAL : public LControlInstruction<1, 1> { | 
| DECLARE_CONCRETE_INSTRUCTION(IsStringAndBranch, "is-string-and-branch") | 
| DECLARE_HYDROGEN_ACCESSOR(IsStringAndBranch) | 
|  | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
| }; | 
|  | 
|  | 
| -class LIsSmiAndBranch FINAL : public LControlInstruction<1, 0> { | 
| +class LIsSmiAndBranch final : public LControlInstruction<1, 0> { | 
| public: | 
| explicit LIsSmiAndBranch(LOperand* value) { | 
| inputs_[0] = value; | 
| @@ -1051,11 +1051,11 @@ class LIsSmiAndBranch FINAL : public LControlInstruction<1, 0> { | 
| DECLARE_CONCRETE_INSTRUCTION(IsSmiAndBranch, "is-smi-and-branch") | 
| DECLARE_HYDROGEN_ACCESSOR(IsSmiAndBranch) | 
|  | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
| }; | 
|  | 
|  | 
| -class LIsUndetectableAndBranch FINAL : public LControlInstruction<1, 1> { | 
| +class LIsUndetectableAndBranch final : public LControlInstruction<1, 1> { | 
| public: | 
| explicit LIsUndetectableAndBranch(LOperand* value, LOperand* temp) { | 
| inputs_[0] = value; | 
| @@ -1069,11 +1069,11 @@ class LIsUndetectableAndBranch FINAL : public LControlInstruction<1, 1> { | 
| "is-undetectable-and-branch") | 
| DECLARE_HYDROGEN_ACCESSOR(IsUndetectableAndBranch) | 
|  | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
| }; | 
|  | 
|  | 
| -class LStringCompareAndBranch FINAL : public LControlInstruction<3, 0> { | 
| +class LStringCompareAndBranch final : public LControlInstruction<3, 0> { | 
| public: | 
| LStringCompareAndBranch(LOperand* context, LOperand* left, LOperand* right) { | 
| inputs_[0] = context; | 
| @@ -1091,11 +1091,11 @@ class LStringCompareAndBranch FINAL : public LControlInstruction<3, 0> { | 
|  | 
| Token::Value op() const { return hydrogen()->token(); } | 
|  | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
| }; | 
|  | 
|  | 
| -class LHasInstanceTypeAndBranch FINAL : public LControlInstruction<1, 0> { | 
| +class LHasInstanceTypeAndBranch final : public LControlInstruction<1, 0> { | 
| public: | 
| explicit LHasInstanceTypeAndBranch(LOperand* value) { | 
| inputs_[0] = value; | 
| @@ -1107,11 +1107,11 @@ class LHasInstanceTypeAndBranch FINAL : public LControlInstruction<1, 0> { | 
| "has-instance-type-and-branch") | 
| DECLARE_HYDROGEN_ACCESSOR(HasInstanceTypeAndBranch) | 
|  | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
| }; | 
|  | 
|  | 
| -class LGetCachedArrayIndex FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LGetCachedArrayIndex final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| explicit LGetCachedArrayIndex(LOperand* value) { | 
| inputs_[0] = value; | 
| @@ -1124,8 +1124,7 @@ class LGetCachedArrayIndex FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LHasCachedArrayIndexAndBranch FINAL | 
| -    : public LControlInstruction<1, 0> { | 
| +class LHasCachedArrayIndexAndBranch final : public LControlInstruction<1, 0> { | 
| public: | 
| explicit LHasCachedArrayIndexAndBranch(LOperand* value) { | 
| inputs_[0] = value; | 
| @@ -1137,11 +1136,11 @@ class LHasCachedArrayIndexAndBranch FINAL | 
| "has-cached-array-index-and-branch") | 
| DECLARE_HYDROGEN_ACCESSOR(HasCachedArrayIndexAndBranch) | 
|  | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
| }; | 
|  | 
|  | 
| -class LClassOfTestAndBranch FINAL : public LControlInstruction<1, 1> { | 
| +class LClassOfTestAndBranch final : public LControlInstruction<1, 1> { | 
| public: | 
| LClassOfTestAndBranch(LOperand* value, LOperand* temp) { | 
| inputs_[0] = value; | 
| @@ -1155,11 +1154,11 @@ class LClassOfTestAndBranch FINAL : public LControlInstruction<1, 1> { | 
| "class-of-test-and-branch") | 
| DECLARE_HYDROGEN_ACCESSOR(ClassOfTestAndBranch) | 
|  | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
| }; | 
|  | 
|  | 
| -class LCmpT FINAL : public LTemplateInstruction<1, 3, 0> { | 
| +class LCmpT final : public LTemplateInstruction<1, 3, 0> { | 
| public: | 
| LCmpT(LOperand* context, LOperand* left, LOperand* right) { | 
| inputs_[0] = context; | 
| @@ -1178,7 +1177,7 @@ class LCmpT FINAL : public LTemplateInstruction<1, 3, 0> { | 
| }; | 
|  | 
|  | 
| -class LInstanceOf FINAL : public LTemplateInstruction<1, 3, 0> { | 
| +class LInstanceOf final : public LTemplateInstruction<1, 3, 0> { | 
| public: | 
| LInstanceOf(LOperand* context, LOperand* left, LOperand* right) { | 
| inputs_[0] = context; | 
| @@ -1194,7 +1193,7 @@ class LInstanceOf FINAL : public LTemplateInstruction<1, 3, 0> { | 
| }; | 
|  | 
|  | 
| -class LInstanceOfKnownGlobal FINAL : public LTemplateInstruction<1, 2, 1> { | 
| +class LInstanceOfKnownGlobal final : public LTemplateInstruction<1, 2, 1> { | 
| public: | 
| LInstanceOfKnownGlobal(LOperand* context, LOperand* value, LOperand* temp) { | 
| inputs_[0] = context; | 
| @@ -1215,7 +1214,7 @@ class LInstanceOfKnownGlobal FINAL : public LTemplateInstruction<1, 2, 1> { | 
| return lazy_deopt_env_; | 
| } | 
| virtual void SetDeferredLazyDeoptimizationEnvironment( | 
| -      LEnvironment* env) OVERRIDE { | 
| +      LEnvironment* env) override { | 
| lazy_deopt_env_ = env; | 
| } | 
|  | 
| @@ -1224,7 +1223,7 @@ class LInstanceOfKnownGlobal FINAL : public LTemplateInstruction<1, 2, 1> { | 
| }; | 
|  | 
|  | 
| -class LBoundsCheck FINAL : public LTemplateInstruction<0, 2, 0> { | 
| +class LBoundsCheck final : public LTemplateInstruction<0, 2, 0> { | 
| public: | 
| LBoundsCheck(LOperand* index, LOperand* length) { | 
| inputs_[0] = index; | 
| @@ -1239,7 +1238,7 @@ class LBoundsCheck FINAL : public LTemplateInstruction<0, 2, 0> { | 
| }; | 
|  | 
|  | 
| -class LBitI FINAL : public LTemplateInstruction<1, 2, 0> { | 
| +class LBitI final : public LTemplateInstruction<1, 2, 0> { | 
| public: | 
| LBitI(LOperand* left, LOperand* right) { | 
| inputs_[0] = left; | 
| @@ -1256,7 +1255,7 @@ class LBitI FINAL : public LTemplateInstruction<1, 2, 0> { | 
| }; | 
|  | 
|  | 
| -class LShiftI FINAL : public LTemplateInstruction<1, 2, 0> { | 
| +class LShiftI final : public LTemplateInstruction<1, 2, 0> { | 
| public: | 
| LShiftI(Token::Value op, LOperand* left, LOperand* right, bool can_deopt) | 
| : op_(op), can_deopt_(can_deopt) { | 
| @@ -1277,7 +1276,7 @@ class LShiftI FINAL : public LTemplateInstruction<1, 2, 0> { | 
| }; | 
|  | 
|  | 
| -class LSubI FINAL : public LTemplateInstruction<1, 2, 0> { | 
| +class LSubI final : public LTemplateInstruction<1, 2, 0> { | 
| public: | 
| LSubI(LOperand* left, LOperand* right) { | 
| inputs_[0] = left; | 
| @@ -1292,7 +1291,7 @@ class LSubI FINAL : public LTemplateInstruction<1, 2, 0> { | 
| }; | 
|  | 
|  | 
| -class LConstantI FINAL : public LTemplateInstruction<1, 0, 0> { | 
| +class LConstantI final : public LTemplateInstruction<1, 0, 0> { | 
| public: | 
| DECLARE_CONCRETE_INSTRUCTION(ConstantI, "constant-i") | 
| DECLARE_HYDROGEN_ACCESSOR(Constant) | 
| @@ -1301,7 +1300,7 @@ class LConstantI FINAL : public LTemplateInstruction<1, 0, 0> { | 
| }; | 
|  | 
|  | 
| -class LConstantS FINAL : public LTemplateInstruction<1, 0, 0> { | 
| +class LConstantS final : public LTemplateInstruction<1, 0, 0> { | 
| public: | 
| DECLARE_CONCRETE_INSTRUCTION(ConstantS, "constant-s") | 
| DECLARE_HYDROGEN_ACCESSOR(Constant) | 
| @@ -1310,7 +1309,7 @@ class LConstantS FINAL : public LTemplateInstruction<1, 0, 0> { | 
| }; | 
|  | 
|  | 
| -class LConstantD FINAL : public LTemplateInstruction<1, 0, 0> { | 
| +class LConstantD final : public LTemplateInstruction<1, 0, 0> { | 
| public: | 
| DECLARE_CONCRETE_INSTRUCTION(ConstantD, "constant-d") | 
| DECLARE_HYDROGEN_ACCESSOR(Constant) | 
| @@ -1320,7 +1319,7 @@ class LConstantD FINAL : public LTemplateInstruction<1, 0, 0> { | 
| }; | 
|  | 
|  | 
| -class LConstantE FINAL : public LTemplateInstruction<1, 0, 0> { | 
| +class LConstantE final : public LTemplateInstruction<1, 0, 0> { | 
| public: | 
| DECLARE_CONCRETE_INSTRUCTION(ConstantE, "constant-e") | 
| DECLARE_HYDROGEN_ACCESSOR(Constant) | 
| @@ -1331,7 +1330,7 @@ class LConstantE FINAL : public LTemplateInstruction<1, 0, 0> { | 
| }; | 
|  | 
|  | 
| -class LConstantT FINAL : public LTemplateInstruction<1, 0, 0> { | 
| +class LConstantT final : public LTemplateInstruction<1, 0, 0> { | 
| public: | 
| DECLARE_CONCRETE_INSTRUCTION(ConstantT, "constant-t") | 
| DECLARE_HYDROGEN_ACCESSOR(Constant) | 
| @@ -1342,7 +1341,7 @@ class LConstantT FINAL : public LTemplateInstruction<1, 0, 0> { | 
| }; | 
|  | 
|  | 
| -class LBranch FINAL : public LControlInstruction<1, 0> { | 
| +class LBranch final : public LControlInstruction<1, 0> { | 
| public: | 
| explicit LBranch(LOperand* value) { | 
| inputs_[0] = value; | 
| @@ -1353,11 +1352,11 @@ class LBranch FINAL : public LControlInstruction<1, 0> { | 
| DECLARE_CONCRETE_INSTRUCTION(Branch, "branch") | 
| DECLARE_HYDROGEN_ACCESSOR(Branch) | 
|  | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
| }; | 
|  | 
|  | 
| -class LCmpMapAndBranch FINAL : public LControlInstruction<1, 1> { | 
| +class LCmpMapAndBranch final : public LControlInstruction<1, 1> { | 
| public: | 
| LCmpMapAndBranch(LOperand* value, LOperand* temp) { | 
| inputs_[0] = value; | 
| @@ -1374,7 +1373,7 @@ class LCmpMapAndBranch FINAL : public LControlInstruction<1, 1> { | 
| }; | 
|  | 
|  | 
| -class LMapEnumLength FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LMapEnumLength final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| explicit LMapEnumLength(LOperand* value) { | 
| inputs_[0] = value; | 
| @@ -1386,7 +1385,7 @@ class LMapEnumLength FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LDateField FINAL : public LTemplateInstruction<1, 1, 1> { | 
| +class LDateField final : public LTemplateInstruction<1, 1, 1> { | 
| public: | 
| LDateField(LOperand* date, LOperand* temp, Smi* index) : index_(index) { | 
| inputs_[0] = date; | 
| @@ -1405,7 +1404,7 @@ class LDateField FINAL : public LTemplateInstruction<1, 1, 1> { | 
| }; | 
|  | 
|  | 
| -class LSeqStringGetChar FINAL : public LTemplateInstruction<1, 2, 0> { | 
| +class LSeqStringGetChar final : public LTemplateInstruction<1, 2, 0> { | 
| public: | 
| LSeqStringGetChar(LOperand* string, LOperand* index) { | 
| inputs_[0] = string; | 
| @@ -1420,7 +1419,7 @@ class LSeqStringGetChar FINAL : public LTemplateInstruction<1, 2, 0> { | 
| }; | 
|  | 
|  | 
| -class LSeqStringSetChar FINAL : public LTemplateInstruction<1, 4, 0> { | 
| +class LSeqStringSetChar final : public LTemplateInstruction<1, 4, 0> { | 
| public: | 
| LSeqStringSetChar(LOperand* context, | 
| LOperand* string, | 
| @@ -1441,7 +1440,7 @@ class LSeqStringSetChar FINAL : public LTemplateInstruction<1, 4, 0> { | 
| }; | 
|  | 
|  | 
| -class LAddI FINAL : public LTemplateInstruction<1, 2, 0> { | 
| +class LAddI final : public LTemplateInstruction<1, 2, 0> { | 
| public: | 
| LAddI(LOperand* left, LOperand* right) { | 
| inputs_[0] = left; | 
| @@ -1456,7 +1455,7 @@ class LAddI FINAL : public LTemplateInstruction<1, 2, 0> { | 
| }; | 
|  | 
|  | 
| -class LMathMinMax FINAL : public LTemplateInstruction<1, 2, 0> { | 
| +class LMathMinMax final : public LTemplateInstruction<1, 2, 0> { | 
| public: | 
| LMathMinMax(LOperand* left, LOperand* right) { | 
| inputs_[0] = left; | 
| @@ -1471,7 +1470,7 @@ class LMathMinMax FINAL : public LTemplateInstruction<1, 2, 0> { | 
| }; | 
|  | 
|  | 
| -class LPower FINAL : public LTemplateInstruction<1, 2, 0> { | 
| +class LPower final : public LTemplateInstruction<1, 2, 0> { | 
| public: | 
| LPower(LOperand* left, LOperand* right) { | 
| inputs_[0] = left; | 
| @@ -1486,7 +1485,7 @@ class LPower FINAL : public LTemplateInstruction<1, 2, 0> { | 
| }; | 
|  | 
|  | 
| -class LArithmeticD FINAL : public LTemplateInstruction<1, 2, 0> { | 
| +class LArithmeticD final : public LTemplateInstruction<1, 2, 0> { | 
| public: | 
| LArithmeticD(Token::Value op, LOperand* left, LOperand* right) | 
| : op_(op) { | 
| @@ -1498,16 +1497,16 @@ class LArithmeticD FINAL : public LTemplateInstruction<1, 2, 0> { | 
| LOperand* left() { return inputs_[0]; } | 
| LOperand* right() { return inputs_[1]; } | 
|  | 
| -  Opcode opcode() const OVERRIDE { return LInstruction::kArithmeticD; } | 
| -  void CompileToNative(LCodeGen* generator) OVERRIDE; | 
| -  const char* Mnemonic() const OVERRIDE; | 
| +  Opcode opcode() const override { return LInstruction::kArithmeticD; } | 
| +  void CompileToNative(LCodeGen* generator) override; | 
| +  const char* Mnemonic() const override; | 
|  | 
| private: | 
| Token::Value op_; | 
| }; | 
|  | 
|  | 
| -class LArithmeticT FINAL : public LTemplateInstruction<1, 3, 0> { | 
| +class LArithmeticT final : public LTemplateInstruction<1, 3, 0> { | 
| public: | 
| LArithmeticT(Token::Value op, | 
| LOperand* context, | 
| @@ -1524,16 +1523,16 @@ class LArithmeticT FINAL : public LTemplateInstruction<1, 3, 0> { | 
| LOperand* right() { return inputs_[2]; } | 
| Token::Value op() const { return op_; } | 
|  | 
| -  Opcode opcode() const FINAL { return LInstruction::kArithmeticT; } | 
| -  void CompileToNative(LCodeGen* generator) OVERRIDE; | 
| -  const char* Mnemonic() const OVERRIDE; | 
| +  Opcode opcode() const final { return LInstruction::kArithmeticT; } | 
| +  void CompileToNative(LCodeGen* generator) override; | 
| +  const char* Mnemonic() const override; | 
|  | 
| private: | 
| Token::Value op_; | 
| }; | 
|  | 
|  | 
| -class LReturn FINAL : public LTemplateInstruction<0, 3, 0> { | 
| +class LReturn final : public LTemplateInstruction<0, 3, 0> { | 
| public: | 
| LReturn(LOperand* value, LOperand* context, LOperand* parameter_count) { | 
| inputs_[0] = value; | 
| @@ -1556,7 +1555,7 @@ class LReturn FINAL : public LTemplateInstruction<0, 3, 0> { | 
| }; | 
|  | 
|  | 
| -class LLoadNamedField FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LLoadNamedField final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| explicit LLoadNamedField(LOperand* object) { | 
| inputs_[0] = object; | 
| @@ -1569,7 +1568,7 @@ class LLoadNamedField FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LLoadNamedGeneric FINAL : public LTemplateInstruction<1, 2, 1> { | 
| +class LLoadNamedGeneric final : public LTemplateInstruction<1, 2, 1> { | 
| public: | 
| LLoadNamedGeneric(LOperand* context, LOperand* object, LOperand* vector) { | 
| inputs_[0] = context; | 
| @@ -1588,7 +1587,7 @@ class LLoadNamedGeneric FINAL : public LTemplateInstruction<1, 2, 1> { | 
| }; | 
|  | 
|  | 
| -class LLoadFunctionPrototype FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LLoadFunctionPrototype final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| explicit LLoadFunctionPrototype(LOperand* function) { | 
| inputs_[0] = function; | 
| @@ -1601,7 +1600,7 @@ class LLoadFunctionPrototype FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LLoadRoot FINAL : public LTemplateInstruction<1, 0, 0> { | 
| +class LLoadRoot final : public LTemplateInstruction<1, 0, 0> { | 
| public: | 
| DECLARE_CONCRETE_INSTRUCTION(LoadRoot, "load-root") | 
| DECLARE_HYDROGEN_ACCESSOR(LoadRoot) | 
| @@ -1610,7 +1609,7 @@ class LLoadRoot FINAL : public LTemplateInstruction<1, 0, 0> { | 
| }; | 
|  | 
|  | 
| -class LLoadKeyed FINAL : public LTemplateInstruction<1, 2, 0> { | 
| +class LLoadKeyed final : public LTemplateInstruction<1, 2, 0> { | 
| public: | 
| LLoadKeyed(LOperand* elements, LOperand* key) { | 
| inputs_[0] = elements; | 
| @@ -1635,12 +1634,12 @@ class LLoadKeyed FINAL : public LTemplateInstruction<1, 2, 0> { | 
| DECLARE_CONCRETE_INSTRUCTION(LoadKeyed, "load-keyed") | 
| DECLARE_HYDROGEN_ACCESSOR(LoadKeyed) | 
|  | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
| uint32_t base_offset() const { return hydrogen()->base_offset(); } | 
| }; | 
|  | 
|  | 
| -class LLoadKeyedGeneric FINAL : public LTemplateInstruction<1, 3, 1> { | 
| +class LLoadKeyedGeneric final : public LTemplateInstruction<1, 3, 1> { | 
| public: | 
| LLoadKeyedGeneric(LOperand* context, LOperand* object, LOperand* key, | 
| LOperand* vector) { | 
| @@ -1660,7 +1659,7 @@ class LLoadKeyedGeneric FINAL : public LTemplateInstruction<1, 3, 1> { | 
| }; | 
|  | 
|  | 
| -class LLoadGlobalGeneric FINAL : public LTemplateInstruction<1, 2, 1> { | 
| +class LLoadGlobalGeneric final : public LTemplateInstruction<1, 2, 1> { | 
| public: | 
| LLoadGlobalGeneric(LOperand* context, LOperand* global_object, | 
| LOperand* vector) { | 
| @@ -1681,7 +1680,7 @@ class LLoadGlobalGeneric FINAL : public LTemplateInstruction<1, 2, 1> { | 
| }; | 
|  | 
|  | 
| -class LLoadContextSlot FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LLoadContextSlot final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| explicit LLoadContextSlot(LOperand* context) { | 
| inputs_[0] = context; | 
| @@ -1694,11 +1693,11 @@ class LLoadContextSlot FINAL : public LTemplateInstruction<1, 1, 0> { | 
|  | 
| int slot_index() { return hydrogen()->slot_index(); } | 
|  | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
| }; | 
|  | 
|  | 
| -class LStoreContextSlot FINAL : public LTemplateInstruction<0, 2, 0> { | 
| +class LStoreContextSlot final : public LTemplateInstruction<0, 2, 0> { | 
| public: | 
| LStoreContextSlot(LOperand* context, LOperand* value) { | 
| inputs_[0] = context; | 
| @@ -1713,11 +1712,11 @@ class LStoreContextSlot FINAL : public LTemplateInstruction<0, 2, 0> { | 
|  | 
| int slot_index() { return hydrogen()->slot_index(); } | 
|  | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
| }; | 
|  | 
|  | 
| -class LPushArgument FINAL : public LTemplateInstruction<0, 1, 0> { | 
| +class LPushArgument final : public LTemplateInstruction<0, 1, 0> { | 
| public: | 
| explicit LPushArgument(LOperand* value) { | 
| inputs_[0] = value; | 
| @@ -1729,7 +1728,7 @@ class LPushArgument FINAL : public LTemplateInstruction<0, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LDrop FINAL : public LTemplateInstruction<0, 0, 0> { | 
| +class LDrop final : public LTemplateInstruction<0, 0, 0> { | 
| public: | 
| explicit LDrop(int count) : count_(count) { } | 
|  | 
| @@ -1742,7 +1741,7 @@ class LDrop FINAL : public LTemplateInstruction<0, 0, 0> { | 
| }; | 
|  | 
|  | 
| -class LStoreCodeEntry FINAL: public LTemplateInstruction<0, 2, 0> { | 
| +class LStoreCodeEntry final : public LTemplateInstruction<0, 2, 0> { | 
| public: | 
| LStoreCodeEntry(LOperand* function, LOperand* code_object) { | 
| inputs_[0] = function; | 
| @@ -1752,14 +1751,14 @@ class LStoreCodeEntry FINAL: public LTemplateInstruction<0, 2, 0> { | 
| LOperand* function() { return inputs_[0]; } | 
| LOperand* code_object() { return inputs_[1]; } | 
|  | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
|  | 
| DECLARE_CONCRETE_INSTRUCTION(StoreCodeEntry, "store-code-entry") | 
| DECLARE_HYDROGEN_ACCESSOR(StoreCodeEntry) | 
| }; | 
|  | 
|  | 
| -class LInnerAllocatedObject FINAL: public LTemplateInstruction<1, 2, 0> { | 
| +class LInnerAllocatedObject final : public LTemplateInstruction<1, 2, 0> { | 
| public: | 
| LInnerAllocatedObject(LOperand* base_object, LOperand* offset) { | 
| inputs_[0] = base_object; | 
| @@ -1769,27 +1768,27 @@ class LInnerAllocatedObject FINAL: public LTemplateInstruction<1, 2, 0> { | 
| LOperand* base_object() const { return inputs_[0]; } | 
| LOperand* offset() const { return inputs_[1]; } | 
|  | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
|  | 
| DECLARE_CONCRETE_INSTRUCTION(InnerAllocatedObject, "inner-allocated-object") | 
| }; | 
|  | 
|  | 
| -class LThisFunction FINAL : public LTemplateInstruction<1, 0, 0> { | 
| +class LThisFunction final : public LTemplateInstruction<1, 0, 0> { | 
| public: | 
| DECLARE_CONCRETE_INSTRUCTION(ThisFunction, "this-function") | 
| DECLARE_HYDROGEN_ACCESSOR(ThisFunction) | 
| }; | 
|  | 
|  | 
| -class LContext FINAL : public LTemplateInstruction<1, 0, 0> { | 
| +class LContext final : public LTemplateInstruction<1, 0, 0> { | 
| public: | 
| DECLARE_CONCRETE_INSTRUCTION(Context, "context") | 
| DECLARE_HYDROGEN_ACCESSOR(Context) | 
| }; | 
|  | 
|  | 
| -class LDeclareGlobals FINAL : public LTemplateInstruction<0, 1, 0> { | 
| +class LDeclareGlobals final : public LTemplateInstruction<0, 1, 0> { | 
| public: | 
| explicit LDeclareGlobals(LOperand* context) { | 
| inputs_[0] = context; | 
| @@ -1802,7 +1801,7 @@ class LDeclareGlobals FINAL : public LTemplateInstruction<0, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LCallJSFunction FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LCallJSFunction final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| explicit LCallJSFunction(LOperand* function) { | 
| inputs_[0] = function; | 
| @@ -1813,13 +1812,13 @@ class LCallJSFunction FINAL : public LTemplateInstruction<1, 1, 0> { | 
| DECLARE_CONCRETE_INSTRUCTION(CallJSFunction, "call-js-function") | 
| DECLARE_HYDROGEN_ACCESSOR(CallJSFunction) | 
|  | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
|  | 
| int arity() const { return hydrogen()->argument_count() - 1; } | 
| }; | 
|  | 
|  | 
| -class LCallWithDescriptor FINAL : public LTemplateResultInstruction<1> { | 
| +class LCallWithDescriptor final : public LTemplateResultInstruction<1> { | 
| public: | 
| LCallWithDescriptor(CallInterfaceDescriptor descriptor, | 
| const ZoneList<LOperand*>& operands, Zone* zone) | 
| @@ -1838,7 +1837,7 @@ class LCallWithDescriptor FINAL : public LTemplateResultInstruction<1> { | 
| private: | 
| DECLARE_CONCRETE_INSTRUCTION(CallWithDescriptor, "call-with-descriptor") | 
|  | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
|  | 
| int arity() const { return hydrogen()->argument_count() - 1; } | 
|  | 
| @@ -1846,15 +1845,15 @@ class LCallWithDescriptor FINAL : public LTemplateResultInstruction<1> { | 
| ZoneList<LOperand*> inputs_; | 
|  | 
| // Iterator support. | 
| -  int InputCount() FINAL { return inputs_.length(); } | 
| -  LOperand* InputAt(int i) FINAL { return inputs_[i]; } | 
| +  int InputCount() final { return inputs_.length(); } | 
| +  LOperand* InputAt(int i) final { return inputs_[i]; } | 
|  | 
| -  int TempCount() FINAL { return 0; } | 
| -  LOperand* TempAt(int i) FINAL { return NULL; } | 
| +  int TempCount() final { return 0; } | 
| +  LOperand* TempAt(int i) final { return NULL; } | 
| }; | 
|  | 
|  | 
| -class LInvokeFunction FINAL : public LTemplateInstruction<1, 2, 0> { | 
| +class LInvokeFunction final : public LTemplateInstruction<1, 2, 0> { | 
| public: | 
| LInvokeFunction(LOperand* context, LOperand* function) { | 
| inputs_[0] = context; | 
| @@ -1867,13 +1866,13 @@ class LInvokeFunction FINAL : public LTemplateInstruction<1, 2, 0> { | 
| DECLARE_CONCRETE_INSTRUCTION(InvokeFunction, "invoke-function") | 
| DECLARE_HYDROGEN_ACCESSOR(InvokeFunction) | 
|  | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
|  | 
| int arity() const { return hydrogen()->argument_count() - 1; } | 
| }; | 
|  | 
|  | 
| -class LCallFunction FINAL : public LTemplateInstruction<1, 2, 2> { | 
| +class LCallFunction final : public LTemplateInstruction<1, 2, 2> { | 
| public: | 
| LCallFunction(LOperand* context, LOperand* function, LOperand* slot, | 
| LOperand* vector) { | 
| @@ -1892,11 +1891,11 @@ class LCallFunction FINAL : public LTemplateInstruction<1, 2, 2> { | 
| DECLARE_HYDROGEN_ACCESSOR(CallFunction) | 
|  | 
| int arity() const { return hydrogen()->argument_count() - 1; } | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
| }; | 
|  | 
|  | 
| -class LCallNew FINAL : public LTemplateInstruction<1, 2, 0> { | 
| +class LCallNew final : public LTemplateInstruction<1, 2, 0> { | 
| public: | 
| LCallNew(LOperand* context, LOperand* constructor) { | 
| inputs_[0] = context; | 
| @@ -1909,13 +1908,13 @@ class LCallNew FINAL : public LTemplateInstruction<1, 2, 0> { | 
| DECLARE_CONCRETE_INSTRUCTION(CallNew, "call-new") | 
| DECLARE_HYDROGEN_ACCESSOR(CallNew) | 
|  | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
|  | 
| int arity() const { return hydrogen()->argument_count() - 1; } | 
| }; | 
|  | 
|  | 
| -class LCallNewArray FINAL : public LTemplateInstruction<1, 2, 0> { | 
| +class LCallNewArray final : public LTemplateInstruction<1, 2, 0> { | 
| public: | 
| LCallNewArray(LOperand* context, LOperand* constructor) { | 
| inputs_[0] = context; | 
| @@ -1928,13 +1927,13 @@ class LCallNewArray FINAL : public LTemplateInstruction<1, 2, 0> { | 
| DECLARE_CONCRETE_INSTRUCTION(CallNewArray, "call-new-array") | 
| DECLARE_HYDROGEN_ACCESSOR(CallNewArray) | 
|  | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
|  | 
| int arity() const { return hydrogen()->argument_count() - 1; } | 
| }; | 
|  | 
|  | 
| -class LCallRuntime FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LCallRuntime final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| explicit LCallRuntime(LOperand* context) { | 
| inputs_[0] = context; | 
| @@ -1945,7 +1944,7 @@ class LCallRuntime FINAL : public LTemplateInstruction<1, 1, 0> { | 
| DECLARE_CONCRETE_INSTRUCTION(CallRuntime, "call-runtime") | 
| DECLARE_HYDROGEN_ACCESSOR(CallRuntime) | 
|  | 
| -  bool ClobbersDoubleRegisters(Isolate* isolate) const OVERRIDE { | 
| +  bool ClobbersDoubleRegisters(Isolate* isolate) const override { | 
| return save_doubles() == kDontSaveFPRegs; | 
| } | 
|  | 
| @@ -1955,7 +1954,7 @@ class LCallRuntime FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LInteger32ToDouble FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LInteger32ToDouble final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| explicit LInteger32ToDouble(LOperand* value) { | 
| inputs_[0] = value; | 
| @@ -1967,7 +1966,7 @@ class LInteger32ToDouble FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LUint32ToDouble FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LUint32ToDouble final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| explicit LUint32ToDouble(LOperand* value) { | 
| inputs_[0] = value; | 
| @@ -1979,7 +1978,7 @@ class LUint32ToDouble FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LNumberTagI FINAL : public LTemplateInstruction<1, 1, 2> { | 
| +class LNumberTagI final : public LTemplateInstruction<1, 1, 2> { | 
| public: | 
| LNumberTagI(LOperand* value, LOperand* temp1, LOperand* temp2) { | 
| inputs_[0] = value; | 
| @@ -1995,7 +1994,7 @@ class LNumberTagI FINAL : public LTemplateInstruction<1, 1, 2> { | 
| }; | 
|  | 
|  | 
| -class LNumberTagU FINAL : public LTemplateInstruction<1, 1, 2> { | 
| +class LNumberTagU final : public LTemplateInstruction<1, 1, 2> { | 
| public: | 
| LNumberTagU(LOperand* value, LOperand* temp1, LOperand* temp2) { | 
| inputs_[0] = value; | 
| @@ -2011,7 +2010,7 @@ class LNumberTagU FINAL : public LTemplateInstruction<1, 1, 2> { | 
| }; | 
|  | 
|  | 
| -class LNumberTagD FINAL : public LTemplateInstruction<1, 1, 2> { | 
| +class LNumberTagD final : public LTemplateInstruction<1, 1, 2> { | 
| public: | 
| LNumberTagD(LOperand* value, LOperand* temp, LOperand* temp2) { | 
| inputs_[0] = value; | 
| @@ -2028,7 +2027,7 @@ class LNumberTagD FINAL : public LTemplateInstruction<1, 1, 2> { | 
| }; | 
|  | 
|  | 
| -class LDoubleToSmi FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LDoubleToSmi final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| explicit LDoubleToSmi(LOperand* value) { | 
| inputs_[0] = value; | 
| @@ -2044,7 +2043,7 @@ class LDoubleToSmi FINAL : public LTemplateInstruction<1, 1, 0> { | 
|  | 
|  | 
| // Sometimes truncating conversion from a tagged value to an int32. | 
| -class LDoubleToI FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LDoubleToI final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| explicit LDoubleToI(LOperand* value) { | 
| inputs_[0] = value; | 
| @@ -2060,7 +2059,7 @@ class LDoubleToI FINAL : public LTemplateInstruction<1, 1, 0> { | 
|  | 
|  | 
| // Truncating conversion from a tagged value to an int32. | 
| -class LTaggedToI FINAL : public LTemplateInstruction<1, 1, 2> { | 
| +class LTaggedToI final : public LTemplateInstruction<1, 1, 2> { | 
| public: | 
| LTaggedToI(LOperand* value, | 
| LOperand* temp, | 
| @@ -2081,7 +2080,7 @@ class LTaggedToI FINAL : public LTemplateInstruction<1, 1, 2> { | 
| }; | 
|  | 
|  | 
| -class LSmiTag FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LSmiTag final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| explicit LSmiTag(LOperand* value) { | 
| inputs_[0] = value; | 
| @@ -2094,7 +2093,7 @@ class LSmiTag FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LNumberUntagD FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LNumberUntagD final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| explicit LNumberUntagD(LOperand* value) { | 
| inputs_[0] = value; | 
| @@ -2107,7 +2106,7 @@ class LNumberUntagD FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LSmiUntag FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LSmiUntag final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| LSmiUntag(LOperand* value, bool needs_check) | 
| : needs_check_(needs_check) { | 
| @@ -2124,7 +2123,7 @@ class LSmiUntag FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LStoreNamedField FINAL : public LTemplateInstruction<0, 2, 1> { | 
| +class LStoreNamedField final : public LTemplateInstruction<0, 2, 1> { | 
| public: | 
| LStoreNamedField(LOperand* object, LOperand* value, LOperand* temp) { | 
| inputs_[0] = object; | 
| @@ -2139,7 +2138,7 @@ class LStoreNamedField FINAL : public LTemplateInstruction<0, 2, 1> { | 
| DECLARE_CONCRETE_INSTRUCTION(StoreNamedField, "store-named-field") | 
| DECLARE_HYDROGEN_ACCESSOR(StoreNamedField) | 
|  | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
|  | 
| Representation representation() const { | 
| return hydrogen()->field_representation(); | 
| @@ -2147,7 +2146,7 @@ class LStoreNamedField FINAL : public LTemplateInstruction<0, 2, 1> { | 
| }; | 
|  | 
|  | 
| -class LStoreNamedGeneric FINAL : public LTemplateInstruction<0, 3, 0> { | 
| +class LStoreNamedGeneric final : public LTemplateInstruction<0, 3, 0> { | 
| public: | 
| LStoreNamedGeneric(LOperand* context, LOperand* object, LOperand* value) { | 
| inputs_[0] = context; | 
| @@ -2162,14 +2161,14 @@ class LStoreNamedGeneric FINAL : public LTemplateInstruction<0, 3, 0> { | 
| DECLARE_CONCRETE_INSTRUCTION(StoreNamedGeneric, "store-named-generic") | 
| DECLARE_HYDROGEN_ACCESSOR(StoreNamedGeneric) | 
|  | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
|  | 
| Handle<Object> name() const { return hydrogen()->name(); } | 
| LanguageMode language_mode() { return hydrogen()->language_mode(); } | 
| }; | 
|  | 
|  | 
| -class LStoreKeyed FINAL : public LTemplateInstruction<0, 3, 0> { | 
| +class LStoreKeyed final : public LTemplateInstruction<0, 3, 0> { | 
| public: | 
| LStoreKeyed(LOperand* object, LOperand* key, LOperand* value) { | 
| inputs_[0] = object; | 
| @@ -2194,13 +2193,13 @@ class LStoreKeyed FINAL : public LTemplateInstruction<0, 3, 0> { | 
| DECLARE_CONCRETE_INSTRUCTION(StoreKeyed, "store-keyed") | 
| DECLARE_HYDROGEN_ACCESSOR(StoreKeyed) | 
|  | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
| bool NeedsCanonicalization() { return hydrogen()->NeedsCanonicalization(); } | 
| uint32_t base_offset() const { return hydrogen()->base_offset(); } | 
| }; | 
|  | 
|  | 
| -class LStoreKeyedGeneric FINAL : public LTemplateInstruction<0, 4, 0> { | 
| +class LStoreKeyedGeneric final : public LTemplateInstruction<0, 4, 0> { | 
| public: | 
| LStoreKeyedGeneric(LOperand* context, | 
| LOperand* obj, | 
| @@ -2220,13 +2219,13 @@ class LStoreKeyedGeneric FINAL : public LTemplateInstruction<0, 4, 0> { | 
| DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric, "store-keyed-generic") | 
| DECLARE_HYDROGEN_ACCESSOR(StoreKeyedGeneric) | 
|  | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
|  | 
| LanguageMode language_mode() { return hydrogen()->language_mode(); } | 
| }; | 
|  | 
|  | 
| -class LTransitionElementsKind FINAL : public LTemplateInstruction<0, 2, 1> { | 
| +class LTransitionElementsKind final : public LTemplateInstruction<0, 2, 1> { | 
| public: | 
| LTransitionElementsKind(LOperand* object, | 
| LOperand* context, | 
| @@ -2244,7 +2243,7 @@ class LTransitionElementsKind FINAL : public LTemplateInstruction<0, 2, 1> { | 
| "transition-elements-kind") | 
| DECLARE_HYDROGEN_ACCESSOR(TransitionElementsKind) | 
|  | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
|  | 
| Handle<Map> original_map() { return hydrogen()->original_map().handle(); } | 
| Handle<Map> transitioned_map() { | 
| @@ -2255,7 +2254,7 @@ class LTransitionElementsKind FINAL : public LTemplateInstruction<0, 2, 1> { | 
| }; | 
|  | 
|  | 
| -class LTrapAllocationMemento FINAL : public LTemplateInstruction<0, 1, 1> { | 
| +class LTrapAllocationMemento final : public LTemplateInstruction<0, 1, 1> { | 
| public: | 
| LTrapAllocationMemento(LOperand* object, | 
| LOperand* temp) { | 
| @@ -2271,7 +2270,7 @@ class LTrapAllocationMemento FINAL : public LTemplateInstruction<0, 1, 1> { | 
| }; | 
|  | 
|  | 
| -class LStringAdd FINAL : public LTemplateInstruction<1, 3, 0> { | 
| +class LStringAdd final : public LTemplateInstruction<1, 3, 0> { | 
| public: | 
| LStringAdd(LOperand* context, LOperand* left, LOperand* right) { | 
| inputs_[0] = context; | 
| @@ -2288,8 +2287,7 @@ class LStringAdd FINAL : public LTemplateInstruction<1, 3, 0> { | 
| }; | 
|  | 
|  | 
| - | 
| -class LStringCharCodeAt FINAL : public LTemplateInstruction<1, 3, 0> { | 
| +class LStringCharCodeAt final : public LTemplateInstruction<1, 3, 0> { | 
| public: | 
| LStringCharCodeAt(LOperand* context, LOperand* string, LOperand* index) { | 
| inputs_[0] = context; | 
| @@ -2306,7 +2304,7 @@ class LStringCharCodeAt FINAL : public LTemplateInstruction<1, 3, 0> { | 
| }; | 
|  | 
|  | 
| -class LStringCharFromCode FINAL : public LTemplateInstruction<1, 2, 0> { | 
| +class LStringCharFromCode final : public LTemplateInstruction<1, 2, 0> { | 
| public: | 
| explicit LStringCharFromCode(LOperand* context, LOperand* char_code) { | 
| inputs_[0] = context; | 
| @@ -2321,7 +2319,7 @@ class LStringCharFromCode FINAL : public LTemplateInstruction<1, 2, 0> { | 
| }; | 
|  | 
|  | 
| -class LCheckValue FINAL : public LTemplateInstruction<0, 1, 0> { | 
| +class LCheckValue final : public LTemplateInstruction<0, 1, 0> { | 
| public: | 
| explicit LCheckValue(LOperand* value) { | 
| inputs_[0] = value; | 
| @@ -2334,7 +2332,7 @@ class LCheckValue FINAL : public LTemplateInstruction<0, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LCheckInstanceType FINAL : public LTemplateInstruction<0, 1, 0> { | 
| +class LCheckInstanceType final : public LTemplateInstruction<0, 1, 0> { | 
| public: | 
| explicit LCheckInstanceType(LOperand* value) { | 
| inputs_[0] = value; | 
| @@ -2347,7 +2345,7 @@ class LCheckInstanceType FINAL : public LTemplateInstruction<0, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LCheckMaps FINAL : public LTemplateInstruction<0, 1, 0> { | 
| +class LCheckMaps final : public LTemplateInstruction<0, 1, 0> { | 
| public: | 
| explicit LCheckMaps(LOperand* value = NULL) { | 
| inputs_[0] = value; | 
| @@ -2360,7 +2358,7 @@ class LCheckMaps FINAL : public LTemplateInstruction<0, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LCheckSmi FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LCheckSmi final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| explicit LCheckSmi(LOperand* value) { | 
| inputs_[0] = value; | 
| @@ -2372,7 +2370,7 @@ class LCheckSmi FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LCheckNonSmi FINAL : public LTemplateInstruction<0, 1, 0> { | 
| +class LCheckNonSmi final : public LTemplateInstruction<0, 1, 0> { | 
| public: | 
| explicit LCheckNonSmi(LOperand* value) { | 
| inputs_[0] = value; | 
| @@ -2385,7 +2383,7 @@ class LCheckNonSmi FINAL : public LTemplateInstruction<0, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LClampDToUint8 FINAL : public LTemplateInstruction<1, 1, 1> { | 
| +class LClampDToUint8 final : public LTemplateInstruction<1, 1, 1> { | 
| public: | 
| LClampDToUint8(LOperand* unclamped, LOperand* temp) { | 
| inputs_[0] = unclamped; | 
| @@ -2399,7 +2397,7 @@ class LClampDToUint8 FINAL : public LTemplateInstruction<1, 1, 1> { | 
| }; | 
|  | 
|  | 
| -class LClampIToUint8 FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LClampIToUint8 final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| explicit LClampIToUint8(LOperand* unclamped) { | 
| inputs_[0] = unclamped; | 
| @@ -2411,7 +2409,7 @@ class LClampIToUint8 FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LClampTToUint8 FINAL : public LTemplateInstruction<1, 1, 1> { | 
| +class LClampTToUint8 final : public LTemplateInstruction<1, 1, 1> { | 
| public: | 
| LClampTToUint8(LOperand* unclamped, LOperand* temp) { | 
| inputs_[0] = unclamped; | 
| @@ -2425,7 +2423,7 @@ class LClampTToUint8 FINAL : public LTemplateInstruction<1, 1, 1> { | 
| }; | 
|  | 
|  | 
| -class LDoubleBits FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LDoubleBits final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| explicit LDoubleBits(LOperand* value) { | 
| inputs_[0] = value; | 
| @@ -2438,7 +2436,7 @@ class LDoubleBits FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LConstructDouble FINAL : public LTemplateInstruction<1, 2, 0> { | 
| +class LConstructDouble final : public LTemplateInstruction<1, 2, 0> { | 
| public: | 
| LConstructDouble(LOperand* hi, LOperand* lo) { | 
| inputs_[0] = hi; | 
| @@ -2452,7 +2450,7 @@ class LConstructDouble FINAL : public LTemplateInstruction<1, 2, 0> { | 
| }; | 
|  | 
|  | 
| -class LAllocate FINAL : public LTemplateInstruction<1, 2, 2> { | 
| +class LAllocate final : public LTemplateInstruction<1, 2, 2> { | 
| public: | 
| LAllocate(LOperand* context, | 
| LOperand* size, | 
| @@ -2474,7 +2472,7 @@ class LAllocate FINAL : public LTemplateInstruction<1, 2, 2> { | 
| }; | 
|  | 
|  | 
| -class LRegExpLiteral FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LRegExpLiteral final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| explicit LRegExpLiteral(LOperand* context) { | 
| inputs_[0] = context; | 
| @@ -2487,7 +2485,7 @@ class LRegExpLiteral FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LFunctionLiteral FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LFunctionLiteral final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| explicit LFunctionLiteral(LOperand* context) { | 
| inputs_[0] = context; | 
| @@ -2500,7 +2498,7 @@ class LFunctionLiteral FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LToFastProperties FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LToFastProperties final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| explicit LToFastProperties(LOperand* value) { | 
| inputs_[0] = value; | 
| @@ -2513,7 +2511,7 @@ class LToFastProperties FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LTypeof FINAL : public LTemplateInstruction<1, 2, 0> { | 
| +class LTypeof final : public LTemplateInstruction<1, 2, 0> { | 
| public: | 
| LTypeof(LOperand* context, LOperand* value) { | 
| inputs_[0] = context; | 
| @@ -2527,7 +2525,7 @@ class LTypeof FINAL : public LTemplateInstruction<1, 2, 0> { | 
| }; | 
|  | 
|  | 
| -class LTypeofIsAndBranch FINAL : public LControlInstruction<1, 0> { | 
| +class LTypeofIsAndBranch final : public LControlInstruction<1, 0> { | 
| public: | 
| explicit LTypeofIsAndBranch(LOperand* value) { | 
| inputs_[0] = value; | 
| @@ -2540,11 +2538,11 @@ class LTypeofIsAndBranch FINAL : public LControlInstruction<1, 0> { | 
|  | 
| Handle<String> type_literal() { return hydrogen()->type_literal(); } | 
|  | 
| -  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) override; | 
| }; | 
|  | 
|  | 
| -class LIsConstructCallAndBranch FINAL : public LControlInstruction<0, 1> { | 
| +class LIsConstructCallAndBranch final : public LControlInstruction<0, 1> { | 
| public: | 
| explicit LIsConstructCallAndBranch(LOperand* temp) { | 
| temps_[0] = temp; | 
| @@ -2557,16 +2555,16 @@ class LIsConstructCallAndBranch FINAL : public LControlInstruction<0, 1> { | 
| }; | 
|  | 
|  | 
| -class LOsrEntry FINAL : public LTemplateInstruction<0, 0, 0> { | 
| +class LOsrEntry final : public LTemplateInstruction<0, 0, 0> { | 
| public: | 
| LOsrEntry() {} | 
|  | 
| -  bool HasInterestingComment(LCodeGen* gen) const OVERRIDE { return false; } | 
| +  bool HasInterestingComment(LCodeGen* gen) const override { return false; } | 
| DECLARE_CONCRETE_INSTRUCTION(OsrEntry, "osr-entry") | 
| }; | 
|  | 
|  | 
| -class LStackCheck FINAL : public LTemplateInstruction<0, 1, 0> { | 
| +class LStackCheck final : public LTemplateInstruction<0, 1, 0> { | 
| public: | 
| explicit LStackCheck(LOperand* context) { | 
| inputs_[0] = context; | 
| @@ -2584,7 +2582,7 @@ class LStackCheck FINAL : public LTemplateInstruction<0, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LForInPrepareMap FINAL : public LTemplateInstruction<1, 2, 0> { | 
| +class LForInPrepareMap final : public LTemplateInstruction<1, 2, 0> { | 
| public: | 
| LForInPrepareMap(LOperand* context, LOperand* object) { | 
| inputs_[0] = context; | 
| @@ -2598,7 +2596,7 @@ class LForInPrepareMap FINAL : public LTemplateInstruction<1, 2, 0> { | 
| }; | 
|  | 
|  | 
| -class LForInCacheArray FINAL : public LTemplateInstruction<1, 1, 0> { | 
| +class LForInCacheArray final : public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| explicit LForInCacheArray(LOperand* map) { | 
| inputs_[0] = map; | 
| @@ -2614,7 +2612,7 @@ class LForInCacheArray FINAL : public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| -class LCheckMapValue FINAL : public LTemplateInstruction<0, 2, 0> { | 
| +class LCheckMapValue final : public LTemplateInstruction<0, 2, 0> { | 
| public: | 
| LCheckMapValue(LOperand* value, LOperand* map) { | 
| inputs_[0] = value; | 
| @@ -2628,7 +2626,7 @@ class LCheckMapValue FINAL : public LTemplateInstruction<0, 2, 0> { | 
| }; | 
|  | 
|  | 
| -class LLoadFieldByIndex FINAL : public LTemplateInstruction<1, 2, 0> { | 
| +class LLoadFieldByIndex final : public LTemplateInstruction<1, 2, 0> { | 
| public: | 
| LLoadFieldByIndex(LOperand* object, LOperand* index) { | 
| inputs_[0] = object; | 
| @@ -2672,7 +2670,7 @@ class LAllocateBlockContext: public LTemplateInstruction<1, 2, 0> { | 
|  | 
|  | 
| class LChunkBuilder; | 
| -class LPlatformChunk FINAL : public LChunk { | 
| +class LPlatformChunk final : public LChunk { | 
| public: | 
| LPlatformChunk(CompilationInfo* info, HGraph* graph) | 
| : LChunk(info, graph) { } | 
| @@ -2682,7 +2680,7 @@ class LPlatformChunk FINAL : public LChunk { | 
| }; | 
|  | 
|  | 
| -class LChunkBuilder FINAL : public LChunkBuilderBase { | 
| +class LChunkBuilder final : public LChunkBuilderBase { | 
| public: | 
| LChunkBuilder(CompilationInfo* info, HGraph* graph, LAllocator* allocator) | 
| : LChunkBuilderBase(info, graph), | 
| @@ -2764,7 +2762,7 @@ class LChunkBuilder FINAL : public LChunkBuilderBase { | 
|  | 
| // An input operand in register, stack slot or a constant operand. | 
| // Will not be moved to a register even if one is freely available. | 
| -  MUST_USE_RESULT LOperand* UseAny(HValue* value) OVERRIDE; | 
| +  MUST_USE_RESULT LOperand* UseAny(HValue* value) override; | 
|  | 
| // Temporary operand that must be in a register. | 
| MUST_USE_RESULT LUnallocated* TempRegister(); | 
|  |