anchor.diff:    dynamic noSuchMethod(Invocation invocation);
   }
   
  -/// Prepares [children] to be passed to ReactJS.
  +/// Prepares [children] to be passed to the ReactJS [React.createElement] and
  +/// the Dart [react.Component].
   ///
   /// Currently only involves converting a top-level non-[List] [Iterable] to
   /// a non-growable [List], but this may be updated in the future to support
   /// advanced nesting and other kinds of children.
  -dynamic jsifyChildren(dynamic children) {
  +dynamic listifyChildren(dynamic children) {
     if (children is Iterable && children is! List) {
       return children.toList(growable: false);
     } else {
  
positive.code:   @override
    ReactElement call(Map props, [dynamic children]) {
      convertProps(props);
      return factory(jsify(props), jsifyChildren(children));
    }
  
    @override
    dynamic noSuchMethod(Invocation invocation) {
      if (invocation.memberName == #call && invocation.isMethod) {
        Map props = invocation.positionalArguments[0];
        List children = invocation.positionalArguments.sublist(1);
  
        convertProps(props);
        markChildrenValidated(children);
  
        return factory(jsify(props), jsifyChildren(children));
      }
  
      return super.noSuchMethod(invocation);
  
negative.code:   ReactClass get type => reactClass;
  
    ReactElement<TComponent> call(Map props, [dynamic children]) {
      children = listifyChildren(children);
  
      return reactComponentFactory(
        generateExtendedJsProps(props, children, defaultProps: defaultProps),
        children
      );
    }
  
    dynamic noSuchMethod(Invocation invocation) {
      if (invocation.memberName == #call && invocation.isMethod) {
        Map props = invocation.positionalArguments[0];
        List children = listifyChildren(invocation.positionalArguments.sublist(1));
  
        return reactComponentFactory(
          generateExtendedJsProps(props, children, defaultProps: defaultProps),
          children
        );
      }
  
  