diff interp.js @ 213:e00a8bc6361b

Implement match:yield macro
author Mike Pavone <pavone@retrodev.com>
date Mon, 02 Dec 2013 00:50:16 -0800
parents d0848563f25d
children adad61ea2f3a
line wrap: on
line diff
--- a/interp.js	Sat Nov 30 15:05:24 2013 -0800
+++ b/interp.js	Mon Dec 02 00:50:16 2013 -0800
@@ -295,7 +295,11 @@
 	if (val) {
 		var newnode = makeASTNode(val);
 		if (!(newnode instanceof symbol)) {
-			newnode = newnode.quote(env);
+			if ('quote' in newnode) {
+				newnode = newnode.quote(env);
+			} else {
+				throw new Error('Symbol ' + this.name + ' is not bound to a valid AST value, instead it is bound to an object with keys ' + JSON.stringify(Object.keys(newnode)));
+			}
 		}
 		return newnode;
 	} else {