Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(216)

Side by Side Diff: pkg/compiler/lib/src/universe/universe.dart

Issue 1325843003: Add optional message to assert in Dart2js. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library universe; 5 library universe;
6 6
7 import 'dart:collection'; 7 import 'dart:collection';
8 8
9 import '../common/names.dart' show 9 import '../common/names.dart' show
10 Identifiers, 10 Identifiers,
(...skipping 807 matching lines...) Expand 10 before | Expand all | Expand 10 after
818 bool get isSetter => kind == SelectorKind.SETTER; 818 bool get isSetter => kind == SelectorKind.SETTER;
819 bool get isCall => kind == SelectorKind.CALL; 819 bool get isCall => kind == SelectorKind.CALL;
820 bool get isClosureCall => isCall && memberName == CALL_NAME; 820 bool get isClosureCall => isCall && memberName == CALL_NAME;
821 821
822 bool get isIndex => kind == SelectorKind.INDEX && argumentCount == 1; 822 bool get isIndex => kind == SelectorKind.INDEX && argumentCount == 1;
823 bool get isIndexSet => kind == SelectorKind.INDEX && argumentCount == 2; 823 bool get isIndexSet => kind == SelectorKind.INDEX && argumentCount == 2;
824 824
825 bool get isOperator => kind == SelectorKind.OPERATOR; 825 bool get isOperator => kind == SelectorKind.OPERATOR;
826 bool get isUnaryOperator => isOperator && argumentCount == 0; 826 bool get isUnaryOperator => isOperator && argumentCount == 0;
827 827
828 /** Check whether this is a call to 'assert'. */
829 bool get isAssert => isCall && identical(name, "assert");
830
831 /** 828 /**
832 * The member name for invocation mirrors created from this selector. 829 * The member name for invocation mirrors created from this selector.
833 */ 830 */
834 String get invocationMirrorMemberName => 831 String get invocationMirrorMemberName =>
835 isSetter ? '$name=' : name; 832 isSetter ? '$name=' : name;
836 833
837 int get invocationMirrorKind { 834 int get invocationMirrorKind {
838 const int METHOD = 0; 835 const int METHOD = 0;
839 const int GETTER = 1; 836 const int GETTER = 1;
840 const int SETTER = 2; 837 const int SETTER = 2;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
874 } 871 }
875 872
876 bool signatureApplies(FunctionElement function) { 873 bool signatureApplies(FunctionElement function) {
877 if (Elements.isUnresolved(function)) return false; 874 if (Elements.isUnresolved(function)) return false;
878 return callStructure.signatureApplies(function.functionSignature); 875 return callStructure.signatureApplies(function.functionSignature);
879 } 876 }
880 877
881 bool sameNameHack(Element element, World world) { 878 bool sameNameHack(Element element, World world) {
882 // TODO(ngeoffray): Remove workaround checks. 879 // TODO(ngeoffray): Remove workaround checks.
883 return element.isConstructor || 880 return element.isConstructor ||
884 name == element.name || 881 name == element.name;
885 name == 'assert' && world.isAssertMethod(element);
886 } 882 }
887 883
888 bool applies(Element element, World world) { 884 bool applies(Element element, World world) {
889 if (!sameNameHack(element, world)) return false; 885 if (!sameNameHack(element, world)) return false;
890 return appliesUnnamed(element, world); 886 return appliesUnnamed(element, world);
891 } 887 }
892 888
893 bool match(SelectorKind kind, 889 bool match(SelectorKind kind,
894 Name memberName, 890 Name memberName,
895 CallStructure callStructure) { 891 CallStructure callStructure) {
(...skipping 10 matching lines...) Expand all
906 // Add bits from the call structure. 902 // Add bits from the call structure.
907 return Hashing.mixHashCodeBits(hash, callStructure.hashCode); 903 return Hashing.mixHashCodeBits(hash, callStructure.hashCode);
908 } 904 }
909 905
910 String toString() { 906 String toString() {
911 return 'Selector($kind, $name, ${callStructure.structureToString()})'; 907 return 'Selector($kind, $name, ${callStructure.structureToString()})';
912 } 908 }
913 909
914 Selector toCallSelector() => new Selector.callClosureFrom(this); 910 Selector toCallSelector() => new Selector.callClosureFrom(this);
915 } 911 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698