| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file | 
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a | 
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. | 
| 4 | 4 | 
| 5 import "package:expect/expect.dart"; |  | 
| 6 |  | 
| 7 // Test inlining of assignments in parameter passing. If [StringScanner.charAt] | 5 // Test inlining of assignments in parameter passing. If [StringScanner.charAt] | 
| 8 // is inlined, the argument expresion [: ++byteOffset :] should not be | 6 // is inlined, the argument expresion [: ++byteOffset :] should not be | 
| 9 // duplicated. | 7 // duplicated. | 
| 10 | 8 | 
| 11 class StringScanner { | 9 class StringScanner { | 
| 12   static String string; | 10   static String string; | 
| 13   int byteOffset = -1; | 11   int byteOffset = -1; | 
| 14 | 12 | 
| 15   int nextByte(foo) { | 13   int nextByte(foo) { | 
| 16     if (foo) return -2; | 14     if (foo) return -2; | 
| 17     return charAt(++byteOffset); | 15     return charAt(++byteOffset); | 
| 18   } | 16   } | 
| 19 | 17 | 
| 20   static int charAt(index) | 18   static int charAt(index) | 
| 21       => (string.length > index) ? string.codeUnitAt(index) : -1; | 19       => (string.length > index) ? string.codeUnitAt(index) : -1; | 
| 22 } | 20 } | 
| 23 | 21 | 
| 24 void main() { | 22 void main() { | 
| 25   var scanner = new StringScanner(); | 23   var scanner = new StringScanner(); | 
| 26   StringScanner.string = 'az9'; | 24   StringScanner.string = 'az9'; | 
| 27   Expect.equals(0x61, scanner.nextByte(false)); // Expect a. | 25   Expect.equals(0x61, scanner.nextByte(false)); // Expect a. | 
| 28   Expect.equals(0x7A, scanner.nextByte(false)); // Expect z. | 26   Expect.equals(0x7A, scanner.nextByte(false)); // Expect z. | 
| 29   Expect.equals(0x39, scanner.nextByte(false)); // Expect 9. | 27   Expect.equals(0x39, scanner.nextByte(false)); // Expect 9. | 
| 30   Expect.equals(-1, scanner.nextByte(false)); | 28   Expect.equals(-1, scanner.nextByte(false)); | 
| 31 } | 29 } | 
| OLD | NEW | 
|---|