package com.oracle.truffle.tools.chromeinspector.aot;
import static com.oracle.truffle.tools.utils.json.JSONObject.NULL;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Collection;
import java.util.Map;
import com.oracle.truffle.tools.utils.json.JSONArray;
import com.oracle.truffle.tools.utils.json.JSONObject;
import com.oracle.truffle.tools.utils.json.JSONString;
final class Target_com_oracle_truffle_tools_utils_json_JSONObject {
public static Object wrap(Object object) {
try {
if (object == null) {
return NULL;
}
if (object instanceof JSONObject || object instanceof JSONArray || NULL.equals(object) || object instanceof JSONString || object instanceof Byte || object instanceof Character ||
object instanceof Short || object instanceof Integer || object instanceof Long || object instanceof Boolean || object instanceof Float || object instanceof Double ||
object instanceof String || object instanceof BigInteger || object instanceof BigDecimal || object instanceof Enum) {
return object;
}
if (object instanceof Collection) {
Collection<?> coll = (Collection<?>) object;
return new JSONArray(coll);
}
if (object.getClass().isArray()) {
return new JSONArray(object);
}
if (object instanceof Map) {
Map<?, ?> map = (Map<?, ?>) object;
return new JSONObject(map);
}
String className = object.getClass().getName();
String objectPackageName = className.contains(".") ? "" : className.substring(0, className.lastIndexOf("."));
if (objectPackageName.startsWith("java.") || objectPackageName.startsWith("javax.")) {
return object.toString();
}
throw new UnsupportedOperationException("Constructing JSON from an object is not supported in SVM.");
} catch (Exception exception) {
return null;
}
}
}
public final class ChromeInspectorSubstitutions {
}