@@ -26,10 +26,14 @@ Elm.Native.String.make = function(elm) {
26 return str.length;
26 return str.length;
28 function map(f,str) {
28 function map(f,str) {
29− return str.split('').map(f).join('');
29+ var out = str.split('');
30+ for (var i = out.length; i--; ) {
31+ out[i] = f(Utils.chr(out[i]));
31 function filter(pred,str) {
35 function filter(pred,str) {
32− return str.split('').filter(pred).join('');
36+ return str.split('').map(Utils.chr).filter(pred).join('');
34 function reverse(str) {
38 function reverse(str) {
35 return str.split('').reverse().join('');
39 return str.split('').reverse().join('');
@@ -37,13 +41,13 @@ Elm.Native.String.make = function(elm) {
37 function foldl(f,b,str) {
41 function foldl(f,b,str) {
38 var len = str.length;
42 var len = str.length;
39 for (var i = 0; i < len; ++i) {
43 for (var i = 0; i < len; ++i) {
40− b = A2(f, str[i], b);
44+ b = A2(f, Utils.chr(str[i]), b);
44 function foldr(f,b,str) {
48 function foldr(f,b,str) {
45 for (var i = str.length; i--; ) {
49 for (var i = str.length; i--; ) {
46− b = A2(f, str[i], b);
50+ b = A2(f, Utils.chr(str[i]), b);
@@ -116,13 +120,13 @@ Elm.Native.String.make = function(elm) {
117 function any(pred, str) {
121 function any(pred, str) {
118 for (var i = str.length; i--; ) {
122 for (var i = str.length; i--; ) {
119− if (pred(str[i])) return true;
123+ if (pred(Utils.chr(str[i]))) return true;
121 return false;
125 return false;
123 function all(pred, str) {
127 function all(pred, str) {
124 for (var i = str.length; i--; ) {
128 for (var i = str.length; i--; ) {
125− if (!pred(str[i])) return false;
129+ if (!pred(Utils.chr(str[i]))) return false;
127 return true;
131 return true;