added new closure to cristalize the function name of the ancestor class to be called
[xynt.git] / xynt-base.js
index f74baa5..de7cd25 100644 (file)
@@ -7,7 +7,7 @@ function Extends(sub)
     inh.xynt_sup = [];
     inh.xynt_sup_cl = [];
 
-    console.log("INIZIO EXT");
+    console.log("EXT START");
 
     var multi = function(sub, super, is_last)
     {
@@ -19,10 +19,11 @@ function Extends(sub)
 
             console.log("LOOP: "+f);
             if( f != "constructor" && typeof(proto[f]) == "function" && !is_last){
-                console.log("M_FU: "+proto['name']+"  F: "+f);
+                console.log("M_FU: "+proto[f]+"  F: "+f);
                 // sub[f] = proto[f];
-                sub[f] = function(){
-                    console.log("INFU PR: " + proto['name'] + " FUNC: "+f+" THIS: " + this);
+                sub[f] = function() {
+                    // console.log("INFU PR: " + proto[f] + " FUNC: "+f+" THIS: " + this);
+                    console.log("SIMPLE LOG");
                     return proto[f].apply(this,arguments);
                 }
             }
@@ -62,8 +63,7 @@ function Extends(sub)
     */
     sub.prototype = inh;
 
-    console.log(sub.prototype.xynt_sup);
-    console.log(sub.prototype.xynt_sup_cl);
+    console.log("EXT FINISH");
 }
 
 function ExtendsInst(sub)
@@ -76,6 +76,19 @@ function ExtendsInst(sub)
     {
         var proto = super.prototype;
 
+        var single = function(sub, fun) {
+            var cur_fun = fun;
+            
+            sub[cur_fun] = function(){
+                // console.log("INFU PR: " + proto[f] + " FUNC: "+f+" THIS: " + this);
+                console.log("SIMPLE LOG INST: "+cur_fun);
+                console.log(proto[cur_fun]);
+                console.log(sub);
+                console.log(arguments);
+                return proto[cur_fun].apply(this, arguments);
+            }
+        };
+
         if (typeof(sub.xynt_sup) == 'undefined')
             sub.xynt_sup = new Array();
         if (typeof(sub.xynt_sup_cl) == 'undefined')
@@ -98,11 +111,8 @@ function ExtendsInst(sub)
 
             console.log("LOOP: "+f);
             if( f != "constructor" && typeof(proto[f]) == "function" && !is_last){
-                console.log("M_FU: "+proto['name']+"  F: "+f);
-                sub[f] = function(){
-                    console.log("INFU PR: " + proto[f] + " FUNC: "+f+" THIS: " + this);
-                    return proto[f].apply(this, arguments);
-                }
+                console.log("M_FU: "+proto[f]+"  F: "+f);
+                single(sub, f);
             }
             else {
                 console.log("M_PR: "+proto.name+"  A: "+f+" FUN: "+proto[f]);
@@ -110,7 +120,7 @@ function ExtendsInst(sub)
             }
         }
         return true;
-    }
+    };
 
     console.log("POST FUNC");
 
@@ -152,7 +162,8 @@ function ExtendsInst(sub)
 function show_class(cl) {
     console.log("Attributes Class of "+cl);
     for (f in cl.prototype) {
-        console.log(f+": ["+cl.prototype[f]+"]");
+        console.log(f+"-v");
+        console.log(cl.prototype[f]);
     }
     console.log("---");
 }
@@ -160,7 +171,8 @@ function show_class(cl) {
 function show_inst(inst) {
     console.log("Attributes Instance of "+inst);
     for (f in inst) {
-        console.log("["+f+"]: ["+inst[f]+"]");
+        console.log(f+"-v");
+        // console.log(inst[f]);
     }
     console.log("---");
 }