Use C++17 nested namespaces instead of manually nesting them.

This was done with these two commands and a couple manual fixups for
namespaces that had more than one space in the comment in the closing
brace, as well as vulkan_platform.h

git grep -l "namespace .* { namespace " | xargs sed -i "" "s/namespace \(.*\) { namespace /namespace \1::/"
git grep -l "}}  // namespace" | xargs sed -i "" "s%}}  // namespace%}  // namespace%"

Bug: dawn:824
Change-Id: I6f448b820c12fc1004ea5270bf8e1f466b0c0aab
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/75400
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Loko Kung <lokokung@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/dawn_node/binding/AsyncRunner.cpp b/src/dawn_node/binding/AsyncRunner.cpp
index 788abc2..94382d1 100644
--- a/src/dawn_node/binding/AsyncRunner.cpp
+++ b/src/dawn_node/binding/AsyncRunner.cpp
@@ -17,7 +17,7 @@
 #include <cassert>
 #include <limits>
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     AsyncRunner::AsyncRunner(Napi::Env env, wgpu::Device device) : env_(env), device_(device) {
     }
@@ -57,4 +57,4 @@
             });
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/AsyncRunner.h b/src/dawn_node/binding/AsyncRunner.h
index a86ee3a..9ed6e5c 100644
--- a/src/dawn_node/binding/AsyncRunner.h
+++ b/src/dawn_node/binding/AsyncRunner.h
@@ -21,7 +21,7 @@
 #include "dawn/webgpu_cpp.h"
 #include "napi.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // AsyncRunner is used to poll a wgpu::Device with calls to Tick() while there are asynchronous
     // tasks in flight.
@@ -72,6 +72,6 @@
         std::shared_ptr<AsyncRunner> runner_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_ASYNC_RUNNER_H_
