|
@@ -250,6 +250,13 @@ define("amber/boot", [ 'require', './browser-compatibility' ], function (require
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+ st.initMethodInClass = function(klass, method) {
|
|
|
+ if(klass.wrapped) {
|
|
|
+ copySuperclass(klass);
|
|
|
+ dnu.installHandlers(klass);
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
function copySuperclass(klass, superclass) {
|
|
|
var inheritedMethods = Object.create(null);
|
|
|
deinstallAllMethods(klass);
|
|
@@ -625,7 +632,7 @@ define("amber/boot", [ 'require', './browser-compatibility' ], function (require
|
|
|
|
|
|
org.addOrganizationElement(klass, method.protocol);
|
|
|
|
|
|
- propagateMethodChange(klass);
|
|
|
+ propagateMethodChange(klass, method);
|
|
|
|
|
|
var usedSelectors = method.messageSends;
|
|
|
var dnuHandlers = [];
|
|
@@ -643,7 +650,7 @@ define("amber/boot", [ 'require', './browser-compatibility' ], function (require
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- function propagateMethodChange(klass) {
|
|
|
+ function propagateMethodChange(klass, method) {
|
|
|
|
|
|
|
|
|
|
|
@@ -652,7 +659,7 @@ define("amber/boot", [ 'require', './browser-compatibility' ], function (require
|
|
|
|
|
|
if (stInit.initialized()) {
|
|
|
st.allSubclasses(klass).forEach(function (subclass) {
|
|
|
- st.initClass(subclass);
|
|
|
+ st.initMethodInClass(subclass, method);
|
|
|
});
|
|
|
}
|
|
|
}
|
|
@@ -670,8 +677,8 @@ define("amber/boot", [ 'require', './browser-compatibility' ], function (require
|
|
|
delete klass.fn.prototype[method.jsSelector];
|
|
|
delete klass.methods[method.selector];
|
|
|
|
|
|
- st.initClass(klass);
|
|
|
- propagateMethodChange(klass);
|
|
|
+ st.initMethodInClass(klass, method);
|
|
|
+ propagateMethodChange(klass, method);
|
|
|
|
|
|
|
|
|
|