diff --git a/parse.cm b/parse.cm index 037d0b0f..3e172fdc 100644 --- a/parse.cm +++ b/parse.cm @@ -692,10 +692,10 @@ var parse = function(tokens, src, filename, tokenizer) { if (tok.kind == "?") { start = tok advance() - then_expr = parse_expr() + then_expr = parse_assign_expr() if (tok.kind == ":") advance() else parse_error(tok, "expected ':' in ternary expression") - else_expr = parse_expr() + else_expr = parse_assign_expr() node = ast_node("then", start) node.expression = cond node.then = then_expr diff --git a/parse.cm.mcode b/parse.cm.mcode index 4d04e965..63a965a5 100644 --- a/parse.cm.mcode +++ b/parse.cm.mcode @@ -8995,7 +8995,7 @@ ["null", 26, 694, 7], ["setarg", 25, 0, 26, 694, 7], ["invoke", 25, 23, 694, 7], - ["get", 28, 11, 1, 695, 19], + ["get", 28, 7, 1, 695, 19], ["frame", 29, 28, 0, 695, 19], ["null", 30, 695, 19], ["setarg", 29, 0, 30, 695, 19], @@ -9061,7 +9061,7 @@ ["setarg", 45, 2, 42, 697, 12], ["invoke", 45, 43, 697, 12], "if_end_1341", - ["get", 48, 11, 1, 698, 19], + ["get", 48, 7, 1, 698, 19], ["frame", 49, 48, 0, 698, 19], ["null", 50, 698, 19], ["setarg", 49, 0, 50, 698, 19],