diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/jvm/clojure/lang/ProxyHandler.java | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/jvm/clojure/lang/ProxyHandler.java b/src/jvm/clojure/lang/ProxyHandler.java index 832deefa..f670fae3 100644 --- a/src/jvm/clojure/lang/ProxyHandler.java +++ b/src/jvm/clojure/lang/ProxyHandler.java @@ -31,6 +31,18 @@ public Object invoke(Object proxy, Method method, Object[] args) throws Throwabl { if(rt == Void.TYPE) return null; + else if(method.getName().equals("equals")) + { + return proxy == args[0]; + } + else if(method.getName().equals("hashCode")) + { + return System.identityHashCode(proxy); + } + else if(method.getName().equals("toString")) + { + return "Proxy: " + System.identityHashCode(proxy); + } throw new UnsupportedOperationException(); } Object ret = fn.applyTo(ArraySeq.create(args)); |