jsify static method

JSAny? jsify(
  1. dynamic dartObject
)

Implementation

static JSAny? jsify(dynamic dartObject) {
  // We do exhaustive types check here
  // because `dartObject.jsify()` throws a "NoSuchMethodError: 'jsify'"
  // without explicit cast.
  if (dartObject == null) return null;

  try {
    if (dartObject is BigInt) return dartObject.toJS;
    if (dartObject is Iterable) return dartObject.toJSArray;
    if (dartObject is String) return dartObject.toJS;
    if (dartObject is int) return dartObject.toJS;
    if (dartObject is bool) return dartObject.toJS;
    if (dartObject is double) return dartObject.toJS;
    if (dartObject is num) return dartObject.toJS;
    if (dartObject is Int8List) return dartObject.toJS;
    if (dartObject is Uint8List) return dartObject.toJS;
    if (dartObject is Int16List) return dartObject.toJS;
    if (dartObject is Uint16List) return dartObject.toJS;
    if (dartObject is Int32List) return dartObject.toJS;
    if (dartObject is Uint32List) return dartObject.toJS;
    if (dartObject is Float32List) return dartObject.toJS;
    if (dartObject is Float64List) return dartObject.toJS;
    if (dartObject is List) return dartObject.toJSArray;
    if (dartObject is Map) {
      return (dartObject as Map<String, dynamic>).toJSObject;
    }
    return dartObject.jsify();
  } catch (e) {
    // WASM fallback - if jsify fails, return null to prevent crashes
    return null;
  }
}