@@ -6,14 +6,24 @@ Elm.Native.Error = function(elm) {
66
77 var fromString = Elm.Native.JavaScript(elm).fromString;
88
9+ function indent(lines) {
10+ var msg = '';
11+ for (var i = 0; i < lines.length; ++i) {
12+ msg += '<br/> ' + lines[i];
13+ }
14+ return msg;
15+ }
16+
917 function Case(moduleName, span) {
10− var msg = 'Non-exhaustive pattern match in case expression in module '
11− throw new Error(msg + moduleName + " (" + span + ")")
18+ var msg = indent(['Non-exhaustive pattern match in case-expression.',
19+ 'Make sure your patterns cover every case!']);
20+ throw new Error('Runtime error in module ' + moduleName + ' (' + span + '):' + msg);
1221 }
1322
1423 function If(moduleName, span) {
15− var msg = 'Non-exhaustive pattern match in multi-way-if expression in module '
16− throw new Error(msg + moduleName + " (" + span + ")")
24+ var msg = indent(['Non-exhaustive pattern match in multi-way-if expression.',
25+ 'It is best to use \'otherwise\' as the last branch of multi-way-if.']);
26+ throw new Error('Runtime error in module ' + moduleName + ' (' + span + '):' + msg);
1727 }
1828
1929 function raise(str) { throw new Error(fromString(str)); }