diff --git a/js-assembler/assemble-helpers.rkt b/js-assembler/assemble-helpers.rkt index 80b1244..7839efc 100644 --- a/js-assembler/assemble-helpers.rkt +++ b/js-assembler/assemble-helpers.rkt @@ -151,8 +151,7 @@ (format "RT.makePath(~s)" (path->string val))] [(vector? val) - (format "RT.makeVector(~a,[~a])" - (vector-length val) + (format "RT.makeVector([~a])" (string-join (for/list ([elt (vector->list val)]) (loop elt)) ","))] diff --git a/js-assembler/runtime-src/baselib-primitives.js b/js-assembler/runtime-src/baselib-primitives.js index 30b114a..d66267d 100644 --- a/js-assembler/runtime-src/baselib-primitives.js +++ b/js-assembler/runtime-src/baselib-primitives.js @@ -707,7 +707,7 @@ for (i = 0; i < M.a; i++) { result.push(M.e[M.e.length-1-i]); } - var newVector = makeVector(result.length, result); + var newVector = makeVector(result); return newVector; }); @@ -727,7 +727,7 @@ for(i = 0; i < length; i++) { arr[i] = value; } - return makeVector(arr.length, arr); + return makeVector(arr); }); installPrimitiveProcedure( @@ -753,7 +753,7 @@ result.push(firstArg.first); firstArg = firstArg.rest; } - return makeVector(result.length, result); + return makeVector(result); }); diff --git a/js-assembler/runtime-src/baselib-readergraph.js b/js-assembler/runtime-src/baselib-readergraph.js index 38df0aa..dbd841e 100644 --- a/js-assembler/runtime-src/baselib-readergraph.js +++ b/js-assembler/runtime-src/baselib-readergraph.js @@ -22,7 +22,7 @@ if (baselib.vectors.isVector(x)) { var len = x.length(); - var aVector = baselib.vectors.makeVector(len, x.elts); + var aVector = baselib.vectors.makeVector(x.elts.slice(0)); objectHash.put(x, aVector); for (i = 0; i < len; i++) { aVector.elts[i] = readerGraph(aVector.elts[i], objectHash, n + 1); diff --git a/js-assembler/runtime-src/baselib-vectors.js b/js-assembler/runtime-src/baselib-vectors.js index 1bb72b6..4a126de 100644 --- a/js-assembler/runtime-src/baselib-vectors.js +++ b/js-assembler/runtime-src/baselib-vectors.js @@ -7,20 +7,14 @@ - var Vector = function (n, initialElements) { + var Vector = function (initialElements) { var i; - this.elts = []; - this.elts.length = n; - if (initialElements) { - for (i = 0; i < n; i++) { - this.elts[i] = initialElements[i]; - } - } + this.elts = initialElements; this.mutable = true; }; - Vector.makeInstance = function (n, elts) { - return new Vector(n, elts); + Vector.makeInstance = function (elts) { + return new Vector(elts); }; Vector.prototype.length = function () { @@ -115,12 +109,12 @@ var isVector = function (x) { return x instanceof Vector; }; // makeVector: x ... -> vector - var makeVector = function (n, elts) { - return Vector.makeInstance(n, elts); + var makeVector = function (elts) { + return Vector.makeInstance(elts); }; - var makeVectorImmutable = function (n, elts) { - var v = Vector.makeInstance(n, elts); + var makeVectorImmutable = function (elts) { + var v = Vector.makeInstance(elts); v.mutable = false; return v; }; diff --git a/version.rkt b/version.rkt index 6011f47..8311c00 100644 --- a/version.rkt +++ b/version.rkt @@ -7,4 +7,4 @@ (provide version) (: version String) -(define version "1.114") +(define version "1.116")