summaryrefslogtreecommitdiff
path: root/module/language/ecmascript/compile-tree-il.scm
diff options
context:
space:
mode:
authorNoah Lavine <nlavine@haverford.edu>2011-01-03 02:22:35 -0500
committerLudovic Courtès <ludo@gnu.org>2011-01-04 18:36:58 +0100
commit8891bd1b166b7210c241a0c1a730fc3af7f45b8a (patch)
treec037d17df57203eaea848c307be45d000e8ce8d0 /module/language/ecmascript/compile-tree-il.scm
parent9dfcd9e2d6fa4fdaae86ce529382d30b27a2cec6 (diff)
downloadguile-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.scm20
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)