From: Andy Wingo Date: Wed, 31 Mar 2010 20:31:11 +0000 (+0200) Subject: fix array bugs in ecmascript X-Git-Tag: release_1-9-10~37 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=92d33877d9f8523eaebab75373a30f161e6cc1e8;p=platform%2Fupstream%2Fguile.git fix array bugs in ecmascript * module/language/ecmascript/array.scm (pput, *array-prototype*): Fix bugs in ecmascript array runtime. --- 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) ) (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"))))))