홈피 속도를 조금이라도 빠르게하려고 야후 컴프레서(http://developer.yahoo.com/yui/compressor/)를 이용해서 모든 js, css 파일들을 압축해보았는데 modules/widget/tpl/js/widget.js에서만 아래와 같이 파싱 에러가 나옵니다.

[ERROR] 35:14:missing variable name
[ERROR] 36:14:identifier is a reserved word
[ERROR] 37:17:identifier is a reserved word
[ERROR] 727:14:missing variable name
[ERROR] 728:14:identifier is a reserved word
[ERROR] 735:17:identifier is a reserved word
[ERROR] 757:17:identifier is a reserved word
[ERROR] 1:0:Compilation produced 7 syntax errors.
org.mozilla.javascript.EvaluatorException: Compilation produced 7 syntax errors.
        at com.yahoo.platform.yui.compressor.YUICompressor$1.runtimeError(YUICompressor.java:143)
        at org.mozilla.javascript.Parser.parse(Parser.java:402)
        at org.mozilla.javascript.Parser.parse(Parser.java:347)
        at com.yahoo.platform.yui.compressor.JavaScriptCompressor.parse(JavaScriptCompressor.java:312)
        at com.yahoo.platform.yui.compressor.JavaScriptCompressor.<init>(JavaScriptCompressor.java:532)
        at com.yahoo.platform.yui.compressor.YUICompressor.main(YUICompressor.java:120)


그래서 소스코드를 보니 float라는 키워드가 변수명으로 사용되고 있더군요.
이것은 브라우저 내장 파서에 따라 에러가 날 소지가 다분히 있으므로 변수명을 고치는 것이 좋을 것 같습니다.

저는 아래 패치파일처럼 float변수명을 cssfloat로 고쳤습니다.
Index: widget.js
===================================================================
--- widget.js   (revision 29)
+++ widget.js   (working copy)
@@ -30,11 +30,11 @@
     return style;
 }

-// float: 값을 구하는게 IE랑 그외가 다름
+// cssfloat: 값을 구하는게 IE랑 그외가 다름
 function getFloat(obj) {
-    var float = xIE4Up?obj.style.styleFloat:obj.style.cssFloat;
-    if(!float) float = 'left';
-    return float;
+    var cssfloat = xIE4Up?obj.style.styleFloat:obj.style.cssFloat;
+    if(!cssfloat) cssfloat = 'left';
+    return cssfloat;
 }
 function setFloat(obj, fl) {
     if(xIE4Up) obj.style.styleFloat = fl;
@@ -724,15 +724,15 @@

     var pWidth = xWidth(tobj.parentNode);

-    var float = getFloat(tobj.parentNode);
-    if(!float) float = 'left';
+    var cssfloat = getFloat(tobj.parentNode);
+    if(!cssfloat) cssfloat = 'left';

     // 위젯 리사이즈 (우측)
     if(tobj.className == 'widgetResize' || tobj.className == 'widgetBoxResize') {
         if(nx < sx+minWidth) nx = sx+minWidth;
         if(nx > zoneRight) nx = zoneRight;

-        if(float == 'right') nx = sx + pWidth;
+        if(cssfloat == 'right') nx = sx + pWidth;

         var new_width = nx  - sx;
         if(new_width < minWidth) new_width = minWidth;
@@ -754,7 +754,7 @@

         if(nx < zoneLeft) nx = zoneLeft;

-        if(float == 'left') nx = sx;
+        if(cssfloat == 'left') nx = sx;

         var new_width = pWidth + (sx - nx);
         if(new_width < minWidth) new_width = minWidth;


참고하시기 바랍니다.

참고문헌

[1] Java Script Reserved Words (http://javascript.about.com/library/blreserved.htm)