diff --git a/src/dawn_node/binding/Converter.cpp b/src/dawn_node/binding/Converter.cpp
index d75e217..e2a168f 100644
--- a/src/dawn_node/binding/Converter.cpp
+++ b/src/dawn_node/binding/Converter.cpp
@@ -22,7 +22,7 @@
 #include "src/dawn_node/binding/GPUTextureView.h"
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     Converter::~Converter() {
         for (auto& free : free_) {
@@ -1150,4 +1150,4 @@
                Convert(out.fragment, in.fragment);
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/Converter.h b/src/dawn_node/binding/Converter.h
index e6b20e8..cacba0e 100644
--- a/src/dawn_node/binding/Converter.h
+++ b/src/dawn_node/binding/Converter.h
@@ -24,7 +24,7 @@
 #include "src/dawn_node/binding/Errors.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // ImplOfTraits is a traits helper that is used to associate the interop interface type to the
     // binding implementation type.
@@ -393,6 +393,6 @@
         std::vector<std::function<void()>> free_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_CONVERTER_H_
diff --git a/src/dawn_node/binding/Errors.cpp b/src/dawn_node/binding/Errors.cpp
index 953a1a8..722be27 100644
--- a/src/dawn_node/binding/Errors.cpp
+++ b/src/dawn_node/binding/Errors.cpp
@@ -14,7 +14,7 @@
 
 #include "src/dawn_node/binding/Errors.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     namespace {
         constexpr char kHierarchyRequestError[] = "HierarchyRequestError";
@@ -176,4 +176,4 @@
         return New(env, kNotAllowedError);
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/Errors.h b/src/dawn_node/binding/Errors.h
index 0f1a40e..97a3577 100644
--- a/src/dawn_node/binding/Errors.h
+++ b/src/dawn_node/binding/Errors.h
@@ -17,7 +17,7 @@
 
 #include "napi.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // Errors contains static helper methods for creating DOMException error
     // messages as documented at:
@@ -55,6 +55,6 @@
         static Napi::Error NotAllowedError(Napi::Env);
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_ERRORS_H_
diff --git a/src/dawn_node/binding/Flags.cpp b/src/dawn_node/binding/Flags.cpp
index 3602e92..9985a49 100644
--- a/src/dawn_node/binding/Flags.cpp
+++ b/src/dawn_node/binding/Flags.cpp
@@ -14,7 +14,7 @@
 
 #include "src/dawn_node/binding/Flags.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
     void Flags::Set(const std::string& key, const std::string& value) {
         flags_[key] = value;
     }
@@ -26,4 +26,4 @@
         }
         return {};
     }
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/Flags.h b/src/dawn_node/binding/Flags.h
index 1ca4c30..89b7b43 100644
--- a/src/dawn_node/binding/Flags.h
+++ b/src/dawn_node/binding/Flags.h
@@ -19,7 +19,7 @@
 #include <string>
 #include <unordered_map>
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
     // Flags maintains a key-value mapping of input flags passed into the module's create()
     // function, used to configure dawn_node.
     class Flags {
@@ -30,6 +30,6 @@
       private:
         std::unordered_map<std::string, std::string> flags_;
     };
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_FLAGS_H_
diff --git a/src/dawn_node/binding/GPU.cpp b/src/dawn_node/binding/GPU.cpp
index a13ed30..9cbb413 100644
--- a/src/dawn_node/binding/GPU.cpp
+++ b/src/dawn_node/binding/GPU.cpp
@@ -51,7 +51,7 @@
 
 }  // namespace
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPU
@@ -158,4 +158,4 @@
         return promise;
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPU.h b/src/dawn_node/binding/GPU.h
index 8f1999d..e526403 100644
--- a/src/dawn_node/binding/GPU.h
+++ b/src/dawn_node/binding/GPU.h
@@ -21,7 +21,7 @@
 #include "src/dawn_node/binding/Flags.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
     // GPU is an implementation of interop::GPU that wraps a dawn_native::Instance.
     class GPU final : public interop::GPU {
       public:
@@ -37,6 +37,6 @@
         dawn_native::Instance instance_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPU_H_
diff --git a/src/dawn_node/binding/GPUAdapter.cpp b/src/dawn_node/binding/GPUAdapter.cpp
index 8de1269..95667ab 100644
--- a/src/dawn_node/binding/GPUAdapter.cpp
+++ b/src/dawn_node/binding/GPUAdapter.cpp
@@ -48,7 +48,7 @@
     }
 }  // namespace
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     namespace {
 
@@ -233,4 +233,4 @@
         }
         return promise;
     }
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUAdapter.h b/src/dawn_node/binding/GPUAdapter.h
index 6f837c8..a54cd0b 100644
--- a/src/dawn_node/binding/GPUAdapter.h
+++ b/src/dawn_node/binding/GPUAdapter.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
     class Flags;
 
     // GPUAdapter is an implementation of interop::GPUAdapter that wraps a dawn_native::Adapter.
@@ -42,6 +42,6 @@
         const Flags& flags_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUADAPTER_H_
