Index: pkg/compiler/lib/src/cps_ir/builtin_operator.dart |
diff --git a/pkg/compiler/lib/src/cps_ir/builtin_operator.dart b/pkg/compiler/lib/src/cps_ir/builtin_operator.dart |
index 3b80af447150a6af7c2d8044e53d417cabdf064b..31f815a6c5a57f211dfd4d1673cb4c84582f5514 100644 |
--- a/pkg/compiler/lib/src/cps_ir/builtin_operator.dart |
+++ b/pkg/compiler/lib/src/cps_ir/builtin_operator.dart |
@@ -29,6 +29,7 @@ enum BuiltinOperator { |
NumAdd, |
NumSubtract, |
NumMultiply, |
+ NumDivide, |
NumAnd, |
NumOr, |
NumXor, |
@@ -38,6 +39,22 @@ enum BuiltinOperator { |
NumGt, |
NumGe, |
+ /// NumShr behaves like JS '>>>' but is valid only when the left is in the |
+ /// uint32 range and the right in the range [0, 31]. |
+ NumShr, |
+ |
+ /// NumRemainder corresponds to JavaScript's `a % b`, and Dart's |
+ /// `a.remainder(b)`, except at zero, since JavaScript `1 % 0` is `NaN`. |
+ /// Dart's modulo (`%`) is the same as remainder only when if both arguments |
+ /// are non-negative. |
+ NumRemainder, |
+ |
+ /// Corresponds to `a ~/ b` when b is non-zero and the result fits in a signed |
+ /// 32 bit value. |
+ /// |
+ /// This case can be compiled to `(a / b) | 0`. |
+ NumTruncatingDivideToSigned32, |
+ |
/// Concatenates any number of strings. |
/// |
/// Takes any number of arguments, and each argument must be a string. |