Skip to content

Commit bfaab99

Browse files
committed
Initialise media element's range bindings to an empty array
1 parent 687acf7 commit bfaab99

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

src/generators/dom/visitors/Element/Binding.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ function getBindingValue(
267267
}
268268

269269
if (isMediaElement && (attribute.name === 'buffered' || attribute.name === 'seekable' || attribute.name === 'played')) {
270-
return `@timeRangesToArray(${state.parentNode}.${attribute.name})`
270+
return `${state.parentNode}.${attribute.name} ? @timeRangesToArray(${state.parentNode}.${attribute.name}) : []`
271271
}
272272

273273
// everything else

test/js/samples/media-bindings/expected-bundle.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -184,19 +184,19 @@ function create_main_fragment(state, component) {
184184

185185
function audio_progress_loadedmetadata_handler() {
186186
audio_updating = true;
187-
component.set({ buffered: timeRangesToArray(audio.buffered) });
187+
component.set({ buffered: audio.buffered ? timeRangesToArray(audio.buffered) : [] });
188188
audio_updating = false;
189189
}
190190

191191
function audio_loadedmetadata_handler() {
192192
audio_updating = true;
193-
component.set({ seekable: timeRangesToArray(audio.seekable) });
193+
component.set({ seekable: audio.seekable ? timeRangesToArray(audio.seekable) : [] });
194194
audio_updating = false;
195195
}
196196

197197
function audio_timeupdate_handler() {
198198
audio_updating = true;
199-
component.set({ played: timeRangesToArray(audio.played) });
199+
component.set({ played: audio.played ? timeRangesToArray(audio.played) : [] });
200200
audio_updating = false;
201201
}
202202

test/js/samples/media-bindings/expected.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,19 @@ function create_main_fragment(state, component) {
55

66
function audio_progress_loadedmetadata_handler() {
77
audio_updating = true;
8-
component.set({ buffered: timeRangesToArray(audio.buffered) });
8+
component.set({ buffered: audio.buffered ? timeRangesToArray(audio.buffered) : [] });
99
audio_updating = false;
1010
}
1111

1212
function audio_loadedmetadata_handler() {
1313
audio_updating = true;
14-
component.set({ seekable: timeRangesToArray(audio.seekable) });
14+
component.set({ seekable: audio.seekable ? timeRangesToArray(audio.seekable) : [] });
1515
audio_updating = false;
1616
}
1717

1818
function audio_timeupdate_handler() {
1919
audio_updating = true;
20-
component.set({ played: timeRangesToArray(audio.played) });
20+
component.set({ played: audio.played ? timeRangesToArray(audio.played) : [] });
2121
audio_updating = false;
2222
}
2323

@@ -138,4 +138,4 @@ function SvelteComponent(options) {
138138

139139
assign(SvelteComponent.prototype, proto );
140140

141-
export default SvelteComponent;
141+
export default SvelteComponent;

0 commit comments

Comments
 (0)