CustomEvent constructor

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;
}