aboutsummaryrefslogtreecommitdiff
path: root/src/jdk/nashorn/internal
diff options
context:
space:
mode:
authorlagergren <none@none>2014-08-26 11:42:07 +0200
committerlagergren <none@none>2014-08-26 11:42:07 +0200
commit32a9403b96871ddeb38bef72010c4c28275d076c (patch)
tree8a23ce084b64d15d9b64add0077dbdbb416fd6f3 /src/jdk/nashorn/internal
parentb14e82746322200273665abae78682143d5b416b (diff)
8055906: Avoid throwing an exception with filled in stack trace as part of the normal control flow
Reviewed-by: attila, hannesw
Diffstat (limited to 'src/jdk/nashorn/internal')
-rw-r--r--src/jdk/nashorn/internal/codegen/ApplySpecialization.java11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/jdk/nashorn/internal/codegen/ApplySpecialization.java b/src/jdk/nashorn/internal/codegen/ApplySpecialization.java
index a5fbfdf9..d1668894 100644
--- a/src/jdk/nashorn/internal/codegen/ApplySpecialization.java
+++ b/src/jdk/nashorn/internal/codegen/ApplySpecialization.java
@@ -35,6 +35,7 @@ import java.util.Deque;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+
import jdk.nashorn.internal.ir.AccessNode;
import jdk.nashorn.internal.ir.CallNode;
import jdk.nashorn.internal.ir.Expression;
@@ -127,6 +128,14 @@ public final class ApplySpecialization extends NodeVisitor<LexicalContext> imple
*/
private boolean argumentsEscape(final FunctionNode functionNode) {
+ @SuppressWarnings("serial")
+ final UnsupportedOperationException uoe = new UnsupportedOperationException() {
+ @Override
+ public Throwable fillInStackTrace() {
+ return null;
+ }
+ };
+
final Deque<Set<Expression>> stack = new ArrayDeque<>();
//ensure that arguments is only passed as arg to apply
try {
@@ -151,7 +160,7 @@ public final class ApplySpecialization extends NodeVisitor<LexicalContext> imple
@Override
public Node leaveIdentNode(final IdentNode identNode) {
if (isParam(identNode.getName()) || ARGUMENTS.equals(identNode.getName()) && !isCurrentArg(identNode)) {
- throw new UnsupportedOperationException();
+ throw uoe; //avoid filling in stack trace
}
return identNode;
}