Prevent obfuscation when defining proxy constructor and methods closure
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Tue, 13 May 2014 15:39:26 +0200
branchclosure
changeset 1566bc1e4dacbde9
parent 1565 8977a022e424
child 1567 58f2b09668d3
Prevent obfuscation when defining proxy constructor and methods
rt/emul/compact/src/main/java/org/apidesign/bck2brwsr/emul/reflect/ProxyImpl.java
     1.1 --- a/rt/emul/compact/src/main/java/org/apidesign/bck2brwsr/emul/reflect/ProxyImpl.java	Tue May 13 14:24:35 2014 +0200
     1.2 +++ b/rt/emul/compact/src/main/java/org/apidesign/bck2brwsr/emul/reflect/ProxyImpl.java	Tue May 13 15:39:26 2014 +0200
     1.3 @@ -907,10 +907,11 @@
     1.4          }
     1.5  
     1.6          @JavaScriptBody(args = { "c", "sig", "method", "primitive" }, body = 
     1.7 +            "console.log('defineMethod: ' + sig.toString() + ' m: ' + method.toString().toString());\n" +
     1.8              "var p = c.cnstr.prototype;\n" +
     1.9              "p[sig] = function() {\n" +
    1.10 -            "  var h = this._h();\n" +
    1.11 -            "  var res = h.invoke__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_reflect_Method_2_3Ljava_lang_Object_2(this, method, arguments);\n" +
    1.12 +            "  var h = this['_h']();\n" +
    1.13 +            "  var res = h['invoke__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_reflect_Method_2_3Ljava_lang_Object_2'](this, method, arguments);\n" +
    1.14              "  \n" +
    1.15              "  \n" +
    1.16              "  return res;\n" +
    1.17 @@ -919,8 +920,8 @@
    1.18          private static native void defineMethod(Class<?> proxyClass, String sig, Method method, boolean primitive);
    1.19  
    1.20          @JavaScriptBody(args = "c", body = 
    1.21 -              "var h = c.cnstr.cons__VLjava_lang_reflect_InvocationHandler_2 = function(h) {\n"
    1.22 -            + "  c.superclass.cnstr.cons__VLjava_lang_reflect_InvocationHandler_2.call(this, h);\n"
    1.23 +              "var h = c.cnstr['cons__VLjava_lang_reflect_InvocationHandler_2'] = function(h) {\n"
    1.24 +            + "  c.superclass.cnstr['cons__VLjava_lang_reflect_InvocationHandler_2'].call(this, h);\n"
    1.25              + "}\n"
    1.26              + "h.cls = c.cnstr;\n"
    1.27          )