From ea0d4c3b4adc7a25280fae0768f711c53f18388f Mon Sep 17 00:00:00 2001
From: Devine Lu Linvega <aliceffekt@gmail.com>
Date: Mon, 15 Jul 2019 17:16:09 +0900
Subject: [PATCH] (if) without else case is now supported.

---
 desktop/sources/scripts/lisp.js | 4 ++--
 examples/benchmark.lisp         | 3 +--
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/desktop/sources/scripts/lisp.js b/desktop/sources/scripts/lisp.js
index 789d0d0..e308c52 100644
--- a/desktop/sources/scripts/lisp.js
+++ b/desktop/sources/scripts/lisp.js
@@ -53,7 +53,7 @@ function Lisp (input, lib) {
       if (interpret(input[1], context)) {
         return interpret(input[2], context)
       }
-      return interpret(input[3], context)
+      return input[3] ? interpret(input[3], context) : []
     }
   }
 
@@ -66,7 +66,7 @@ function Lisp (input, lib) {
   }
 
   const interpret = function (input, context) {
-    if (!input) { return null }
+    if (!input) { console.warn('error', context.scope); return null }
 
     if (context === undefined) {
       return interpret(input, new Context(lib))
diff --git a/examples/benchmark.lisp b/examples/benchmark.lisp
index 2ac3622..a1be15d 100644
--- a/examples/benchmark.lisp
+++ b/examples/benchmark.lisp
@@ -21,13 +21,12 @@
   (test "gt" (gt 3 4) false)
 
   (test "and - true" (and 1 2 true 4) 4)
-
   (test "and - false" (and 1 false 2) false)
-
   (test "or - true" (or false false 2 false) 2)
 
   (test "if - branch 1" (if (gt 3 2) ("branch 1") ("branch 2")) "branch 1")
   (test "if - branch 2" (if (lt 3 2) ("branch 1") ("branch 2")) "branch 2")
+  (test "if - no else" (if (lt 3 2) ("branch 1")) ())
 
 ; Arrays