Skip to content

Commit ed5ddf7

Browse files
sjburaleksei-semikozov
authored andcommitted
fix: remove infinite loop risk from util functions
1 parent f46501f commit ed5ddf7

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

packages/devextreme/js/__internal/scheduler/utils/skipped_days.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ export const getFirstVisibleDate = (
3030
skippedDays: number[],
3131
nextDate: (date: Date) => Date,
3232
): Date => {
33+
if (skippedDays.length >= 7) {
34+
return new Date(start);
35+
}
36+
3337
let date = new Date(start);
3438
while (isDateSkipped(date, skippedDays)) {
3539
date = nextDate(date);

packages/devextreme/js/__internal/scheduler/workspaces/m_timeline.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,14 @@ class SchedulerTimeline extends SchedulerWorkSpace {
108108
}
109109

110110
protected incrementDate(date) {
111+
const skippedDays = this.option('skippedDays') ?? [];
112+
113+
if (skippedDays.length >= 7) {
114+
return;
115+
}
116+
111117
date.setDate(date.getDate() + 1);
112-
while ((this.option('skippedDays') ?? []).includes(date.getDay())) {
118+
while (skippedDays.includes(date.getDay())) {
113119
date.setDate(date.getDate() + 1);
114120
}
115121
}

0 commit comments

Comments
 (0)