|
@@ -231,7 +231,7 @@ function ClassInitBrik(brikz, st) {
|
|
};
|
|
};
|
|
|
|
|
|
function copySuperclass(klass, superclass) {
|
|
function copySuperclass(klass, superclass) {
|
|
- var inheritedMethods = {};
|
|
|
|
|
|
+ var inheritedMethods = Object.create(null);
|
|
deinstallAllMethods(klass);
|
|
deinstallAllMethods(klass);
|
|
for (superclass = superclass || klass.superclass;
|
|
for (superclass = superclass || klass.superclass;
|
|
superclass && superclass !== nil;
|
|
superclass && superclass !== nil;
|
|
@@ -246,8 +246,7 @@ function ClassInitBrik(brikz, st) {
|
|
var selector = method.selector;
|
|
var selector = method.selector;
|
|
|
|
|
|
//TODO: prepare klass methods into inheritedMethods to only test once
|
|
//TODO: prepare klass methods into inheritedMethods to only test once
|
|
- //TODO: Object.create(null) to ditch hasOwnProperty call (very slow)
|
|
|
|
- if(klass.methods.hasOwnProperty(selector) || inheritedMethods.hasOwnProperty(selector)) {
|
|
|
|
|
|
+ if(klass.methods[selector] || inheritedMethods[selector]) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -380,7 +379,7 @@ function ClassesBrik(brikz, st) {
|
|
|
|
|
|
org.setupClassOrganization(klass);
|
|
org.setupClassOrganization(klass);
|
|
Object.defineProperty(klass, "methods", {
|
|
Object.defineProperty(klass, "methods", {
|
|
- value: {},
|
|
|
|
|
|
+ value: Object.create(null),
|
|
enumerable: false, configurable: true, writable: true
|
|
enumerable: false, configurable: true, writable: true
|
|
});
|
|
});
|
|
Object.defineProperty(klass.fn.prototype, "klass", {
|
|
Object.defineProperty(klass.fn.prototype, "klass", {
|