> On 19 Jul 2016, at 18:20, Hannes Wallnöfer <hannes.wallnoe...@oracle.com> > wrote: > > Please review: > > Webrev: http://cr.openjdk.java.net/~hannesw/8160034/webrev.00/ > Bug: https://bugs.openjdk.java.net/browse/JDK-8160034 > > The change in ScriptObject.megamorphicGet actually fixes the bug. It took me > quite some time that it could be fixed so elegantly at this level. Before > that, I tried to fix it on the Method handle level in WithObject.
So… would you say this is a solution or a workaround? What I mean is that it is a nicely small change, but is it correct in all cases? Maybe it should be further constrained by both isMethod and isScope? (Not sure whether there’s a situation where it’s !isScope and would be incorrect, though) > The cleanup in WithObject.lookup is a leftover from that. I noticed that it > implements code paths for both named and unnamed operations, but WithObjects > are always in scope, and scope operations are always named, so I added an > assertion for that and removed the code handling unnamed operations. Yep, that part is definitely nice, +1. > > Finally, the change in NashornGuards is to exclude properties from WithObject > expressions from the special scope guards, using the ordinary map guard > instead. Previously, these guards caused properties in with statements to > relink even if with objects had the same map. +1 too. Attila. > > Thanks, > Hannes