on 577fc17 help sign in
31 lines 1.4 kB history raw
1Elm.Native.Char = {};
2Elm.Native.Char.make = function(elm) {
3 elm.Native = elm.Native || {};
4 elm.Native.Char = elm.Native.Char || {};
5 if (elm.Native.Char.values) return elm.Native.Char.values;
7 var Utils = Elm.Native.Utils.make(elm);
9 function isBetween(lo,hi) { return function(chr) {
10 var c = chr.charCodeAt(0);
11 return lo <= c && c <= hi;
12 };
13 }
14 var isDigit = isBetween('0'.charCodeAt(0),'9'.charCodeAt(0));
15 var chk1 = isBetween('a'.charCodeAt(0),'f'.charCodeAt(0));
16 var chk2 = isBetween('A'.charCodeAt(0),'F'.charCodeAt(0));
18 return elm.Native.Char.values = {
19 fromCode : function(c) { return String.fromCharCode(c); },
20 toCode : function(c) { return c.toUpperCase().charCodeAt(0); },
21 toUpper : function(c) { return Utils.chr(c.toUpperCase()); },
22 toLower : function(c) { return Utils.chr(c.toLowerCase()); },
23 toLocaleUpper : function(c) { return Utils.chr(c.toLocaleUpperCase()); },
24 toLocaleLower : function(c) { return Utils.chr(c.toLocaleLowerCase()); },
25 isLower : isBetween('a'.charCodeAt(0),'z'.charCodeAt(0)),
26 isUpper : isBetween('A'.charCodeAt(0),'Z'.charCodeAt(0)),
27 isDigit : isDigit,
28 isOctDigit : isBetween('0'.charCodeAt(0),'7'.charCodeAt(0)),
29 isHexDigit : function(c) { return isDigit(c) || chk1(c) || chk2(c); }
30 };
31};