diff --git a/DEPS b/DEPS
index 03acf89..3915477 100644
--- a/DEPS
+++ b/DEPS
@@ -172,7 +172,7 @@
     'condition': 'dawn_node',
   },
   'third_party/gpuweb': {
-    'url': '{github_git}/gpuweb/gpuweb.git@3c4734b09c68eb800b15da5e9ecefeca735fa7df',
+    'url': '{github_git}/gpuweb/gpuweb.git@0f5fc665a0d5b281e8119f0201e9067b05cf7927',
     'condition': 'dawn_node',
   },
 
diff --git a/src/dawn/node/binding/GPUAdapter.cpp b/src/dawn/node/binding/GPUAdapter.cpp
index a2d7248..c396a6a 100644
--- a/src/dawn/node/binding/GPUAdapter.cpp
+++ b/src/dawn/node/binding/GPUAdapter.cpp
@@ -60,6 +60,7 @@
     X(maxTextureDimension3D)                     \
     X(maxTextureArrayLayers)                     \
     X(maxBindGroups)                             \
+    X(maxBindingsPerBindGroup)                   \
     X(maxDynamicUniformBuffersPerPipelineLayout) \
     X(maxDynamicStorageBuffersPerPipelineLayout) \
     X(maxSampledTexturesPerShaderStage)          \
@@ -72,9 +73,12 @@
     X(minUniformBufferOffsetAlignment)           \
     X(minStorageBufferOffsetAlignment)           \
     X(maxVertexBuffers)                          \
+    X(maxBufferSize)                             \
     X(maxVertexAttributes)                       \
     X(maxVertexBufferArrayStride)                \
     X(maxInterStageShaderComponents)             \
+    X(maxColorAttachments)                       \
+    /* X(maxColorAttachmentBytesPerSample) */    \
     X(maxComputeWorkgroupStorageSize)            \
     X(maxComputeInvocationsPerWorkgroup)         \
     X(maxComputeWorkgroupSizeX)                  \
@@ -214,6 +218,7 @@
             case interop::GPUFeatureName::kShaderF16:
             case interop::GPUFeatureName::kIndirectFirstInstance:
             case interop::GPUFeatureName::kBgra8UnormStorage:
+            case interop::GPUFeatureName::kRg11B10UfloatRenderable:
                 // TODO(dawn:1123) Add support for these extensions when possible.
                 continue;
         }
diff --git a/src/dawn/node/binding/GPUBuffer.cpp b/src/dawn/node/binding/GPUBuffer.cpp
index 0d9718d..9d4a4cb 100644
--- a/src/dawn/node/binding/GPUBuffer.cpp
+++ b/src/dawn/node/binding/GPUBuffer.cpp
@@ -166,6 +166,10 @@
     return buffer_.GetSize();
 }
 
+interop::GPUBufferMapState GPUBuffer::getMapState(Napi::Env) {
+    UNIMPLEMENTED();
+}
+
 interop::GPUBufferUsageFlags GPUBuffer::getUsage(Napi::Env env) {
     interop::GPUBufferUsageFlags result;
 
diff --git a/src/dawn/node/binding/GPUBuffer.h b/src/dawn/node/binding/GPUBuffer.h
index 250f41b..275127f 100644
--- a/src/dawn/node/binding/GPUBuffer.h
+++ b/src/dawn/node/binding/GPUBuffer.h
@@ -53,6 +53,7 @@
     void destroy(Napi::Env) override;
     interop::GPUSize64 getSize(Napi::Env) override;
     interop::GPUBufferUsageFlags getUsage(Napi::Env) override;
+    interop::GPUBufferMapState getMapState(Napi::Env) override;
     std::string getLabel(Napi::Env) override;
     void setLabel(Napi::Env, std::string value) override;
 
diff --git a/src/dawn/node/binding/GPUSupportedLimits.cpp b/src/dawn/node/binding/GPUSupportedLimits.cpp
index 83a5cb2..31682ad 100644
--- a/src/dawn/node/binding/GPUSupportedLimits.cpp
+++ b/src/dawn/node/binding/GPUSupportedLimits.cpp
@@ -44,6 +44,10 @@
     return limits_.limits.maxBindGroups;
 }
 
+uint32_t GPUSupportedLimits::getMaxBindingsPerBindGroup(Napi::Env) {
+    return limits_.limits.maxBindingsPerBindGroup;
+}
+
 uint32_t GPUSupportedLimits::getMaxDynamicUniformBuffersPerPipelineLayout(Napi::Env) {
     return limits_.limits.maxDynamicUniformBuffersPerPipelineLayout;
 }
@@ -92,6 +96,10 @@
     return limits_.limits.maxVertexBuffers;
 }
 
+uint64_t GPUSupportedLimits::getMaxBufferSize(Napi::Env) {
+    return limits_.limits.maxBufferSize;
+}
+
 uint32_t GPUSupportedLimits::getMaxVertexAttributes(Napi::Env) {
     return limits_.limits.maxVertexAttributes;
 }
