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