You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi, I got the "Maximum call stack size exceeded " message below as below:
the root case is this code in Movie.prototype._render function:
...........
var end = this.duration;
var ended = this.currentTime > end;
if (ended) {
this._lastPlayed = performance.now();
this._lastPlayedOffset = 0; // this.currentTime
this._renderingFrame = false;
if (!this.repeat || this.recording) {
this._paused = true;
this._ended = true;
// Deactivate all layers
for (var i = 0; i < this.layers.length; i++)
if (Object.prototype.hasOwnProperty.call(this.layers, i)) {
var layer = this.layers[i];
// A layer that has been deleted before layers.length has been updated
// (see the layers proxy in the constructor).
if (!layer)
continue;
layer.stop(); layer.active = false; // this case the infinite loop!!!!!!
}
}
publish(this, 'movie.ended', { movie: this, repeat: this.repeat });
// TODO: only reset currentTime if repeating
this._currentTime = 0; // don't use setter
publish(this, 'movie.timeupdate', { movie: this });
}
.............
Is the right way to modified the active property to _active, so it can avoid the proxy set function which case the infinite loop?
I think we should remove the whole proxy / auto-refresh system (#130). It's causing more harm than good. We could add active to publicExcludes in the meantime. I'll open an issue for it.
Hi, I got the "Maximum call stack size exceeded " message below as below:
the root case is this code in Movie.prototype._render function:
var end = this.duration;
var ended = this.currentTime > end;
if (ended) {
this._lastPlayed = performance.now();
this._lastPlayedOffset = 0; // this.currentTime
this._renderingFrame = false;
if (!this.repeat || this.recording) {
this._paused = true;
this._ended = true;
// Deactivate all layers
for (var i = 0; i < this.layers.length; i++)
if (Object.prototype.hasOwnProperty.call(this.layers, i)) {
var layer = this.layers[i];
// A layer that has been deleted before layers.length has been updated
// (see the layers proxy in the constructor).
if (!layer)
continue;
layer.stop();
layer.active = false; // this case the infinite loop!!!!!!
}
}
publish(this, 'movie.ended', { movie: this, repeat: this.repeat });
// TODO: only reset currentTime if repeating
this._currentTime = 0; // don't use setter
publish(this, 'movie.timeupdate', { movie: this });
}
Is the right way to modified the active property to _active, so it can avoid the proxy set function which case the infinite loop?
the whole stacks are below:
etro-iife.js:2763 Uncaught (in promise) RangeError: Maximum call stack size exceeded
at etro-iife.js:2763:39
at new Promise ()
at Proxy.Movie.refresh (etro-iife.js:2762:20)
at etro-iife.js:2465:29
at publish (etro-iife.js:122:13)
at etro-iife.js:732:17
at publish (etro-iife.js:122:13)
at callback (etro-iife.js:497:13)
at Object.set (etro-iife.js:526:21)
at Proxy.Movie._render (etro-iife.js:2642:42)
(anonymous) @ etro-iife.js:2763
Movie.refresh @ etro-iife.js:2762
(anonymous) @ etro-iife.js:2465
publish @ etro-iife.js:122
(anonymous) @ etro-iife.js:732
publish @ etro-iife.js:122
callback @ etro-iife.js:497
set @ etro-iife.js:526
Movie._render @ etro-iife.js:2642
(anonymous) @ etro-iife.js:2764
Movie.refresh @ etro-iife.js:2762
(anonymous) @ etro-iife.js:2465
publish @ etro-iife.js:122
(anonymous) @ etro-iife.js:732
publish @ etro-iife.js:122
callback @ etro-iife.js:497
set @ etro-iife.js:526
Movie._render @ etro-iife.js:2642
(anonymous) @ etro-iife.js:2764
Movie.refresh @ etro-iife.js:2762
(anonymous) @ etro-iife.js:2465
publish @ etro-iife.js:122
(anonymous) @ etro-iife.js:732
publish @ etro-iife.js:122
callback @ etro-iife.js:497
set @ etro-iife.js:526
Movie._render @ etro-iife.js:2642
(anonymous) @ etro-iife.js:2764
Movie.refresh @ etro-iife.js:2762
(anonymous) @ etro-iife.js:2465
publish @ etro-iife.js:122
(anonymous) @ etro-iife.js:732
publish @ etro-iife.js:122
callback @ etro-iife.js:497
set @ etro-iife.js:526
Movie._render @ etro-iife.js:2642
(anonymous) @ etro-iife.js:2764
Movie.refresh @ etro-iife.js:2762
(anonymous) @ etro-iife.js:2465
publish @ etro-iife.js:122
(anonymous) @ etro-iife.js:732
publish @ etro-iife.js:122
callback @ etro-iife.js:497
set @ etro-iife.js:526
Movie._render @ etro-iife.js:2642
(anonymous) @ etro-iife.js:2764
Movie.refresh @ etro-iife.js:2762
(anonymous) @ etro-iife.js:2465
publish @ etro-iife.js:122
(anonymous) @ etro-iife.js:732
publish @ etro-iife.js:122
callback @ etro-iife.js:497
set @ etro-iife.js:526
Movie._render @ etro-iife.js:2642
(anonymous) @ etro-iife.js:2764
Movie.refresh @ etro-iife.js:2762
(anonymous) @ etro-iife.js:2465
publish @ etro-iife.js:122
(anonymous) @ etro-iife.js:732
publish @ etro-iife.js:122
callback @ etro-iife.js:497
set @ etro-iife.js:526
Movie._render @ etro-iife.js:2642
(anonymous) @ etro-iife.js:2764
Movie.refresh @ etro-iife.js:2762
(anonymous) @ etro-iife.js:2465
publish @ etro-iife.js:122
(anonymous) @ etro-iife.js:732
publish @ etro-iife.js:122
callback @ etro-iife.js:497
set @ etro-iife.js:526
Movie._render @ etro-iife.js:2642
(anonymous) @ etro-iife.js:2764
Movie.refresh @ etro-iife.js:2762
(anonymous) @ etro-iife.js:2465
publish @ etro-iife.js:122
(anonymous) @ etro-iife.js:732
publish @ etro-iife.js:122
callback @ etro-iife.js:497
set @ etro-iife.js:526
Movie._render @ etro-iife.js:2642
(anonymous) @ etro-iife.js:2764
Movie.refresh @ etro-iife.js:2762
(anonymous) @ etro-iife.js:2465
publish @ etro-iife.js:122
(anonymous) @ etro-iife.js:732
publish @ etro-iife.js:122
callback @ etro-iife.js:497
set @ etro-iife.js:526
Movie._render @ etro-iife.js:2642
(anonymous) @ etro-iife.js:2764
Movie.refresh @ etro-iife.js:2762
(anonymous) @ etro-iife.js:2465
publish @ etro-iife.js:122
(anonymous) @ etro-iife.js:732
publish @ etro-iife.js:122
callback @ etro-iife.js:497
set @ etro-iife.js:526
Movie._render @ etro-iife.js:2642
(anonymous) @ etro-iife.js:2764
Movie.refresh @ etro-iife.js:2762
(anonymous) @ etro-iife.js:2465
publish @ etro-iife.js:122
(anonymous) @ etro-iife.js:732
publish @ etro-iife.js:122
callback @ etro-iife.js:497
set @ etro-iife.js:526
Movie._render @ etro-iife.js:2642
(anonymous) @ etro-iife.js:2764
Movie.refresh @ etro-iife.js:2762
(anonymous) @ etro-iife.js:2465
publish @ etro-iife.js:122
(anonymous) @ etro-iife.js:732
publish @ etro-iife.js:122
callback @ etro-iife.js:497
set @ etro-iife.js:526
Movie._render @ etro-iife.js:2642
(anonymous) @ etro-iife.js:2764
Movie.refresh @ etro-iife.js:2762
(anonymous) @ etro-iife.js:2465
publish @ etro-iife.js:122
(anonymous) @ etro-iife.js:732
publish @ etro-iife.js:122
callback @ etro-iife.js:497
set @ etro-iife.js:526
Movie._render @ etro-iife.js:2642
(anonymous) @ etro-iife.js:2764
Movie.refresh @ etro-iife.js:2762
(anonymous) @ etro-iife.js:2465
publish @ etro-iife.js:122
(anonymous) @ etro-iife.js:732
publish @ etro-iife.js:122
callback @ etro-iife.js:497
set @ etro-iife.js:526
Movie._render @ etro-iife.js:2642
(anonymous) @ etro-iife.js:2764
Movie.refresh @ etro-iife.js:2762
(anonymous) @ etro-iife.js:2465
publish @ etro-iife.js:122
(anonymous) @ etro-iife.js:732
publish @ etro-iife.js:122
callback @ etro-iife.js:497
set @ etro-iife.js:526
Movie._render @ etro-iife.js:2642
(anonymous) @ etro-iife.js:2764
Movie.refresh @ etro-iife.js:2762
(anonymous) @ etro-iife.js:2465
publish @ etro-iife.js:122
(anonymous) @ etro-iife.js:732
publish @ etro-iife.js:122
callback @ etro-iife.js:497
set @ etro-iife.js:526
Movie._render @ etro-iife.js:2642
(anonymous) @ etro-iife.js:2764
Movie.refresh @ etro-iife.js:2762
(anonymous) @ etro-iife.js:2465
publish @ etro-iife.js:122
(anonymous) @ etro-iife.js:732
publish @ etro-iife.js:122
callback @ etro-iife.js:497
set @ etro-iife.js:526
Movie._render @ etro-iife.js:2642
(anonymous) @ etro-iife.js:2764
Movie.refresh @ etro-iife.js:2762
(anonymous) @ etro-iife.js:2465
publish @ etro-iife.js:122
(anonymous) @ etro-iife.js:732
publish @ etro-iife.js:122
callback @ etro-iife.js:497
set @ etro-iife.js:526
Movie._render @ etro-iife.js:2642
(anonymous) @ etro-iife.js:2764
Movie.refresh @ etro-iife.js:2762
(anonymous) @ etro-iife.js:2465
publish @ etro-iife.js:122
(anonymous) @ etro-iife.js:732
publish @ etro-iife.js:122
callback @ etro-iife.js:497
set @ etro-iife.js:526
Movie._render @ etro-iife.js:2642
Show 150 more frames
The text was updated successfully, but these errors were encountered: