diff options
author | Noah Lavine <nlavine@haverford.edu> | 2011-01-03 02:22:35 -0500 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2011-01-04 18:36:58 +0100 |
commit | 8891bd1b166b7210c241a0c1a730fc3af7f45b8a (patch) | |
tree | c037d17df57203eaea848c307be45d000e8ce8d0 /module/language/ecmascript/compile-tree-il.scm | |
parent | 9dfcd9e2d6fa4fdaae86ce529382d30b27a2cec6 (diff) | |
download | guile-8891bd1b166b7210c241a0c1a730fc3af7f45b8a.tar.gz |
Fix ECMAScript object creation.
* module/language/ecmascript/compile-tree-il.scm (compile-tree-il):
generate correct tree-il for construction of new objects.
* test-suite/tests/ecmascript.test (ecompile): Add pattern with EXPECTED
omitted.
("compiler"): test whether we generate new objects correctly.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'module/language/ecmascript/compile-tree-il.scm')
-rw-r--r-- | module/language/ecmascript/compile-tree-il.scm | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/module/language/ecmascript/compile-tree-il.scm b/module/language/ecmascript/compile-tree-il.scm index a97e55570..a5276abe3 100644 --- a/module/language/ecmascript/compile-tree-il.scm +++ b/module/language/ecmascript/compile-tree-il.scm @@ -366,16 +366,16 @@ `(apply ,(@implv new-array) ,@(map (lambda (x) (comp x e)) args))) ((object . ,args) - (@impl new-object - (map (lambda (x) - (pmatch x - ((,prop ,val) - (-> (apply (-> (primitive 'cons)) - (-> (const prop)) - (comp val e)))) - (else - (error "bad prop-val pair" x)))) - args))) + `(apply (@ (language ecmascript impl) new-object) + ,@(map (lambda (x) + (pmatch x + ((,prop ,val) + (-> (apply (-> (primitive 'cons)) + (-> (const prop)) + (comp val e)))) + (else + (error "bad prop-val pair" x)))) + args))) ((pref ,obj ,prop) (@impl pget (comp obj e) |