|
@@ -117,7 +117,8 @@ define(['require', './compatibility'], function (require) {
|
|
|
return child;
|
|
|
}
|
|
|
|
|
|
- var globals = {};
|
|
|
+ var jsGlobals = new Function("return this")();
|
|
|
+ var globals = Object.create(jsGlobals);
|
|
|
globals.SmalltalkSettings = {};
|
|
|
var api = {};
|
|
|
var brikz = new Brikz(api);
|
|
@@ -485,20 +486,21 @@ define(['require', './compatibility'], function (require) {
|
|
|
if (!superclass || superclass == nil) {
|
|
|
superclass = null;
|
|
|
}
|
|
|
- if (globals[className] && globals[className].superclass == superclass) {
|
|
|
-
|
|
|
- globals[className].iVarNames = iVarNames || [];
|
|
|
- if (pkg) globals[className].pkg = pkg;
|
|
|
+ var theClass = globals.hasOwnProperty(className) && globals[className];
|
|
|
+ if (theClass && theClass.superclass == superclass) {
|
|
|
+
|
|
|
+ theClass.iVarNames = iVarNames || [];
|
|
|
+ if (pkg) theClass.pkg = pkg;
|
|
|
if (fn) {
|
|
|
- fn.prototype = globals[className].fn.prototype;
|
|
|
- globals[className].fn = fn;
|
|
|
+ fn.prototype = theClass.fn.prototype;
|
|
|
+ theClass.fn = fn;
|
|
|
fn.prototype.constructor = fn;
|
|
|
}
|
|
|
} else {
|
|
|
- if (globals[className]) {
|
|
|
- st.removeClass(globals[className]);
|
|
|
+ if (theClass) {
|
|
|
+ st.removeClass(theClass);
|
|
|
}
|
|
|
- globals[className] = klass({
|
|
|
+ theClass = globals[className] = klass({
|
|
|
className: className,
|
|
|
superclass: superclass,
|
|
|
pkg: pkg,
|
|
@@ -507,11 +509,11 @@ define(['require', './compatibility'], function (require) {
|
|
|
wrapped: wrapped
|
|
|
});
|
|
|
|
|
|
- addSubclass(globals[className]);
|
|
|
+ addSubclass(theClass);
|
|
|
}
|
|
|
|
|
|
- classes.addElement(globals[className]);
|
|
|
- org.addOrganizationElement(pkg, globals[className]);
|
|
|
+ classes.addElement(theClass);
|
|
|
+ org.addOrganizationElement(pkg, theClass);
|
|
|
}
|
|
|
|
|
|
st.removeClass = function (klass) {
|