| // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| // Test that parameters keep their names in the output. |
| |
| import 'package:async_helper/async_helper.dart'; |
| import 'package:expect/expect.dart'; |
| import '../compiler_helper.dart'; |
| |
| main() { |
| runTests({bool useKernel, int numberOfParameters}) async { |
| StringBuffer buffer = new StringBuffer(); |
| buffer.write("foo("); |
| for (int i = 0; i < numberOfParameters; i++) { |
| buffer.write("x$i, "); |
| } |
| buffer.write("x) { int i = "); |
| for (int i = 0; i < numberOfParameters; i++) { |
| buffer.write("x$i+"); |
| } |
| buffer.write("$numberOfParameters; return i; }"); |
| String code = buffer.toString(); |
| |
| String generated = |
| await compile(code, entry: 'foo', minify: true, useKernel: useKernel); |
| RegExp re = new RegExp(r"\(a,b,c"); |
| Expect.isTrue(re.hasMatch(generated)); |
| |
| re = new RegExp(r"x,y,z,a0,a1,a2"); |
| Expect.isTrue(re.hasMatch(generated)); |
| |
| re = new RegExp(r"y,z,a0,a1,a2,a3,a4,a5,a6"); |
| Expect.isTrue(re.hasMatch(generated)); |
| |
| re = new RegExp(r"g8,g9,h0,h1"); |
| Expect.isTrue(re.hasMatch(generated)); |
| |
| re = new RegExp(r"z8,z9,aa0,aa1,aa2"); |
| Expect.isTrue(re.hasMatch(generated)); |
| |
| re = new RegExp(r"aa9,ab0,ab1"); |
| Expect.isTrue(re.hasMatch(generated)); |
| |
| re = new RegExp(r"az9,ba0,ba1"); |
| Expect.isTrue(re.hasMatch(generated)); |
| } |
| |
| asyncTest(() async { |
| // The [numberOfParameters] values are somewhat arbitrary. |
| print('--test from ast---------------------------------------------------'); |
| await runTests(useKernel: false, numberOfParameters: 1800); |
| print('--test from kernel------------------------------------------------'); |
| await runTests(useKernel: true, numberOfParameters: 2000); |
| }); |
| } |