@@ -105,8 +113,16 @@
 }
 
 uint32_t GPUSupportedLimits::getMaxInterStageShaderVariables(Napi::Env) {
+    return limits_.limits.maxInterStageShaderVariables;
+}
+
+uint32_t GPUSupportedLimits::getMaxColorAttachments(Napi::Env) {
+    return limits_.limits.maxColorAttachments;
+}
+
+uint32_t GPUSupportedLimits::getMaxColorAttachmentBytesPerSample(Napi::Env) {
     UNIMPLEMENTED();
-    // return limits_.limits.maxInterStageShaderVariables;
+    // return limits_.limits.maxColorAttachmentBytesPerSample;
 }
 
 uint32_t GPUSupportedLimits::getMaxComputeWorkgroupStorageSize(Napi::Env) {
diff --git a/src/dawn/node/binding/GPUSupportedLimits.h b/src/dawn/node/binding/GPUSupportedLimits.h
index 246da4d..3041d61 100644
--- a/src/dawn/node/binding/GPUSupportedLimits.h
+++ b/src/dawn/node/binding/GPUSupportedLimits.h
@@ -34,6 +34,7 @@
     uint32_t getMaxTextureDimension3D(Napi::Env) override;
     uint32_t getMaxTextureArrayLayers(Napi::Env) override;
     uint32_t getMaxBindGroups(Napi::Env) override;
+    uint32_t getMaxBindingsPerBindGroup(Napi::Env) override;
     uint32_t getMaxDynamicUniformBuffersPerPipelineLayout(Napi::Env) override;
     uint32_t getMaxDynamicStorageBuffersPerPipelineLayout(Napi::Env) override;
     uint32_t getMaxSampledTexturesPerShaderStage(Napi::Env) override;
@@ -46,10 +47,13 @@
     uint32_t getMinUniformBufferOffsetAlignment(Napi::Env) override;
     uint32_t getMinStorageBufferOffsetAlignment(Napi::Env) override;
     uint32_t getMaxVertexBuffers(Napi::Env) override;
+    uint64_t getMaxBufferSize(Napi::Env) override;
     uint32_t getMaxVertexAttributes(Napi::Env) override;
     uint32_t getMaxVertexBufferArrayStride(Napi::Env) override;
     uint32_t getMaxInterStageShaderComponents(Napi::Env) override;
     uint32_t getMaxInterStageShaderVariables(Napi::Env) override;
+    uint32_t getMaxColorAttachments(Napi::Env) override;
+    uint32_t getMaxColorAttachmentBytesPerSample(Napi::Env) override;
     uint32_t getMaxComputeWorkgroupStorageSize(Napi::Env) override;
     uint32_t getMaxComputeInvocationsPerWorkgroup(Napi::Env) override;
     uint32_t getMaxComputeWorkgroupSizeX(Napi::Env) override;
diff --git a/webgpu-cts/expectations.txt b/webgpu-cts/expectations.txt
index 56216a9..956ce88 100644
--- a/webgpu-cts/expectations.txt
+++ b/webgpu-cts/expectations.txt
@@ -347,6 +347,7 @@
 crbug.com/tint/0000 [ intel-gen-9 target-cpu-64 ] webgpu:shader,validation,parse,identifiers:identifiers:* [ Failure ]
 crbug.com/tint/0000 [ nvidia-0x2184 target-cpu-32 ] webgpu:shader,validation,parse,identifiers:identifiers:* [ Failure ]
 crbug.com/tint/0000 [ nvidia-0x2184 target-cpu-64 ] webgpu:shader,validation,parse,identifiers:identifiers:* [ Failure ]
+crbug.com/tint/1771 webgpu:api,validation,compute_pipeline:overrides,workgroup_size,limits,* [ Failure ]
 
 ################################################################################
 # API operation failures
@@ -465,7 +466,6 @@
 crbug.com/dawn/0000 [ target-cpu-32 ] webgpu:api,operation,buffers,map_oom:mapAsync:oom=true;size=137438953472 [ Failure ]
 crbug.com/dawn/0000 [ target-cpu-32 ] webgpu:api,operation,buffers,map_oom:mapAsync:oom=true;size=9007199254740984 [ Failure ]
 crbug.com/dawn/0000 webgpu:api,operation,shader_module,compilation_info:line_number_and_position:valid=false;name="carriage-return" [ Failure ]
-crbug.com/dawn/0000 webgpu:api,validation,compute_pipeline:overrides,workgroup_size,limits,* [ Failure ]
 crbug.com/dawn/0000 webgpu:api,validation,createBindGroupLayout:multisampled_validation:viewDimension="2d" [ Failure ]
 crbug.com/dawn/0000 webgpu:api,validation,createBindGroupLayout:multisampled_validation:viewDimension="_undef_" [ Failure ]
 crbug.com/dawn/0000 webgpu:api,validation,encoding,encoder_state:pass_end_twice: [ Failure ]
