node: Throw a TypeError when writeTimestamp is not supported

Bug: None
Change-Id: I7e02883c53371c40a9e1766d50550ffc43165c2e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/112425
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/src/dawn/node/binding/GPUCommandEncoder.cpp b/src/dawn/node/binding/GPUCommandEncoder.cpp
index 8e38168..87fa612 100644
--- a/src/dawn/node/binding/GPUCommandEncoder.cpp
+++ b/src/dawn/node/binding/GPUCommandEncoder.cpp
@@ -173,6 +173,12 @@
 void GPUCommandEncoder::writeTimestamp(Napi::Env env,
                                        interop::Interface<interop::GPUQuerySet> querySet,
                                        interop::GPUSize32 queryIndex) {
+    if (!device_.HasFeature(wgpu::FeatureName::TimestampQuery)) {
+        Napi::TypeError::New(env, "timestamp-query feature is not enabled.")
+            .ThrowAsJavaScriptException();
+        return;
+    }
+
     Converter conv(env);
 
     wgpu::QuerySet q{};