[emscripten] Fix fillAdapterInfoStruct__deps & externs

The deps need to be on the fillAdapterInfoStruct helper rather than the
functions that use it, I think because it's positioned like a public API
so Emscripten assumes it can't eliminate it (but still assumes it can
eliminate stringToNewUTF8). It's not an immediate code size problem
because Closure still eliminates it if it's unused, but Closure needs
the code to be valid to do that.

Tested this fixes a local release+closure build.

Also updated the externs for these; I have not verified that change (but
it's safe, it can't break anything).

No-Try: true
Bug: https://github.com/emscripten-core/emscripten/pull/24303#issuecomment-2887004258
Change-Id: Ib718f37c2dccf18374a115c9f12192685da55e46
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/242734
Commit-Queue: Loko Kung <lokokung@google.com>
Auto-Submit: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Loko Kung <lokokung@google.com>
diff --git a/third_party/emdawnwebgpu/pkg/webgpu/src/library_webgpu.js b/third_party/emdawnwebgpu/pkg/webgpu/src/library_webgpu.js
index 27086ea..4b9bec2 100644
--- a/third_party/emdawnwebgpu/pkg/webgpu/src/library_webgpu.js
+++ b/third_party/emdawnwebgpu/pkg/webgpu/src/library_webgpu.js
@@ -579,6 +579,7 @@
       }
     },
 
+    fillAdapterInfoStruct__deps: ['$stringToNewUTF8', '$lengthBytesUTF8'],
     fillAdapterInfoStruct: (info, infoStruct) => {
       {{{ gpu.makeCheckDescriptor('infoStruct') }}}
 
@@ -739,7 +740,6 @@
     {{{ makeSetValue('supportedFeatures', C_STRUCTS.WGPUSupportedFeatures.featureCount, 'numFeatures', '*') }}};
   },
 
-  wgpuAdapterGetInfo__deps: ['$stringToNewUTF8', '$lengthBytesUTF8'],
   wgpuAdapterGetInfo: (adapterPtr, info) => {
     var adapter = WebGPU.getJsObject(adapterPtr);
     WebGPU.fillAdapterInfoStruct(adapter.info, info);
@@ -1844,7 +1844,6 @@
     return device.features.has(WebGPU.FeatureName[featureEnumValue]);
   },
 
-  wgpuDeviceGetAdapterInfo__deps: ['$stringToNewUTF8', '$lengthBytesUTF8'],
   wgpuDeviceGetAdapterInfo: (devicePtr, adapterInfo) => {
     var device = WebGPU.getJsObject(devicePtr);
     WebGPU.fillAdapterInfoStruct(device.adapterInfo, adapterInfo);
diff --git a/third_party/emdawnwebgpu/pkg/webgpu/src/webgpu-externs.js b/third_party/emdawnwebgpu/pkg/webgpu/src/webgpu-externs.js
index f257ef1..85fc8b0 100644
--- a/third_party/emdawnwebgpu/pkg/webgpu/src/webgpu-externs.js
+++ b/third_party/emdawnwebgpu/pkg/webgpu/src/webgpu-externs.js
@@ -182,6 +182,10 @@
 GPUAdapterInfo.prototype.device;
 /** @type {string} */
 GPUAdapterInfo.prototype.description;
+/** @type {number} */
+GPUAdapterInfo.prototype.subgroupMinSize;
+/** @type {number} */
+GPUAdapterInfo.prototype.subgroupMaxSize;
 
 /** @constructor */
 function GPU() {}