on master help sign in
Add JSON library and make pretty printing for JSON work.
f39142devancz
core-js/Value.js+1−1
@@ -81,7 +81,7 @@ var Value = function(){
81 } else if (v[0] === "Nil") {
81 } else if (v[0] === "Nil") {
82 return "[]";
82 return "[]";
83 } else if (v[0] === "JSON") {
83 } else if (v[0] === "JSON") {
84− return "JSON " + ElmJSON.toJSString(v);
84+ return "(JSON.fromList " + toString(ElmJSON.toList(v)) + ")";
85 } else {
85 } else {
86 var output = "";
86 var output = "";
87 for (var i = v.length; --i; ) {
87 for (var i = v.length; --i; ) {
core-js/foreign/JSON.js+23−23
@@ -41,12 +41,12 @@ var ElmJSON = function() {
41 };
41 };
42 }
42 }
43
43
44− function JSString(v) { return [ "JSString", v ]; }
44+ function JsonString(v) { return [ "JsonString", v ]; }
45− function JSNumber(v) { return [ "JSNumber", v ]; }
45+ function JsonNumber(v) { return [ "JsonNumber", v ]; }
46− function JSBool(v) { return [ "JSBool", v ]; }
46+ function JsonBool(v) { return [ "JsonBool", v ]; }
47− var JSNull = [ "JSNull" ];
47+ var JsonNull = [ "JsonNull" ];
48− function JSArray(v) { return [ "JSArray", v ]; }
48+ function JsonArray(v) { return [ "JsonArray", v ]; }
49− function JSObject(v) { return [ "JSObject", v ]; }
49+ function JsonObject(v) { return [ "JsonObject", v ]; }
50
50
51 function toList(json) {
51 function toList(json) {
52 var obj = json[1];
52 var obj = json[1];
@@ -68,16 +68,16 @@ var ElmJSON = function() {
68 function toPrettyJSString(sep) { return function (obj) {
68 function toPrettyJSString(sep) { return function (obj) {
69 function fromValue(v) {
69 function fromValue(v) {
70 switch (v[0]) {
70 switch (v[0]) {
71− case 'JSNull' : return null;
71+ case 'JsonNull' : return null;
72− case 'JSString' : return JS.castStringToJSString(v[1]);
72+ case 'JsonString' : return JS.castStringToJSString(v[1]);
73− case 'JSObject' :
73+ case 'JsonObject' :
74 var o = {};
74 var o = {};
75 var from = v[1][1];
75 var from = v[1][1];
76 for (var i in from) {
76 for (var i in from) {
77 o[i] = fromValue(from[i]);
77 o[i] = fromValue(from[i]);
78 }
78 }
79 return o;
79 return o;
80− case 'JSArray' :
80+ case 'JsonArray' :
81 var a = JS.castListToJSArray(v[1]);
81 var a = JS.castListToJSArray(v[1]);
82 for (var i = a.length; i--; ) {
82 for (var i = a.length; i--; ) {
83 a[i] = fromValue(a[i]);
83 a[i] = fromValue(a[i]);
@@ -87,23 +87,23 @@ var ElmJSON = function() {
87 return v[1];
87 return v[1];
88 }
88 }
89 }
89 }
90− return JSON.stringify(fromValue([ 'JSObject', obj ]), null, JS.castStringToJSString(sep));
90+ return JSON.stringify(fromValue([ 'JsonObject', obj ]), null, JS.castStringToJSString(sep));
91 };
91 };
92 }
92 }
93 function fromJSString(str) {
93 function fromJSString(str) {
94 var obj = JSON.parse(str);
94 var obj = JSON.parse(str);
95 function toValue(v) {
95 function toValue(v) {
96 switch (typeof v) {
96 switch (typeof v) {
97− case 'string' : return [ "JSString", JS.castJSStringToString(v) ];
97+ case 'string' : return [ "JsonString", JS.castJSStringToString(v) ];
98− case 'number' : return [ "JSNumber", JS.castJSNumberToFloat(v) ];
98+ case 'number' : return [ "JsonNumber", JS.castJSNumberToFloat(v) ];
99− case 'boolean' : return [ "JSBool", JS.castJSBoolToBool(v) ];
99+ case 'boolean' : return [ "JsonBool", JS.castJSBoolToBool(v) ];
100 case 'object' :
100 case 'object' :
101− if (v === null) return [ "JSNull" ];
101+ if (v === null) return [ "JsonNull" ];
102 for (var i in v) {
102 for (var i in v) {
103 v[i] = toValue(v[i]);
103 v[i] = toValue(v[i]);
104 }
104 }
105− if (v instanceof Array) return [ "JSArray", JS.castJSArrayToList(v) ];
105+ if (v instanceof Array) return [ "JsonArray", JS.castJSArrayToList(v) ];
106− return [ "JSObject", [ "JSON", v ] ];
106+ return [ "JsonObject", [ "JSON", v ] ];
107 }
107 }
108 }
108 }
109 for (var i in obj) {
109 for (var i in obj) {
@@ -126,12 +126,12 @@ var ElmJSON = function() {
126 fromString : function(v) { return fromJSString(JS.castStringToJSString(v)); },
126 fromString : function(v) { return fromJSString(JS.castStringToJSString(v)); },
127 toList : toList,
127 toList : toList,
128 fromList : fromList,
128 fromList : fromList,
129− JSString : JSString,
129+ JsonString : JsonString,
130− JSNumber : JSNumber,
130+ JsonNumber : JsonNumber,
131− JSBool : JSBool,
131+ JsonBool : JsonBool,
132− JSNull : JSNull,
132+ JsonNull : JsonNull,
133− JSArray : JSArray,
133+ JsonArray : JsonArray,
134− JSObject : JSObject
134+ JsonObject : JsonObject
135 };
135 };
136}();
136}();
137
137