anchor.diff:        //
         // In the future, we might be able to simplify this, see:
         // https://github.com/dart-lang/sdk/issues/28320
  -      var jsParams = _emitParameters(function);
  +      var jsParams = _emitParameters(function, isForwarding: true);
         var mutatedParams = jsParams;
         var gen = emitGeneratorFn((fnBody) {
           var mutatedVars = js_ast.findMutatedVariables(fnBody);
  
positive.code:       }
      }
  
      for (var p in f.positionalParameters.take(f.requiredParameterCount)) {
        var jsParam = _emitIdentifier(p.name);
        initParameter(p, jsParam);
      }
      for (var p in f.positionalParameters.skip(f.requiredParameterCount)) {
        var jsParam = _emitIdentifier(p.name);
        var defaultValue = _defaultParamValue(p);
        if (defaultValue != null) {
          body.add(js.statement(
              'if (# === void 0) # = #;', [jsParam, jsParam, defaultValue]));
        }
        initParameter(p, jsParam);
      }
      for (var p in f.namedParameters) {
  
negative.code:     return js_ast.Fun(formals, block);
    }
  
    js_ast.Parameter _emitParameter(VariableDeclaration node,
        {bool withoutInitializer = false}) {
      var initializer = node.initializer;
      var id = _emitVariableDef(node);
      if (initializer == null || withoutInitializer) return id;
      return js_ast.DestructuredVariable(
          name: id, defaultValue: _visitExpression(initializer));
    }
  
    List<js_ast.Parameter> _emitParameters(FunctionNode f,
        {bool isForwarding = false}) {
      // Destructure optional positional parameters in place.
      // Given:
      //  - (arg1, arg2, [opt1, opt2 = def2])
      // Emit:
      //  - (arg1, arg2, opt1 = null, opt2 = def2)
      // Note, if [isForwarding] is set, omit initializers as this actually a
      // forwarded call not a parameter list. E.g., the second in:
      //  - foo(arg1, opt1 = def1) => super(arg1, opt1).
      var positional = f.positionalParameters;
      var result = List<js_ast.Parameter>.of(positional
          .map((p) => _emitParameter(p, withoutInitializer: isForwarding)));
      if (positional.isNotEmpty &&
          f.requiredParameterCount == positional.length &&
          positional.last.annotations.any(isJsRestAnnotation)) {
  