Mercurial > hg > icedtea8-forest > nashorn
changeset 2118:50dac2fd8689 jdk8u152-b01
8169481: StackOverflowError on start when parsing PAC file to autodetect Proxy settings
Reviewed-by: jlaskey, sundar
author | hannesw |
---|---|
date | Thu, 02 Feb 2017 18:23:28 +0100 |
parents | e3b10bf2ff09 |
children | 01bbd310156d |
files | src/jdk/nashorn/internal/codegen/WeighNodes.java test/script/basic/JDK-8030182_2.js |
diffstat | 2 files changed, 8 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/jdk/nashorn/internal/codegen/WeighNodes.java Fri Jan 20 16:22:52 2017 +0000 +++ b/src/jdk/nashorn/internal/codegen/WeighNodes.java Thu Feb 02 18:23:28 2017 +0100 @@ -77,6 +77,7 @@ static final long CALL_WEIGHT = 10; static final long CATCH_WEIGHT = 10; static final long COMPARE_WEIGHT = 6; + static final long CONST_WEIGHT = 2; static final long CONTINUE_WEIGHT = 1; static final long IF_WEIGHT = 2; static final long LITERAL_WEIGHT = 10; @@ -185,7 +186,7 @@ @Override public Node leaveIdentNode(final IdentNode identNode) { - weight += ACCESS_WEIGHT + identNode.getName().length() * 2; + weight += ACCESS_WEIGHT; return identNode; } @@ -210,6 +211,11 @@ @SuppressWarnings("rawtypes") @Override public boolean enterLiteralNode(final LiteralNode literalNode) { + if (literalNode instanceof LiteralNode.PrimitiveLiteralNode) { + weight += CONST_WEIGHT; + return false; + } + weight += LITERAL_WEIGHT; if (literalNode instanceof ArrayLiteralNode) {
--- a/test/script/basic/JDK-8030182_2.js Fri Jan 20 16:22:52 2017 +0000 +++ b/test/script/basic/JDK-8030182_2.js Thu Feb 02 18:23:28 2017 +0100 @@ -31,7 +31,7 @@ var str = ""; // large code to force splitting -for (i = 0; i < 1000; ++i) +for (i = 0; i < 2000; ++i) str +="o = new Object()\n"; str +="g()";