summaryrefslogtreecommitdiffhomepage
path: root/compiler.c
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2021-03-12 13:04:50 +0100
committerJo-Philipp Wich <jo@mein.io>2021-03-12 13:10:08 +0100
commit647c6a7927c5c6ef2941ba1dc3c1d40c2c7d7f34 (patch)
tree7fc91985bb60a9d5bc17d57442e13dd67052031d /compiler.c
parentf2b6b24975a3e8ad7e8bfb16d2449ba8e3d2536a (diff)
compiler: fix parsing of arrow functions with single expression body
Ensure that an arrow function body expression is parsed with P_ASSIGN precedence to not greedily consume comma expressions. This ensures that an expression like () => 1, 2 is parsed as function [() => 1], integer [2] and not as function [() => 1, 2]. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'compiler.c')
-rw-r--r--compiler.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler.c b/compiler.c
index 5c31409..15c8f8e 100644
--- a/compiler.c
+++ b/compiler.c
@@ -1118,7 +1118,7 @@ uc_compiler_compile_arrowfn(uc_compiler *compiler, json_object *args, bool resta
}
}
else {
- uc_compiler_compile_expression(&fncompiler);
+ uc_compiler_parse_precedence(&fncompiler, P_ASSIGN);
uc_compiler_emit_insn(&fncompiler, 0, I_RETURN);
}