Chromium Code Reviews| Index: sdk/lib/_internal/compiler/implementation/js_backend/constant_system_javascript.dart |
| diff --git a/sdk/lib/_internal/compiler/implementation/js_backend/constant_system_javascript.dart b/sdk/lib/_internal/compiler/implementation/js_backend/constant_system_javascript.dart |
| index 9ed094be68718094acf5ecab3261efe666ab9320..b13a4b73b649fadf21944bf7e9d630a861e00b98 100644 |
| --- a/sdk/lib/_internal/compiler/implementation/js_backend/constant_system_javascript.dart |
| +++ b/sdk/lib/_internal/compiler/implementation/js_backend/constant_system_javascript.dart |
| @@ -96,6 +96,21 @@ class JavaScriptNegateOperation implements UnaryOperation { |
| } |
| } |
| +class JavaScriptAddOperation implements BinaryOperation { |
| + final _addOperation = const AddOperation(); |
| + String get name => _addOperation.name; |
| + |
| + const JavaScriptAddOperation(); |
| + |
| + Constant fold(Constant left, Constant right) { |
| + Constant result = _addOperation.fold(left, right); |
| + if (result == null || result.isString) return result; |
|
Johnni Winther
2014/09/24 09:29:22
This is not needed since convertToJavaScriptConsta
floitsch
2014/09/24 12:53:19
True, but it is typed to take a NumConstant and re
Johnni Winther
2014/09/25 09:07:56
Then I think I'd prefer to only call convertToJava
floitsch
2014/09/25 12:29:05
Done.
|
| + return JAVA_SCRIPT_CONSTANT_SYSTEM.convertToJavaScriptConstant(result); |
| + } |
| + |
| + apply(left, right) => _addOperation.apply(left, right); |
| +} |
| + |
| class JavaScriptBinaryArithmeticOperation implements BinaryOperation { |
| final BinaryOperation dartArithmeticOperation; |
| @@ -145,7 +160,7 @@ class JavaScriptConstantSystem extends ConstantSystem { |
| final int BITS31 = 0x8FFFFFFF; |
| final int BITS32 = 0xFFFFFFFF; |
| - final add = const JavaScriptBinaryArithmeticOperation(const AddOperation()); |
| + final add = const JavaScriptAddOperation(); |
| final bitAnd = const JavaScriptBinaryBitOperation(const BitAndOperation()); |
| final bitNot = const JavaScriptBitNotOperation(); |
| final bitOr = const JavaScriptBinaryBitOperation(const BitOrOperation()); |