Remove "virtual" from all lines that have both "virtual" and "override".
https://bugs.webkit.org/show_bug.cgi?id=155005

Reviewed by Geoffrey Garen.

* Scripts/do-webcore-rename: Added a regular expression to this script to do the job.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@197563 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/JavaScriptCore/API/JSAPIWrapperObject.mm b/Source/JavaScriptCore/API/JSAPIWrapperObject.mm
index 7236877..ace4898 100644
--- a/Source/JavaScriptCore/API/JSAPIWrapperObject.mm
+++ b/Source/JavaScriptCore/API/JSAPIWrapperObject.mm
@@ -36,8 +36,8 @@
 
 class JSAPIWrapperObjectHandleOwner : public JSC::WeakHandleOwner {
 public:
-    virtual void finalize(JSC::Handle<JSC::Unknown>, void*) override;
-    virtual bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::SlotVisitor&) override;
+    void finalize(JSC::Handle<JSC::Unknown>, void*) override;
+    bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::SlotVisitor&) override;
 };
 
 static JSAPIWrapperObjectHandleOwner* jsAPIWrapperObjectHandleOwner()
diff --git a/Source/JavaScriptCore/API/JSManagedValue.mm b/Source/JavaScriptCore/API/JSManagedValue.mm
index 1c1f7a2..e788b5c 100644
--- a/Source/JavaScriptCore/API/JSManagedValue.mm
+++ b/Source/JavaScriptCore/API/JSManagedValue.mm
@@ -42,8 +42,8 @@
 
 class JSManagedValueHandleOwner : public JSC::WeakHandleOwner {
 public:
-    virtual void finalize(JSC::Handle<JSC::Unknown>, void* context) override;
-    virtual bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::SlotVisitor&) override;
+    void finalize(JSC::Handle<JSC::Unknown>, void* context) override;
+    bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::SlotVisitor&) override;
 };
 
 static JSManagedValueHandleOwner* managedValueHandleOwner()
