description

# jsify method

JSAny? jsify()

Converts a Dart JSON-like object to the JavaScript equivalent if possible.

Effectively the inverse of JSAnyUtilityExtension.dartify, jsify takes a Dart JSON-like object and recursively converts it to a JavaScript value, doing the following:

- If the object is a JS value, returns the object.
- If the object is a Dart primitive type, `null`, or a `dart:typed_data` type, does the equivalent `toJS` operation if it exists and returns the result.
- If the object is a Map, creates and returns a new JS object whose properties and associated values are the recursively converted keys and values of the Map.
- If the object is an Iterable, each item in it is recursively converted and pushed into a new JS `Array` which is then returned.
- Otherwise, the conversion is undefined.

If the object contains a cycle, the behavior is undefined.

Note

Prefer using the specific conversion member like `toJS` if you know the Dart type as this method may perform many type-checks. You should generally call this method with objects that only contain JSON-like values as the conversion may be platform- and compiler-specific otherwise.

## Implementation

    // TODO(srujzs): We likely need stronger tests for this method to ensure
    // consistency. We should also limit the accepted types in this API to avoid
    // confusion. Once the conversion for unrelated types is consistent across all
    // backends, we can update the documentation to say that the object is
    // externalized instead of the conversion being undefined.
    external JSAny? jsify();