aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/craftinginterpreters/lox/LoxFunction.java
diff options
context:
space:
mode:
authorGravatar Tom Willemse2021-02-08 17:42:18 -0800
committerGravatar Tom Willemse2021-02-08 17:42:18 -0800
commit0dbf155da52c5db1cab2688b04c87386a55c5d5b (patch)
treec76c0bc5b4364b7740ae071ee4c1ee7ad9c196e8 /src/com/craftinginterpreters/lox/LoxFunction.java
parent4a71c219b5fa8e9e28af43925284f429092ba68e (diff)
downloadcrafting-interpreters-0dbf155da52c5db1cab2688b04c87386a55c5d5b.tar.gz
crafting-interpreters-0dbf155da52c5db1cab2688b04c87386a55c5d5b.zip
Add return statement
Diffstat (limited to 'src/com/craftinginterpreters/lox/LoxFunction.java')
-rw-r--r--src/com/craftinginterpreters/lox/LoxFunction.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/com/craftinginterpreters/lox/LoxFunction.java b/src/com/craftinginterpreters/lox/LoxFunction.java
index d2e367b..0f7ebd4 100644
--- a/src/com/craftinginterpreters/lox/LoxFunction.java
+++ b/src/com/craftinginterpreters/lox/LoxFunction.java
@@ -22,7 +22,11 @@ class LoxFunction implements LoxCallable {
environment.define(declaration.params.get(i).lexeme, arguments.get(i));
}
- interpreter.executeBlock(declaration.body, environment);
+ try {
+ interpreter.executeBlock(declaration.body, environment);
+ } catch (Return returnValue) {
+ return returnValue.value;
+ }
return null;
}