diff --git a/libraries/Native/List.js b/libraries/Native/List.js index eb19f62..27f84d1 100644 --- a/libraries/Native/List.js +++ b/libraries/Native/List.js @@ -229,7 +229,8 @@ Elm.Native.List = function(elm) { var out = toArray(xss._0); xss = xss._1; while (xss.ctor === "Cons") { - out += s + toArray(xss._0); + out = out.concat(s, toArray(xss._0)); + xss = xss._1; } return fromArray(out); } diff --git a/libraries/Native/Show.js b/libraries/Native/Show.js index ced6764..c2a38f0 100644 --- a/libraries/Native/Show.js +++ b/libraries/Native/Show.js @@ -56,14 +56,19 @@ Elm.Native.Show = function(elm) { } else if ('ctor' in v) { if (v.ctor.substring(0,5) === "Tuple") { var output = []; - for (var k in v) { if (k === 'ctor') continue; output.push(toString(v[k])); } + for (var k in v) { + if (k === 'ctor') continue; + output.push(toString(v[k])); + } return "(" + output.join(",") + ")"; } else if (v.ctor === "Cons") { - var isStr = typeof v._0 === "string"; - var start = isStr ? '"' : "["; - var end = isStr ? '"' : "]"; - var sep = isStr ? "" : ","; - var f = isStr ? function(x){return x} : toString; + var isStr = typeof v._0 === "string", + start = isStr ? '"' : "[", + end = isStr ? '"' : "]", + sep = isStr ? "" : ",", + f = !isStr ? toString : function(x){ + return x === '\n' ? '\\n' : x; + }; var output = start + f(v._0); v = v._1; while (v.ctor === "Cons") {