diff --git a/sdk/lib/web_audio/dart2js/web_audio_dart2js.dart b/sdk/lib/web_audio/dart2js/web_audio_dart2js.dart index 29544d8f98c..37e538bcb70 100644 --- a/sdk/lib/web_audio/dart2js/web_audio_dart2js.dart +++ b/sdk/lib/web_audio/dart2js/web_audio_dart2js.dart @@ -386,7 +386,7 @@ class AudioNode extends EventTarget { int? get numberOfOutputs native; @JSName('connect') - AudioNode _connect(destination, [int? output, int? input]) native; + AudioNode? _connect(destination, [int? output, int? input]) native; void disconnect([destination_OR_output, int? output, int? input]) native; diff --git a/tools/dom/idl/dart/dart.idl b/tools/dom/idl/dart/dart.idl index ac5b337be53..674af140c3e 100644 --- a/tools/dom/idl/dart/dart.idl +++ b/tools/dom/idl/dart/dart.idl @@ -450,6 +450,15 @@ interface AudioContext { [DartSuppress] DelayNode createDelayNode(optional double maxDelayTime); }; +[DartSupplemental] +interface AudioNode : EventTarget { + [DartSuppress] AudioNode connect(AudioNode destination, optional unsigned long output = 0, optional unsigned long input = 0); + [DartSuppress] void connect(AudioParam destination, optional unsigned long output = 0); + AudioNode? connect(AudioNode destination, optional unsigned long output = 0, optional unsigned long input = 0); + // Scripts don't unify return types, so this is changed from void to do so. + AudioNode? connect(AudioParam destination, optional unsigned long output = 0); +}; + [DartSupplemental] interface HTMLInputElement { [DartSuppress] attribute boolean webkitSpeech;