diff options
author | Andy Wingo <wingo@pobox.com> | 2010-03-31 22:31:11 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2010-03-31 22:31:11 +0200 |
commit | 92d33877d9f8523eaebab75373a30f161e6cc1e8 (patch) | |
tree | 46fa89848d416a6ab7ffad5ca0e0ca5878556e22 | |
parent | 8ecd1943ef7bbef67b83b0502da1527e3b7a7133 (diff) | |
download | guile-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.scm | 8 |
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")))))) |