summaryrefslogtreecommitdiff
path: root/module/language/ecmascript/impl.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/language/ecmascript/impl.scm')
-rw-r--r--module/language/ecmascript/impl.scm10
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))