| Index: tests/language/operations_on_non_num_operand_test.dart
|
| diff --git a/tests/language/operations_on_non_num_operand_test.dart b/tests/language/operations_on_non_num_operand_test.dart
|
| index 9f990ad371fcd4cb3eefaf5e5ecb87eda2c8075c..7a5060f707c21fb057fc2a84bdfac2cad7e3363a 100644
|
| --- a/tests/language/operations_on_non_num_operand_test.dart
|
| +++ b/tests/language/operations_on_non_num_operand_test.dart
|
| @@ -2,7 +2,7 @@
|
| // 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.
|
|
|
| -/// Regression test for dart2js that used to miscompile boolean and operations
|
| +/// Regression test for dart2js that used to miscompile boolean and operations
|
| /// if one of the operands was an int and the other was not (issue 22427).
|
| ///
|
| /// Extended to all operations as there is a risk of similar bugs with other
|
| @@ -10,51 +10,67 @@
|
|
|
| import "package:expect/expect.dart";
|
|
|
| -@AssumeDynamic() @NoInline()
|
| +@AssumeDynamic()
|
| +@NoInline()
|
| confuse(x) => x;
|
|
|
| class Thing1 {
|
| - operator&(b) => this;
|
| - operator|(b) => this;
|
| - operator^(b) => this;
|
| - operator<<(b) => this;
|
| - operator>>(b) => this;
|
| -
|
| - operator+(b) => this;
|
| - operator-(b) => this;
|
| - operator*(b) => this;
|
| - operator/(b) => this;
|
| - operator~/(b) => this;
|
| - operator%(b) => this;
|
| + operator &(b) => this;
|
| + operator |(b) => this;
|
| + operator ^(b) => this;
|
| + operator <<(b) => this;
|
| + operator >>(b) => this;
|
| +
|
| + operator +(b) => this;
|
| + operator -(b) => this;
|
| + operator *(b) => this;
|
| + operator /(b) => this;
|
| + operator ~/(b) => this;
|
| + operator %(b) => this;
|
| remainder(b) => this;
|
|
|
| - operator<(b) => this;
|
| - operator<=(b) => this;
|
| - operator>(b) => this;
|
| - operator>=(b) => this;
|
| + operator <(b) => this;
|
| + operator <=(b) => this;
|
| + operator >(b) => this;
|
| + operator >=(b) => this;
|
| }
|
|
|
| class Thing2 {
|
| - @NoInline() operator&(b) => this;
|
| - @NoInline() operator|(b) => this;
|
| - @NoInline() operator^(b) => this;
|
| - @NoInline() operator<<(b) => this;
|
| - @NoInline() operator>>(b) => this;
|
| -
|
| - @NoInline() operator+(b) => this;
|
| - @NoInline() operator-(b) => this;
|
| - @NoInline() operator*(b) => this;
|
| - @NoInline() operator/(b) => this;
|
| - @NoInline() operator~/(b) => this;
|
| - @NoInline() operator%(b) => this;
|
| - @NoInline() remainder(b) => this;
|
| -
|
| - @NoInline() operator<(b) => this;
|
| - @NoInline() operator<=(b) => this;
|
| - @NoInline() operator>(b) => this;
|
| - @NoInline() operator>=(b) => this;
|
| -}
|
| + @NoInline()
|
| + operator &(b) => this;
|
| + @NoInline()
|
| + operator |(b) => this;
|
| + @NoInline()
|
| + operator ^(b) => this;
|
| + @NoInline()
|
| + operator <<(b) => this;
|
| + @NoInline()
|
| + operator >>(b) => this;
|
| +
|
| + @NoInline()
|
| + operator +(b) => this;
|
| + @NoInline()
|
| + operator -(b) => this;
|
| + @NoInline()
|
| + operator *(b) => this;
|
| + @NoInline()
|
| + operator /(b) => this;
|
| + @NoInline()
|
| + operator ~/(b) => this;
|
| + @NoInline()
|
| + operator %(b) => this;
|
| + @NoInline()
|
| + remainder(b) => this;
|
|
|
| + @NoInline()
|
| + operator <(b) => this;
|
| + @NoInline()
|
| + operator <=(b) => this;
|
| + @NoInline()
|
| + operator >(b) => this;
|
| + @NoInline()
|
| + operator >=(b) => this;
|
| +}
|
|
|
| confused() {
|
| var a = new Thing1();
|
| @@ -122,7 +138,7 @@ direct2() {
|
| Expect.equals(a, (a >= 5) >= 2);
|
| }
|
|
|
| -main () {
|
| +main() {
|
| confused();
|
| direct1();
|
| direct2();
|
|
|