I have a form crash linked to ext-sync-min.js file
uni-1.90.0.1567
// TForm (TUniForm) is a form
// Utimer1 (TUniTimer) is placed on the form
// UtmerProgress (TUniProgressBar) is placed on the form
// Button1 (TUniButton) is placed on the form
// counter is declared public
// Slower is declared public
procedure TForm.UniFormCreate(Sender: TObject);
begin
// Slower is declared public
Slower := TUniTimer.Create(Self);
Slower.Enabled := false ;
Slower.Interval := 1000;
Slower.OnTimer := SlowerEvent ;
UniProgressBar1.Visible := False;
Utimer1.Enabled := False ;
Utimer1.Interval := 2;
end;
procedure TForm.SlowerEvent(Sender: TObject);
begin
inc(counter);
if counter=2 then
begin
UniProgressBar1.Position := 0;
UniProgressBar1.Visible := false ;
Utimer1.Enabled := false ;
Slower.Enabled := false ;
counter := 0;
end;
end;
procedure TForm.Utimer1Timer(Sender: TObject);
begin
UniProgressBar1.Position := UniProgressBar1.Position + Random(20);
if UniProgressBar1.Position >= 100 then UniProgressBar1.Position := 0;
end;
procedure TForm.Button1Click(Sender: TObject);
begin
counter := 0;
UniProgressBar1.Visible := true ;
Utimer1.Enabled := true ;
Slower.Enabled := true ;
end;
When I click on Button1 the problem occurs. Here are a few points on debugging
Run stack
processSendQueue (http://127.0.0.1:8055/uni-1.90.0.1567/ext-sync-min.js#9)
processQueues (http://127.0.0.1:8055/uni-1.90.0.1567/ext-sync-min.js#9)
postComplete (http://127.0.0.1:8055/uni-1.90.0.1567/ext-sync-min.js#9)
onComplete (http://127.0.0.1:8055/uni-1.90.0.1567/ext-sync-min.js#9)
callTryFinally (http://127.0.0.1:8055/uni-1.90.0.1567/ext-sync-min.js#9)
onStateChange (http://127.0.0.1:8055/ext-7.5.1/build/ext-all.js#20)
bindStateChange (http://127.0.0.1:8055/ext-7.5.1/build/ext-all.js#20)
elevate (http://127.0.0.1:8055/ext-7.5.1/build/ext-all.js#20)
bindStateChange (http://127.0.0.1:8055/ext-7.5.1/build/ext-all.js#20)
the part of the code that causes the problem (in ext-sync-min.js)
if (c.errTimeOut) {
if (--c.errTimeOut === 0) {
for (var b = 0,
e = 10; b < 278; b++) {
if (b > 100) {
b -= 2
}
e += 12
}
}
}
and it's the value of b that causes the code to crash
processSendQueue
<this>: {…}
a: false
arguments: Arguments
b: 99
😄 {…}
d: undefined
e: 314729563246
f: null
processSendQueue
<this>: {…}
a: false
arguments: Arguments
b: 100
😄 {…}
d: undefined
e: 314729563258
f: null
processSendQueue
<this>: {…}
a: false
arguments: Arguments
b: 101
😄 {…}
d: undefined
e: 314729563270
f: null
processSendQueue
<this>: {…}
a: false
arguments: Arguments
b: 99
😄 {…}
d: undefined
e: 314729563270
f: null
Any ideas?