diff options
author | Andy Wingo <wingo@pobox.com> | 2009-02-19 17:14:16 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2009-02-19 17:14:16 +0100 |
commit | b72880eb170ccec1177a6c93b1694014ee54a453 (patch) | |
tree | c29c5d42518c60e751cb3c0d93037dc134063515 /module/language/ecmascript/impl.scm | |
parent | 984dce236bd742083f3f284c9fe7b93c2df9f908 (diff) | |
download | guile-b72880eb170ccec1177a6c93b1694014ee54a453.tar.gz |
implement object literals
* module/language/ecmascript/impl.scm:
* module/language/ecmascript/compile-ghil.scm (comp): Object literals.
* module/language/ecmascript/parse.scm (parse-ecmascript): Fix some
object literal parsing.
Diffstat (limited to 'module/language/ecmascript/impl.scm')
-rw-r--r-- | module/language/ecmascript/impl.scm | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/module/language/ecmascript/impl.scm b/module/language/ecmascript/impl.scm index 65a46fa80..81aa0a661 100644 --- a/module/language/ecmascript/impl.scm +++ b/module/language/ecmascript/impl.scm @@ -31,7 +31,8 @@ ->primitive ->boolean ->number ->integer ->int32 ->uint32 ->uint16 ->string ->object - new-array)) + new-array + new-object)) (define *undefined* ((@@ (oop goops) make-unbound))) @@ -227,3 +228,10 @@ (vector-set! vect i (car vals)) (lp (1+ i) (cdr vals))) (else o)))))) + +(define (new-object . pairs) + (let ((o (make <js-object>))) + (map (lambda (pair) + (pput o (car pair) (cdr pair))) + pairs) + o)) |