Make dawn.node properties enumerable etc...
Before this change, this code
```
adapter = await navigator.gpu.requestAdapter();
for (const key in adapter) {
console.log(key);
}
```
In the browser prints
```
features
limits
info
isFallbackAdapter
requestDevice
isCompatibilityMode
featureLevel
```
But in dawn.node prints
```
isFallbackAdapter
isCompatibilityMode
```
After this CL dawn.node prints them all
Bug: 389099880
Change-Id: I846919f955539ca2a9e17555eca5223cc1beb70c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/221755
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
diff --git a/src/dawn/node/interop/WebGPU.cpp.tmpl b/src/dawn/node/interop/WebGPU.cpp.tmpl
index 1e87c73..605e015 100644
--- a/src/dawn/node/interop/WebGPU.cpp.tmpl
+++ b/src/dawn/node/interop/WebGPU.cpp.tmpl
@@ -166,7 +166,7 @@
InstanceAccessor("size", &W{{$.Name}}::getSize, nullptr),
{{- end}}
{{- range $m := $methods}}
- InstanceMethod("{{$m.Name}}", &W{{$.Name}}::{{$m.Name}}, static_cast<napi_property_attributes>(napi_writable | napi_configurable)),
+ InstanceMethod("{{$m.Name}}", &W{{$.Name}}::{{$m.Name}}, static_cast<napi_property_attributes>(napi_default_jsproperty)),
{{- end}}
{{- range $a := $attributes}}
{{- if not (HasAnnotation $a "SameObject")}}
@@ -370,7 +370,7 @@
{{- range $a := AttributesOf $}}
{{- if HasAnnotation $a "SameObject"}}
object.DefineProperty(Napi::PropertyDescriptor::Value(
- "{{$a.Name}}", ToJS(env, wrapper->impl->get{{Title $a.Name}}(env))
+ "{{$a.Name}}", ToJS(env, wrapper->impl->get{{Title $a.Name}}(env)), napi_default_jsproperty
));
{{- end}}
{{- end}}