diff --git a/Source/JavaScriptCore/API/ObjCCallbackFunction.mm b/Source/JavaScriptCore/API/ObjCCallbackFunction.mm
index caa5294..6199c79a 100644
--- a/Source/JavaScriptCore/API/ObjCCallbackFunction.mm
+++ b/Source/JavaScriptCore/API/ObjCCallbackFunction.mm
@@ -57,7 +57,7 @@
 }
 
 class CallbackArgumentBoolean : public CallbackArgument {
-    virtual void set(NSInvocation *invocation, NSInteger argumentNumber, JSContext *context, JSValueRef argument, JSValueRef*) override
+    void set(NSInvocation *invocation, NSInteger argumentNumber, JSContext *context, JSValueRef argument, JSValueRef*) override
     {
         bool value = JSValueToBoolean([context JSGlobalContextRef], argument);
         [invocation setArgument:&value atIndex:argumentNumber];
@@ -66,7 +66,7 @@
 
 template<typename T>
 class CallbackArgumentInteger : public CallbackArgument {
-    virtual void set(NSInvocation *invocation, NSInteger argumentNumber, JSContext *context, JSValueRef argument, JSValueRef* exception) override
+    void set(NSInvocation *invocation, NSInteger argumentNumber, JSContext *context, JSValueRef argument, JSValueRef* exception) override
     {
         T value = (T)JSC::toInt32(JSValueToNumber([context JSGlobalContextRef], argument, exception));
         [invocation setArgument:&value atIndex:argumentNumber];
@@ -75,7 +75,7 @@
 
 template<typename T>
 class CallbackArgumentDouble : public CallbackArgument {
-    virtual void set(NSInvocation *invocation, NSInteger argumentNumber, JSContext *context, JSValueRef argument, JSValueRef* exception) override
+    void set(NSInvocation *invocation, NSInteger argumentNumber, JSContext *context, JSValueRef argument, JSValueRef* exception) override
     {
         T value = (T)JSValueToNumber([context JSGlobalContextRef], argument, exception);
         [invocation setArgument:&value atIndex:argumentNumber];
@@ -83,7 +83,7 @@
 };
 
 class CallbackArgumentJSValue : public CallbackArgument {
-    virtual void set(NSInvocation *invocation, NSInteger argumentNumber, JSContext *context, JSValueRef argument, JSValueRef*) override
+    void set(NSInvocation *invocation, NSInteger argumentNumber, JSContext *context, JSValueRef argument, JSValueRef*) override
     {
         JSValue *value = [JSValue valueWithJSValueRef:argument inContext:context];
         [invocation setArgument:&value atIndex:argumentNumber];
@@ -91,7 +91,7 @@
 };
 
 class CallbackArgumentId : public CallbackArgument {
-    virtual void set(NSInvocation *invocation, NSInteger argumentNumber, JSContext *context, JSValueRef argument, JSValueRef*) override
+    void set(NSInvocation *invocation, NSInteger argumentNumber, JSContext *context, JSValueRef argument, JSValueRef*) override
     {
         id value = valueToObject(context, argument);
         [invocation setArgument:&value atIndex:argumentNumber];
@@ -106,7 +106,7 @@
     }
 
 private:
-    virtual void set(NSInvocation *invocation, NSInteger argumentNumber, JSContext *context, JSValueRef argument, JSValueRef* exception) override
+    void set(NSInvocation *invocation, NSInteger argumentNumber, JSContext *context, JSValueRef argument, JSValueRef* exception) override
     {
         JSGlobalContextRef contextRef = [context JSGlobalContextRef];
 
@@ -129,7 +129,7 @@
 };
 
 class CallbackArgumentNSNumber : public CallbackArgument {
-    virtual void set(NSInvocation *invocation, NSInteger argumentNumber, JSContext *context, JSValueRef argument, JSValueRef* exception) override
+    void set(NSInvocation *invocation, NSInteger argumentNumber, JSContext *context, JSValueRef argument, JSValueRef* exception) override
     {
         id value = valueToNumber([context JSGlobalContextRef], argument, exception);
         [invocation setArgument:&value atIndex:argumentNumber];
@@ -137,7 +137,7 @@
 };
 
 class CallbackArgumentNSString : public CallbackArgument {
-    virtual void set(NSInvocation *invocation, NSInteger argumentNumber, JSContext *context, JSValueRef argument, JSValueRef* exception) override
+    void set(NSInvocation *invocation, NSInteger argumentNumber, JSContext *context, JSValueRef argument, JSValueRef* exception) override
     {
         id value = valueToString([context JSGlobalContextRef], argument, exception);
         [invocation setArgument:&value atIndex:argumentNumber];
@@ -145,7 +145,7 @@
 };
 
 class CallbackArgumentNSDate : public CallbackArgument {
-    virtual void set(NSInvocation *invocation, NSInteger argumentNumber, JSContext *context, JSValueRef argument, JSValueRef* exception) override
+    void set(NSInvocation *invocation, NSInteger argumentNumber, JSContext *context, JSValueRef argument, JSValueRef* exception) override
     {
         id value = valueToDate([context JSGlobalContextRef], argument, exception);
         [invocation setArgument:&value atIndex:argumentNumber];
@@ -153,7 +153,7 @@
 };
 
 class CallbackArgumentNSArray : public CallbackArgument {
-    virtual void set(NSInvocation *invocation, NSInteger argumentNumber, JSContext *context, JSValueRef argument, JSValueRef* exception) override
+    void set(NSInvocation *invocation, NSInteger argumentNumber, JSContext *context, JSValueRef argument, JSValueRef* exception) override
     {
         id value = valueToArray([context JSGlobalContextRef], argument, exception);
         [invocation setArgument:&value atIndex:argumentNumber];
@@ -161,7 +161,7 @@
 };
 
 class CallbackArgumentNSDictionary : public CallbackArgument {
-    virtual void set(NSInvocation *invocation, NSInteger argumentNumber, JSContext *context, JSValueRef argument, JSValueRef* exception) override
+    void set(NSInvocation *invocation, NSInteger argumentNumber, JSContext *context, JSValueRef argument, JSValueRef* exception) override
     {
         id value = valueToDictionary([context JSGlobalContextRef], argument, exception);
         [invocation setArgument:&value atIndex:argumentNumber];
@@ -177,7 +177,7 @@
     }
     
 private:
-    virtual void set(NSInvocation *invocation, NSInteger argumentNumber, JSContext *context, JSValueRef argument, JSValueRef*) override
+    void set(NSInvocation *invocation, NSInteger argumentNumber, JSContext *context, JSValueRef argument, JSValueRef*) override
     {
         JSValue *value = [JSValue valueWithJSValueRef:argument inContext:context];
         [m_conversionInvocation invokeWithTarget:value];
@@ -269,14 +269,14 @@
 };
 
 class CallbackResultVoid : public CallbackResult {
-    virtual JSValueRef get(NSInvocation *, JSContext *context, JSValueRef*) override
+    JSValueRef get(NSInvocation *, JSContext *context, JSValueRef*) override
     {
         return JSValueMakeUndefined([context JSGlobalContextRef]);
     }
 };
 
 class CallbackResultId : public CallbackResult {
-    virtual JSValueRef get(NSInvocation *invocation, JSContext *context, JSValueRef*) override
+    JSValueRef get(NSInvocation *invocation, JSContext *context, JSValueRef*) override
     {
         id value;
         [invocation getReturnValue:&value];
@@ -286,7 +286,7 @@
 
 template<typename T>
 class CallbackResultNumeric : public CallbackResult {
-    virtual JSValueRef get(NSInvocation *invocation, JSContext *context, JSValueRef*) override
+    JSValueRef get(NSInvocation *invocation, JSContext *context, JSValueRef*) override
     {
         T value;
         [invocation getReturnValue:&value];
@@ -295,7 +295,7 @@
 };
 
 class CallbackResultBoolean : public CallbackResult {
-    virtual JSValueRef get(NSInvocation *invocation, JSContext *context, JSValueRef*) override
+    JSValueRef get(NSInvocation *invocation, JSContext *context, JSValueRef*) override
     {
         bool value;
         [invocation getReturnValue:&value];
@@ -312,7 +312,7 @@
     }
     
 private:
-    virtual JSValueRef get(NSInvocation *invocation, JSContext *context, JSValueRef*) override
+    JSValueRef get(NSInvocation *invocation, JSContext *context, JSValueRef*) override
     {
         [invocation getReturnValue:m_buffer];
 
diff --git a/Source/JavaScriptCore/bytecode/AdaptiveInferredPropertyValueWatchpointBase.h b/Source/JavaScriptCore/bytecode/AdaptiveInferredPropertyValueWatchpointBase.h
index 3fd0223..b43ba3a 100644
--- a/Source/JavaScriptCore/bytecode/AdaptiveInferredPropertyValueWatchpointBase.h
+++ b/Source/JavaScriptCore/bytecode/AdaptiveInferredPropertyValueWatchpointBase.h
@@ -54,13 +54,13 @@
     public:
         StructureWatchpoint() { }
     protected:
-        virtual void fireInternal(const FireDetail&) override;
+        void fireInternal(const FireDetail&) override;
     };
     class PropertyWatchpoint : public Watchpoint {
     public:
         PropertyWatchpoint() { }
     protected:
-        virtual void fireInternal(const FireDetail&) override;
+        void fireInternal(const FireDetail&) override;
     };
 
     void fire(const FireDetail&);
diff --git a/Source/JavaScriptCore/bytecode/CodeBlock.cpp b/Source/JavaScriptCore/bytecode/CodeBlock.cpp
index 7cfd474..6fd7160 100644
--- a/Source/JavaScriptCore/bytecode/CodeBlock.cpp
+++ b/Source/JavaScriptCore/bytecode/CodeBlock.cpp
@@ -1724,7 +1724,7 @@
     {
     }
     
-    virtual void dump(PrintStream& out) const override
+    void dump(PrintStream& out) const override
     {
         out.print("Linking put_to_scope in ", FunctionExecutableDump(jsCast<FunctionExecutable*>(m_codeBlock->ownerExecutable())), " for ", m_ident);
     }
diff --git a/Source/JavaScriptCore/bytecode/CodeBlock.h b/Source/JavaScriptCore/bytecode/CodeBlock.h
index 96cee40..e30f7a6 100644
--- a/Source/JavaScriptCore/bytecode/CodeBlock.h
+++ b/Source/JavaScriptCore/bytecode/CodeBlock.h
@@ -95,11 +95,11 @@
     friend class LLIntOffsetsExtractor;
 
     class UnconditionalFinalizer : public JSC::UnconditionalFinalizer { 
-        virtual void finalizeUnconditionally() override;
+        void finalizeUnconditionally() override;
     };
 
     class WeakReferenceHarvester : public JSC::WeakReferenceHarvester {
-        virtual void visitWeakReferences(SlotVisitor&) override;
+        void visitWeakReferences(SlotVisitor&) override;
     };
 
 public:
diff --git a/Source/JavaScriptCore/bytecode/CodeBlockJettisoningWatchpoint.h b/Source/JavaScriptCore/bytecode/CodeBlockJettisoningWatchpoint.h
index b5e6dd3..9944674 100644
--- a/Source/JavaScriptCore/bytecode/CodeBlockJettisoningWatchpoint.h
+++ b/Source/JavaScriptCore/bytecode/CodeBlockJettisoningWatchpoint.h
@@ -40,7 +40,7 @@
     }
     
 protected:
-    virtual void fireInternal(const FireDetail&) override;
+    void fireInternal(const FireDetail&) override;
 
 private:
     CodeBlock* m_codeBlock;
diff --git a/Source/JavaScriptCore/bytecode/StructureStubClearingWatchpoint.h b/Source/JavaScriptCore/bytecode/StructureStubClearingWatchpoint.h
index 37668c3..e849319 100644
--- a/Source/JavaScriptCore/bytecode/StructureStubClearingWatchpoint.h
+++ b/Source/JavaScriptCore/bytecode/StructureStubClearingWatchpoint.h
@@ -62,7 +62,7 @@
         std::unique_ptr<StructureStubClearingWatchpoint>& head);
 
 protected:
-    virtual void fireInternal(const FireDetail&) override;
+    void fireInternal(const FireDetail&) override;
 
 private:
     ObjectPropertyCondition m_key;
diff --git a/Source/JavaScriptCore/bytecode/VariableWriteFireDetail.h b/Source/JavaScriptCore/bytecode/VariableWriteFireDetail.h
index 664f69c..31b9200 100644
--- a/Source/JavaScriptCore/bytecode/VariableWriteFireDetail.h
+++ b/Source/JavaScriptCore/bytecode/VariableWriteFireDetail.h
@@ -41,7 +41,7 @@
     {
     }
     
-    virtual void dump(PrintStream&) const override;
+    void dump(PrintStream&) const override;
     
     JS_EXPORT_PRIVATE static void touch(WatchpointSet*, JSObject*, const PropertyName&);
 
diff --git a/Source/JavaScriptCore/bytecode/Watchpoint.h b/Source/JavaScriptCore/bytecode/Watchpoint.h
index 869e908..56fe1f3 100644
--- a/Source/JavaScriptCore/bytecode/Watchpoint.h
+++ b/Source/JavaScriptCore/bytecode/Watchpoint.h
@@ -57,7 +57,7 @@
     {
     }
     
-    virtual void dump(PrintStream& out) const override;
+    void dump(PrintStream& out) const override;
 
 private:
     const char* m_string;
diff --git a/Source/JavaScriptCore/dfg/DFGAdaptiveInferredPropertyValueWatchpoint.h b/Source/JavaScriptCore/dfg/DFGAdaptiveInferredPropertyValueWatchpoint.h
index 2ed4c3b..c2c2501 100644
--- a/Source/JavaScriptCore/dfg/DFGAdaptiveInferredPropertyValueWatchpoint.h
+++ b/Source/JavaScriptCore/dfg/DFGAdaptiveInferredPropertyValueWatchpoint.h
@@ -38,7 +38,7 @@
     AdaptiveInferredPropertyValueWatchpoint(const ObjectPropertyCondition&, CodeBlock*);
 
 private:
-    virtual void handleFire(const FireDetail&) override;
+    void handleFire(const FireDetail&) override;
 
     CodeBlock* m_codeBlock;
 };
diff --git a/Source/JavaScriptCore/dfg/DFGAdaptiveStructureWatchpoint.h b/Source/JavaScriptCore/dfg/DFGAdaptiveStructureWatchpoint.h
index f153e23..7f02a06 100644
--- a/Source/JavaScriptCore/dfg/DFGAdaptiveStructureWatchpoint.h
+++ b/Source/JavaScriptCore/dfg/DFGAdaptiveStructureWatchpoint.h
@@ -42,7 +42,7 @@
     void install();
 
 protected:
-    virtual void fireInternal(const FireDetail&) override;
+    void fireInternal(const FireDetail&) override;
 
 private:
     ObjectPropertyCondition m_key;
diff --git a/Source/JavaScriptCore/dfg/DFGArrayifySlowPathGenerator.h b/Source/JavaScriptCore/dfg/DFGArrayifySlowPathGenerator.h
index 0c5dc2a..4615966 100644
--- a/Source/JavaScriptCore/dfg/DFGArrayifySlowPathGenerator.h
+++ b/Source/JavaScriptCore/dfg/DFGArrayifySlowPathGenerator.h
@@ -71,7 +71,7 @@
     }
     
 protected:
-    virtual void generateInternal(SpeculativeJIT* jit) override
+    void generateInternal(SpeculativeJIT* jit) override
     {
         linkFrom(jit);
         
diff --git a/Source/JavaScriptCore/dfg/DFGCallArrayAllocatorSlowPathGenerator.h b/Source/JavaScriptCore/dfg/DFGCallArrayAllocatorSlowPathGenerator.h
index 12739ab..ca5591e 100644
--- a/Source/JavaScriptCore/dfg/DFGCallArrayAllocatorSlowPathGenerator.h
+++ b/Source/JavaScriptCore/dfg/DFGCallArrayAllocatorSlowPathGenerator.h
@@ -52,7 +52,7 @@
     }
 
 protected:
-    virtual void generateInternal(SpeculativeJIT* jit) override
+    void generateInternal(SpeculativeJIT* jit) override
     {
         linkFrom(jit);
         for (unsigned i = 0; i < m_plans.size(); ++i)
@@ -91,7 +91,7 @@
     }
 
 protected:
-    virtual void generateInternal(SpeculativeJIT* jit) override
+    void generateInternal(SpeculativeJIT* jit) override
     {
         linkFrom(jit);
         for (unsigned i = 0; i < m_plans.size(); ++i)
diff --git a/Source/JavaScriptCore/dfg/DFGFailedFinalizer.h b/Source/JavaScriptCore/dfg/DFGFailedFinalizer.h
index 1afbe0d..244fe50 100644
--- a/Source/JavaScriptCore/dfg/DFGFailedFinalizer.h
+++ b/Source/JavaScriptCore/dfg/DFGFailedFinalizer.h
@@ -37,9 +37,9 @@
     FailedFinalizer(Plan&);
     virtual ~FailedFinalizer();
     
-    virtual size_t codeSize() override;
-    virtual bool finalize() override;
-    virtual bool finalizeFunction() override;
+    size_t codeSize() override;
+    bool finalize() override;
+    bool finalizeFunction() override;
 };
 
 } } // namespace JSC::DFG
diff --git a/Source/JavaScriptCore/dfg/DFGGraph.h b/Source/JavaScriptCore/dfg/DFGGraph.h
index a8b9666..5ec65b9 100644
--- a/Source/JavaScriptCore/dfg/DFGGraph.h
+++ b/Source/JavaScriptCore/dfg/DFGGraph.h
@@ -785,7 +785,7 @@
     
     void registerFrozenValues();
     
-    virtual void visitChildren(SlotVisitor&) override;
+    void visitChildren(SlotVisitor&) override;
     
     NO_RETURN_DUE_TO_CRASH void handleAssertionFailure(
         std::nullptr_t, const char* file, int line, const char* function,
diff --git a/Source/JavaScriptCore/dfg/DFGJITCode.h b/Source/JavaScriptCore/dfg/DFGJITCode.h
index 243e353..05879dd 100644
--- a/Source/JavaScriptCore/dfg/DFGJITCode.h
+++ b/Source/JavaScriptCore/dfg/DFGJITCode.h
@@ -52,8 +52,8 @@
     JITCode();
     virtual ~JITCode();
     
-    virtual CommonData* dfgCommon() override;
-    virtual JITCode* dfg() override;
+    CommonData* dfgCommon() override;
+    JITCode* dfg() override;
     
     OSREntryData* appendOSREntryData(unsigned bytecodeIndex, unsigned machineCodeOffset)
     {
diff --git a/Source/JavaScriptCore/dfg/DFGJITFinalizer.h b/Source/JavaScriptCore/dfg/DFGJITFinalizer.h
index 110442f..791312a 100644
--- a/Source/JavaScriptCore/dfg/DFGJITFinalizer.h
+++ b/Source/JavaScriptCore/dfg/DFGJITFinalizer.h
@@ -40,9 +40,9 @@
     JITFinalizer(Plan&, PassRefPtr<JITCode>, std::unique_ptr<LinkBuffer>, MacroAssemblerCodePtr withArityCheck = MacroAssemblerCodePtr(MacroAssemblerCodePtr::EmptyValue));
     virtual ~JITFinalizer();
     
-    virtual size_t codeSize() override;
-    virtual bool finalize() override;
-    virtual bool finalizeFunction() override;
+    size_t codeSize() override;
+    bool finalize() override;
+    bool finalizeFunction() override;
 
 private:
     void finalizeCommon();
diff --git a/Source/JavaScriptCore/dfg/DFGSaneStringGetByValSlowPathGenerator.h b/Source/JavaScriptCore/dfg/DFGSaneStringGetByValSlowPathGenerator.h
index 568c878..8598d4c 100644
--- a/Source/JavaScriptCore/dfg/DFGSaneStringGetByValSlowPathGenerator.h
+++ b/Source/JavaScriptCore/dfg/DFGSaneStringGetByValSlowPathGenerator.h
@@ -50,7 +50,7 @@
     }
     
 protected:
-    virtual void generateInternal(SpeculativeJIT* jit) override
+    void generateInternal(SpeculativeJIT* jit) override
     {
         linkFrom(jit);
         
diff --git a/Source/JavaScriptCore/dfg/DFGSlowPathGenerator.h b/Source/JavaScriptCore/dfg/DFGSlowPathGenerator.h
index e595c38..337c3c9 100644
--- a/Source/JavaScriptCore/dfg/DFGSlowPathGenerator.h
+++ b/Source/JavaScriptCore/dfg/DFGSlowPathGenerator.h
@@ -119,7 +119,7 @@
             jit->silentSpillAllRegistersImpl(false, m_plans, extractResult(result));
     }
     
-    virtual MacroAssembler::Call call() const override
+    MacroAssembler::Call call() const override
     {
         return m_call;
     }
@@ -172,7 +172,7 @@
     }
     
 protected:
-    virtual void generateInternal(SpeculativeJIT* jit) override
+    void generateInternal(SpeculativeJIT* jit) override
     {
         this->setUp(jit);
         this->recordCall(jit->callOperation(this->m_function, extractResult(this->m_result)));
@@ -196,7 +196,7 @@
     }
     
 protected:
-    virtual void generateInternal(SpeculativeJIT* jit) override
+    void generateInternal(SpeculativeJIT* jit) override
     {
         this->setUp(jit);
         this->recordCall(jit->callOperation(this->m_function, extractResult(this->m_result), m_argument1));
@@ -224,7 +224,7 @@
     }
     
 protected:
-    virtual void generateInternal(SpeculativeJIT* jit) override
+    void generateInternal(SpeculativeJIT* jit) override
     {
         this->setUp(jit);
         this->recordCall(jit->callOperation(this->m_function, extractResult(this->m_result), m_argument1, m_argument2));
@@ -254,7 +254,7 @@
     }
 
 protected:    
-    virtual void generateInternal(SpeculativeJIT* jit) override
+    void generateInternal(SpeculativeJIT* jit) override
     {
         this->setUp(jit);
         this->recordCall(
@@ -436,7 +436,7 @@
     }
 
 protected:
-    virtual void generateInternal(SpeculativeJIT* jit) override
+    void generateInternal(SpeculativeJIT* jit) override
     {
         this->linkFrom(jit);
         for (unsigned i = numberOfAssignments; i--;)
diff --git a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp
index e2cb5a3..97e7217 100644
--- a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp
+++ b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp
@@ -408,7 +408,7 @@
     }
     
 protected:
-    virtual void generateInternal(SpeculativeJIT* jit) override
+    void generateInternal(SpeculativeJIT* jit) override
     {
         this->setUp(jit);
         this->recordCall(jit->callOperation(this->m_function, this->m_result, m_arg1, m_arg2));
diff --git a/Source/JavaScriptCore/heap/EdenGCActivityCallback.h b/Source/JavaScriptCore/heap/EdenGCActivityCallback.h
index 214ab43..f75ce5b 100644
--- a/Source/JavaScriptCore/heap/EdenGCActivityCallback.h
+++ b/Source/JavaScriptCore/heap/EdenGCActivityCallback.h
@@ -34,7 +34,7 @@
 public:
     EdenGCActivityCallback(Heap*);
 
-    virtual void doCollection() override;
+    void doCollection() override;
 
 protected:
 #if USE(CF)
@@ -44,9 +44,9 @@
     }
 #endif
 
-    virtual double lastGCLength() override;
-    virtual double gcTimeSlice(size_t bytes) override;
-    virtual double deathRate() override;
+    double lastGCLength() override;
+    double gcTimeSlice(size_t bytes) override;
+    double deathRate() override;
 };
 
 inline RefPtr<GCActivityCallback> GCActivityCallback::createEdenTimer(Heap* heap)
diff --git a/Source/JavaScriptCore/heap/FullGCActivityCallback.h b/Source/JavaScriptCore/heap/FullGCActivityCallback.h
index e727592..2ad78b0 100644
--- a/Source/JavaScriptCore/heap/FullGCActivityCallback.h
+++ b/Source/JavaScriptCore/heap/FullGCActivityCallback.h
@@ -34,7 +34,7 @@
 public:
     FullGCActivityCallback(Heap*);
 
-    virtual void doCollection() override;
+    void doCollection() override;
 
     bool didSyncGCRecently() const { return m_didSyncGCRecently; }
     void setDidSyncGCRecently() { m_didSyncGCRecently = true; }
@@ -47,9 +47,9 @@
     }
 #endif
 
-    virtual double lastGCLength() override;
-    virtual double gcTimeSlice(size_t bytes) override;
-    virtual double deathRate() override;
+    double lastGCLength() override;
+    double gcTimeSlice(size_t bytes) override;
+    double deathRate() override;
 
     bool m_didSyncGCRecently { false };
 };
diff --git a/Source/JavaScriptCore/heap/GCActivityCallback.h b/Source/JavaScriptCore/heap/GCActivityCallback.h
index c0283e9..568f971 100644
--- a/Source/JavaScriptCore/heap/GCActivityCallback.h
+++ b/Source/JavaScriptCore/heap/GCActivityCallback.h
@@ -49,7 +49,7 @@
 
     GCActivityCallback(Heap*);
 
-    virtual void doWork() override;
+    void doWork() override;
 
     virtual void doCollection() = 0;
 
diff --git a/Source/JavaScriptCore/heap/Heap.h b/Source/JavaScriptCore/heap/Heap.h
index 110ac27..ae22ed7 100644
--- a/Source/JavaScriptCore/heap/Heap.h
+++ b/Source/JavaScriptCore/heap/Heap.h
@@ -287,7 +287,7 @@
     static const size_t minExtraMemory = 256;
     
     class FinalizerOwner : public WeakHandleOwner {
-        virtual void finalize(Handle<Unknown>, void* context) override;
+        void finalize(Handle<Unknown>, void* context) override;
     };
 
     JS_EXPORT_PRIVATE bool isValidAllocation(size_t);
diff --git a/Source/JavaScriptCore/heap/IncrementalSweeper.h b/Source/JavaScriptCore/heap/IncrementalSweeper.h
index 6dabea5..4447bca 100644
--- a/Source/JavaScriptCore/heap/IncrementalSweeper.h
+++ b/Source/JavaScriptCore/heap/IncrementalSweeper.h
@@ -45,7 +45,7 @@
 
     void startSweeping();
 
-    JS_EXPORT_PRIVATE virtual void doWork() override;
+    JS_EXPORT_PRIVATE void doWork() override;
     bool sweepNextBlock();
     void willFinishSweeping();
 
diff --git a/Source/JavaScriptCore/inspector/InspectorValues.h b/Source/JavaScriptCore/inspector/InspectorValues.h
index 81b8703..c14efa5 100644
--- a/Source/JavaScriptCore/inspector/InspectorValues.h
+++ b/Source/JavaScriptCore/inspector/InspectorValues.h
@@ -104,19 +104,19 @@
     static Ref<InspectorBasicValue> create(int);
     static Ref<InspectorBasicValue> create(double);
 
-    virtual bool asBoolean(bool&) const override;
+    bool asBoolean(bool&) const override;
     // Numbers from the frontend are always parsed as doubles, so we allow
     // clients to convert to integral values with this function.
-    virtual bool asInteger(int&) const override;
-    virtual bool asInteger(unsigned&) const override;
-    virtual bool asInteger(long&) const override;
-    virtual bool asInteger(long long&) const override;
-    virtual bool asInteger(unsigned long&) const override;
-    virtual bool asInteger(unsigned long long&) const override;
-    virtual bool asDouble(double&) const override;
-    virtual bool asDouble(float&) const override;
+    bool asInteger(int&) const override;
+    bool asInteger(unsigned&) const override;
+    bool asInteger(long&) const override;
+    bool asInteger(long long&) const override;
+    bool asInteger(unsigned long&) const override;
+    bool asInteger(unsigned long long&) const override;
+    bool asDouble(double&) const override;
+    bool asDouble(float&) const override;
 
-    virtual void writeJSON(StringBuilder& output) const override;
+    void writeJSON(StringBuilder& output) const override;
 
 private:
     explicit InspectorBasicValue(bool value)
@@ -142,9 +142,9 @@
     static Ref<InspectorString> create(const String&);
     static Ref<InspectorString> create(const char*);
 
-    virtual bool asString(String& output) const override;
+    bool asString(String& output) const override;
 
-    virtual void writeJSON(StringBuilder& output) const override;
+    void writeJSON(StringBuilder& output) const override;
 
 private:
     explicit InspectorString(const String& value)
@@ -171,7 +171,7 @@
 protected:
     virtual ~InspectorObjectBase();
 
-    virtual bool asObject(RefPtr<InspectorObject>& output) override;
+    bool asObject(RefPtr<InspectorObject>& output) override;
 
     // FIXME: use templates to reduce the amount of duplicated set*() methods.
     void setBoolean(const String& name, bool);
@@ -211,7 +211,7 @@
 
     void remove(const String& name);
 
-    virtual void writeJSON(StringBuilder& output) const override;
+    void writeJSON(StringBuilder& output) const override;
 
     iterator begin() { return m_data.begin(); }
     iterator end() { return m_data.end(); }
@@ -270,7 +270,7 @@
 protected:
     virtual ~InspectorArrayBase();
 
-    virtual bool asArray(RefPtr<InspectorArray>&) override;
+    bool asArray(RefPtr<InspectorArray>&) override;
 
     void pushBoolean(bool);
     void pushInteger(int);
@@ -282,7 +282,7 @@
 
     RefPtr<InspectorValue> get(size_t index) const;
 
-    virtual void writeJSON(StringBuilder& output) const override;
+    void writeJSON(StringBuilder& output) const override;
 
     iterator begin() { return m_data.begin(); }
     iterator end() { return m_data.end(); }
diff --git a/Source/JavaScriptCore/inspector/JSGlobalObjectConsoleClient.h b/Source/JavaScriptCore/inspector/JSGlobalObjectConsoleClient.h
index 12e1e41..3220199 100644
--- a/Source/JavaScriptCore/inspector/JSGlobalObjectConsoleClient.h
+++ b/Source/JavaScriptCore/inspector/JSGlobalObjectConsoleClient.h
@@ -42,13 +42,13 @@
     static void setLogToSystemConsole(bool);
 
 protected:
-    virtual void messageWithTypeAndLevel(MessageType, MessageLevel, JSC::ExecState*, RefPtr<ScriptArguments>&&) override;
-    virtual void count(JSC::ExecState*, RefPtr<ScriptArguments>&&) override;
-    virtual void profile(JSC::ExecState*, const String& title) override;
-    virtual void profileEnd(JSC::ExecState*, const String& title) override;
-    virtual void time(JSC::ExecState*, const String& title) override;
-    virtual void timeEnd(JSC::ExecState*, const String& title) override;
-    virtual void timeStamp(JSC::ExecState*, RefPtr<ScriptArguments>&&) override;
+    void messageWithTypeAndLevel(MessageType, MessageLevel, JSC::ExecState*, RefPtr<ScriptArguments>&&) override;
+    void count(JSC::ExecState*, RefPtr<ScriptArguments>&&) override;
+    void profile(JSC::ExecState*, const String& title) override;
+    void profileEnd(JSC::ExecState*, const String& title) override;
+    void time(JSC::ExecState*, const String& title) override;
+    void timeEnd(JSC::ExecState*, const String& title) override;
+    void timeStamp(JSC::ExecState*, RefPtr<ScriptArguments>&&) override;
 
 private:
     void warnUnimplemented(const String& method);
diff --git a/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.h b/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.h
index 7ee90c1..8d5c3f7 100644
--- a/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.h
+++ b/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.h
@@ -87,22 +87,22 @@
 
     JSC::ConsoleClient* consoleClient() const;
 
-    virtual bool developerExtrasEnabled() const override;
-    virtual bool canAccessInspectedScriptState(JSC::ExecState*) const override { return true; }
-    virtual InspectorFunctionCallHandler functionCallHandler() const override;
-    virtual InspectorEvaluateHandler evaluateHandler() const override;
-    virtual void frontendInitialized() override;
-    virtual Ref<WTF::Stopwatch> executionStopwatch() override;
-    virtual JSGlobalObjectScriptDebugServer& scriptDebugServer() override;
-    virtual JSC::VM& vm() override;
+    bool developerExtrasEnabled() const override;
+    bool canAccessInspectedScriptState(JSC::ExecState*) const override { return true; }
+    InspectorFunctionCallHandler functionCallHandler() const override;
+    InspectorEvaluateHandler evaluateHandler() const override;
+    void frontendInitialized() override;
+    Ref<WTF::Stopwatch> executionStopwatch() override;
+    JSGlobalObjectScriptDebugServer& scriptDebugServer() override;
+    JSC::VM& vm() override;
 
 #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
-    virtual AugmentableInspectorControllerClient* augmentableInspectorControllerClient() const override { return m_augmentingClient; } 
-    virtual void setAugmentableInspectorControllerClient(AugmentableInspectorControllerClient* client) override { m_augmentingClient = client; }
+    AugmentableInspectorControllerClient* augmentableInspectorControllerClient() const override { return m_augmentingClient; } 
+    void setAugmentableInspectorControllerClient(AugmentableInspectorControllerClient* client) override { m_augmentingClient = client; }
 
-    virtual const FrontendRouter& frontendRouter() const override { return m_frontendRouter.get(); }
-    virtual BackendDispatcher& backendDispatcher() override { return m_backendDispatcher.get(); }
-    virtual void appendExtraAgent(std::unique_ptr<InspectorAgentBase>) override;
+    const FrontendRouter& frontendRouter() const override { return m_frontendRouter.get(); }
+    BackendDispatcher& backendDispatcher() override { return m_backendDispatcher.get(); }
+    void appendExtraAgent(std::unique_ptr<InspectorAgentBase>) override;
 #endif
 
 private:
diff --git a/Source/JavaScriptCore/inspector/JSGlobalObjectScriptDebugServer.h b/Source/JavaScriptCore/inspector/JSGlobalObjectScriptDebugServer.h
index d808aa5..76b5d78 100644
--- a/Source/JavaScriptCore/inspector/JSGlobalObjectScriptDebugServer.h
+++ b/Source/JavaScriptCore/inspector/JSGlobalObjectScriptDebugServer.h
@@ -39,18 +39,18 @@
     JSC::JSGlobalObject& globalObject() const { return m_globalObject; }
 
 private:
-    virtual void attachDebugger() override;
-    virtual void detachDebugger(bool isBeingDestroyed) override;
+    void attachDebugger() override;
+    void detachDebugger(bool isBeingDestroyed) override;
 
-    virtual void didPause(JSC::JSGlobalObject*) override { }
-    virtual void didContinue(JSC::JSGlobalObject*) override { }
-    virtual void runEventLoopWhilePaused() override;
-    virtual bool isContentScript(JSC::ExecState*) const override { return false; }
+    void didPause(JSC::JSGlobalObject*) override { }
+    void didContinue(JSC::JSGlobalObject*) override { }
+    void runEventLoopWhilePaused() override;
+    bool isContentScript(JSC::ExecState*) const override { return false; }
 
     // NOTE: Currently all exceptions are reported at the API boundary through reportAPIException.
     // Until a time comes where an exception can be caused outside of the API (e.g. setTimeout
     // or some other async operation in a pure JSContext) we can ignore exceptions reported here.
-    virtual void reportException(JSC::ExecState*, JSC::Exception*) const override { }
+    void reportException(JSC::ExecState*, JSC::Exception*) const override { }
 
     JSC::JSGlobalObject& m_globalObject;
 };
diff --git a/Source/JavaScriptCore/inspector/ScriptDebugServer.h b/Source/JavaScriptCore/inspector/ScriptDebugServer.h
index ea210d3d..89d3fd1 100644
--- a/Source/JavaScriptCore/inspector/ScriptDebugServer.h
+++ b/Source/JavaScriptCore/inspector/ScriptDebugServer.h
@@ -92,12 +92,12 @@
 private:
     typedef HashMap<JSC::BreakpointID, BreakpointActions> BreakpointIDToActionsMap;
 
-    virtual void sourceParsed(JSC::ExecState*, JSC::SourceProvider*, int errorLine, const String& errorMsg) override final;
-    virtual bool needPauseHandling(JSC::JSGlobalObject*) override final { return true; }
-    virtual void handleBreakpointHit(JSC::JSGlobalObject*, const JSC::Breakpoint&) override final;
-    virtual void handleExceptionInBreakpointCondition(JSC::ExecState*, JSC::Exception*) const override final;
-    virtual void handlePause(JSC::JSGlobalObject*, JSC::Debugger::ReasonForPause) override final;
-    virtual void notifyDoneProcessingDebuggerEvents() override final;
+    void sourceParsed(JSC::ExecState*, JSC::SourceProvider*, int errorLine, const String& errorMsg) override final;
+    bool needPauseHandling(JSC::JSGlobalObject*) override final { return true; }
+    void handleBreakpointHit(JSC::JSGlobalObject*, const JSC::Breakpoint&) override final;
+    void handleExceptionInBreakpointCondition(JSC::ExecState*, JSC::Exception*) const override final;
+    void handlePause(JSC::JSGlobalObject*, JSC::Debugger::ReasonForPause) override final;
+    void notifyDoneProcessingDebuggerEvents() override final;
 
     Deprecated::ScriptValue exceptionOrCaughtValue(JSC::ExecState*);
 
diff --git a/Source/JavaScriptCore/inspector/agents/InspectorAgent.h b/Source/JavaScriptCore/inspector/agents/InspectorAgent.h
index eda7449..b5efede 100644
--- a/Source/JavaScriptCore/inspector/agents/InspectorAgent.h
+++ b/Source/JavaScriptCore/inspector/agents/InspectorAgent.h
@@ -51,12 +51,12 @@
     InspectorAgent(AgentContext&);
     virtual ~InspectorAgent();
 
-    virtual void didCreateFrontendAndBackend(FrontendRouter*, BackendDispatcher*) override;
-    virtual void willDestroyFrontendAndBackend(DisconnectReason) override;
+    void didCreateFrontendAndBackend(FrontendRouter*, BackendDispatcher*) override;
+    void willDestroyFrontendAndBackend(DisconnectReason) override;
 
-    virtual void enable(ErrorString&) override;
-    virtual void disable(ErrorString&) override;
-    virtual void initialized(ErrorString&) override;
+    void enable(ErrorString&) override;
+    void disable(ErrorString&) override;
+    void initialized(ErrorString&) override;
 
     void inspect(RefPtr<Protocol::Runtime::RemoteObject>&& objectToInspect, RefPtr<InspectorObject>&& hints);
     void evaluateForTestInFrontend(const String& script);
diff --git a/Source/JavaScriptCore/inspector/agents/InspectorConsoleAgent.h b/Source/JavaScriptCore/inspector/agents/InspectorConsoleAgent.h
index 0e228d9..873f6d3 100644
--- a/Source/JavaScriptCore/inspector/agents/InspectorConsoleAgent.h
+++ b/Source/JavaScriptCore/inspector/agents/InspectorConsoleAgent.h
@@ -55,14 +55,14 @@
     InspectorConsoleAgent(AgentContext&);
     virtual ~InspectorConsoleAgent();
 
-    virtual void didCreateFrontendAndBackend(FrontendRouter*, BackendDispatcher*) override;
-    virtual void willDestroyFrontendAndBackend(DisconnectReason) override;
+    void didCreateFrontendAndBackend(FrontendRouter*, BackendDispatcher*) override;
+    void willDestroyFrontendAndBackend(DisconnectReason) override;
 
-    virtual void enable(ErrorString&) override;
-    virtual void disable(ErrorString&) override;
-    virtual void clearMessages(ErrorString&) override;
-    virtual void setMonitoringXHREnabled(ErrorString&, bool enabled) override = 0;
-    virtual void addInspectedNode(ErrorString&, int nodeId) override = 0;
+    void enable(ErrorString&) override;
+    void disable(ErrorString&) override;
+    void clearMessages(ErrorString&) override;
+    void setMonitoringXHREnabled(ErrorString&, bool enabled) override = 0;
+    void addInspectedNode(ErrorString&, int nodeId) override = 0;
 
     bool enabled() const { return m_enabled; }
     void reset();
diff --git a/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.h b/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.h
index c09332c..6332b77 100644
--- a/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.h
+++ b/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.h
@@ -61,27 +61,27 @@
 
     virtual ~InspectorDebuggerAgent();
 
-    virtual void didCreateFrontendAndBackend(FrontendRouter*, BackendDispatcher*) override;
-    virtual void willDestroyFrontendAndBackend(DisconnectReason) override;
+    void didCreateFrontendAndBackend(FrontendRouter*, BackendDispatcher*) override;
+    void willDestroyFrontendAndBackend(DisconnectReason) override;
 
-    virtual void enable(ErrorString&) override;
-    virtual void disable(ErrorString&) override;
-    virtual void setBreakpointsActive(ErrorString&, bool active) override;
-    virtual void setBreakpointByUrl(ErrorString&, int lineNumber, const String* optionalURL, const String* optionalURLRegex, const int* optionalColumnNumber, const Inspector::InspectorObject* options, Inspector::Protocol::Debugger::BreakpointId*, RefPtr<Inspector::Protocol::Array<Inspector::Protocol::Debugger::Location>>& locations) override;
-    virtual void setBreakpoint(ErrorString&, const Inspector::InspectorObject& location, const Inspector::InspectorObject* options, Inspector::Protocol::Debugger::BreakpointId*, RefPtr<Inspector::Protocol::Debugger::Location>& actualLocation) override;
-    virtual void removeBreakpoint(ErrorString&, const String& breakpointIdentifier) override;
-    virtual void continueToLocation(ErrorString&, const InspectorObject& location) override;
-    virtual void searchInContent(ErrorString&, const String& scriptID, const String& query, const bool* optionalCaseSensitive, const bool* optionalIsRegex, RefPtr<Inspector::Protocol::Array<Inspector::Protocol::GenericTypes::SearchMatch>>&) override;
-    virtual void getScriptSource(ErrorString&, const String& scriptID, String* scriptSource) override;
-    virtual void getFunctionDetails(ErrorString&, const String& functionId, RefPtr<Inspector::Protocol::Debugger::FunctionDetails>&) override;
-    virtual void pause(ErrorString&) override;
-    virtual void resume(ErrorString&) override;
-    virtual void stepOver(ErrorString&) override;
-    virtual void stepInto(ErrorString&) override;
-    virtual void stepOut(ErrorString&) override;
-    virtual void setPauseOnExceptions(ErrorString&, const String& pauseState) override;
-    virtual void evaluateOnCallFrame(ErrorString&, const String& callFrameId, const String& expression, const String* objectGroup, const bool* includeCommandLineAPI, const bool* doNotPauseOnExceptionsAndMuteConsole, const bool* returnByValue, const bool* generatePreview, const bool* saveResult, RefPtr<Inspector::Protocol::Runtime::RemoteObject>& result, Inspector::Protocol::OptOutput<bool>* wasThrown, Inspector::Protocol::OptOutput<int>* savedResultIndex) override;
-    virtual void setOverlayMessage(ErrorString&, const String*) override;
+    void enable(ErrorString&) override;
+    void disable(ErrorString&) override;
+    void setBreakpointsActive(ErrorString&, bool active) override;
+    void setBreakpointByUrl(ErrorString&, int lineNumber, const String* optionalURL, const String* optionalURLRegex, const int* optionalColumnNumber, const Inspector::InspectorObject* options, Inspector::Protocol::Debugger::BreakpointId*, RefPtr<Inspector::Protocol::Array<Inspector::Protocol::Debugger::Location>>& locations) override;
+    void setBreakpoint(ErrorString&, const Inspector::InspectorObject& location, const Inspector::InspectorObject* options, Inspector::Protocol::Debugger::BreakpointId*, RefPtr<Inspector::Protocol::Debugger::Location>& actualLocation) override;
+    void removeBreakpoint(ErrorString&, const String& breakpointIdentifier) override;
+    void continueToLocation(ErrorString&, const InspectorObject& location) override;
+    void searchInContent(ErrorString&, const String& scriptID, const String& query, const bool* optionalCaseSensitive, const bool* optionalIsRegex, RefPtr<Inspector::Protocol::Array<Inspector::Protocol::GenericTypes::SearchMatch>>&) override;
+    void getScriptSource(ErrorString&, const String& scriptID, String* scriptSource) override;
+    void getFunctionDetails(ErrorString&, const String& functionId, RefPtr<Inspector::Protocol::Debugger::FunctionDetails>&) override;
+    void pause(ErrorString&) override;
+    void resume(ErrorString&) override;
+    void stepOver(ErrorString&) override;
+    void stepInto(ErrorString&) override;
+    void stepOut(ErrorString&) override;
+    void setPauseOnExceptions(ErrorString&, const String& pauseState) override;
+    void evaluateOnCallFrame(ErrorString&, const String& callFrameId, const String& expression, const String* objectGroup, const bool* includeCommandLineAPI, const bool* doNotPauseOnExceptionsAndMuteConsole, const bool* returnByValue, const bool* generatePreview, const bool* saveResult, RefPtr<Inspector::Protocol::Runtime::RemoteObject>& result, Inspector::Protocol::OptOutput<bool>* wasThrown, Inspector::Protocol::OptOutput<int>* savedResultIndex) override;
+    void setOverlayMessage(ErrorString&, const String*) override;
 
     bool isPaused();
 
@@ -117,8 +117,8 @@
 
     virtual void enable();
     virtual void disable(bool skipRecompile);
-    virtual void didPause(JSC::ExecState*, const Deprecated::ScriptValue& callFrames, const Deprecated::ScriptValue& exceptionOrCaughtValue) override;
-    virtual void didContinue() override;
+    void didPause(JSC::ExecState*, const Deprecated::ScriptValue& callFrames, const Deprecated::ScriptValue& exceptionOrCaughtValue) override;
+    void didContinue() override;
 
     virtual String sourceMapURLForScript(const Script&);
 
@@ -127,11 +127,11 @@
 private:
     Ref<Inspector::Protocol::Array<Inspector::Protocol::Debugger::CallFrame>> currentCallFrames(const InjectedScript&);
 
-    virtual void didParseSource(JSC::SourceID, const Script&) override final;
-    virtual void failedToParseSource(const String& url, const String& data, int firstLine, int errorLine, const String& errorMessage) override final;
+    void didParseSource(JSC::SourceID, const Script&) override final;
+    void failedToParseSource(const String& url, const String& data, int firstLine, int errorLine, const String& errorMessage) override final;
 
-    virtual void breakpointActionSound(int breakpointActionIdentifier) override;
-    virtual void breakpointActionProbe(JSC::ExecState*, const ScriptBreakpointAction&, unsigned batchId, unsigned sampleId, const Deprecated::ScriptValue& sample) override final;
+    void breakpointActionSound(int breakpointActionIdentifier) override;
+    void breakpointActionProbe(JSC::ExecState*, const ScriptBreakpointAction&, unsigned batchId, unsigned sampleId, const Deprecated::ScriptValue& sample) override final;
 
     RefPtr<Inspector::Protocol::Debugger::Location> resolveBreakpoint(const String& breakpointIdentifier, JSC::SourceID, const ScriptBreakpoint&);
     bool assertPaused(ErrorString&);
diff --git a/Source/JavaScriptCore/inspector/agents/InspectorHeapAgent.h b/Source/JavaScriptCore/inspector/agents/InspectorHeapAgent.h
index 18e48df..b1974e3 100644
--- a/Source/JavaScriptCore/inspector/agents/InspectorHeapAgent.h
+++ b/Source/JavaScriptCore/inspector/agents/InspectorHeapAgent.h
@@ -43,17 +43,17 @@
     InspectorHeapAgent(AgentContext&);
     virtual ~InspectorHeapAgent();
 
-    virtual void didCreateFrontendAndBackend(FrontendRouter*, BackendDispatcher*) override;
-    virtual void willDestroyFrontendAndBackend(DisconnectReason) override;
+    void didCreateFrontendAndBackend(FrontendRouter*, BackendDispatcher*) override;
+    void willDestroyFrontendAndBackend(DisconnectReason) override;
 
     // HeapBackendDispatcherHandler
-    virtual void enable(ErrorString&) override;
-    virtual void disable(ErrorString&) override;
-    virtual void gc(ErrorString&) override;
+    void enable(ErrorString&) override;
+    void disable(ErrorString&) override;
+    void gc(ErrorString&) override;
 
     // HeapObserver
-    virtual void willGarbageCollect() override;
-    virtual void didGarbageCollect(JSC::HeapOperation) override;
+    void willGarbageCollect() override;
+    void didGarbageCollect(JSC::HeapOperation) override;
 
 private:
     std::unique_ptr<HeapFrontendDispatcher> m_frontendDispatcher;
diff --git a/Source/JavaScriptCore/inspector/agents/InspectorRuntimeAgent.h b/Source/JavaScriptCore/inspector/agents/InspectorRuntimeAgent.h
index e3385b9..8404ae0 100644
--- a/Source/JavaScriptCore/inspector/agents/InspectorRuntimeAgent.h
+++ b/Source/JavaScriptCore/inspector/agents/InspectorRuntimeAgent.h
@@ -55,23 +55,23 @@
 public:
     virtual ~InspectorRuntimeAgent();
 
-    virtual void willDestroyFrontendAndBackend(DisconnectReason) override;
+    void willDestroyFrontendAndBackend(DisconnectReason) override;
 
-    virtual void enable(ErrorString&) override { m_enabled = true; }
-    virtual void disable(ErrorString&) override { m_enabled = false; }
-    virtual void parse(ErrorString&, const String& expression, Inspector::Protocol::Runtime::SyntaxErrorType* result, Inspector::Protocol::OptOutput<String>* message, RefPtr<Inspector::Protocol::Runtime::ErrorRange>&) override final;
-    virtual void evaluate(ErrorString&, const String& expression, const String* objectGroup, const bool* includeCommandLineAPI, const bool* doNotPauseOnExceptionsAndMuteConsole, const int* executionContextId, const bool* returnByValue, const bool* generatePreview, const bool* saveResult, RefPtr<Inspector::Protocol::Runtime::RemoteObject>& result, Inspector::Protocol::OptOutput<bool>* wasThrown, Inspector::Protocol::OptOutput<int>* savedResultIndex) override final;
-    virtual void callFunctionOn(ErrorString&, const String& objectId, const String& expression, const Inspector::InspectorArray* optionalArguments, const bool* doNotPauseOnExceptionsAndMuteConsole, const bool* returnByValue, const bool* generatePreview, RefPtr<Inspector::Protocol::Runtime::RemoteObject>& result, Inspector::Protocol::OptOutput<bool>* wasThrown) override final;
-    virtual void releaseObject(ErrorString&, const ErrorString& objectId) override final;
-    virtual void getProperties(ErrorString&, const String& objectId, const bool* ownProperties, const bool* generatePreview, RefPtr<Inspector::Protocol::Array<Inspector::Protocol::Runtime::PropertyDescriptor>>& result, RefPtr<Inspector::Protocol::Array<Inspector::Protocol::Runtime::InternalPropertyDescriptor>>& internalProperties) override final;
-    virtual void getDisplayableProperties(ErrorString&, const String& objectId, const bool* generatePreview, RefPtr<Inspector::Protocol::Array<Inspector::Protocol::Runtime::PropertyDescriptor>>& result, RefPtr<Inspector::Protocol::Array<Inspector::Protocol::Runtime::InternalPropertyDescriptor>>& internalProperties) override final;
-    virtual void getCollectionEntries(ErrorString&, const String& objectId, const String* objectGroup, const int* startIndex, const int* numberToFetch, RefPtr<Inspector::Protocol::Array<Inspector::Protocol::Runtime::CollectionEntry>>& entries) override final;
-    virtual void saveResult(ErrorString&, const Inspector::InspectorObject& callArgument, const int* executionContextId, Inspector::Protocol::OptOutput<int>* savedResultIndex) override final;
-    virtual void releaseObjectGroup(ErrorString&, const String& objectGroup) override final;
-    virtual void getRuntimeTypesForVariablesAtOffsets(ErrorString&, const Inspector::InspectorArray& locations, RefPtr<Inspector::Protocol::Array<Inspector::Protocol::Runtime::TypeDescription>>&) override;
-    virtual void enableTypeProfiler(ErrorString&) override;
-    virtual void disableTypeProfiler(ErrorString&) override;
-    virtual void getBasicBlocks(ErrorString&, const String& in_sourceID, RefPtr<Inspector::Protocol::Array<Inspector::Protocol::Runtime::BasicBlock>>& out_basicBlocks) override;
+    void enable(ErrorString&) override { m_enabled = true; }
+    void disable(ErrorString&) override { m_enabled = false; }
+    void parse(ErrorString&, const String& expression, Inspector::Protocol::Runtime::SyntaxErrorType* result, Inspector::Protocol::OptOutput<String>* message, RefPtr<Inspector::Protocol::Runtime::ErrorRange>&) override final;
+    void evaluate(ErrorString&, const String& expression, const String* objectGroup, const bool* includeCommandLineAPI, const bool* doNotPauseOnExceptionsAndMuteConsole, const int* executionContextId, const bool* returnByValue, const bool* generatePreview, const bool* saveResult, RefPtr<Inspector::Protocol::Runtime::RemoteObject>& result, Inspector::Protocol::OptOutput<bool>* wasThrown, Inspector::Protocol::OptOutput<int>* savedResultIndex) override final;
+    void callFunctionOn(ErrorString&, const String& objectId, const String& expression, const Inspector::InspectorArray* optionalArguments, const bool* doNotPauseOnExceptionsAndMuteConsole, const bool* returnByValue, const bool* generatePreview, RefPtr<Inspector::Protocol::Runtime::RemoteObject>& result, Inspector::Protocol::OptOutput<bool>* wasThrown) override final;
+    void releaseObject(ErrorString&, const ErrorString& objectId) override final;
+    void getProperties(ErrorString&, const String& objectId, const bool* ownProperties, const bool* generatePreview, RefPtr<Inspector::Protocol::Array<Inspector::Protocol::Runtime::PropertyDescriptor>>& result, RefPtr<Inspector::Protocol::Array<Inspector::Protocol::Runtime::InternalPropertyDescriptor>>& internalProperties) override final;
+    void getDisplayableProperties(ErrorString&, const String& objectId, const bool* generatePreview, RefPtr<Inspector::Protocol::Array<Inspector::Protocol::Runtime::PropertyDescriptor>>& result, RefPtr<Inspector::Protocol::Array<Inspector::Protocol::Runtime::InternalPropertyDescriptor>>& internalProperties) override final;
+    void getCollectionEntries(ErrorString&, const String& objectId, const String* objectGroup, const int* startIndex, const int* numberToFetch, RefPtr<Inspector::Protocol::Array<Inspector::Protocol::Runtime::CollectionEntry>>& entries) override final;
+    void saveResult(ErrorString&, const Inspector::InspectorObject& callArgument, const int* executionContextId, Inspector::Protocol::OptOutput<int>* savedResultIndex) override final;
+    void releaseObjectGroup(ErrorString&, const String& objectGroup) override final;
+    void getRuntimeTypesForVariablesAtOffsets(ErrorString&, const Inspector::InspectorArray& locations, RefPtr<Inspector::Protocol::Array<Inspector::Protocol::Runtime::TypeDescription>>&) override;
+    void enableTypeProfiler(ErrorString&) override;
+    void disableTypeProfiler(ErrorString&) override;
+    void getBasicBlocks(ErrorString&, const String& in_sourceID, RefPtr<Inspector::Protocol::Array<Inspector::Protocol::Runtime::BasicBlock>>& out_basicBlocks) override;
 
     bool enabled() const { return m_enabled; }
 
diff --git a/Source/JavaScriptCore/inspector/agents/InspectorScriptProfilerAgent.h b/Source/JavaScriptCore/inspector/agents/InspectorScriptProfilerAgent.h
index f62e008..ef87db3 100644
--- a/Source/JavaScriptCore/inspector/agents/InspectorScriptProfilerAgent.h
+++ b/Source/JavaScriptCore/inspector/agents/InspectorScriptProfilerAgent.h
@@ -46,17 +46,17 @@
     InspectorScriptProfilerAgent(AgentContext&);
     virtual ~InspectorScriptProfilerAgent();
 
-    virtual void didCreateFrontendAndBackend(FrontendRouter*, BackendDispatcher*) override;
-    virtual void willDestroyFrontendAndBackend(DisconnectReason) override;
+    void didCreateFrontendAndBackend(FrontendRouter*, BackendDispatcher*) override;
+    void willDestroyFrontendAndBackend(DisconnectReason) override;
 
     // ScriptProfilerBackendDispatcherHandler
-    virtual void startTracking(ErrorString&, const bool* includeSamples) override;
-    virtual void stopTracking(ErrorString&) override;
+    void startTracking(ErrorString&, const bool* includeSamples) override;
+    void stopTracking(ErrorString&) override;
 
     // Debugger::ProfilingClient
-    virtual bool isAlreadyProfiling() const override;
-    virtual double willEvaluateScript() override;
-    virtual void didEvaluateScript(double, JSC::ProfilingReason) override;
+    bool isAlreadyProfiling() const override;
+    double willEvaluateScript() override;
+    void didEvaluateScript(double, JSC::ProfilingReason) override;
 
 private:
     struct Event {
diff --git a/Source/JavaScriptCore/inspector/agents/JSGlobalObjectConsoleAgent.h b/Source/JavaScriptCore/inspector/agents/JSGlobalObjectConsoleAgent.h
index f966e92..b1dae4c 100644
--- a/Source/JavaScriptCore/inspector/agents/JSGlobalObjectConsoleAgent.h
+++ b/Source/JavaScriptCore/inspector/agents/JSGlobalObjectConsoleAgent.h
@@ -39,8 +39,8 @@
     virtual ~JSGlobalObjectConsoleAgent() { }
 
     // FIXME: XHRs and Nodes only makes sense debugging a Web context. Can this be moved to a different agent?
-    virtual void setMonitoringXHREnabled(ErrorString&, bool enabled) override;
-    virtual void addInspectedNode(ErrorString&, int nodeId) override;
+    void setMonitoringXHREnabled(ErrorString&, bool enabled) override;
+    void addInspectedNode(ErrorString&, int nodeId) override;
 };
 
 } // namespace Inspector
diff --git a/Source/JavaScriptCore/inspector/agents/JSGlobalObjectDebuggerAgent.h b/Source/JavaScriptCore/inspector/agents/JSGlobalObjectDebuggerAgent.h
index 450ecf2..91a57c9 100644
--- a/Source/JavaScriptCore/inspector/agents/JSGlobalObjectDebuggerAgent.h
+++ b/Source/JavaScriptCore/inspector/agents/JSGlobalObjectDebuggerAgent.h
@@ -40,14 +40,14 @@
     JSGlobalObjectDebuggerAgent(JSAgentContext&, InspectorConsoleAgent*);
     virtual ~JSGlobalObjectDebuggerAgent() { }
 
-    virtual InjectedScript injectedScriptForEval(ErrorString&, const int* executionContextId) override;
+    InjectedScript injectedScriptForEval(ErrorString&, const int* executionContextId) override;
 
-    virtual void breakpointActionLog(JSC::ExecState*, const String&) override;
+    void breakpointActionLog(JSC::ExecState*, const String&) override;
 
     // NOTE: JavaScript inspector does not yet need to mute a console because no messages
     // are sent to the console outside of the API boundary or console object.
-    virtual void muteConsole() override { }
-    virtual void unmuteConsole() override { }
+    void muteConsole() override { }
+    void unmuteConsole() override { }
 
 private:
     InspectorConsoleAgent* m_consoleAgent { nullptr };
diff --git a/Source/JavaScriptCore/inspector/agents/JSGlobalObjectRuntimeAgent.h b/Source/JavaScriptCore/inspector/agents/JSGlobalObjectRuntimeAgent.h
index dfa5ab1..3880e9f 100644
--- a/Source/JavaScriptCore/inspector/agents/JSGlobalObjectRuntimeAgent.h
+++ b/Source/JavaScriptCore/inspector/agents/JSGlobalObjectRuntimeAgent.h
@@ -38,14 +38,14 @@
 public:
     JSGlobalObjectRuntimeAgent(JSAgentContext&);
 
-    virtual void didCreateFrontendAndBackend(FrontendRouter*, BackendDispatcher*) override;
+    void didCreateFrontendAndBackend(FrontendRouter*, BackendDispatcher*) override;
 
-    virtual InjectedScript injectedScriptForEval(ErrorString&, const int* executionContextId) override;
+    InjectedScript injectedScriptForEval(ErrorString&, const int* executionContextId) override;
 
     // NOTE: JavaScript inspector does not yet need to mute a console because no messages
     // are sent to the console outside of the API boundary or console object.
-    virtual void muteConsole() override { }
-    virtual void unmuteConsole() override { }
+    void muteConsole() override { }
+    void unmuteConsole() override { }
 
 private:
     std::unique_ptr<RuntimeFrontendDispatcher> m_frontendDispatcher;
diff --git a/Source/JavaScriptCore/inspector/augmentable/AlternateDispatchableAgent.h b/Source/JavaScriptCore/inspector/augmentable/AlternateDispatchableAgent.h
index ed332ab..e03dbad 100644
--- a/Source/JavaScriptCore/inspector/augmentable/AlternateDispatchableAgent.h
+++ b/Source/JavaScriptCore/inspector/augmentable/AlternateDispatchableAgent.h
@@ -53,11 +53,11 @@
         m_alternateDispatcher->setBackendDispatcher(nullptr);
     }
 
-    virtual void didCreateFrontendAndBackend(FrontendRouter*, BackendDispatcher*) override
+    void didCreateFrontendAndBackend(FrontendRouter*, BackendDispatcher*) override
     {
     }
 
-    virtual void willDestroyFrontendAndBackend(DisconnectReason) override
+    void willDestroyFrontendAndBackend(DisconnectReason) override
     {
     }
 
diff --git a/Source/JavaScriptCore/inspector/remote/RemoteAutomationTarget.h b/Source/JavaScriptCore/inspector/remote/RemoteAutomationTarget.h
index 0b289db..ce46f02 100644
--- a/Source/JavaScriptCore/inspector/remote/RemoteAutomationTarget.h
+++ b/Source/JavaScriptCore/inspector/remote/RemoteAutomationTarget.h
@@ -43,8 +43,8 @@
     void setIsPaired(bool);
 
     virtual String name() const = 0;
-    virtual RemoteControllableTarget::Type type() const override { return RemoteControllableTarget::Type::Automation; }
-    virtual bool remoteControlAllowed() const override { return !m_paired; };
+    RemoteControllableTarget::Type type() const override { return RemoteControllableTarget::Type::Automation; }
+    bool remoteControlAllowed() const override { return !m_paired; };
 
 private:
     bool m_paired { false };
diff --git a/Source/JavaScriptCore/inspector/remote/RemoteConnectionToTarget.h b/Source/JavaScriptCore/inspector/remote/RemoteConnectionToTarget.h
index d3e8d31..192ca0e 100644
--- a/Source/JavaScriptCore/inspector/remote/RemoteConnectionToTarget.h
+++ b/Source/JavaScriptCore/inspector/remote/RemoteConnectionToTarget.h
@@ -63,8 +63,8 @@
     void clearQueue() { m_queue.clear(); }
 
     // FrontendChannel overrides.
-    virtual ConnectionType connectionType() const override { return ConnectionType::Remote; }
-    virtual bool sendMessageToFrontend(const String&) override;
+    ConnectionType connectionType() const override { return ConnectionType::Remote; }
+    bool sendMessageToFrontend(const String&) override;
 
 private:
     void dispatchAsyncOnTarget(void (^block)());
diff --git a/Source/JavaScriptCore/inspector/remote/RemoteInspectionTarget.h b/Source/JavaScriptCore/inspector/remote/RemoteInspectionTarget.h
index f595ddf..f644e78 100644
--- a/Source/JavaScriptCore/inspector/remote/RemoteInspectionTarget.h
+++ b/Source/JavaScriptCore/inspector/remote/RemoteInspectionTarget.h
@@ -57,7 +57,7 @@
     virtual void unpauseForInitializedInspector();
 
     // RemoteControllableTarget overrides.
-    virtual bool remoteControlAllowed() const override;
+    bool remoteControlAllowed() const override;
 private:
     bool m_allowed {false};
     RetainPtr<CFRunLoopRef> m_runLoop;
diff --git a/Source/JavaScriptCore/inspector/remote/RemoteInspector.h b/Source/JavaScriptCore/inspector/remote/RemoteInspector.h
index 3f2c50f..233e43e 100644
--- a/Source/JavaScriptCore/inspector/remote/RemoteInspector.h
+++ b/Source/JavaScriptCore/inspector/remote/RemoteInspector.h
@@ -104,9 +104,9 @@
 
     void sendAutomaticInspectionCandidateMessage();
 
-    virtual void xpcConnectionReceivedMessage(RemoteInspectorXPCConnection*, NSString *messageName, NSDictionary *userInfo) override;
-    virtual void xpcConnectionFailed(RemoteInspectorXPCConnection*) override;
-    virtual void xpcConnectionUnhandledMessage(RemoteInspectorXPCConnection*, xpc_object_t) override;
+    void xpcConnectionReceivedMessage(RemoteInspectorXPCConnection*, NSString *messageName, NSDictionary *userInfo) override;
+    void xpcConnectionFailed(RemoteInspectorXPCConnection*) override;
+    void xpcConnectionUnhandledMessage(RemoteInspectorXPCConnection*, xpc_object_t) override;
 
     void receivedSetupMessage(NSDictionary *userInfo);
     void receivedDataMessage(NSDictionary *userInfo);
diff --git a/Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator_templates.py b/Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator_templates.py
index 5c30d09..be2e979 100755
--- a/Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator_templates.py
+++ b/Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator_templates.py
@@ -101,7 +101,7 @@
     """${classAndExportMacro} ${domainName}BackendDispatcher final : public SupplementalBackendDispatcher {
 public:
     static Ref<${domainName}BackendDispatcher> create(BackendDispatcher&, ${domainName}BackendDispatcherHandler*);
-    virtual void dispatch(long requestId, const String& method, Ref<InspectorObject>&& message) override;
+    void dispatch(long requestId, const String& method, Ref<InspectorObject>&& message) override;
 ${commandDeclarations}
 private:
     ${domainName}BackendDispatcher(BackendDispatcher&, ${domainName}BackendDispatcherHandler*);
diff --git a/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-async-attribute.json-result b/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-async-attribute.json-result
index a414504..7d23bb7 100644
--- a/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-async-attribute.json-result
+++ b/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-async-attribute.json-result
@@ -188,7 +188,7 @@
 class DatabaseBackendDispatcher final : public SupplementalBackendDispatcher {
 public:
     static Ref<DatabaseBackendDispatcher> create(BackendDispatcher&, DatabaseBackendDispatcherHandler*);
-    virtual void dispatch(long requestId, const String& method, Ref<InspectorObject>&& message) override;
+    void dispatch(long requestId, const String& method, Ref<InspectorObject>&& message) override;
 private:
     void executeSQLSyncOptionalReturnValues(long requestId, RefPtr<InspectorObject>&& parameters);
     void executeSQLAsyncOptionalReturnValues(long requestId, RefPtr<InspectorObject>&& parameters);
@@ -843,10 +843,10 @@
 class ObjCInspectorDatabaseBackendDispatcher final : public AlternateDatabaseBackendDispatcher {
 public:
     ObjCInspectorDatabaseBackendDispatcher(id<TestProtocolDatabaseDomainHandler> handler) { m_delegate = handler; }
-    virtual void executeSQLSyncOptionalReturnValues(long requestId, int in_databaseId, const String& in_query) override;
-    virtual void executeSQLAsyncOptionalReturnValues(long requestId, int in_databaseId, const String& in_query) override;
-    virtual void executeSQLSync(long requestId, int in_databaseId, const String& in_query) override;
-    virtual void executeSQLAsync(long requestId, int in_databaseId, const String& in_query) override;
+    void executeSQLSyncOptionalReturnValues(long requestId, int in_databaseId, const String& in_query) override;
+    void executeSQLAsyncOptionalReturnValues(long requestId, int in_databaseId, const String& in_query) override;
+    void executeSQLSync(long requestId, int in_databaseId, const String& in_query) override;
+    void executeSQLAsync(long requestId, int in_databaseId, const String& in_query) override;
 private:
     RetainPtr<id<TestProtocolDatabaseDomainHandler>> m_delegate;
 };
diff --git a/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result b/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result
index 47fc4e9..8f06200 100644
--- a/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result
+++ b/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result
@@ -171,7 +171,7 @@
 class DatabaseBackendDispatcher final : public SupplementalBackendDispatcher {
 public:
     static Ref<DatabaseBackendDispatcher> create(BackendDispatcher&, DatabaseBackendDispatcherHandler*);
-    virtual void dispatch(long requestId, const String& method, Ref<InspectorObject>&& message) override;
+    void dispatch(long requestId, const String& method, Ref<InspectorObject>&& message) override;
 private:
     void executeAllOptionalParameters(long requestId, RefPtr<InspectorObject>&& parameters);
     void executeNoOptionalParameters(long requestId, RefPtr<InspectorObject>&& parameters);
@@ -744,8 +744,8 @@
 class ObjCInspectorDatabaseBackendDispatcher final : public AlternateDatabaseBackendDispatcher {
 public:
     ObjCInspectorDatabaseBackendDispatcher(id<TestProtocolDatabaseDomainHandler> handler) { m_delegate = handler; }
-    virtual void executeAllOptionalParameters(long requestId, const Inspector::InspectorArray* in_columnNames, const String* in_notes, const double* in_timestamp, const Inspector::InspectorObject* in_values, const Inspector::InspectorValue* in_payload, const int* in_databaseId, const Inspector::InspectorObject* in_sqlError, const String* in_screenColor, const Inspector::InspectorArray* in_alternateColors, const String* in_printColor) override;
-    virtual void executeNoOptionalParameters(long requestId, const Inspector::InspectorArray& in_columnNames, const String& in_notes, double in_timestamp, const Inspector::InspectorObject& in_values, Inspector::InspectorValue in_payload, int in_databaseId, const Inspector::InspectorObject& in_sqlError, const String& in_screenColor, const Inspector::InspectorArray& in_alternateColors, const String& in_printColor) override;
+    void executeAllOptionalParameters(long requestId, const Inspector::InspectorArray* in_columnNames, const String* in_notes, const double* in_timestamp, const Inspector::InspectorObject* in_values, const Inspector::InspectorValue* in_payload, const int* in_databaseId, const Inspector::InspectorObject* in_sqlError, const String* in_screenColor, const Inspector::InspectorArray* in_alternateColors, const String* in_printColor) override;
+    void executeNoOptionalParameters(long requestId, const Inspector::InspectorArray& in_columnNames, const String& in_notes, double in_timestamp, const Inspector::InspectorObject& in_values, Inspector::InspectorValue in_payload, int in_databaseId, const Inspector::InspectorObject& in_sqlError, const String& in_screenColor, const Inspector::InspectorArray& in_alternateColors, const String& in_printColor) override;
 private:
     RetainPtr<id<TestProtocolDatabaseDomainHandler>> m_delegate;
 };
diff --git a/Source/JavaScriptCore/inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result b/Source/JavaScriptCore/inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result
index 396da3c..f8df9e1 100644
--- a/Source/JavaScriptCore/inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result
+++ b/Source/JavaScriptCore/inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result
@@ -189,7 +189,7 @@
 class Network1BackendDispatcher final : public SupplementalBackendDispatcher {
 public:
     static Ref<Network1BackendDispatcher> create(BackendDispatcher&, Network1BackendDispatcherHandler*);
-    virtual void dispatch(long requestId, const String& method, Ref<InspectorObject>&& message) override;
+    void dispatch(long requestId, const String& method, Ref<InspectorObject>&& message) override;
 private:
     void loadResource1(long requestId, RefPtr<InspectorObject>&& parameters);
 #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
@@ -206,7 +206,7 @@
 class Network3BackendDispatcher final : public SupplementalBackendDispatcher {
 public:
     static Ref<Network3BackendDispatcher> create(BackendDispatcher&, Network3BackendDispatcherHandler*);
-    virtual void dispatch(long requestId, const String& method, Ref<InspectorObject>&& message) override;
+    void dispatch(long requestId, const String& method, Ref<InspectorObject>&& message) override;
 private:
     void loadResource1(long requestId, RefPtr<InspectorObject>&& parameters);
     void loadResource2(long requestId, RefPtr<InspectorObject>&& parameters);
@@ -765,7 +765,7 @@
 class ObjCInspectorNetwork1BackendDispatcher final : public AlternateNetwork1BackendDispatcher {
 public:
     ObjCInspectorNetwork1BackendDispatcher(id<TestProtocolNetwork1DomainHandler> handler) { m_delegate = handler; }
-    virtual void loadResource1(long requestId) override;
+    void loadResource1(long requestId) override;
 private:
     RetainPtr<id<TestProtocolNetwork1DomainHandler>> m_delegate;
 };
@@ -775,13 +775,13 @@
 class ObjCInspectorNetwork3BackendDispatcher final : public AlternateNetwork3BackendDispatcher {
 public:
     ObjCInspectorNetwork3BackendDispatcher(id<TestProtocolNetwork3DomainHandler> handler) { m_delegate = handler; }
-    virtual void loadResource1(long requestId) override;
-    virtual void loadResource2(long requestId) override;
-    virtual void loadResource3(long requestId) override;
-    virtual void loadResource4(long requestId) override;
-    virtual void loadResource5(long requestId) override;
-    virtual void loadResource6(long requestId) override;
-    virtual void loadResource7(long requestId) override;
+    void loadResource1(long requestId) override;
+    void loadResource2(long requestId) override;
+    void loadResource3(long requestId) override;
+    void loadResource4(long requestId) override;
+    void loadResource5(long requestId) override;
+    void loadResource6(long requestId) override;
+    void loadResource7(long requestId) override;
 private:
     RetainPtr<id<TestProtocolNetwork3DomainHandler>> m_delegate;
 };
diff --git a/Source/JavaScriptCore/inspector/scripts/tests/expected/enum-values.json-result b/Source/JavaScriptCore/inspector/scripts/tests/expected/enum-values.json-result
index 0514f4b..9cc2106 100644
--- a/Source/JavaScriptCore/inspector/scripts/tests/expected/enum-values.json-result
+++ b/Source/JavaScriptCore/inspector/scripts/tests/expected/enum-values.json-result
@@ -170,7 +170,7 @@
 class CommandDomainBackendDispatcher final : public SupplementalBackendDispatcher {
 public:
     static Ref<CommandDomainBackendDispatcher> create(BackendDispatcher&, CommandDomainBackendDispatcherHandler*);
-    virtual void dispatch(long requestId, const String& method, Ref<InspectorObject>&& message) override;
+    void dispatch(long requestId, const String& method, Ref<InspectorObject>&& message) override;
 private:
     void commandWithEnumReturnValue(long requestId, RefPtr<InspectorObject>&& parameters);
 #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
@@ -589,7 +589,7 @@
 class ObjCInspectorCommandDomainBackendDispatcher final : public AlternateCommandDomainBackendDispatcher {
 public:
     ObjCInspectorCommandDomainBackendDispatcher(id<TestProtocolCommandDomainDomainHandler> handler) { m_delegate = handler; }
-    virtual void commandWithEnumReturnValue(long requestId) override;
+    void commandWithEnumReturnValue(long requestId) override;
 private:
     RetainPtr<id<TestProtocolCommandDomainDomainHandler>> m_delegate;
 };
diff --git a/Source/JavaScriptCore/inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result b/Source/JavaScriptCore/inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result
index f7c6b1c..601a902 100644
--- a/Source/JavaScriptCore/inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result
+++ b/Source/JavaScriptCore/inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result
@@ -166,7 +166,7 @@
 class Network1BackendDispatcher final : public SupplementalBackendDispatcher {
 public:
     static Ref<Network1BackendDispatcher> create(BackendDispatcher&, Network1BackendDispatcherHandler*);
-    virtual void dispatch(long requestId, const String& method, Ref<InspectorObject>&& message) override;
+    void dispatch(long requestId, const String& method, Ref<InspectorObject>&& message) override;
 private:
     void loadResource(long requestId, RefPtr<InspectorObject>&& parameters);
 #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
@@ -632,7 +632,7 @@
 class ObjCInspectorNetwork1BackendDispatcher final : public AlternateNetwork1BackendDispatcher {
 public:
     ObjCInspectorNetwork1BackendDispatcher(id<TestProtocolNetwork1DomainHandler> handler) { m_delegate = handler; }
-    virtual void loadResource(long requestId) override;
+    void loadResource(long requestId) override;
 private:
     RetainPtr<id<TestProtocolNetwork1DomainHandler>> m_delegate;
 };
diff --git a/Source/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp b/Source/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp
index 8d5018b..d0d2f15 100644
--- a/Source/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp
+++ b/Source/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp
@@ -78,13 +78,13 @@
     virtual ~FixedVMPoolExecutableAllocator();
     
 protected:
-    virtual void* allocateNewSpace(size_t&) override
+    void* allocateNewSpace(size_t&) override
     {
         // We're operating in a fixed pool, so new allocation is always prohibited.
         return 0;
     }
     
-    virtual void notifyNeedPage(void* page) override
+    void notifyNeedPage(void* page) override
     {
 #if USE(MADV_FREE_FOR_JIT_MEMORY)
         UNUSED_PARAM(page);
@@ -93,7 +93,7 @@
 #endif
     }
     
-    virtual void notifyPageIsFree(void* page) override
+    void notifyPageIsFree(void* page) override
     {
 #if USE(MADV_FREE_FOR_JIT_MEMORY)
         for (;;) {
diff --git a/Source/JavaScriptCore/jit/GCAwareJITStubRoutine.h b/Source/JavaScriptCore/jit/GCAwareJITStubRoutine.h
index 97d9016..c84a168 100644
--- a/Source/JavaScriptCore/jit/GCAwareJITStubRoutine.h
+++ b/Source/JavaScriptCore/jit/GCAwareJITStubRoutine.h
@@ -63,7 +63,7 @@
     void deleteFromGC();
     
 protected:
-    virtual void observeZeroRefCount() override;
+    void observeZeroRefCount() override;
     
     virtual void markRequiredObjectsInternal(SlotVisitor&);
 
@@ -83,7 +83,7 @@
     virtual ~MarkingGCAwareJITStubRoutineWithOneObject();
     
 protected:
-    virtual void markRequiredObjectsInternal(SlotVisitor&) override;
+    void markRequiredObjectsInternal(SlotVisitor&) override;
 
 private:
     WriteBarrier<JSCell> m_object;
diff --git a/Source/JavaScriptCore/jit/JITCode.h b/Source/JavaScriptCore/jit/JITCode.h
index 7fb7b31..991936b 100644
--- a/Source/JavaScriptCore/jit/JITCode.h
+++ b/Source/JavaScriptCore/jit/JITCode.h
@@ -212,11 +212,11 @@
 public:
     virtual ~JITCodeWithCodeRef();
 
-    virtual void* executableAddressAtOffset(size_t offset) override;
-    virtual void* dataAddressAtOffset(size_t offset) override;
-    virtual unsigned offsetOf(void* pointerIntoCode) override;
-    virtual size_t size() override;
-    virtual bool contains(void*) override;
+    void* executableAddressAtOffset(size_t offset) override;
+    void* dataAddressAtOffset(size_t offset) override;
+    unsigned offsetOf(void* pointerIntoCode) override;
+    size_t size() override;
+    bool contains(void*) override;
 
 protected:
     CodeRef m_ref;
@@ -230,7 +230,7 @@
     
     void initializeCodeRef(CodeRef, CodePtr withArityCheck);
 
-    virtual CodePtr addressForCall(ArityCheckMode) override;
+    CodePtr addressForCall(ArityCheckMode) override;
 
 private:
     CodePtr m_withArityCheck;
@@ -244,7 +244,7 @@
     
     void initializeCodeRef(CodeRef);
 
-    virtual CodePtr addressForCall(ArityCheckMode) override;
+    CodePtr addressForCall(ArityCheckMode) override;
 };
 
 } // namespace JSC
diff --git a/Source/JavaScriptCore/jit/JITToDFGDeferredCompilationCallback.h b/Source/JavaScriptCore/jit/JITToDFGDeferredCompilationCallback.h
index af2532f..5ac5e22 100644
--- a/Source/JavaScriptCore/jit/JITToDFGDeferredCompilationCallback.h
+++ b/Source/JavaScriptCore/jit/JITToDFGDeferredCompilationCallback.h
@@ -44,8 +44,8 @@
 
     static Ref<JITToDFGDeferredCompilationCallback> create();
     
-    virtual void compilationDidBecomeReadyAsynchronously(CodeBlock*, CodeBlock* profiledDFGCodeBlock) override;
-    virtual void compilationDidComplete(CodeBlock*, CodeBlock* profiledDFGCodeBlock, CompilationResult) override;
+    void compilationDidBecomeReadyAsynchronously(CodeBlock*, CodeBlock* profiledDFGCodeBlock) override;
+    void compilationDidComplete(CodeBlock*, CodeBlock* profiledDFGCodeBlock, CompilationResult) override;
 };
 
 } // namespace JSC
diff --git a/Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.h b/Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.h
index 9d1491c..bac643a 100644
--- a/Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.h
+++ b/Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.h
@@ -99,7 +99,7 @@
     bool visitWeak(VM&) override;
 
 protected:
-    virtual void markRequiredObjectsInternal(SlotVisitor&) override;
+    void markRequiredObjectsInternal(SlotVisitor&) override;
 
 private:
     Vector<WriteBarrier<JSCell>, 2> m_variants;
diff --git a/Source/JavaScriptCore/parser/Nodes.h b/Source/JavaScriptCore/parser/Nodes.h
index 449dd880..f4eadde 100644
--- a/Source/JavaScriptCore/parser/Nodes.h
+++ b/Source/JavaScriptCore/parser/Nodes.h
@@ -229,12 +229,12 @@
     class ConstantNode : public ExpressionNode {
     public:
         ConstantNode(const JSTokenLocation&, ResultType);
-        virtual bool isPure(BytecodeGenerator&) const override { return true; }
-        virtual bool isConstant() const  override { return true; }
+        bool isPure(BytecodeGenerator&) const override { return true; }
+        bool isConstant() const  override { return true; }
         virtual JSValue jsValue(BytecodeGenerator&) const = 0;
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
-        virtual void emitBytecodeInConditionContext(BytecodeGenerator&, Label* trueTarget, Label* falseTarget, FallThroughMode) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void emitBytecodeInConditionContext(BytecodeGenerator&, Label* trueTarget, Label* falseTarget, FallThroughMode) override;
     };
 
     class NullNode : public ConstantNode {
@@ -242,8 +242,8 @@
         NullNode(const JSTokenLocation&);
 
     private:
-        virtual bool isNull() const override { return true; }
-        virtual JSValue jsValue(BytecodeGenerator&) const override { return jsNull(); }
+        bool isNull() const override { return true; }
+        JSValue jsValue(BytecodeGenerator&) const override { return jsNull(); }
     };
 
     class BooleanNode : public ConstantNode {
@@ -252,8 +252,8 @@
         bool value() { return m_value; }
 
     private:
-        virtual bool isBoolean() const override { return true; }
-        virtual JSValue jsValue(BytecodeGenerator&) const override { return jsBoolean(m_value); }
+        bool isBoolean() const override { return true; }
+        JSValue jsValue(BytecodeGenerator&) const override { return jsBoolean(m_value); }
 
         bool m_value;
     };
@@ -263,11 +263,11 @@
         NumberNode(const JSTokenLocation&, double value);
         double value() const { return m_value; }
         virtual bool isIntegerNode() const = 0;
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override final;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override final;
 
     private:
-        virtual bool isNumber() const override final { return true; }
-        virtual JSValue jsValue(BytecodeGenerator&) const override { return jsNumber(m_value); }
+        bool isNumber() const override final { return true; }
+        JSValue jsValue(BytecodeGenerator&) const override { return jsNumber(m_value); }
 
         double m_value;
     };
@@ -277,14 +277,14 @@
         DoubleNode(const JSTokenLocation&, double value);
 
     private:
-        virtual bool isIntegerNode() const override { return false; }
+        bool isIntegerNode() const override { return false; }
     };
 
     // An integer node represent a number represented as an integer (e.g. 42 instead of 42., 42.0, 42e0)
     class IntegerNode : public DoubleNode {
     public:
         IntegerNode(const JSTokenLocation&, double value);
-        virtual bool isIntegerNode() const override final { return true; }
+        bool isIntegerNode() const override final { return true; }
     };
 
     class StringNode : public ConstantNode {
@@ -293,8 +293,8 @@
         const Identifier& value() { return m_value; }
 
     private:
-        virtual bool isString() const override { return true; }
-        virtual JSValue jsValue(BytecodeGenerator&) const override;
+        bool isString() const override { return true; }
+        JSValue jsValue(BytecodeGenerator&) const override;
 
         const Identifier& m_value;
     };
@@ -472,7 +472,7 @@
         const Identifier& raw() { return m_raw; }
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         const Identifier& m_cooked;
         const Identifier& m_raw;
@@ -500,7 +500,7 @@
         TemplateExpressionListNode* templateExpressions() const { return m_templateExpressions; }
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         TemplateStringListNode* m_templateStrings;
         TemplateExpressionListNode* m_templateExpressions;
@@ -513,7 +513,7 @@
         TemplateLiteralNode* templateLiteral() const { return m_templateLiteral; }
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         ExpressionNode* m_tag;
         TemplateLiteralNode* m_templateLiteral;
@@ -524,7 +524,7 @@
         RegExpNode(const JSTokenLocation&, const Identifier& pattern, const Identifier& flags);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         const Identifier& m_pattern;
         const Identifier& m_flags;
@@ -535,7 +535,7 @@
         ThisNode(const JSTokenLocation&, ThisTDZMode);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         bool m_shouldAlwaysEmitTDZCheck;
     };
@@ -545,8 +545,8 @@
         SuperNode(const JSTokenLocation&);
 
     private:
-        virtual bool isSuperNode() const override { return true; }
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        bool isSuperNode() const override { return true; }
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
     };
 
     class NewTargetNode final : public ExpressionNode {
@@ -554,7 +554,7 @@
         NewTargetNode(const JSTokenLocation&);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
     };
 
     class ResolveNode : public ExpressionNode {
@@ -564,11 +564,11 @@
         const Identifier& identifier() const { return m_ident; }
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
-        virtual bool isPure(BytecodeGenerator&) const override;
-        virtual bool isLocation() const override { return true; }
-        virtual bool isResolveNode() const override { return true; }
+        bool isPure(BytecodeGenerator&) const override;
+        bool isLocation() const override { return true; }
+        bool isResolveNode() const override { return true; }
 
         const Identifier& m_ident;
         JSTextPosition m_start;
@@ -595,15 +595,15 @@
         ArrayNode(const JSTokenLocation&, ElementNode*);
         ArrayNode(const JSTokenLocation&, int elision, ElementNode*);
 
-        virtual bool isArrayLiteral() const override { return true; }
+        bool isArrayLiteral() const override { return true; }
 
         ArgumentListNode* toArgumentList(ParserArena&, int, int) const;
 
         ElementNode* elements() const { ASSERT(isSimpleArray()); return m_element; }
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
-        virtual bool isSimpleArray() const override;
+        bool isSimpleArray() const override;
 
         ElementNode* m_element;
         int m_elision;
@@ -641,7 +641,7 @@
         PropertyListNode(const JSTokenLocation&, PropertyNode*, PropertyListNode*);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
         void emitPutConstantProperty(BytecodeGenerator&, RegisterID*, PropertyNode&);
 
         PropertyNode* m_node;
@@ -652,10 +652,10 @@
     public:
         ObjectLiteralNode(const JSTokenLocation&);
         ObjectLiteralNode(const JSTokenLocation&, PropertyListNode*);
-        virtual bool isObjectLiteral() const override { return true; }
+        bool isObjectLiteral() const override { return true; }
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         PropertyListNode* m_list;
     };
@@ -670,10 +670,10 @@
         bool subscriptHasAssignments() const { return m_subscriptHasAssignments; }
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
-        virtual bool isLocation() const override { return true; }
-        virtual bool isBracketAccessorNode() const override { return true; }
+        bool isLocation() const override { return true; }
+        bool isBracketAccessorNode() const override { return true; }
 
         ExpressionNode* m_base;
         ExpressionNode* m_subscript;
@@ -688,10 +688,10 @@
         const Identifier& identifier() const { return m_ident; }
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
-        virtual bool isLocation() const override { return true; }
-        virtual bool isDotAccessorNode() const override { return true; }
+        bool isLocation() const override { return true; }
+        bool isDotAccessorNode() const override { return true; }
 
         ExpressionNode* m_base;
         const Identifier& m_ident;
@@ -704,9 +704,9 @@
         ExpressionNode* expression() const { return m_expression; }
         
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
         
-        virtual bool isSpreadExpression() const override { return true; }
+        bool isSpreadExpression() const override { return true; }
         ExpressionNode* m_expression;
     };
 
@@ -719,7 +719,7 @@
         ExpressionNode* m_expr;
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
     };
 
     class ArgumentsNode : public ParserArenaFreeable {
@@ -736,7 +736,7 @@
         NewExprNode(const JSTokenLocation&, ExpressionNode*, ArgumentsNode*);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         ExpressionNode* m_expr;
         ArgumentsNode* m_args;
@@ -747,7 +747,7 @@
         EvalFunctionCallNode(const JSTokenLocation&, ArgumentsNode*, const JSTextPosition& divot, const JSTextPosition& divotStart, const JSTextPosition& divotEnd);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         ArgumentsNode* m_args;
     };
@@ -757,7 +757,7 @@
         FunctionCallValueNode(const JSTokenLocation&, ExpressionNode*, ArgumentsNode*, const JSTextPosition& divot, const JSTextPosition& divotStart, const JSTextPosition& divotEnd);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         ExpressionNode* m_expr;
         ArgumentsNode* m_args;
@@ -768,7 +768,7 @@
         FunctionCallResolveNode(const JSTokenLocation&, const Identifier&, ArgumentsNode*, const JSTextPosition& divot, const JSTextPosition& divotStart, const JSTextPosition& divotEnd);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         const Identifier& m_ident;
         ArgumentsNode* m_args;
@@ -779,7 +779,7 @@
         FunctionCallBracketNode(const JSTokenLocation&, ExpressionNode* base, ExpressionNode* subscript, bool subscriptHasAssignments, ArgumentsNode*, const JSTextPosition& divot, const JSTextPosition& divotStart, const JSTextPosition& divotEnd);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         ExpressionNode* m_base;
         ExpressionNode* m_subscript;
@@ -792,7 +792,7 @@
         FunctionCallDotNode(const JSTokenLocation&, ExpressionNode* base, const Identifier&, ArgumentsNode*, const JSTextPosition& divot, const JSTextPosition& divotStart, const JSTextPosition& divotEnd);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
     protected:
         ExpressionNode* m_base;
@@ -811,7 +811,7 @@
 
         BytecodeIntrinsicNode(Type, const JSTokenLocation&, EmitterType, const Identifier&, ArgumentsNode*, const JSTextPosition& divot, const JSTextPosition& divotStart, const JSTextPosition& divotEnd);
 
-        virtual bool isBytecodeIntrinsicNode() const override { return true; }
+        bool isBytecodeIntrinsicNode() const override { return true; }
 
         Type type() const { return m_type; }
         EmitterType emitter() const { return m_emitter; }
@@ -823,7 +823,7 @@
 #undef JSC_DECLARE_BYTECODE_INTRINSIC_FUNCTIONS
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         Type m_type;
         EmitterType m_emitter;
@@ -836,7 +836,7 @@
         CallFunctionCallDotNode(const JSTokenLocation&, ExpressionNode* base, const Identifier&, ArgumentsNode*, const JSTextPosition& divot, const JSTextPosition& divotStart, const JSTextPosition& divotEnd);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
     };
     
     class ApplyFunctionCallDotNode : public FunctionCallDotNode {
@@ -844,7 +844,7 @@
         ApplyFunctionCallDotNode(const JSTokenLocation&, ExpressionNode* base, const Identifier&, ArgumentsNode*, const JSTextPosition& divot, const JSTextPosition& divotStart, const JSTextPosition& divotEnd);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
     };
 
     class DeleteResolveNode : public ExpressionNode, public ThrowableExpressionData {
@@ -852,7 +852,7 @@
         DeleteResolveNode(const JSTokenLocation&, const Identifier&, const JSTextPosition& divot, const JSTextPosition& divotStart, const JSTextPosition& divotEnd);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         const Identifier& m_ident;
     };
@@ -862,7 +862,7 @@
         DeleteBracketNode(const JSTokenLocation&, ExpressionNode* base, ExpressionNode* subscript, const JSTextPosition& divot, const JSTextPosition& divotStart, const JSTextPosition& divotEnd);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         ExpressionNode* m_base;
         ExpressionNode* m_subscript;
@@ -873,7 +873,7 @@
         DeleteDotNode(const JSTokenLocation&, ExpressionNode* base, const Identifier&, const JSTextPosition& divot, const JSTextPosition& divotStart, const JSTextPosition& divotEnd);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         ExpressionNode* m_base;
         const Identifier& m_ident;
@@ -884,7 +884,7 @@
         DeleteValueNode(const JSTokenLocation&, ExpressionNode*);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         ExpressionNode* m_expr;
     };
@@ -894,7 +894,7 @@
         VoidNode(const JSTokenLocation&, ExpressionNode*);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         ExpressionNode* m_expr;
     };
@@ -906,7 +906,7 @@
         const Identifier& identifier() const { return m_ident; }
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         const Identifier& m_ident;
     };
@@ -916,7 +916,7 @@
         TypeOfValueNode(const JSTokenLocation&, ExpressionNode*);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         ExpressionNode* m_expr;
     };
@@ -926,7 +926,7 @@
         PrefixNode(const JSTokenLocation&, ExpressionNode*, Operator, const JSTextPosition& divot, const JSTextPosition& divotStart, const JSTextPosition& divotEnd);
 
     protected:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
         virtual RegisterID* emitResolve(BytecodeGenerator&, RegisterID* = 0);
         virtual RegisterID* emitBracket(BytecodeGenerator&, RegisterID* = 0);
         virtual RegisterID* emitDot(BytecodeGenerator&, RegisterID* = 0);
@@ -940,10 +940,10 @@
         PostfixNode(const JSTokenLocation&, ExpressionNode*, Operator, const JSTextPosition& divot, const JSTextPosition& divotStart, const JSTextPosition& divotEnd);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
-        virtual RegisterID* emitResolve(BytecodeGenerator&, RegisterID* = 0) override;
-        virtual RegisterID* emitBracket(BytecodeGenerator&, RegisterID* = 0) override;
-        virtual RegisterID* emitDot(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitResolve(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBracket(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitDot(BytecodeGenerator&, RegisterID* = 0) override;
     };
 
     class UnaryOpNode : public ExpressionNode {
@@ -955,7 +955,7 @@
         const ExpressionNode* expr() const { return m_expr; }
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         OpcodeID opcodeID() const { return m_opcodeID; }
 
@@ -968,7 +968,7 @@
         UnaryPlusNode(const JSTokenLocation&, ExpressionNode*);
 
     private:
-        virtual ExpressionNode* stripUnaryPlus() override { return expr(); }
+        ExpressionNode* stripUnaryPlus() override { return expr(); }
     };
 
     class NegateNode : public UnaryOpNode {
@@ -985,7 +985,7 @@
         const ExpressionNode* expr() const { return m_expr; }
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         ExpressionNode* m_expr;
     };
@@ -994,7 +994,7 @@
     public:
         LogicalNotNode(const JSTokenLocation&, ExpressionNode*);
     private:
-        virtual void emitBytecodeInConditionContext(BytecodeGenerator&, Label* trueTarget, Label* falseTarget, FallThroughMode) override;
+        void emitBytecodeInConditionContext(BytecodeGenerator&, Label* trueTarget, Label* falseTarget, FallThroughMode) override;
     };
 
     class BinaryOpNode : public ExpressionNode {
@@ -1003,14 +1003,14 @@
         BinaryOpNode(const JSTokenLocation&, ResultType, ExpressionNode* expr1, ExpressionNode* expr2, OpcodeID, bool rightHasAssignments);
 
         RegisterID* emitStrcat(BytecodeGenerator& generator, RegisterID* destination, RegisterID* lhs = 0, ReadModifyResolveNode* emitExpressionInfoForMe = 0);
-        virtual void emitBytecodeInConditionContext(BytecodeGenerator&, Label* trueTarget, Label* falseTarget, FallThroughMode) override;
+        void emitBytecodeInConditionContext(BytecodeGenerator&, Label* trueTarget, Label* falseTarget, FallThroughMode) override;
 
         ExpressionNode* lhs() { return m_expr1; };
         ExpressionNode* rhs() { return m_expr2; };
 
     private:
         void tryFoldToBranch(BytecodeGenerator&, TriState& branchCondition, ExpressionNode*& branchExpression);
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
     protected:
         OpcodeID opcodeID() const { return m_opcodeID; }
@@ -1043,14 +1043,14 @@
     public:
         AddNode(const JSTokenLocation&, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments);
 
-        virtual bool isAdd() const override { return true; }
+        bool isAdd() const override { return true; }
     };
 
     class SubNode : public BinaryOpNode {
     public:
         SubNode(const JSTokenLocation&, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments);
 
-        virtual bool isSubtract() const override { return true; }
+        bool isSubtract() const override { return true; }
     };
 
     class LeftShiftNode : public BinaryOpNode {
@@ -1094,7 +1094,7 @@
         ThrowableBinaryOpNode(const JSTokenLocation&, ExpressionNode* expr1, ExpressionNode* expr2, OpcodeID, bool rightHasAssignments);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
     };
     
     class InstanceOfNode : public ThrowableBinaryOpNode {
@@ -1102,7 +1102,7 @@
         InstanceOfNode(const JSTokenLocation&, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
     };
 
     class InNode : public ThrowableBinaryOpNode {
@@ -1115,7 +1115,7 @@
         EqualNode(const JSTokenLocation&, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
     };
 
     class NotEqualNode : public BinaryOpNode {
@@ -1128,7 +1128,7 @@
         StrictEqualNode(const JSTokenLocation&, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
     };
 
     class NotStrictEqualNode : public BinaryOpNode {
@@ -1157,8 +1157,8 @@
         LogicalOpNode(const JSTokenLocation&, ExpressionNode* expr1, ExpressionNode* expr2, LogicalOperator);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
-        virtual void emitBytecodeInConditionContext(BytecodeGenerator&, Label* trueTarget, Label* falseTarget, FallThroughMode) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void emitBytecodeInConditionContext(BytecodeGenerator&, Label* trueTarget, Label* falseTarget, FallThroughMode) override;
 
         ExpressionNode* m_expr1;
         ExpressionNode* m_expr2;
@@ -1171,7 +1171,7 @@
         ConditionalNode(const JSTokenLocation&, ExpressionNode* logical, ExpressionNode* expr1, ExpressionNode* expr2);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         ExpressionNode* m_logical;
         ExpressionNode* m_expr1;
@@ -1183,7 +1183,7 @@
         ReadModifyResolveNode(const JSTokenLocation&, const Identifier&, Operator, ExpressionNode*  right, bool rightHasAssignments, const JSTextPosition& divot, const JSTextPosition& divotStart, const JSTextPosition& divotEnd);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         const Identifier& m_ident;
         ExpressionNode* m_right;
@@ -1196,7 +1196,7 @@
         AssignResolveNode(const JSTokenLocation&, const Identifier&, ExpressionNode* right, AssignmentContext);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         const Identifier& m_ident;
         ExpressionNode* m_right;
@@ -1208,7 +1208,7 @@
         ReadModifyBracketNode(const JSTokenLocation&, ExpressionNode* base, ExpressionNode* subscript, Operator, ExpressionNode* right, bool subscriptHasAssignments, bool rightHasAssignments, const JSTextPosition& divot, const JSTextPosition& divotStart, const JSTextPosition& divotEnd);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         ExpressionNode* m_base;
         ExpressionNode* m_subscript;
@@ -1223,7 +1223,7 @@
         AssignBracketNode(const JSTokenLocation&, ExpressionNode* base, ExpressionNode* subscript, ExpressionNode* right, bool subscriptHasAssignments, bool rightHasAssignments, const JSTextPosition& divot, const JSTextPosition& divotStart, const JSTextPosition& divotEnd);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         ExpressionNode* m_base;
         ExpressionNode* m_subscript;
@@ -1237,7 +1237,7 @@
         AssignDotNode(const JSTokenLocation&, ExpressionNode* base, const Identifier&, ExpressionNode* right, bool rightHasAssignments, const JSTextPosition& divot, const JSTextPosition& divotStart, const JSTextPosition& divotEnd);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         ExpressionNode* m_base;
         const Identifier& m_ident;
@@ -1250,7 +1250,7 @@
         ReadModifyDotNode(const JSTokenLocation&, ExpressionNode* base, const Identifier&, Operator, ExpressionNode* right, bool rightHasAssignments, const JSTextPosition& divot, const JSTextPosition& divotStart, const JSTextPosition& divotEnd);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         ExpressionNode* m_base;
         const Identifier& m_ident;
@@ -1264,7 +1264,7 @@
         AssignErrorNode(const JSTokenLocation&, const JSTextPosition& divot, const JSTextPosition& divotStart, const JSTextPosition& divotEnd);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
     };
     
     class CommaNode final : public ExpressionNode {
@@ -1275,8 +1275,8 @@
         CommaNode* next() { return m_next; }
 
     private:
-        virtual bool isCommaNode() const override { return true; }
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        bool isCommaNode() const override { return true; }
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         ExpressionNode* m_expr;
         CommaNode* m_next;
@@ -1309,9 +1309,9 @@
         StatementNode* lastStatement() const;
 
     private:
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
-        virtual bool isBlock() const override { return true; }
+        bool isBlock() const override { return true; }
 
         SourceElements* m_statements;
     };
@@ -1321,9 +1321,9 @@
         EmptyStatementNode(const JSTokenLocation&);
 
     private:
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
-        virtual bool isEmptyStatement() const override { return true; }
+        bool isEmptyStatement() const override { return true; }
     };
     
     class DebuggerStatementNode : public StatementNode {
@@ -1331,7 +1331,7 @@
         DebuggerStatementNode(const JSTokenLocation&);
         
     private:
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
     };
 
     class ExprStatementNode : public StatementNode {
@@ -1341,9 +1341,9 @@
         ExpressionNode* expr() const { return m_expr; }
 
     private:
-        virtual bool isExprStatement() const override { return true; }
+        bool isExprStatement() const override { return true; }
 
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         ExpressionNode* m_expr;
     };
@@ -1352,7 +1352,7 @@
     public:
         DeclarationStatement(const JSTokenLocation&, ExpressionNode*);
     private:
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         ExpressionNode* m_expr;
     };
@@ -1362,7 +1362,7 @@
         EmptyVarExpression(const JSTokenLocation&, const Identifier&);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         const Identifier& m_ident;
     };
@@ -1372,7 +1372,7 @@
         EmptyLetExpression(const JSTokenLocation&, const Identifier&);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         const Identifier& m_ident;
     };
@@ -1382,7 +1382,7 @@
         IfElseNode(const JSTokenLocation&, ExpressionNode* condition, StatementNode* ifBlock, StatementNode* elseBlock);
 
     private:
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
         bool tryFoldBreakAndContinue(BytecodeGenerator&, StatementNode* ifBlock,
             Label*& trueTarget, FallThroughMode&);
 
@@ -1396,7 +1396,7 @@
         DoWhileNode(const JSTokenLocation&, StatementNode*, ExpressionNode*);
 
     private:
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         StatementNode* m_statement;
         ExpressionNode* m_expr;
@@ -1407,7 +1407,7 @@
         WhileNode(const JSTokenLocation&, ExpressionNode*, StatementNode*);
 
     private:
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         ExpressionNode* m_expr;
         StatementNode* m_statement;
@@ -1420,7 +1420,7 @@
         ForNode(const JSTokenLocation&, ExpressionNode* expr1, ExpressionNode* expr2, ExpressionNode* expr3, StatementNode*, VariableEnvironment&);
 
     private:
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         ExpressionNode* m_expr1;
         ExpressionNode* m_expr2;
@@ -1451,7 +1451,7 @@
         void emitLoopHeader(BytecodeGenerator&, RegisterID* propertyName);
         void emitMultiLoopBytecode(BytecodeGenerator&, RegisterID* dst);
 
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
     };
     
     class ForOfNode : public EnumerationNode {
@@ -1459,7 +1459,7 @@
         ForOfNode(const JSTokenLocation&, ExpressionNode*, ExpressionNode*, StatementNode*, VariableEnvironment&);
         
     private:
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
     };
 
     class ContinueNode : public StatementNode, public ThrowableExpressionData {
@@ -1468,8 +1468,8 @@
         Label* trivialTarget(BytecodeGenerator&);
         
     private:
-        virtual bool isContinue() const override { return true; }
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        bool isContinue() const override { return true; }
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         const Identifier& m_ident;
     };
@@ -1480,8 +1480,8 @@
         Label* trivialTarget(BytecodeGenerator&);
         
     private:
-        virtual bool isBreak() const override { return true; }
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        bool isBreak() const override { return true; }
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         const Identifier& m_ident;
     };
@@ -1493,9 +1493,9 @@
         ExpressionNode* value() { return m_value; }
 
     private:
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
-        virtual bool isReturnNode() const override { return true; }
+        bool isReturnNode() const override { return true; }
 
         ExpressionNode* m_value;
     };
@@ -1505,7 +1505,7 @@
         WithNode(const JSTokenLocation&, ExpressionNode*, StatementNode*, const JSTextPosition& divot, uint32_t expressionLength);
 
     private:
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         ExpressionNode* m_expr;
         StatementNode* m_statement;
@@ -1518,7 +1518,7 @@
         LabelNode(const JSTokenLocation&, const Identifier& name, StatementNode*);
 
     private:
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         const Identifier& m_name;
         StatementNode* m_statement;
@@ -1529,7 +1529,7 @@
         ThrowNode(const JSTokenLocation&, ExpressionNode*);
 
     private:
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         ExpressionNode* m_expr;
     };
@@ -1541,7 +1541,7 @@
         TryNode(const JSTokenLocation&, StatementNode* tryBlock, DestructuringPatternNode* catchPattern, StatementNode* catchBlock, VariableEnvironment& catchEnvironment, StatementNode* finallyBlock);
 
     private:
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         StatementNode* m_tryBlock;
         DestructuringPatternNode* m_catchPattern;
@@ -1633,7 +1633,7 @@
         static const bool scopeIsFunction = false;
 
     private:
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
         unsigned m_startColumn;
         unsigned m_endColumn;
     };
@@ -1648,7 +1648,7 @@
         static const bool scopeIsFunction = false;
 
     private:
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         unsigned m_endColumn;
     };
@@ -1663,7 +1663,7 @@
         static const bool scopeIsFunction = false;
 
     private:
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
         unsigned m_startColumn;
         unsigned m_endColumn;
     };
@@ -1721,8 +1721,8 @@
         ModuleNameNode* moduleName() const { return m_moduleName; }
 
     private:
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
-        virtual void analyzeModule(ModuleAnalyzer&) override;
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void analyzeModule(ModuleAnalyzer&) override;
 
         ImportSpecifierListNode* m_specifierList;
         ModuleNameNode* m_moduleName;
@@ -1735,8 +1735,8 @@
         ModuleNameNode* moduleName() const { return m_moduleName; }
 
     private:
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
-        virtual void analyzeModule(ModuleAnalyzer&) override;
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void analyzeModule(ModuleAnalyzer&) override;
 
         ModuleNameNode* m_moduleName;
     };
@@ -1749,8 +1749,8 @@
         const Identifier& localName() const { return m_localName; }
 
     private:
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
-        virtual void analyzeModule(ModuleAnalyzer&) override;
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void analyzeModule(ModuleAnalyzer&) override;
         StatementNode* m_declaration;
         const Identifier& m_localName;
     };
@@ -1762,8 +1762,8 @@
         const StatementNode& declaration() const { return *m_declaration; }
 
     private:
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
-        virtual void analyzeModule(ModuleAnalyzer&) override;
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void analyzeModule(ModuleAnalyzer&) override;
         StatementNode* m_declaration;
     };
 
@@ -1801,8 +1801,8 @@
         ModuleNameNode* moduleName() const { return m_moduleName; }
 
     private:
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
-        virtual void analyzeModule(ModuleAnalyzer&) override;
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void analyzeModule(ModuleAnalyzer&) override;
         ExportSpecifierListNode* m_specifierList;
         ModuleNameNode* m_moduleName { nullptr };
     };
@@ -1898,7 +1898,7 @@
 
         FunctionParameters* parameters() const { return m_parameters; }
 
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         void finishParsing(const Identifier&, FunctionMode);
         
@@ -1935,9 +1935,9 @@
         FuncExprNode(const JSTokenLocation&, const Identifier&, FunctionMetadataNode*, const SourceCode&);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
-        virtual bool isFuncExprNode() const override { return true; }
+        bool isFuncExprNode() const override { return true; }
     };
 
     class ArrowFuncExprNode : public BaseFuncExprNode {
@@ -1945,9 +1945,9 @@
         ArrowFuncExprNode(const JSTokenLocation&, const Identifier&, FunctionMetadataNode*, const SourceCode&);
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
-        virtual bool isArrowFuncExprNode() const override { return true; }
+        bool isArrowFuncExprNode() const override { return true; }
     };
 
     class YieldExprNode final : public ExpressionNode, public ThrowableExpressionData {
@@ -1958,7 +1958,7 @@
         bool delegate() const { return m_delegate; }
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         ExpressionNode* m_argument;
         bool m_delegate;
@@ -1974,7 +1974,7 @@
         const Identifier& name() { return m_name; }
 
     private:
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         const Identifier& m_name;
         ExpressionNode* m_constructorExpression;
@@ -2020,10 +2020,10 @@
             DestructuringPatternNode* pattern;
             ExpressionNode* defaultValue;
         };
-        virtual void collectBoundIdentifiers(Vector<Identifier>&) const override;
-        virtual void bindValue(BytecodeGenerator&, RegisterID*) const override;
-        virtual RegisterID* emitDirectBinding(BytecodeGenerator&, RegisterID* dst, ExpressionNode*) override;
-        virtual void toString(StringBuilder&) const override;
+        void collectBoundIdentifiers(Vector<Identifier>&) const override;
+        void bindValue(BytecodeGenerator&, RegisterID*) const override;
+        RegisterID* emitDirectBinding(BytecodeGenerator&, RegisterID* dst, ExpressionNode*) override;
+        void toString(StringBuilder&) const override;
 
         Vector<Entry> m_targetPatterns;
     };
@@ -2044,9 +2044,9 @@
         }
 
     private:
-        virtual void collectBoundIdentifiers(Vector<Identifier>&) const override;
-        virtual void bindValue(BytecodeGenerator&, RegisterID*) const override;
-        virtual void toString(StringBuilder&) const override;
+        void collectBoundIdentifiers(Vector<Identifier>&) const override;
+        void bindValue(BytecodeGenerator&, RegisterID*) const override;
+        void toString(StringBuilder&) const override;
         struct Entry {
             const Identifier& propertyName;
             ExpressionNode* propertyExpression;
@@ -2066,11 +2066,11 @@
         const JSTextPosition& divotEnd() const { return m_divotEnd; }
         
     private:
-        virtual void collectBoundIdentifiers(Vector<Identifier>&) const override;
-        virtual void bindValue(BytecodeGenerator&, RegisterID*) const override;
-        virtual void toString(StringBuilder&) const override;
+        void collectBoundIdentifiers(Vector<Identifier>&) const override;
+        void bindValue(BytecodeGenerator&, RegisterID*) const override;
+        void toString(StringBuilder&) const override;
         
-        virtual bool isBindingNode() const override { return true; }
+        bool isBindingNode() const override { return true; }
 
         JSTextPosition m_divotStart;
         JSTextPosition m_divotEnd;
@@ -2089,9 +2089,9 @@
         const Identifier& name() const { return m_name; }
 
     private:
-        virtual void collectBoundIdentifiers(Vector<Identifier>&) const override;
-        virtual void bindValue(BytecodeGenerator&, RegisterID*) const override;
-        virtual void toString(StringBuilder&) const override;
+        void collectBoundIdentifiers(Vector<Identifier>&) const override;
+        void bindValue(BytecodeGenerator&, RegisterID*) const override;
+        void toString(StringBuilder&) const override;
 
         const Identifier& m_name;
         unsigned m_numParametersToSkip;
@@ -2108,9 +2108,9 @@
         const JSTextPosition& divotEnd() const { return m_divotEnd; }
 
     private:
-        virtual void collectBoundIdentifiers(Vector<Identifier>&) const override;
-        virtual void bindValue(BytecodeGenerator&, RegisterID*) const override;
-        virtual void toString(StringBuilder&) const override;
+        void collectBoundIdentifiers(Vector<Identifier>&) const override;
+        void bindValue(BytecodeGenerator&, RegisterID*) const override;
+        void toString(StringBuilder&) const override;
 
         JSTextPosition m_divotStart;
         JSTextPosition m_divotEnd;
@@ -2123,9 +2123,9 @@
         DestructuringPatternNode* bindings() { return m_bindings; }
         
     private:
-        virtual bool isAssignmentLocation() const override { return true; }
-        virtual bool isDestructuringNode() const override { return true; }
-        virtual RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        bool isAssignmentLocation() const override { return true; }
+        bool isDestructuringNode() const override { return true; }
+        RegisterID* emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         DestructuringPatternNode* m_bindings;
         ExpressionNode* m_initializer;
@@ -2135,11 +2135,11 @@
     public:
         FuncDeclNode(const JSTokenLocation&, const Identifier&, FunctionMetadataNode*, const SourceCode&);
 
-        virtual bool isFuncDeclNode() const override { return true; }
+        bool isFuncDeclNode() const override { return true; }
         FunctionMetadataNode* metadata() { return m_metadata; }
 
     private:
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         FunctionMetadataNode* m_metadata;
     };
@@ -2149,7 +2149,7 @@
         ClassDeclNode(const JSTokenLocation&, ExpressionNode* classExpression);
 
     private:
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         ExpressionNode* m_classDeclaration;
     };
@@ -2203,7 +2203,7 @@
         SwitchNode(const JSTokenLocation&, ExpressionNode*, CaseBlockNode*, VariableEnvironment&);
 
     private:
-        virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
+        void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
 
         ExpressionNode* m_expr;
         CaseBlockNode* m_block;
diff --git a/Source/JavaScriptCore/parser/SourceProvider.h b/Source/JavaScriptCore/parser/SourceProvider.h
index f47a905..563d9d8 100644
--- a/Source/JavaScriptCore/parser/SourceProvider.h
+++ b/Source/JavaScriptCore/parser/SourceProvider.h
@@ -93,7 +93,7 @@
             return m_source.get().hash();
         }
 
-        virtual StringView source() const override
+        StringView source() const override
         {
             return m_source.get();
         }
@@ -121,7 +121,7 @@
             return m_source.impl()->hash();
         }
 
-        virtual StringView source() const override
+        StringView source() const override
         {
             return m_source;
         }
diff --git a/Source/JavaScriptCore/replay/EmptyInputCursor.h b/Source/JavaScriptCore/replay/EmptyInputCursor.h
index a38aee2..775cdff 100644
--- a/Source/JavaScriptCore/replay/EmptyInputCursor.h
+++ b/Source/JavaScriptCore/replay/EmptyInputCursor.h
@@ -45,22 +45,22 @@
         return adoptRef(*new EmptyInputCursor());
     }
 
-    virtual bool isCapturing() const override { return false; }
-    virtual bool isReplaying() const override { return false; }
+    bool isCapturing() const override { return false; }
+    bool isReplaying() const override { return false; }
 
-    virtual NondeterministicInputBase* uncheckedLoadInput(InputQueue) override
+    NondeterministicInputBase* uncheckedLoadInput(InputQueue) override
     {
         ASSERT_NOT_REACHED();
         return nullptr;
     }
 
-    virtual void storeInput(std::unique_ptr<NondeterministicInputBase>) override
+    void storeInput(std::unique_ptr<NondeterministicInputBase>) override
     {
         ASSERT_NOT_REACHED();
     }
 
 protected:
-    virtual NondeterministicInputBase* loadInput(InputQueue, const String&) override
+    NondeterministicInputBase* loadInput(InputQueue, const String&) override
     {
         ASSERT_NOT_REACHED();
         return nullptr;
diff --git a/Source/JavaScriptCore/replay/NondeterministicInput.h b/Source/JavaScriptCore/replay/NondeterministicInput.h
index 30ba33b..eedc067 100644
--- a/Source/JavaScriptCore/replay/NondeterministicInput.h
+++ b/Source/JavaScriptCore/replay/NondeterministicInput.h
@@ -66,12 +66,12 @@
 template<typename InputType>
 class NondeterministicInput : public NondeterministicInputBase {
 public:
-    virtual const String& type() const override
+    const String& type() const override
     {
         return InputTraits<InputType>::type();
     }
 
-    virtual InputQueue queue() const override
+    InputQueue queue() const override
     {
         return InputTraits<InputType>::queue();
     }
diff --git a/Source/JavaScriptCore/replay/scripts/tests/expected/generate-enum-with-guard.json-TestReplayInputs.h b/Source/JavaScriptCore/replay/scripts/tests/expected/generate-enum-with-guard.json-TestReplayInputs.h
index 3302f58..9e26429 100644
--- a/Source/JavaScriptCore/replay/scripts/tests/expected/generate-enum-with-guard.json-TestReplayInputs.h
+++ b/Source/JavaScriptCore/replay/scripts/tests/expected/generate-enum-with-guard.json-TestReplayInputs.h
@@ -72,7 +72,7 @@
     virtual ~HandleWheelEvent();
 
     // EventLoopInput API
-    virtual void dispatch(ReplayController&) override final;
+    void dispatch(ReplayController&) override final;
     const PlatformWheelEvent& platformEvent() const { return *m_platformEvent; }
     PlatformWheelPhase phase() const { return m_phase; }
 private:
diff --git a/Source/JavaScriptCore/runtime/ArrayPrototype.cpp b/Source/JavaScriptCore/runtime/ArrayPrototype.cpp
index 949582f..0c0e516 100644
--- a/Source/JavaScriptCore/runtime/ArrayPrototype.cpp
+++ b/Source/JavaScriptCore/runtime/ArrayPrototype.cpp
@@ -1062,7 +1062,7 @@
     ArrayPrototypeAdaptiveInferredPropertyWatchpoint(const ObjectPropertyCondition&, ArrayPrototype*);
 
 private:
-    virtual void handleFire(const FireDetail&) override;
+    void handleFire(const FireDetail&) override;
 
     ArrayPrototype* m_arrayPrototype;
 };
diff --git a/Source/JavaScriptCore/runtime/DataView.h b/Source/JavaScriptCore/runtime/DataView.h
index a01d135..51b3c67 100644
--- a/Source/JavaScriptCore/runtime/DataView.h
+++ b/Source/JavaScriptCore/runtime/DataView.h
@@ -40,17 +40,17 @@
     JS_EXPORT_PRIVATE static Ref<DataView> create(PassRefPtr<ArrayBuffer>, unsigned byteOffset, unsigned length);
     static Ref<DataView> create(PassRefPtr<ArrayBuffer>);
     
-    virtual unsigned byteLength() const override
+    unsigned byteLength() const override
     {
         return m_byteLength;
     }
     
-    virtual TypedArrayType getType() const override
+    TypedArrayType getType() const override
     {
         return TypeDataView;
     }
 
-    virtual JSArrayBufferView* wrap(ExecState*, JSGlobalObject*) override;
+    JSArrayBufferView* wrap(ExecState*, JSGlobalObject*) override;
     
     template<typename T>
     T get(unsigned offset, bool littleEndian, bool* status = 0)
diff --git a/Source/JavaScriptCore/runtime/GenericTypedArrayView.h b/Source/JavaScriptCore/runtime/GenericTypedArrayView.h
index 36e37ca..a6d01ce 100644
--- a/Source/JavaScriptCore/runtime/GenericTypedArrayView.h
+++ b/Source/JavaScriptCore/runtime/GenericTypedArrayView.h
@@ -72,7 +72,7 @@
         return m_length;
     }
     
-    virtual unsigned byteLength() const override
+    unsigned byteLength() const override
     {
         return length() * sizeof(typename Adaptor::Type);
     }
@@ -101,12 +101,12 @@
     RefPtr<GenericTypedArrayView> subarray(int start) const;
     RefPtr<GenericTypedArrayView> subarray(int start, int end) const;
     
-    virtual TypedArrayType getType() const override
+    TypedArrayType getType() const override
     {
         return Adaptor::typeValue;
     }
 
-    virtual JSArrayBufferView* wrap(ExecState*, JSGlobalObject*) override;
+    JSArrayBufferView* wrap(ExecState*, JSGlobalObject*) override;
 
 private:
     unsigned m_length;
diff --git a/Source/JavaScriptCore/runtime/JSGlobalObjectDebuggable.h b/Source/JavaScriptCore/runtime/JSGlobalObjectDebuggable.h
index ea39dc8..04ff377 100644
--- a/Source/JavaScriptCore/runtime/JSGlobalObjectDebuggable.h
+++ b/Source/JavaScriptCore/runtime/JSGlobalObjectDebuggable.h
@@ -48,18 +48,18 @@
     JSGlobalObjectDebuggable(JSGlobalObject&);
     ~JSGlobalObjectDebuggable() { }
 
-    virtual Inspector::RemoteControllableTarget::Type type() const override { return Inspector::RemoteControllableTarget::Type::JavaScript; }
+    Inspector::RemoteControllableTarget::Type type() const override { return Inspector::RemoteControllableTarget::Type::JavaScript; }
 
-    virtual String name() const override;
-    virtual bool hasLocalDebugger() const override { return false; }
+    String name() const override;
+    bool hasLocalDebugger() const override { return false; }
 
-    virtual void connect(Inspector::FrontendChannel*, bool automaticInspection) override;
-    virtual void disconnect(Inspector::FrontendChannel*) override;
-    virtual void dispatchMessageFromRemote(const String& message) override;
-    virtual void pause() override;
+    void connect(Inspector::FrontendChannel*, bool automaticInspection) override;
+    void disconnect(Inspector::FrontendChannel*) override;
+    void dispatchMessageFromRemote(const String& message) override;
+    void pause() override;
 
-    virtual bool automaticInspectionAllowed() const override { return true; }
-    virtual void pauseWaitingForAutomaticInspection() override;
+    bool automaticInspectionAllowed() const override { return true; }
+    void pauseWaitingForAutomaticInspection() override;
 
 private:
     JSGlobalObject& m_globalObject;
diff --git a/Source/JavaScriptCore/runtime/JSJob.cpp b/Source/JavaScriptCore/runtime/JSJob.cpp
index 8827acf..ebc6b13 100644
--- a/Source/JavaScriptCore/runtime/JSJob.cpp
+++ b/Source/JavaScriptCore/runtime/JSJob.cpp
@@ -50,7 +50,7 @@
     }
 
 private:
-    virtual void run(ExecState*) override;
+    void run(ExecState*) override;
 
     Strong<Unknown> m_job;
     Strong<JSArray> m_arguments;
diff --git a/Source/JavaScriptCore/runtime/RegExpCache.h b/Source/JavaScriptCore/runtime/RegExpCache.h
index 942f3dc..0df04cb 100644
--- a/Source/JavaScriptCore/runtime/RegExpCache.h
+++ b/Source/JavaScriptCore/runtime/RegExpCache.h
@@ -54,7 +54,7 @@
 
     static const int maxStrongCacheableEntries = 32;
 
-    virtual void finalize(Handle<Unknown>, void* context) override;
+    void finalize(Handle<Unknown>, void* context) override;
 
     RegExp* lookupOrCreate(const WTF::String& patternString, RegExpFlags);
     void addToStrongCache(RegExp*);
diff --git a/Source/JavaScriptCore/runtime/SimpleTypedArrayController.h b/Source/JavaScriptCore/runtime/SimpleTypedArrayController.h
index 90ae44c..a460a17 100644
--- a/Source/JavaScriptCore/runtime/SimpleTypedArrayController.h
+++ b/Source/JavaScriptCore/runtime/SimpleTypedArrayController.h
@@ -52,14 +52,14 @@
     SimpleTypedArrayController();
     virtual ~SimpleTypedArrayController();
     
-    virtual JSArrayBuffer* toJS(ExecState*, JSGlobalObject*, ArrayBuffer*) override;
-    virtual void registerWrapper(JSGlobalObject*, ArrayBuffer*, JSArrayBuffer*) override;
+    JSArrayBuffer* toJS(ExecState*, JSGlobalObject*, ArrayBuffer*) override;
+    void registerWrapper(JSGlobalObject*, ArrayBuffer*, JSArrayBuffer*) override;
 
 private:
     class JSArrayBufferOwner : public WeakHandleOwner {
     public:
-        virtual bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, SlotVisitor&) override;
-        virtual void finalize(JSC::Handle<JSC::Unknown>, void* context) override;
+        bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, SlotVisitor&) override;
+        void finalize(JSC::Handle<JSC::Unknown>, void* context) override;
     };
 
     JSArrayBufferOwner m_owner;
diff --git a/Source/JavaScriptCore/runtime/Structure.h b/Source/JavaScriptCore/runtime/Structure.h
index 5434888..ad559a4 100644
--- a/Source/JavaScriptCore/runtime/Structure.h
+++ b/Source/JavaScriptCore/runtime/Structure.h
@@ -110,7 +110,7 @@
     {
     }
     
-    virtual void dump(PrintStream& out) const override;
+    void dump(PrintStream& out) const override;
 
 private:
     const Structure* m_structure;
diff --git a/Source/JavaScriptCore/runtime/StructureRareData.cpp b/Source/JavaScriptCore/runtime/StructureRareData.cpp
index add963c..27d9b23 100644
--- a/Source/JavaScriptCore/runtime/StructureRareData.cpp
+++ b/Source/JavaScriptCore/runtime/StructureRareData.cpp
@@ -90,7 +90,7 @@
     ObjectToStringAdaptiveInferredPropertyValueWatchpoint(const ObjectPropertyCondition&, StructureRareData*);
 
 private:
-    virtual void handleFire(const FireDetail&) override;
+    void handleFire(const FireDetail&) override;
 
     StructureRareData* m_structureRareData;
 };
@@ -102,7 +102,7 @@
     void install();
 
 protected:
-    virtual void fireInternal(const FireDetail&) override;
+    void fireInternal(const FireDetail&) override;
     
 private:
     ObjectPropertyCondition m_key;
diff --git a/Source/JavaScriptCore/runtime/WeakMapData.h b/Source/JavaScriptCore/runtime/WeakMapData.h
index e048a43..1c291336 100644
--- a/Source/JavaScriptCore/runtime/WeakMapData.h
+++ b/Source/JavaScriptCore/runtime/WeakMapData.h
@@ -81,8 +81,8 @@
         {
         }
     private:
-        virtual void visitWeakReferences(SlotVisitor&) override;
-        virtual void finalizeUnconditionally() override;
+        void visitWeakReferences(SlotVisitor&) override;
+        void finalizeUnconditionally() override;
         unsigned m_liveKeyCount;
         WeakMapData* m_target;
     };