summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2010-03-31 22:31:11 +0200
committerAndy Wingo <wingo@pobox.com>2010-03-31 22:31:11 +0200
commit92d33877d9f8523eaebab75373a30f161e6cc1e8 (patch)
tree46fa89848d416a6ab7ffad5ca0e0ca5878556e22
parent8ecd1943ef7bbef67b83b0502da1527e3b7a7133 (diff)
downloadguile-92d33877d9f8523eaebab75373a30f161e6cc1e8.tar.gz
fix array bugs in ecmascript
* module/language/ecmascript/array.scm (pput, *array-prototype*): Fix bugs in ecmascript array runtime.
-rw-r--r--module/language/ecmascript/array.scm8
1 files changed, 4 insertions, 4 deletions
diff --git a/module/language/ecmascript/array.scm b/module/language/ecmascript/array.scm
index e9fc3c6f4..997034584 100644
--- a/module/language/ecmascript/array.scm
+++ b/module/language/ecmascript/array.scm
@@ -1,6 +1,6 @@
;;; ECMAScript for Guile
-;; Copyright (C) 2009 Free Software Foundation, Inc.
+;; Copyright (C) 2009, 2010 Free Software Foundation, Inc.
;;;; This library is free software; you can redistribute it and/or
;;;; modify it under the terms of the GNU Lesser General Public
@@ -63,12 +63,12 @@
(cond ((and (integer? p) (exact? p) (>= 0 p))
(let ((vect (js-array-vector o)))
(if (< p (vector-length vect))
- (vector-set! vect p)
+ (vector-set! vect p v)
;; Fixme: round up to powers of 2?
(let ((new (make-vector (1+ p) 0)))
(vector-move-left! vect 0 (vector-length vect) new 0)
(set! (js-array-vector o) new)
- (vector-set! new p)))))
+ (vector-set! new p v)))))
((or (and (symbol? p) (eq? p 'length))
(and (string? p) (string=? p "length")))
(let ((vect (js-array-vector o)))
@@ -93,7 +93,7 @@
((is-a? (car objs) <js-array-object>)
(let ((v (js-array-vector (car objs))))
(vector-move-left! v 0 (vector-length v)
- rv i (+ i (vector-length v)))
+ rv i)
(lp (cdr objs) (+ i (vector-length v)))))
(else
(error "generic array concats not yet implemented"))))))