Chromium Code Reviews| Index: tests/utils/instance_inline_test.dart |
| diff --git a/tests/utils/instance_inline_test.dart b/tests/utils/instance_inline_test.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..e45dde29f53bbc92b0f3833749f23081c65ea71f |
| --- /dev/null |
| +++ b/tests/utils/instance_inline_test.dart |
| @@ -0,0 +1,27 @@ |
| +// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
|
ngeoffray
2012/11/01 15:37:37
I think we put these tests usually in tests/langua
|
| +// 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 inlining of assignments in parameter passing. If [StringScanner.charAt] |
| +// is inlined, the argument expresion [: ++byteOffset :] should not be |
| +// duplicated. |
| + |
| +class StringScanner { |
| + final String string; |
| + int byteOffset = -1; |
| + |
| + StringScanner(this.string); |
| + |
| + int nextByte() => charAt(++byteOffset); |
| + |
| + int charAt(index) |
| + => (string.length > index) ? string.charCodeAt(index) : -1; |
| +} |
| + |
| +void main() { |
| + var scanner = new StringScanner('az9'); |
| + Expect.equals(0x61, scanner.nextByte()); // Expect a. |
| + Expect.equals(0x7A, scanner.nextByte()); // Expect z. |
| + Expect.equals(0x39, scanner.nextByte()); // Expect 9. |
| + Expect.equals(-1, scanner.nextByte()); |
| +} |