views:

628

answers:

4

Using YUICompressor I get the following error from my javascript code:

    [ERROR] 270:201:missing name after . operator
    [ERROR] 292:6:missing ; before statement

Here's the javascript code at the following lines:

Line 270:

new _ow.getScript(_ow.wwwurl+'/widget/save?title='+encodeURIComponent(this.obj.title.value)+'&url='+encodeURIComponent(this.obj.url.value)+'&tags='+this.obj.tags.value+'&private='+this.obj.private.checked+'&c='+this.obj.notes.value+'&service='+services+'&token='+(_ow.token ? encodeURIComponent(_ow.token): ''), function(data) {

Line 292:

});

I can't figure out what the problem is since this Javascript code works fine on all browsers.


EDIT: I split the line in multiple lines and figured out that the "missing name after . operator" is generated by this code:

this.obj.private.checked

Is private a keyword that makes the YUI compressor go mad?

A: 

You could make your own life a lot easier just by breaking it out onto multiple lines. You're compressing it anyway, so it's not like it's going to make a difference to the final size...

Oli
A: 

First, I'd reformat the code to make it more readable:

new _ow.getScript(_ow.wwwurl
 + '/widget/save?title='
 + encodeURIComponent(this.obj.title.value)
 + '&url='
 + encodeURIComponent(this.obj.url.value)
 + '&tags='
 + this.obj.tags.value
 + '&private='
 + this.obj.private.checked
 + '&c='
 + this.obj.notes.value
 + '&service='
 + services
 + '&token='
 + (_ow.token
  ? encodeURIComponent(_ow.token)
  : ''),
 function(data) {
 });

Then, the line # reported by the compressor should help you drill down on what the problem is.

Ates Goral
+3  A: 

private is a reserved word.

Crescent Fresh
A: 

Remeber to use option --type js ex.

yuicompressor --type js -o comressed.js filetocompress.js
kowal