diff --git a/third_party/emdawnwebgpu/library_html5_webgpu.js b/third_party/emdawnwebgpu/library_html5_webgpu.js
index bfd55a4..f530bfa 100644
--- a/third_party/emdawnwebgpu/library_html5_webgpu.js
+++ b/third_party/emdawnwebgpu/library_html5_webgpu.js
@@ -1,15 +1,15 @@
 {{{
   // Helper functions for code generation
   globalThis.html5_gpu = {
-    makeImportExport: (snake_case, CamelCase) => {
+    makeImportExport: (snake_case) => {
       return `
 LibraryHTML5WebGPU.emscripten_webgpu_import_${snake_case}__deps = ['$WebGPU', '$JsValStore'];
-LibraryHTML5WebGPU.emscripten_webgpu_import_${snake_case} = (handle) =>
-  WebGPU.mgr${CamelCase}.create(JsValStore.get(handle));
+LibraryHTML5WebGPU.emscripten_webgpu_import_${snake_case} = (ptr) =>
+  WebGPU._tableInsert(JsValStore.get(ptr));
 
 LibraryHTML5WebGPU.emscripten_webgpu_export_${snake_case}__deps = ['$WebGPU', '$JsValStore'];
-LibraryHTML5WebGPU.emscripten_webgpu_export_${snake_case} = (handle) =>
-  JsValStore.add(WebGPU.mgr${CamelCase}.get(handle));`
+LibraryHTML5WebGPU.emscripten_webgpu_export_${snake_case} = (ptr) =>
+  JsValStore.add(WebGPU._tableGet(ptr));`
     },
   };
   null;
@@ -48,46 +48,45 @@
   emscripten_webgpu_release_js_handle__deps: ['$JsValStore'],
   emscripten_webgpu_release_js_handle: (id) => JsValStore.remove(id),
 
-  emscripten_webgpu_get_device__deps: ['$WebGPU'],
+  emscripten_webgpu_get_device__deps: ['$WebGPU', 'emwgpuTableInsertDevice', 'wgpuDeviceAddRef'],
   emscripten_webgpu_get_device: () => {
 #if ASSERTIONS
     assert(Module['preinitializedWebGPUDevice']);
 #endif
     if (WebGPU.preinitializedDeviceId === undefined) {
       var device = Module['preinitializedWebGPUDevice'];
-      var deviceWrapper = { queueId: WebGPU.mgrQueue.create(device["queue"]) };
-      WebGPU.preinitializedDeviceId = WebGPU.mgrDevice.create(device, deviceWrapper);
+      WebGPU.preinitializedDeviceId = _emwgpuTableInsertDevice(device);
     }
-    WebGPU.mgrDevice.reference(WebGPU.preinitializedDeviceId);
+    _wgpuDeviceAddRef(WebGPU.preinitializedDeviceId);
     return WebGPU.preinitializedDeviceId;
   },
 };
 
-{{{ html5_gpu.makeImportExport('surface', 'Surface') }}}
-{{{ html5_gpu.makeImportExport('swap_chain', 'SwapChain') }}}
+{{{ html5_gpu.makeImportExport('surface') }}}
+{{{ html5_gpu.makeImportExport('swap_chain') }}}
 
-{{{ html5_gpu.makeImportExport('device', 'Device') }}}
-{{{ html5_gpu.makeImportExport('queue', 'Queue') }}}
+{{{ html5_gpu.makeImportExport('device') }}}
+{{{ html5_gpu.makeImportExport('queue') }}}
 
-{{{ html5_gpu.makeImportExport('command_buffer', 'CommandBuffer') }}}
-{{{ html5_gpu.makeImportExport('command_encoder', 'CommandEncoder') }}}
-{{{ html5_gpu.makeImportExport('render_pass_encoder', 'RenderPassEncoder') }}}
-{{{ html5_gpu.makeImportExport('compute_pass_encoder', 'ComputePassEncoder') }}}
+{{{ html5_gpu.makeImportExport('command_buffer') }}}
+{{{ html5_gpu.makeImportExport('command_encoder') }}}
+{{{ html5_gpu.makeImportExport('render_pass_encoder') }}}
+{{{ html5_gpu.makeImportExport('compute_pass_encoder') }}}
 
-{{{ html5_gpu.makeImportExport('bind_group', 'BindGroup') }}}
-{{{ html5_gpu.makeImportExport('buffer', 'Buffer') }}}
-{{{ html5_gpu.makeImportExport('sampler', 'Sampler') }}}
-{{{ html5_gpu.makeImportExport('texture', 'Texture') }}}
-{{{ html5_gpu.makeImportExport('texture_view', 'TextureView') }}}
-{{{ html5_gpu.makeImportExport('query_set', 'QuerySet') }}}
+{{{ html5_gpu.makeImportExport('bind_group') }}}
+{{{ html5_gpu.makeImportExport('buffer') }}}
+{{{ html5_gpu.makeImportExport('sampler') }}}
+{{{ html5_gpu.makeImportExport('texture') }}}
+{{{ html5_gpu.makeImportExport('texture_view') }}}
+{{{ html5_gpu.makeImportExport('query_set') }}}
 
-{{{ html5_gpu.makeImportExport('bind_group_layout', 'BindGroupLayout') }}}
-{{{ html5_gpu.makeImportExport('pipeline_layout', 'PipelineLayout') }}}
-{{{ html5_gpu.makeImportExport('render_pipeline', 'RenderPipeline') }}}
-{{{ html5_gpu.makeImportExport('compute_pipeline', 'ComputePipeline') }}}
-{{{ html5_gpu.makeImportExport('shader_module', 'ShaderModule') }}}
+{{{ html5_gpu.makeImportExport('bind_group_layout') }}}
+{{{ html5_gpu.makeImportExport('pipeline_layout') }}}
+{{{ html5_gpu.makeImportExport('render_pipeline') }}}
+{{{ html5_gpu.makeImportExport('compute_pipeline') }}}
+{{{ html5_gpu.makeImportExport('shader_module') }}}
 
-{{{ html5_gpu.makeImportExport('render_bundle_encoder', 'RenderBundleEncoder') }}}
-{{{ html5_gpu.makeImportExport('render_bundle', 'RenderBundle') }}}
+{{{ html5_gpu.makeImportExport('render_bundle_encoder') }}}
+{{{ html5_gpu.makeImportExport('render_bundle') }}}
 
 mergeInto(LibraryManager.library, LibraryHTML5WebGPU);
diff --git a/third_party/emdawnwebgpu/library_webgpu.js b/third_party/emdawnwebgpu/library_webgpu.js
index ac3b0df..0041c10 100644
--- a/third_party/emdawnwebgpu/library_webgpu.js
+++ b/third_party/emdawnwebgpu/library_webgpu.js
@@ -469,13 +469,26 @@
   },
 
   // ----------------------------------------------------------------------------
-  // Definitions for standalone JS emwgpu functions (callable from webgpu.cpp)
+  // Definitions for standalone JS emwgpu functions (callable from webgpu.cpp and
+  //   library_html5_html.js)
   // ----------------------------------------------------------------------------
 
   emwgpuDelete: (id) => {
     delete WebGPU._table[id];
   },
 
+  // Extra helper that allow for directly inserting Devices (and their
+  // corresponding Queue) that is called from the HTML5 library since there
+  // isn't access to the C++ in webgpu.cpp there.
+  emwgpuTableInsertDevice__deps: ['emwgpuCreateDevice', 'emwgpuCreateQueue'],
+  emwgpuTableInsertDevice: (device) => {
+    var queuePtr = _emwgpuCreateQueue();
+    WebGPU._tableInsert(queuePtr, device.queue);
+    var devicePtr = _emwgpuCreateDevice(queuePtr);
+    WebGPU._tableInsert(devicePtr, device);
+    return devicePtr;
+  },
+
 #if ASYNCIFY
   // Returns a FutureID that was resolved, or kNullFutureId if timed out.
   emwgpuWaitAny__async: true,
