JSFiddle - React, Tailwind, and code Playground

JavaScript

var createProxy = function(obj) {
  for (var member in obj) {
     if (typeof obj[member]=="function") {
        console.log("creating proxy for '" + member + "'");
        applyNotificationProxy(obj, member);
     }
  }
}

var o_ongenericcall = function(name, arguments) {
    console.log("o_ongenericcall for '" + name + "' with " + arguments.length + " arguments");
}

var applyNotificationProxy = function(obj, name) {
    var originalName = name+"_____";
    obj[originalName] = obj[name];
    obj[name] = function() {
       console.log("proxy called: " + name + "(" + arguments[0] + ")"); 
       o_ongenericcall(name, arguments);
       this[originalName].apply(this, arguments); 
    }
}

// Test proxy generation
var f = function() {  }
f.prototype.test = function() { console.log("called 'test'"); }
var g = new f();
createProxy(g);
g.test("first argument");