LibWeb: Better handling of union types in IDL code generation

First check if a string is a member of the enum before attempting
numeric conversion. This generates correct code for fields like:

AudioContextOptions {
  latencyHint: AudioContextLatencyCategory | double;
}
This commit is contained in:
Jonathan Gamble
2026-01-21 22:42:34 -06:00
committed by Shannon Booth
parent b69ec8757f
commit 4e48ba36bd
Notes: github-actions[bot] 2026-02-06 11:05:11 +00:00
5 changed files with 87 additions and 34 deletions

View File

@@ -6,6 +6,7 @@
#pragma once
#include <AK/Variant.h>
#include <LibWeb/Bindings/AudioContextPrototype.h>
#include <LibWeb/HighResolutionTime/DOMHighResTimeStamp.h>
#include <LibWeb/WebAudio/BaseAudioContext.h>
@@ -14,7 +15,7 @@
namespace Web::WebAudio {
struct AudioContextOptions {
Bindings::AudioContextLatencyCategory latency_hint = Bindings::AudioContextLatencyCategory::Interactive;
Variant<Bindings::AudioContextLatencyCategory, double> latency_hint = Bindings::AudioContextLatencyCategory::Interactive;
Optional<float> sample_rate;
};