anchor.diff:      }
       output.write("mdex.$name.prototype[clIw] = true;");
   
  +    output.write("""
  +    mdex.$name.class = obfr(function() {
  +        function $name() {
  +          mdex.$name.apply(this, arguments);
  +          var proto = Object.getPrototypeOf(this);
  +    """);
  +
  +    methods.forEach((method) => output.write(method.toString()));
  +
  +    output.write("""
  +        }
  +
  +        $name.prototype = Object.create(mdex.$name.prototype);
  +
  +        return $name;
  +    }());
  +    """);
  +
       output.write(global.toString());
   
       output.write("mdex.$name[clCl] = ");
  
positive.code: 
                var dartName = data["code"].split(":")[0];
  
                buf.write("if(proto.$name) { overrideFunc(this, $name, $dartName); }");
              }
            }
          }
  
negative.code: 
      output.write("};");
  
      var proto = prototype.toString();
      // cut off trailing comma
      if(proto.length > 0) {
  