diff --git a/src/dawn_node/binding/GPUBindGroup.cpp b/src/dawn_node/binding/GPUBindGroup.cpp
index e156700..3e7b2a1 100644
--- a/src/dawn_node/binding/GPUBindGroup.cpp
+++ b/src/dawn_node/binding/GPUBindGroup.cpp
@@ -16,7 +16,7 @@
 
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUBindGroup
@@ -32,4 +32,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUBindGroup.h b/src/dawn_node/binding/GPUBindGroup.h
index e71fc8b..342cf0d 100644
--- a/src/dawn_node/binding/GPUBindGroup.h
+++ b/src/dawn_node/binding/GPUBindGroup.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPUBindGroup is an implementation of interop::GPUBindGroup that wraps a wgpu::BindGroup.
     class GPUBindGroup final : public interop::GPUBindGroup {
@@ -40,6 +40,6 @@
         wgpu::BindGroup group_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUBINDGROUP_H_
diff --git a/src/dawn_node/binding/GPUBindGroupLayout.cpp b/src/dawn_node/binding/GPUBindGroupLayout.cpp
index ddaeaba..db32a57 100644
--- a/src/dawn_node/binding/GPUBindGroupLayout.cpp
+++ b/src/dawn_node/binding/GPUBindGroupLayout.cpp
@@ -16,7 +16,7 @@
 
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUBindGroupLayout
@@ -33,4 +33,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUBindGroupLayout.h b/src/dawn_node/binding/GPUBindGroupLayout.h
index 34874bf..92d476d 100644
--- a/src/dawn_node/binding/GPUBindGroupLayout.h
+++ b/src/dawn_node/binding/GPUBindGroupLayout.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPUBindGroupLayout is an implementation of interop::GPUBindGroupLayout that wraps a
     // wgpu::BindGroupLayout.
@@ -41,6 +41,6 @@
         wgpu::BindGroupLayout layout_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUBINDGROUPLAYOUT_H_
diff --git a/src/dawn_node/binding/GPUBuffer.cpp b/src/dawn_node/binding/GPUBuffer.cpp
index 2fca5d5..652c2e7 100644
--- a/src/dawn_node/binding/GPUBuffer.cpp
+++ b/src/dawn_node/binding/GPUBuffer.cpp
@@ -20,7 +20,7 @@
 #include "src/dawn_node/binding/Errors.h"
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUBuffer
@@ -166,4 +166,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUBuffer.h b/src/dawn_node/binding/GPUBuffer.h
index c3d8b03..7bc1d7e 100644
--- a/src/dawn_node/binding/GPUBuffer.h
+++ b/src/dawn_node/binding/GPUBuffer.h
@@ -21,7 +21,7 @@
 #include "src/dawn_node/binding/AsyncRunner.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPUBuffer is an implementation of interop::GPUBuffer that wraps a wgpu::Buffer.
     class GPUBuffer final : public interop::GPUBuffer {
@@ -81,6 +81,6 @@
         std::vector<Mapping> mapped_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUBUFFER_H_
diff --git a/src/dawn_node/binding/GPUCommandBuffer.cpp b/src/dawn_node/binding/GPUCommandBuffer.cpp
index 0ff503f..461c6d9 100644
--- a/src/dawn_node/binding/GPUCommandBuffer.cpp
+++ b/src/dawn_node/binding/GPUCommandBuffer.cpp
@@ -16,7 +16,7 @@
 
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUCommandBuffer
@@ -37,4 +37,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUCommandBuffer.h b/src/dawn_node/binding/GPUCommandBuffer.h
index b6fc3ba..8b35c21 100644
--- a/src/dawn_node/binding/GPUCommandBuffer.h
+++ b/src/dawn_node/binding/GPUCommandBuffer.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPUCommandBuffer is an implementation of interop::GPUCommandBuffer that wraps a
     // wgpu::CommandBuffer.
@@ -42,6 +42,6 @@
         wgpu::CommandBuffer cmd_buf_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUCOMMANDBUFFER_H_
diff --git a/src/dawn_node/binding/GPUCommandEncoder.cpp b/src/dawn_node/binding/GPUCommandEncoder.cpp
index cf3925c..d86cebf 100644
--- a/src/dawn_node/binding/GPUCommandEncoder.cpp
+++ b/src/dawn_node/binding/GPUCommandEncoder.cpp
@@ -24,7 +24,7 @@
 #include "src/dawn_node/binding/GPUTexture.h"
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUCommandEncoder
@@ -193,4 +193,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUCommandEncoder.h b/src/dawn_node/binding/GPUCommandEncoder.h
index f23e281..3402c78 100644
--- a/src/dawn_node/binding/GPUCommandEncoder.h
+++ b/src/dawn_node/binding/GPUCommandEncoder.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPUCommandEncoder is an implementation of interop::GPUCommandEncoder that wraps a
     // wgpu::CommandEncoder.
@@ -75,6 +75,6 @@
         wgpu::CommandEncoder enc_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUCOMMANDENCODER_H_
diff --git a/src/dawn_node/binding/GPUComputePassEncoder.cpp b/src/dawn_node/binding/GPUComputePassEncoder.cpp
index 6edc467..d827d84 100644
--- a/src/dawn_node/binding/GPUComputePassEncoder.cpp
+++ b/src/dawn_node/binding/GPUComputePassEncoder.cpp
@@ -21,7 +21,7 @@
 #include "src/dawn_node/binding/GPUQuerySet.h"
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUComputePassEncoder
@@ -132,4 +132,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUComputePassEncoder.h b/src/dawn_node/binding/GPUComputePassEncoder.h
index 9c7064b..faf0859 100644
--- a/src/dawn_node/binding/GPUComputePassEncoder.h
+++ b/src/dawn_node/binding/GPUComputePassEncoder.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPUComputePassEncoder is an implementation of interop::GPUComputePassEncoder that wraps a
     // wgpu::ComputePassEncoder.
@@ -71,6 +71,6 @@
         wgpu::ComputePassEncoder enc_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUCOMPUTEPASSENCODER_H_
diff --git a/src/dawn_node/binding/GPUComputePipeline.cpp b/src/dawn_node/binding/GPUComputePipeline.cpp
index 0eef82e..be6d1c3 100644
--- a/src/dawn_node/binding/GPUComputePipeline.cpp
+++ b/src/dawn_node/binding/GPUComputePipeline.cpp
@@ -18,7 +18,7 @@
 #include "src/dawn_node/binding/GPUBuffer.h"
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUComputePipeline
@@ -42,4 +42,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUComputePipeline.h b/src/dawn_node/binding/GPUComputePipeline.h
index e9dde76..a4b8bca 100644
--- a/src/dawn_node/binding/GPUComputePipeline.h
+++ b/src/dawn_node/binding/GPUComputePipeline.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPUComputePipeline is an implementation of interop::GPUComputePipeline that wraps a
     // wgpu::ComputePipeline.
@@ -43,6 +43,6 @@
         wgpu::ComputePipeline pipeline_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUPIPELINE_H_
diff --git a/src/dawn_node/binding/GPUDevice.cpp b/src/dawn_node/binding/GPUDevice.cpp
index 3b65fa2..cddab09 100644
--- a/src/dawn_node/binding/GPUDevice.cpp
+++ b/src/dawn_node/binding/GPUDevice.cpp
@@ -35,7 +35,7 @@
 #include "src/dawn_node/binding/GPUTexture.h"
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     namespace {
 
@@ -527,4 +527,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUDevice.h b/src/dawn_node/binding/GPUDevice.h
index a3c5dce..368f86b 100644
--- a/src/dawn_node/binding/GPUDevice.h
+++ b/src/dawn_node/binding/GPUDevice.h
@@ -20,7 +20,7 @@
 #include "src/dawn_node/binding/AsyncRunner.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
     // GPUDevice is an implementation of interop::GPUDevice that wraps a wgpu::Device.
     class GPUDevice final : public interop::GPUDevice {
       public:
@@ -108,6 +108,6 @@
             lost_promises_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUDEVICE_H_
diff --git a/src/dawn_node/binding/GPUPipelineLayout.cpp b/src/dawn_node/binding/GPUPipelineLayout.cpp
index 861df21..712e3fe 100644
--- a/src/dawn_node/binding/GPUPipelineLayout.cpp
+++ b/src/dawn_node/binding/GPUPipelineLayout.cpp
@@ -16,7 +16,7 @@
 
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUPipelineLayout
@@ -32,4 +32,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUPipelineLayout.h b/src/dawn_node/binding/GPUPipelineLayout.h
index a1d0b87..02f07c1 100644
--- a/src/dawn_node/binding/GPUPipelineLayout.h
+++ b/src/dawn_node/binding/GPUPipelineLayout.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPUPipelineLayout is an implementation of interop::GPUPipelineLayout that wraps a
     // wgpu::PipelineLayout.
@@ -41,6 +41,6 @@
         wgpu::PipelineLayout layout_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUPIPELINELAYOUT_H_
diff --git a/src/dawn_node/binding/GPUQuerySet.cpp b/src/dawn_node/binding/GPUQuerySet.cpp
index e56564a9..836faf9 100644
--- a/src/dawn_node/binding/GPUQuerySet.cpp
+++ b/src/dawn_node/binding/GPUQuerySet.cpp
@@ -16,7 +16,7 @@
 
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUQuerySet
@@ -36,4 +36,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUQuerySet.h b/src/dawn_node/binding/GPUQuerySet.h
index 8669e16..46d8097 100644
--- a/src/dawn_node/binding/GPUQuerySet.h
+++ b/src/dawn_node/binding/GPUQuerySet.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPUQuerySet is an implementation of interop::GPUQuerySet that wraps a wgpu::QuerySet.
     class GPUQuerySet final : public interop::GPUQuerySet {
@@ -41,6 +41,6 @@
         wgpu::QuerySet query_set_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUQUERYSET_H_
diff --git a/src/dawn_node/binding/GPUQueue.cpp b/src/dawn_node/binding/GPUQueue.cpp
index e1c0413..3b0f681 100644
--- a/src/dawn_node/binding/GPUQueue.cpp
+++ b/src/dawn_node/binding/GPUQueue.cpp
@@ -21,7 +21,7 @@
 #include "src/dawn_node/binding/GPUCommandBuffer.h"
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUQueue
@@ -129,4 +129,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUQueue.h b/src/dawn_node/binding/GPUQueue.h
index 69952c6..f59b19f 100644
--- a/src/dawn_node/binding/GPUQueue.h
+++ b/src/dawn_node/binding/GPUQueue.h
@@ -21,7 +21,7 @@
 #include "src/dawn_node/binding/AsyncRunner.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPUQueue is an implementation of interop::GPUQueue that wraps a wgpu::Queue.
     class GPUQueue final : public interop::GPUQueue {
@@ -56,6 +56,6 @@
         std::shared_ptr<AsyncRunner> async_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUQUEUE_H_
diff --git a/src/dawn_node/binding/GPURenderBundle.cpp b/src/dawn_node/binding/GPURenderBundle.cpp
index 2f42ac7..f49c9007 100644
--- a/src/dawn_node/binding/GPURenderBundle.cpp
+++ b/src/dawn_node/binding/GPURenderBundle.cpp
@@ -20,7 +20,7 @@
 #include "src/dawn_node/binding/GPURenderPipeline.h"
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPURenderBundle
@@ -36,4 +36,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPURenderBundle.h b/src/dawn_node/binding/GPURenderBundle.h
index 9f824f2..bde0b50 100644
--- a/src/dawn_node/binding/GPURenderBundle.h
+++ b/src/dawn_node/binding/GPURenderBundle.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPURenderBundle is an implementation of interop::GPURenderBundle that wraps a
     // wgpu::RenderBundle.
@@ -41,6 +41,6 @@
         wgpu::RenderBundle bundle_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPURENDERBUNDLE_H_
diff --git a/src/dawn_node/binding/GPURenderBundleEncoder.cpp b/src/dawn_node/binding/GPURenderBundleEncoder.cpp
index 123741d..fcd7219 100644
--- a/src/dawn_node/binding/GPURenderBundleEncoder.cpp
+++ b/src/dawn_node/binding/GPURenderBundleEncoder.cpp
@@ -21,7 +21,7 @@
 #include "src/dawn_node/binding/GPURenderPipeline.h"
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPURenderBundleEncoder
@@ -189,4 +189,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPURenderBundleEncoder.h b/src/dawn_node/binding/GPURenderBundleEncoder.h
index 3d11e33..9a4dbcb 100644
--- a/src/dawn_node/binding/GPURenderBundleEncoder.h
+++ b/src/dawn_node/binding/GPURenderBundleEncoder.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPURenderBundleEncoder is an implementation of interop::GPURenderBundleEncoder that wraps a
     // wgpu::RenderBundleEncoder.
@@ -81,6 +81,6 @@
         wgpu::RenderBundleEncoder enc_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPURENDERBUNDLEENCODER_H_
diff --git a/src/dawn_node/binding/GPURenderPassEncoder.cpp b/src/dawn_node/binding/GPURenderPassEncoder.cpp
index 5dce4f2..128cbf9 100644
--- a/src/dawn_node/binding/GPURenderPassEncoder.cpp
+++ b/src/dawn_node/binding/GPURenderPassEncoder.cpp
@@ -22,7 +22,7 @@
 #include "src/dawn_node/binding/GPURenderPipeline.h"
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPURenderPassEncoder
@@ -259,4 +259,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPURenderPassEncoder.h b/src/dawn_node/binding/GPURenderPassEncoder.h
index 866aaab..452dc1a 100644
--- a/src/dawn_node/binding/GPURenderPassEncoder.h
+++ b/src/dawn_node/binding/GPURenderPassEncoder.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPURenderPassEncoder is an implementation of interop::GPURenderPassEncoder that wraps a
     // wgpu::RenderPassEncoder.
@@ -110,6 +110,6 @@
         wgpu::RenderPassEncoder enc_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPURENDERPASSENCODER_H_
diff --git a/src/dawn_node/binding/GPURenderPipeline.cpp b/src/dawn_node/binding/GPURenderPipeline.cpp
index 3f363fc..9683b80 100644
--- a/src/dawn_node/binding/GPURenderPipeline.cpp
+++ b/src/dawn_node/binding/GPURenderPipeline.cpp
@@ -18,7 +18,7 @@
 #include "src/dawn_node/binding/GPUBuffer.h"
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPURenderPipeline
@@ -42,4 +42,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPURenderPipeline.h b/src/dawn_node/binding/GPURenderPipeline.h
index fc15fc6..acb8c53 100644
--- a/src/dawn_node/binding/GPURenderPipeline.h
+++ b/src/dawn_node/binding/GPURenderPipeline.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPURenderPipeline is an implementation of interop::GPURenderPipeline that wraps a
     // wgpu::RenderPipeline.
@@ -43,6 +43,6 @@
         wgpu::RenderPipeline pipeline_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPURENDERPIPELINE_H_
diff --git a/src/dawn_node/binding/GPUSampler.cpp b/src/dawn_node/binding/GPUSampler.cpp
index 6de3aa4..39d87a0 100644
--- a/src/dawn_node/binding/GPUSampler.cpp
+++ b/src/dawn_node/binding/GPUSampler.cpp
@@ -17,7 +17,7 @@
 #include "src/dawn_node/binding/Converter.h"
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUSampler
@@ -33,4 +33,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUSampler.h b/src/dawn_node/binding/GPUSampler.h
index 24e77d2..9bae388 100644
--- a/src/dawn_node/binding/GPUSampler.h
+++ b/src/dawn_node/binding/GPUSampler.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
     // GPUSampler is an implementation of interop::GPUSampler that wraps a wgpu::Sampler.
     class GPUSampler final : public interop::GPUSampler {
       public:
@@ -39,6 +39,6 @@
         wgpu::Sampler sampler_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUSAMPLER_H_
diff --git a/src/dawn_node/binding/GPUShaderModule.cpp b/src/dawn_node/binding/GPUShaderModule.cpp
index 52efabd..6ac6645 100644
--- a/src/dawn_node/binding/GPUShaderModule.cpp
+++ b/src/dawn_node/binding/GPUShaderModule.cpp
@@ -18,7 +18,7 @@
 
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUShaderModule
@@ -122,4 +122,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUShaderModule.h b/src/dawn_node/binding/GPUShaderModule.h
index 2fcd140..57c49dd 100644
--- a/src/dawn_node/binding/GPUShaderModule.h
+++ b/src/dawn_node/binding/GPUShaderModule.h
@@ -21,7 +21,7 @@
 #include "src/dawn_node/binding/AsyncRunner.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPUShaderModule is an implementation of interop::GPUShaderModule that wraps a
     // wgpu::ShaderModule.
@@ -45,6 +45,6 @@
         std::shared_ptr<AsyncRunner> async_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUSHADERMODULE_H_
diff --git a/src/dawn_node/binding/GPUSupportedLimits.cpp b/src/dawn_node/binding/GPUSupportedLimits.cpp
index 4a8399b..2c8c881 100644
--- a/src/dawn_node/binding/GPUSupportedLimits.cpp
+++ b/src/dawn_node/binding/GPUSupportedLimits.cpp
@@ -14,7 +14,7 @@
 
 #include "src/dawn_node/binding/GPUSupportedLimits.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUSupportedLimits
@@ -128,4 +128,4 @@
         return limits_.limits.maxComputeWorkgroupsPerDimension;
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUSupportedLimits.h b/src/dawn_node/binding/GPUSupportedLimits.h
index faed813..82b0ea6 100644
--- a/src/dawn_node/binding/GPUSupportedLimits.h
+++ b/src/dawn_node/binding/GPUSupportedLimits.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPUSupportedLimits is an implementation of interop::GPUSupportedLimits.
     class GPUSupportedLimits final : public interop::GPUSupportedLimits {
@@ -59,6 +59,6 @@
         wgpu::SupportedLimits limits_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUSUPPORTEDLIMITS_H_
diff --git a/src/dawn_node/binding/GPUTexture.cpp b/src/dawn_node/binding/GPUTexture.cpp
index 284cd8a..3257f15 100644
--- a/src/dawn_node/binding/GPUTexture.cpp
+++ b/src/dawn_node/binding/GPUTexture.cpp
@@ -19,7 +19,7 @@
 #include "src/dawn_node/binding/GPUTextureView.h"
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUTexture
@@ -61,4 +61,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUTexture.h b/src/dawn_node/binding/GPUTexture.h
index f5a2a47..29e7621 100644
--- a/src/dawn_node/binding/GPUTexture.h
+++ b/src/dawn_node/binding/GPUTexture.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPUTexture is an implementation of interop::GPUTexture that wraps a wgpu::Texture.
     class GPUTexture final : public interop::GPUTexture {
@@ -44,6 +44,6 @@
         wgpu::Texture texture_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUTEXTURE_H_
diff --git a/src/dawn_node/binding/GPUTextureView.cpp b/src/dawn_node/binding/GPUTextureView.cpp
index f03bc3f..11aa55f 100644
--- a/src/dawn_node/binding/GPUTextureView.cpp
+++ b/src/dawn_node/binding/GPUTextureView.cpp
@@ -16,7 +16,7 @@
 
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUTextureView
@@ -32,4 +32,4 @@
         UNIMPLEMENTED();
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUTextureView.h b/src/dawn_node/binding/GPUTextureView.h
index 8590735..89b972e 100644
--- a/src/dawn_node/binding/GPUTextureView.h
+++ b/src/dawn_node/binding/GPUTextureView.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPUTextureView is an implementation of interop::GPUTextureView that wraps a
     // wgpu::TextureView.
@@ -41,6 +41,6 @@
         wgpu::TextureView view_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUTEXTUREVIEW_H_
diff --git a/src/dawn_node/interop/Core.cpp b/src/dawn_node/interop/Core.cpp
index 8ee22cf..7a671c8 100644
--- a/src/dawn_node/interop/Core.cpp
+++ b/src/dawn_node/interop/Core.cpp
@@ -14,7 +14,7 @@
 
 #include "src/dawn_node/interop/Core.h"
 
-namespace wgpu { namespace interop {
+namespace wgpu::interop {
 
     Result Success;
 
@@ -157,4 +157,4 @@
         return Napi::Value::From(env, value);
     }
 
-}}  // namespace wgpu::interop
+}  // namespace wgpu::interop
diff --git a/src/dawn_node/interop/Core.h b/src/dawn_node/interop/Core.h
index d4d0ec6..c0ec61e 100644
--- a/src/dawn_node/interop/Core.h
+++ b/src/dawn_node/interop/Core.h
@@ -45,7 +45,7 @@
         __FILE__, __FUNCTION__, __LINE__ \
     }
 
-namespace wgpu { namespace interop {
+namespace wgpu::interop {
 
     ////////////////////////////////////////////////////////////////////////////////
     // Primitive JavaScript types
@@ -687,6 +687,6 @@
         }
     }
 
-}}  // namespace wgpu::interop
+}  // namespace wgpu::interop
 
 #endif  //  DAWN_NODE_INTEROP_CORE_WEBGPU_H_
diff --git a/src/dawn_node/utils/Debug.h b/src/dawn_node/utils/Debug.h
index 3636df0..cf7c7d8 100644
--- a/src/dawn_node/utils/Debug.h
+++ b/src/dawn_node/utils/Debug.h
@@ -24,7 +24,7 @@
 
 #include "dawn/webgpu_cpp_print.h"
 
-namespace wgpu { namespace utils {
+namespace wgpu::utils {
 
     // Write() is a helper for printing container types to the std::ostream.
     // Write() is used by the LOG() macro below.
@@ -141,6 +141,6 @@
 #define UNREACHABLE(...) \
     ::wgpu::utils::Fatal("UNREACHABLE", __FILE__, __LINE__, __FUNCTION__, ##__VA_ARGS__)
 
-}}  // namespace wgpu::utils
+}  // namespace wgpu::utils
 
 #endif  // DAWNNODE_UTILS_DEBUG_H_