on master help sign in
cosmetic: make indentation consistent
0d6a0efEvan Czaplicki
libraries/Native/JavaScript.js+59−59
@@ -1,68 +1,68 @@
1Elm.Native.JavaScript = {};
1Elm.Native.JavaScript = {};
2Elm.Native.JavaScript.make = function(elm) {
2Elm.Native.JavaScript.make = function(elm) {
3− elm.Native = elm.Native || {};
3+ elm.Native = elm.Native || {};
4− elm.Native.JavaScript = elm.Native.JavaScript || {};
4+ elm.Native.JavaScript = elm.Native.JavaScript || {};
5− if (elm.Native.JavaScript.values) return elm.Native.JavaScript.values;
5+ if (elm.Native.JavaScript.values) return elm.Native.JavaScript.values;
6
6
7− var List = Elm.Native.List.make(elm);
7+ var List = Elm.Native.List.make(elm);
8− var Render = ElmRuntime.use(ElmRuntime.Render.Element);
8+ var Render = ElmRuntime.use(ElmRuntime.Render.Element);
9
9
10− function fromJS(v) {
10+ function fromJS(v) {
11− var type = typeof v;
11+ var type = typeof v;
12− if (type === 'number' ) return v;
12+ if (type === 'number' ) return v;
13− if (type === 'boolean') return v;
13+ if (type === 'boolean') return v;
14− if (type === 'string' ) return v;
14+ if (type === 'string' ) return v;
15− if (v instanceof Array) {
15+ if (v instanceof Array) {
16− var arr = [];
16+ var arr = [];
17− var len = v.length;
17+ var len = v.length;
18− for (var i = 0; i < len; ++i) {
18+ for (var i = 0; i < len; ++i) {
19− var x = fromJS(v[i]);
19+ var x = fromJS(v[i]);
20− if (x !== null) arr.push(x);
20+ if (x !== null) arr.push(x);
21− }
21+ }
22− return List.fromArray(arr);
22+ return List.fromArray(arr);
23− }
23+ }
24− if (type === 'object') {
24+ if (type === 'object') {
25− var rec = { _:{} };
25+ var rec = { _:{} };
26− for (var f in v) {
26+ for (var f in v) {
27− var x = fromJS(v[f]);
27+ var x = fromJS(v[f]);
28− if (x !== null) rec[f] = x;
28+ if (x !== null) rec[f] = x;
29− }
29+ }
30− return rec;
30+ return rec;
31− }
31+ }
32− return null;
32+ return null;
33− }
33+ }
34
34
35− function toJS(v) {
35+ function toJS(v) {
36− var type = typeof v;
36+ var type = typeof v;
37− if (type === 'number' || type === 'boolean' || type === 'string') return v;
37+ if (type === 'number' || type === 'boolean' || type === 'string') return v;
38− if (type === 'object' && '_' in v) {
38+ if (type === 'object' && '_' in v) {
39− var obj = {};
39+ var obj = {};
40− for (var k in v) {
40+ for (var k in v) {
41− var x = toJS(v[k]);
41+ var x = toJS(v[k]);
42− if (x !== null) obj[k] = x;
42+ if (x !== null) obj[k] = x;
43− }
43+ }
44− return obj;
44+ return obj;
45− }
45+ }
46− if (type === 'object' && (v.ctor === '::' || v.ctor === '[]')) {
46+ if (type === 'object' && (v.ctor === '::' || v.ctor === '[]')) {
47− var array = List.toArray(v);
47+ var array = List.toArray(v);
48− for (var i = array.length; i--; ) {
48+ for (var i = array.length; i--; ) {
49− array[i] = toJS(array[i]);
49+ array[i] = toJS(array[i]);
50− }
50+ }
51− return array;
51+ return array;
52− }
52+ }
53− return null;
53+ return null;
54− }
54+ }
55
55
56− function fromRecord(r) {
56+ function fromRecord(r) {
57− if (typeof r === 'object' && '_' in r) {
57+ if (typeof r === 'object' && '_' in r) {
58− return toJS(r);
58+ return toJS(r);
59− }
59+ }
60− throw new Error("'fromRecord' must be called on a record.");
60+ throw new Error("'fromRecord' must be called on a record.");
61− }
61+ }
62
62
63− return elm.Native.JavaScript.values = {
63+ return elm.Native.JavaScript.values = {
64− toRecord : fromJS,
64+ toRecord : fromJS,
65− fromRecord : fromRecord
65+ fromRecord : fromRecord
66− };
66+ };
67
67
68};
68};