// compile options: --destructure-named-params import 'dart-ext:foo'; import 'package:js/src/varargs.dart'; f(int a, b, [c = 1]) { f(a, b, c); } external f_ext(int a, b, [c = 1]); f_nat(int a, b, [c = 1]) native "f_nat"; f_sync(int a, b, [c = 1]) sync* {} f_async(int a, b, [c = 1]) async* {} g(int a, b, {c: 1}) { f(a, b, c); } external g_ext(int a, b, {c: 1}); g_nat(int a, b, {c: 1}) native "g_nat"; g_sync(int a, b, {c: 1}) sync* {} g_async(int a, b, {c: 1}) async* {} r(int a, @rest others) { r(a, spread(others)); } external r_ext(int a, @rest others); r_nat(int a, @rest others) native "r_nat"; r_sync(int a, @rest others) sync* {} r_async(int a, @rest others) async* {} invalid_names1(int let, function, arguments) { f(let, function, arguments); } invalid_names2([int let, function = 1, arguments]) { f(let, function, arguments); } invalid_names3({int let, function, arguments: 2}) { f(let, function, arguments); } names_clashing_with_object_props( {int constructor, valueOf, hasOwnProperty: 2}) { f(constructor, valueOf, hasOwnProperty); }