diff --git a/third_party/emdawnwebgpu/library_webgpu.js b/third_party/emdawnwebgpu/library_webgpu.js
index b4c3db2..1c53c27 100644
--- a/third_party/emdawnwebgpu/library_webgpu.js
+++ b/third_party/emdawnwebgpu/library_webgpu.js
@@ -1706,7 +1706,7 @@
     return ptr;
   },
 
-  wgpuDeviceDestroy: (devicePtr) => {
+  emwgpuDeviceDestroy: (devicePtr) => {
     WebGPU.getJsObject(devicePtr).destroy()
   },
 
diff --git a/third_party/emdawnwebgpu/webgpu.cpp b/third_party/emdawnwebgpu/webgpu.cpp
index e473877..ddbdac4 100644
--- a/third_party/emdawnwebgpu/webgpu.cpp
+++ b/third_party/emdawnwebgpu/webgpu.cpp
@@ -42,7 +42,8 @@
                        uint64_t const* timeoutNSPtr);
 WGPUTextureFormat emwgpuGetPreferredFormat();
 
-// Creation functions to create JS backing objects given a pre-allocated handle.
+// Device functions, i.e. creation functions to create JS backing objects given
+// a pre-allocated handle, and destruction implementations.
 void emwgpuDeviceCreateBuffer(WGPUDevice device,
                               const WGPUBufferDescriptor* descriptor,
                               WGPUBuffer buffer);
@@ -50,6 +51,7 @@
     WGPUDevice device,
     const WGPUShaderModuleDescriptor* descriptor,
     WGPUShaderModule shader);
+void emwgpuDeviceDestroy(WGPUDevice device);
 
 // Buffer mapping operations that has work that needs to be done on the JS side.
 void emwgpuBufferDestroy(WGPUBuffer buffer);
@@ -226,11 +228,11 @@
  private:
   static void AddRef(T value) {
     if (value != nullptr) {
-      value->AddRef();
+      value->RefCounted::AddRef();
     }
   }
   static void Release(T value) {
-    if (value != nullptr && value->Release()) {
+    if (value != nullptr && value->RefCounted::Release()) {
       delete value;
     }
   }
@@ -672,6 +674,7 @@
   // Injection constructor used when we already have a backing Device.
   WGPUDeviceImpl(const EventSource* source, WGPUQueue queue);
 
+  void Destroy();
   WGPUQueue GetQueue() const;
 
   void OnDeviceLost(WGPUDeviceLostReason reason, const char* message);
@@ -1363,6 +1366,12 @@
   mQueue.Acquire(queue);
 }
 
+void WGPUDeviceImpl::Destroy() {
+  emwgpuDeviceDestroy(this);
+  // TODO(374803367): Remove this when we can get the device lost future.
+  OnDeviceLost(WGPUDeviceLostReason_Destroyed, "Device was destroyed.");
+}
+
 WGPUQueue WGPUDeviceImpl::GetQueue() const {
   auto queue = mQueue;
   return ReturnToAPI(std::move(queue));
@@ -1390,7 +1399,7 @@
 }
 
 void WGPUDeviceImpl::WillDropLastExternalRef() {
-  OnDeviceLost(WGPUDeviceLostReason_Destroyed, "Device was destroyed.");
+  Destroy();
 }
 
 // ----------------------------------------------------------------------------
@@ -1705,6 +1714,10 @@
   return shader;
 }
 
+void wgpuDeviceDestroy(WGPUDevice device) {
+  device->Destroy();
+}
+
 WGPUQueue wgpuDeviceGetQueue(WGPUDevice device) {
   return device->GetQueue();
 }
