diff options
Diffstat (limited to 'lib/js/jsffi.nim')
-rw-r--r-- | lib/js/jsffi.nim | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/lib/js/jsffi.nim b/lib/js/jsffi.nim index 3b3f38e41..0d359d9e6 100644 --- a/lib/js/jsffi.nim +++ b/lib/js/jsffi.nim @@ -408,20 +408,19 @@ macro `{}`*(typ: typedesc, xs: varargs[untyped]): auto = kString = quote do: when compiles($`k`): $`k` else: "invalid" v = x[1] - body.add(quote do: + body.add quote do: when compiles(`a`.`k`): `a`.`k` = `v` elif compiles(`a`[`k`]): `a`[`k`] = `v` else: `a`[`kString`] = `v` - ) + else: error("Expression `" & $x.toStrLit & "` not allowed in `{}` macro") - body.add(quote do: + body.add quote do: return `a` - ) result = quote do: proc inner(): `typ` {.gensym.} = |