+1 Hannes
> Am 14.11.2016 um 04:09 schrieb Sundararajan Athijegannathan > <sundararajan.athijegannat...@oracle.com>: > > Looks good > > PS. LiteralNode in catch should be an array literal, right? i.e., false > or 3.14 or "hello" won't be accepted as catch param. Perhaps worth > adding a check (where catch param expression is checked). But, no biggie. > > -Sundar > > > On 11/12/2016 12:17 AM, Srinivas Dama wrote: >> Hi, >> >> Please review >> webrev: http://cr.openjdk.java.net/~sdama/8156615/webrev.03/ >> Bug : https://bugs.openjdk.java.net/browse/JDK-8156615 >> >> @Attila, Thank you for the comments. >> >> Regards, >> Srinivas >> >> -----Original Message----- >> From: Attila Szegedi [mailto:szege...@gmail.com] >> Sent: Thursday, November 10, 2016 5:38 PM >> To: Nashorn-dev >> Subject: Re: RFR: 8156615:Catch parameter can be a BindingPattern in ES6 mode >> >> I’m still not happy with this, although we’re getting there :-) >> >> - you changed getException() to return Expression, even though Sundar asked >> you to add a different method. I don’t like the fact that getException() >> returns Expression, since it can’t be an arbitrary expression; it’s limited >> to identifier and binding pattern, yet you have unchecked casts on its >> return value on invocation everywhere now. Maybe keep your “Expression >> getException()” change, but add “IdentNode getExceptionIdentifier() { return >> (IdentNode)exception; }” and have the callers use that now instead. That >> way, you encapsulate the cast and don’t force the users of the API to do it >> everywhere, and it’s easier to track with call hierarchy in the IDEs which >> callers presume the exception is an identifier. >> >> - the JavaDoc for getException() and setException() should be updated to >> reflect the value can be a binding pattern. Please use the wording “binding >> pattern” instead of just “pattern” in the documentation (including the field >> declaration) to avoid ambiguity. >> >> - Maybe throw an IllegalArgumentException if either the constructor or >> setException receive something that isn’t either an ident node or a binding >> pattern. That way, you could enforce an invariant in the class that the >> types of the expression are only legitimate ones. I’m unsure if it’s easy to >> recognize the binding pattern or not (e.g. if it just looks like an >> object/array literal). >> >> Attila. >> >>> On 10 Nov 2016, at 12:46, Srinivas Dama <srinivas.d...@oracle.com> wrote: >>> >>> Hi, >>> >>> Please review >>> Bug: https://bugs.openjdk.java.net/browse/JDK-8156615 >>> webrev: http://cr.openjdk.java.net/~sdama/8156615/webrev.02/ >>> >>> Included all changes suggested with some modifications. >>> >>> Regards, >>> Srinivas >>> >>> -----Original Message----- >>> From: Attila Szegedi [mailto:szege...@gmail.com] >>> Sent: Tuesday, November 08, 2016 7:40 PM >>> To: Nashorn-dev >>> Subject: Re: RFR: 8156615:Catch parameter can be a BindingPattern in >>> ES6 mode >>> >>> What Sundar said. Additionally: >>> >>> + if (exception instanceof IdentNode) { >>> + this.exception = ((IdentNode) exception == null) ? null : >>> + ((IdentNode) exception).setIsInitializedHere(); >>> >>> First, casting an expression before a null comparison is silly :-). >>> Second, you don't even need to check for exception == null as "exception >>> instanceof IdentNode" implies that exception != null. So that line should >>> just be: >>> >>> + if (exception instanceof IdentNode) { >>> + this.exception = ((IdentNode) exception).setIsInitializedHere(); >>> >>> Attila. >>> >>>> On 08 Nov 2016, at 04:45, Sundararajan Athijegannathan >>>> <sundararajan.athijegannat...@oracle.com> wrote: >>>> >>>> You need to update Parser API implementation to handle catch >>>> parameter being expression - rather than an IdentNode. >>>> >>>> => you need to >>>> >>>> * add another getter in CatchNode to expose Expression >>>> >>>> * Use it in IRTranslator (of Parser API impl.) to translate catch >>>> param as expression >>>> >>>> * You need to check for expression param in codegen pipeline to throw >>>> "not yet implemented" error. >>>> >>>> -Sundar >>>> >>>> On 11/7/2016 9:40 PM, Srinivas Dama wrote: >>>>> Please review: >>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8156615 >>>>> Webrev: http://cr.openjdk.java.net/~sdama/8156615/webrev.00/ >>>>> >>>>> Please note that, this contains only parsing support for catch parameter >>>>> as BindingPattern or BindingIdentifier. >>>>> >>>>> Regards, >>>>> Srinivas >