cassette icon indicating copy to clipboard operation
cassette copied to clipboard

setTimeout with lambda causes incorrect minification

Open Nagareboshi18 opened this issue 5 years ago • 0 comments

When I use arrow function:

setTimeout(() => this._check(), 1000);

it completely messes up the minified scripts.

My widget that contains that function ends up like this:

NEWS.CheckIfItemExists.prototype,
this._timeout(),
this._timeoutMsg.removeClass("hidden"),
this._loading.addClass("hidden"),

while it should look like this:

NEWS.CheckIfItemExists.prototype={
	init:function(){
		this._check()
	},
	_check:function(){
etc. ........

After commenting out just the arrow fuction: () => things go back to normal.

I managed to find another way of doing the setTimeout:

setTimeout(function () { this._check(); }.bind(this), 1000);

But obviously the arrow function makes the code simpler and it should be just fine with Cassette.

Nagareboshi18 avatar Feb 20 '20 15:02 Nagareboshi18