diff --git a/js-assembler/runtime-src/baselib-check.js b/js-assembler/runtime-src/baselib-check.js index 13e8a25..1c3aba8 100644 --- a/js-assembler/runtime-src/baselib-check.js +++ b/js-assembler/runtime-src/baselib-check.js @@ -60,7 +60,7 @@ } testArgument( MACHINE, - function () { parameterizedPredicateName.apply(null, args); }, + function () { return parameterizedPredicateName.apply(null, args); }, function (x) { return parameterizedPredicate.apply(null, [x].concat(args)); }, diff --git a/js-assembler/runtime-src/baselib-primitives.js b/js-assembler/runtime-src/baselib-primitives.js index 815124e..274ca49 100644 --- a/js-assembler/runtime-src/baselib-primitives.js +++ b/js-assembler/runtime-src/baselib-primitives.js @@ -651,7 +651,7 @@ installPrimitiveProcedure( 'string', - baselib.arity.arityAtLeast(0), + baselib.arity.makeArityAtLeast(0), function (MACHINE) { var i; var chars = []; @@ -666,11 +666,11 @@ 'string->list', 1, function (MACHINE) { - var str = checkString(MACHINE, 'string->list', 0); + var str = checkString(MACHINE, 'string->list', 0).toString(); var i; var result = NULL; - for (i = 0; i < str.length; i++) { - result = makePair(baselib.chars.makeChar(elts[elts.length - 1 - i]), result); + for (i = str.length - 1; i >= 0; i--) { + result = makePair(baselib.chars.makeChar(str[i]), result); } return result; }); @@ -769,7 +769,7 @@ function (MACHINE) { var firstArg = checkString(MACHINE, 'string-ref', 0).toString(); var index = baselib.numbers.toFixnum( - checkNaturalInRange(MACHINE, 'string-ref', 0, + checkNaturalInRange(MACHINE, 'string-ref', 1, 0, firstArg.length)); return baselib.chars.makeChar(firstArg[index]); }); diff --git a/lang/kernel.rkt b/lang/kernel.rkt index 806175a..36f5cb2 100644 --- a/lang/kernel.rkt +++ b/lang/kernel.rkt @@ -390,7 +390,7 @@ symbol->string vector->list list->vector ;; build-vector -;; char=? +char=? ;; char? ;; char<=? diff --git a/tests/more-tests/string-tests.expected b/tests/more-tests/string-tests.expected index de48441..162641a 100644 --- a/tests/more-tests/string-tests.expected +++ b/tests/more-tests/string-tests.expected @@ -19,6 +19,6 @@ #\e #\l #\o -(list #\x #\y #\z) -(list #\x) -(list) +(#\x #\y #\z) +(#\x) +()