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;
}
-