JSDOC/Packer.js
authorAlan Knowles <alan@akbkhome.com>
Thu, 18 Aug 2011 09:26:41 +0000 (17:26 +0800)
committerAlan Knowles <alan@akbkhome.com>
Thu, 18 Aug 2011 09:26:41 +0000 (17:26 +0800)
JSDOC/Packer.js

index 93aebf6..c44fe64 100644 (file)
@@ -457,14 +457,49 @@ Packer.prototype = {
         
         var map = {};  // 'string=> md5sum'
         var _this = this;
-        toks.forEach(function (t) {
-            if (t.type == 'STRN' && t.name == 'DOUBLE_QUOTE') {
-                var sval = t.data.substring(1,t.data.length-1);
-                var ffn = fn.substring(_this.prefix.length);
-                
-                t.trsum = _this.md5(ffn + '-' + sval);
-                map[sval] = t.trsum;
+        var t, last, next;
+        
+        
+        for (var i=0;i<toks.length;i++) {
+            
+            t = toks[i];
+            if (t.type != 'STRN') {
+                continue;
             }
+            if (t.name != 'DOUBLE_QUOTE') {
+                continue;
+            }
+            
+            last = i > 0 ? toks[i-1] : false;
+            next = i+1 < toks.length ? toks[i+1] : false;
+            
+            // we have to ignore key values on objects
+            
+            // defined by
+            // last == '{' or ',' and
+            // next == ':'
+            
+            if (next &&
+                next.type == 'PUNC' &&
+                next.data == ':' && 
+                last && 
+                last.type == 'PUNC' &&
+                (last.data == ',' || last.data == '{')
+            ){
+                continue; // found object key... - we can not translate these
+            }
+                
+            var sval = t.data.substring(1,t.data.length-1);
+            var ffn = fn.substring(_this.prefix.length);
+            
+            t.trsum = _this.md5(ffn + '-' + sval);
+            map[sval] = t.trsum;
+            
+            
+            
+        }
+        toks.forEach(function (t) {
+            
         })
         
         var transfile = minfile + '.lang.trans';