CustomEvent constructor Null safety

CustomEvent(
  1. String type,
  2. {bool canBubble: true,
  3. bool cancelable: true,
  4. Object? detail}
)

Implementation

factory CustomEvent(String type,
    {bool canBubble: true, bool cancelable: true, Object? detail}) {
  final CustomEvent e = document._createEvent('CustomEvent') as CustomEvent;

  e._dartDetail = detail;

  // Only try setting the detail if it's one of these types to avoid
  // first-chance exceptions. Can expand this list in the future as needed.
  if (detail is List || detail is Map || detail is String || detail is num) {
    try {
      detail = convertDartToNative_SerializedScriptValue(detail);
      e._initCustomEvent(type, canBubble, cancelable, detail);
    } catch (_) {
      e._initCustomEvent(type, canBubble, cancelable, null);
    }
  } else {
    e._initCustomEvent(type, canBubble, cancelable, null);
  }

  return e;
}