Index: pkg/compiler/lib/src/js_backend/constant_system_javascript.dart |
diff --git a/pkg/compiler/lib/src/js_backend/constant_system_javascript.dart b/pkg/compiler/lib/src/js_backend/constant_system_javascript.dart |
index 3dca32bb4515634d3d6e46465927ddeec5b7a12c..83a8355651c5f9bbeb325d8d135b8895fc3b1e90 100644 |
--- a/pkg/compiler/lib/src/js_backend/constant_system_javascript.dart |
+++ b/pkg/compiler/lib/src/js_backend/constant_system_javascript.dart |
@@ -9,7 +9,7 @@ import '../constants/constant_system.dart'; |
import '../constants/values.dart'; |
import '../constant_system_dart.dart'; |
import '../dart_types.dart'; |
-import '../elements/elements.dart' show ClassElement; |
+import '../elements/elements.dart' show ClassElement, FieldElement; |
import '../tree/tree.dart' show DartString, LiteralDartString; |
import 'js_backend.dart'; |
@@ -193,6 +193,7 @@ class JavaScriptConstantSystem extends ConstantSystem { |
const JavaScriptBinaryArithmeticOperation(const MultiplyOperation()); |
final negate = const JavaScriptNegateOperation(); |
final not = const NotOperation(); |
+ final notEqual = const NotEqualsOperation(); |
final shiftLeft = |
const JavaScriptBinaryBitOperation(const ShiftLeftOperation()); |
final shiftRight = const JavaScriptShiftRightOperation(); |
@@ -267,6 +268,19 @@ class JavaScriptConstantSystem extends ConstantSystem { |
compiler.backend.typeImplementation.computeType(compiler.resolution)); |
} |
+ @override |
+ ConstantValue createSymbol(Compiler compiler, String text) { |
+ InterfaceType type = compiler.symbolClass.rawType; |
+ ConstantValue argument = createString(new DartString.literal(text)); |
+ Map<FieldElement, ConstantValue> fields = <FieldElement, ConstantValue>{}; |
+ compiler.symbolImplementationClass.forEachInstanceField( |
+ (ClassElement enclosingClass, FieldElement field) { |
+ fields[field] = argument; |
+ }); |
+ assert(fields.length == 1); |
+ return new ConstructedConstantValue(type, fields); |
+ } |
+ |
// Integer checks don't verify that the number is not -0.0. |
bool isInt(ConstantValue constant) => constant.isInt || constant.isMinusZero; |
bool isDouble(ConstantValue constant) |