+ }
+
+ /**
+ * The method all JSON parsing must go through for JavaScript.
+ * @param r a BufferedReader or a javascript.json.JSON.JSONReader
+ * @return
+ * @throws IOException
+ * @throws ParseException
+ */
+ public static Object parse(Reader r) throws IOException, ParseException
+ {
+ // Using a file reader is not currently supported in SwingJS JavaScript
+
+ if (r == null)
+ return null;
+//
+// Platform.timeCheck("JSONUtils.parse0 ", Platform.TIME_MARK);
+
+ Object ret;
+ if (Platform.isJS())
+ {
+ if (r instanceof FileReader)
+ {
+ throw new IOException("StringJS does not support FileReader parsing for JSON -- but it could...");
+ }
+ return JSON.parse(r);
+ } else {
+ ret = new JSONParser().parse(r);
+ }
+// Platform.timeCheck("JSONUtils.parse1 ", Platform.TIME_MARK);
+ return ret;
+ }
+
+ public static Object parse(String json) throws ParseException
+ {
+ return (Platform.isJS() ? JSON.parse(json) : new JSONParser().parse(json));