Dear Nashorn team,

I'd like to bring a few very minor implementation bugs to your attention (proper JS programs are not affected).

obj."prop"
obj.'prop'
should be a SyntaxError, but is not in Nashorn. (even with -nse)
Parser.java:719 #program
final Block programBody = new Block(functionToken, functionLine, body.getFlags() | Block.IS_SYNTHETIC, body.getStatements());
s/functionLine/finish/
Parser.java:497 #createFunctionNode
  Token.descPosition(body.getToken()),
Supplied finish parameter to new FunctionNode is Token.descPosition(body.getToken()). I'd have expected the finish of the body to be passed here.
ScriptObject.java:402
  public final boolean isGenericDescriptor() {
    return isAccessorDescriptor() || isDataDescriptor();
  }
This method returns the opposite of what the standard describes. Actually it's unused.

A follow-up bug on JDK-8056123:
with({}){ /*force vars into scope*/
  function () { /*line 2*/
    print("hello from nashorn");
  }
}

print(this["L:2"]); // print function on line 2
expected: undefined
actual: function ...
I wonder if there's a particular reason for having the assignment (var L:2 = function ...) in the AST in the first place.

and finally, BooleanType.java: duplicate license header

Version: some recent jdk9/dev/nashorn revision.

- andreas

Reply via email to