From 7750108aa483da9df1825bb4d5236e1deea98c18 Mon Sep 17 00:00:00 2001 From: Adam Welc <adam.welc@oracle.com> Date: Thu, 24 Dec 2015 15:35:02 -0800 Subject: [PATCH] During promise evaluation via REngine return exceptions must be propagated. --- .../oracle/truffle/r/nodes/function/FunctionDefinitionNode.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/FunctionDefinitionNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/FunctionDefinitionNode.java index b59153173d..deeae0c090 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/FunctionDefinitionNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/FunctionDefinitionNode.java @@ -238,7 +238,7 @@ public final class FunctionDefinitionNode extends RRootNode implements RSyntaxNo } catch (ReturnException ex) { returnProfile.enter(); int depth = ex.getDepth(); - if (depth != -1 && RArguments.getDepth(vf) != depth) { + if ((depth != -1 && RArguments.getDepth(vf) != depth) || (substituteFrame && this.description == RPromise.CLOSURE_WRAPPER_NAME)) { throw ex; } else { return ex.getResult(); -- GitLab