anchor.diff:      ]);
     }
   
  -  @override
  -  JS.Expression visitSimpleIdentifier(SimpleIdentifier node) =>
  -      _emitSimpleIdentifier(node);
  -
     /// Writes a simple identifier. This can handle implicit `this` as well as
     /// going through the qualified library name if necessary.
  -  JS.Expression _emitSimpleIdentifier(SimpleIdentifier node,
  -      {bool allowType: false}) {
  +  @override
  +  JS.Expression visitSimpleIdentifier(SimpleIdentifier node) {
       var accessor = node.staticElement;
       if (accessor == null) {
         return js.commentExpression(
  
positive.code: 
      var body = <JS.Statement>[];
      for (var param in parameters.parameters) {
        var jsParam = _emitSimpleIdentifier(param.identifier, allowType: false);
  
        if (param.kind == ParameterKind.NAMED) {
          if (!options.destructureNamedParams) {
            // Parameters will be passed using their real names, not the (possibly
            // renamed) local variable.
            var paramName = js.string(param.identifier.name, "'");
  
negative.code:       _visit(node.expression);
  
    @override
    visitFormalParameter(FormalParameter node) {
      var id = _emitParameter(node.element, declaration: true);
      var isRestArg = findAnnotation(node.element, isJsRestAnnotation) != null;
      return isRestArg ? new JS.RestParameter(id) : id;
    }
  