Author: johnh
Date: Wed Apr 15 23:23:14 2009
New Revision: 765421

URL: http://svn.apache.org/viewvc?rev=765421&view=rev
Log:
Improved _exportSymbols(...) method, which doesn't overwrite existing classes 
in any way.

Patch provided by Michael Hermanto. Resolves SHINDIG-1014.


Modified:
    incubator/shindig/trunk/features/src/main/javascript/features/core/legacy.js

Modified: 
incubator/shindig/trunk/features/src/main/javascript/features/core/legacy.js
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/features/src/main/javascript/features/core/legacy.js?rev=765421&r1=765420&r2=765421&view=diff
==============================================================================
--- 
incubator/shindig/trunk/features/src/main/javascript/features/core/legacy.js 
(original)
+++ 
incubator/shindig/trunk/features/src/main/javascript/features/core/legacy.js 
Wed Apr 15 23:23:14 2009
@@ -300,18 +300,14 @@
  * @param {Array.<String | Object>} sym
  */
 function _exportSymbols(name, sym) {
-  var obj = {};
-
-  for (var i = 0, j = sym.length; i < j; i += 2) {
-    obj[sym[i]] = sym[i + 1];
-  }
-  var parts = name.split(".");
   var attach = window;
-  for (var k = 0, l = parts.length - 1; k < l; ++k) {
-    var tmp = {};
-    attach[parts[k]] = tmp;
-    attach = tmp;
+  var parts = name.split(".");
+  for (var i = 0, j = parts.length; i < j; i++) {
+    var part = parts[i];
+    attach[part] = attach[part] || {};
+    attach = attach[part];
+  }
+  for (var k = 0, l = sym.length; k < l; k += 2) {
+    attach[sym[k]] = sym[k + 1];
   }
-  attach[parts[parts.length - 1]] = obj;
 }
-


Reply via email to