Please review JDK-8057825

Hannes Wallnoefer hannes.wallnoefer at oracle.com
Tue Nov 4 12:57:42 UTC 2014


I think the NodeVisitor in ApplySpecialization#hasApplies will enter 
into nested functions. Shouldn't it just look at the current function?

I wonder how hot the TransformFailedException constructor may get. 
Should we worry about string concatenation there?

Otherwise looks good.

Hannes

Am 2014-11-04 um 12:50 schrieb Marcus Lagergren:
> Logic in RecompilableScriptFunctionData
>
> 1) Apply transform succeeds when a callsite is first encountered
> 2) It is the best callsite available when we do another call, but the fit isn’t exact, which it has to be for apply2call to work - i.e. exactly the right number of parameters with the exact types
> 3) In that case recompile a specialization
> 4) Do addCode on it iff it was a successful apply2call transform
>
> Basically the problem was that 4 should be
>
> 4) Do addcode on it, always
>
> As Attila’s excellent repro managed to capture. We reuse the apply2call specialization for one object argument, undefined, for the array apply, which fits and doesn’t cause a linkage error since Object holds anything, even [“foo”, “bar”].
>
> Also some housekeeping on the apply2call transform, not making it iterate over the code for applies if there are none, better logging sanitized output and so on.
>
> Webrev at: http://cr.openjdk.java.net/~lagergren/8057825/ <http://cr.openjdk.java.net/~lagergren/8057825/>
> Issue at: https://bugs.openjdk.java.net/browse/JDK-8057825
>
> Regards
> Marcus
>



More information about the nashorn-dev mailing list