dartify static method
Implementation
static Object? dartify(JSAny? jsObject, {bool deep = true}) {
if (jsObject == null) return null;
try {
if (jsObject is JSBigInt) return jsObject.toDart;
if (jsObject is JSArray) return jsObject.toDartDynamicList;
if (jsObject is JSObject) return deep ? jsObject.toMap() : jsObject;
return jsObject.dartify();
} catch (e) {
// WASM fallback - if dartify fails, handle different types safely
try {
if (jsObject is JSBigInt) return jsObject.toDart;
if (jsObject is JSString) return jsObject.toDart;
if (jsObject is JSNumber) return jsObject.toDartDouble;
if (jsObject is JSBoolean) return jsObject.toDart;
if (jsObject is JSArray) {
try {
return jsObject.toDartDynamicList;
} catch (_) {
// If array conversion fails, return as-is
return jsObject;
}
}
if (jsObject is JSObject) {
try {
return deep ? jsObject.toMap() : jsObject;
} catch (_) {
// If object conversion fails, return as-is
return jsObject;
}
}
// For any other type, return as-is to avoid casting errors
return jsObject;
} catch (_) {
// Ultimate fallback - return null to prevent crashes
return null;
}
}
}