Reputation: 29267
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?
Upvotes: 7
Views: 7857
Reputation: 21
you can download and install apache ant, download the yui source, edit the source code (in src folder, in the org and the com subfolders) to remove all references to the keyword blocking your progress (it goes quite fast, I edited about 3 to 4 files i think, had to run ant twice because the first time got a reference error, but all it took was deleting another line referring to the keyword) and once ant compiles successfully you have a brand new .jar and you can use this to compile your problematic js. did this with yuicompressor2-4.7 and the "import" keyword (used quite extensively in mozilla extension code)
Upvotes: 2
Reputation: 21
Remeber to use option --type js ex.
yuicompressor --type js -o comressed.js filetocompress.js
Upvotes: 2
Reputation: 140050
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.
Upvotes: 3
Reputation: 239810
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...
Upvotes: 0