# HG changeset patch # User Michael Pavone # Date 1388356736 28800 # Node ID 97c3e33cd3f467f4a1962e7e1e123b248c38890a # Parent 25db1c7c73004aa0768929690d7409f0d12baaaa Support macro expansion inside quoted code diff -r 25db1c7c7300 -r 97c3e33cd3f4 interp.js --- a/interp.js Sun Dec 29 14:25:38 2013 -0800 +++ b/interp.js Sun Dec 29 14:38:56 2013 -0800 @@ -435,11 +435,11 @@ } if (name == 'quote') { if (this.receiver) { - return this.receiver.quote(env); + return this.receiver.quote(env).macroexpand(env); } if (this.args.length) { var cur = env; - return this.args[0].quote(env); + return this.args[0].quote(env).macroexpand(env); } throw new Error('quote takes an argument'); } @@ -485,6 +485,9 @@ if (name[name.length-1] == ":") { name = name.substr(0, name.length-1); } + if (name == 'quote') { + return this; + } var macro = env.findMacro(name); if (this.receiver) { this.receiver = this.receiver.macroexpand(env);