on c3c52cd help sign in
elk/libraries/Native/Error.js
30 lines 1.1 kB history raw
1Elm.Native.Error = {};
2Elm.Native.Error.make = function(elm) {
3 elm.Native = elm.Native || {};
4 elm.Native.Error = elm.Native.Error || {};
5 if (elm.Native.Error.values) return elm.Native.Error.values;
7 function indent(lines) {
8 var msg = '';
9 for (var i = 0; i < lines.length; ++i) {
10 msg += '<br/>&nbsp; &nbsp; ' + lines[i];
11 }
12 return msg;
13 }
15 function Case(moduleName, span) {
16 var msg = indent(['Non-exhaustive pattern match in case-expression.',
17 'Make sure your patterns cover every case!']);
18 throw new Error('Runtime error in module ' + moduleName + ' (' + span + '):' + msg);
19 }
21 function If(moduleName, span) {
22 var msg = indent(['Non-exhaustive pattern match in multi-way-if expression.',
23 'It is best to use \'otherwise\' as the last branch of multi-way-if.']);
24 throw new Error('Runtime error in module ' + moduleName + ' (' + span + '):' + msg);
25 }
27 function raise(str) { throw new Error(str); }
29 return elm.Native.Error.values = { Case: Case, If: If, raise: raise };
30};