missing : after property id when minifying with yuicompressor

Viewed 45

I have to call an external app on my website with:

  const { toggle  } = window.cdn.createAnimation('Ff8rx6E4'); 
  document.querySelector('#btn-mobile-openapp').onclick = toggle;

This works surprisingly ok. But when I am trying to minify the file, it runs a js validity check and I am getting:

missing : after property id

The regular onclick or eventlisteners won't work here. Any ideas how to correctly define toggle without running into an error?

2 Answers

This looks to me like the minifier isn't aware of destructuring. Try switching the JavaScript to

  const animation = window.cdn.createAnimation('Ff8rx6E4'); 
  document.querySelector('#btn-mobile-openapp').onclick = animation.toggle;

Or there could be some invisible character in your { toggle }? I can see 2 spaces before the closing }.

Failing that, what are you using to minify?

This JavaScript exception missing : after property id occurs if objects are declared using the object’s initialization syntax. It can happen when there is a mistake in the object initializer syntax somewhere. Might be in fact a missing curly bracket, but could also be a missing comma.

In your case, since it's only occuring in minification and by looking at your code, try to use it in a regular assignment instead of the object destructuring way which might be the cause for the error.

const animate = window.cdn.createAnimation('Ff8rx6E4'); 
document.querySelector('#btn-mobile-openapp').onclick = animate.toggle;
Related