| 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)
|
|
|