anchor.diff:    }
   
     @override
  -  JS.Expression visitSetLiteral(SetLiteral node) {
  +  JS.Expression visitSetLiteral(SetLiteral node) =>
  +      _emitSetLiteral(node.elements, node);
  +
  +  // TODO(nshahan) Cleanup after control flow collections experiments are removed.
  +  JS.Expression _emitSetLiteral(
  +      Iterable<CollectionElement> elements, SetOrMapLiteral node) {
       var type = node.staticType as InterfaceType;
       if (!node.isConst) {
         var setType = _emitType(type);
  -      if (node.elements.isEmpty) {
  +      if (elements.isEmpty) {
           return js.call('#.new()', [setType]);
         }
  -      return js
  -          .call('#.from([#])', [setType, _visitExpressionList(node.elements)]);
  +      return js.call(
  +          '#.from([#])', [setType, _visitCollectionElementList(elements)]);
       }
       return _cacheConst(() => runtimeCall('constSet(#, [#])', [
             _emitType((node.staticType as InterfaceType).typeArguments[0]),
  -          _visitExpressionList(node.elements)
  +          _visitCollectionElementList(elements)
           ]));
     }
   
  
positive.code:     return e;
    }
  
    /// Visit a Dart [node] that produces a JS statement, and marks its source
    /// location for debugging.
    JS.Statement _visitStatement(AstNode node) {
  
negative.code:   }
  
    @override
    visitMapLiteral(MapLiteral node) => _emitMapLiteral(node.entries, node);
  
    JS.Expression _emitMapLiteral(
        Iterable<CollectionElement> elements, SetOrMapLiteral node) {
      var type = node.staticType as InterfaceType;
      if (!node.isConst) {
        var mapType = _emitMapImplType(type);
        if (elements.isEmpty) {
          return js.call('new #.new()', [mapType]);
        }
        return js.call(
            'new #.from([#])', [mapType, _visitCollectionElementList(elements)]);
      }
      return _cacheConst(
          () => _emitConstMap(type, _visitCollectionElementList(elements)));
    }
  
    JS.Expression _emitConstMap(InterfaceType type, List<JS.Expression> entries) {
  