Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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 // Dart test for testing bitwise operations. | 4 // Dart test for testing bitwise operations. |
| 5 // VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-co mpilation | 5 // VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-co mpilation |
| 6 | 6 |
| 7 import "package:expect/expect.dart"; | 7 import "package:expect/expect.dart"; |
| 8 | 8 |
| 9 void main() { | 9 void main() { |
| 10 for (int i = 0; i < 4; i++) { | 10 for (int i = 0; i < 4; i++) { |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 174 Expect.equals(true, shiftLeft(1, shift) > shiftLeft(1, shift - 1)); | 174 Expect.equals(true, shiftLeft(1, shift) > shiftLeft(1, shift - 1)); |
| 175 } | 175 } |
| 176 } | 176 } |
| 177 | 177 |
| 178 int shiftLeft(int a, int b) { return a << b; } | 178 int shiftLeft(int a, int b) { return a << b; } |
| 179 int shiftRight(int a, int b) { return a >> b; } | 179 int shiftRight(int a, int b) { return a >> b; } |
| 180 | 180 |
| 181 void testPrecedence(int a, int b, int c, int d) { | 181 void testPrecedence(int a, int b, int c, int d) { |
| 182 // & binds stronger than ^, which binds stronger than |. | 182 // & binds stronger than ^, which binds stronger than |. |
| 183 int result = a & b ^ c | d & b ^ c; | 183 int result = a & b ^ c | d & b ^ c; |
| 184 Expect.equals(((a & b) ^ c) | ((d & b) ^ c), result); // &^| | 184 Expect.equals(((a & b) ^ c) | ((d & b) ^ c), result); // &^| |
| 185 Expect.notEquals((a & (b ^ c)) | (d & (b ^ c)), result); // ^&| | 185 Expect.notEquals((a & (b ^ c)) | (d & (b ^ c)), result); // ^&| |
|
sra1
2017/03/21 03:39:29
fix
| |
| 186 Expect.notEquals((a & b) ^ (c | (d & b)) ^ c, result); // &|^ | 186 Expect.notEquals((a & b) ^ (c | (d & b)) ^ c, result); // &|^ |
| 187 Expect.notEquals((a & b) ^ ((c | d) & b) ^ c, result); // |&^ | 187 Expect.notEquals((a & b) ^ ((c | d) & b) ^ c, result); // |&^ |
| 188 Expect.notEquals(a & (b ^ (c | d)) & (b ^ c), result); // |^& | 188 Expect.notEquals(a & (b ^ (c | d)) & (b ^ c), result); // |^& |
| 189 Expect.notEquals(a & ((b ^ c) | d) & (b ^ c), result); // ^|& | 189 Expect.notEquals(a & ((b ^ c) | d) & (b ^ c), result); // ^|& |
| 190 // Binds stronger than relational operators. | 190 // Binds stronger than relational operators. |
| 191 Expect.equals((a & b) < (c & d), a & b < c & d); | 191 Expect.equals((a & b) < (c & d), a & b < c & d); |
| 192 // Binds weaker than shift operators. | 192 // Binds weaker than shift operators. |
| 193 Expect.equals((a & (b << c)) ^ d, a & b << c ^ d); | 193 Expect.equals((a & (b << c)) ^ d, a & b << c ^ d); |
| 194 Expect.notEquals((a & b) << (c ^ d), a & b << c ^ d); | 194 Expect.notEquals((a & b) << (c ^ d), a & b << c ^ d); |
| 195 } | 195 } |
| OLD | NEW |