Browse Source

kernel: method.fn created at runtime only

updateMethods cleaner, only treats model layer
trait methods not instantiated uselessly
Herby Vojčík 3 years ago
parent
commit
d8ba5d3b0f
2 changed files with 5 additions and 3 deletions
  1. 0 3
      lang/base/kernel-fundamentals.js
  2. 5 0
      lang/base/kernel-runtime.js

+ 0 - 3
lang/base/kernel-fundamentals.js

@@ -212,9 +212,6 @@ define(['./junk-drawer'], function ($goodies) {
                         console.warn("Resetting methodClass of " + newMethod.methodClass.name + " >> " + selector + " to " + traitOrBehavior.name);
                     }
                     newMethod.methodClass = traitOrBehavior;
-                    if (newMethod.instantiateFn) {
-                        newMethod.fn = newMethod.instantiateFn(traitOrBehavior);
-                    }
                     methods[selector] = newMethod;
                     traitOrBehavior.methodAdded(newMethod);
                 } else {

+ 5 - 0
lang/base/kernel-runtime.js

@@ -240,6 +240,11 @@ define(['./junk-drawer'], function ($goodies) {
             var st2js = brikz.selectorConversion.st2js;
 
             function installAmberMethodIntoAmberClass (method, klass) {
+                if (method.fn == null) {
+                    if (method.instantiateFn) {
+                        method.fn = method.instantiateFn(method.methodClass);
+                    }
+                }
                 var jsSelector = method.jsSelector;
                 if (!jsSelector) {
                     jsSelector = method.jsSelector = st2js(method.selector);