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

Side by Side Diff: lib/compiler/implementation/lib/js_helper.dart

Issue 10140027: Avoid "=== true" inside code by calling a function that does this for us. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Remove super.getter since dart2js doesn't support it yet. Created 8 years, 8 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 | Annotate | Revision Log
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('js_helper'); 5 #library('js_helper');
6 6
7 #import('coreimpl.dart'); 7 #import('coreimpl.dart');
8 8
9 #source('constant_map.dart'); 9 #source('constant_map.dart');
10 #source('native_helper.dart'); 10 #source('native_helper.dart');
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 tdiv(var a, var b) { 89 tdiv(var a, var b) {
90 if (checkNumbers(a, b)) { 90 if (checkNumbers(a, b)) {
91 return (a / b).truncate(); 91 return (a / b).truncate();
92 } 92 }
93 return UNINTERCEPTED(a ~/ b); 93 return UNINTERCEPTED(a ~/ b);
94 } 94 }
95 95
96 eq(var a, var b) { 96 eq(var a, var b) {
97 if (JS('bool', @'typeof # === "object"', a)) { 97 if (JS('bool', @'typeof # === "object"', a)) {
98 if (JS_HAS_EQUALS(a)) { 98 if (JS_HAS_EQUALS(a)) {
99 return UNINTERCEPTED(a == b) === true; 99 return UNINTERCEPTED(a == b);
100 } else { 100 } else {
101 return JS('bool', @'# === #', a, b); 101 return JS('bool', @'# === #', a, b);
102 } 102 }
103 } 103 }
104 // TODO(lrn): is NaN === NaN ? Is -0.0 === 0.0 ? 104 // TODO(lrn): is NaN === NaN ? Is -0.0 === 0.0 ?
105 return JS('bool', @'# === #', a, b); 105 return JS('bool', @'# === #', a, b);
106 } 106 }
107 107
108 bool eqB(var a, var b) => eq(a, b) === true;
109
108 eqq(var a, var b) { 110 eqq(var a, var b) {
109 return JS('bool', @'# === #', a, b); 111 return JS('bool', @'# === #', a, b);
110 } 112 }
111 113
112 eqNull(var a) { 114 eqNull(var a) {
113 if (JS('bool', @'typeof # === "object"', a)) { 115 if (JS('bool', @'typeof # === "object"', a)) {
114 if (JS_HAS_EQUALS(a)) { 116 if (JS_HAS_EQUALS(a)) {
115 return UNINTERCEPTED(a == null) === true; 117 return UNINTERCEPTED(a == null);
116 } else { 118 } else {
117 return false; 119 return false;
118 } 120 }
119 } else { 121 } else {
120 return JS('bool', @'typeof # === "undefined"', a); 122 return JS('bool', @'typeof # === "undefined"', a);
121 } 123 }
122 } 124 }
123 125
126 bool eqNullB(var a) => eqNull(a) === true;
127
124 gt(var a, var b) { 128 gt(var a, var b) {
125 if (checkNumbers(a, b)) { 129 if (checkNumbers(a, b)) {
126 return JS('bool', @'# > #', a, b); 130 return JS('bool', @'# > #', a, b);
127 } 131 }
128 return UNINTERCEPTED(a > b); 132 return UNINTERCEPTED(a > b);
129 } 133 }
130 134
135 bool gtB(var a, var b) => gt(a, b) === true;
136
131 ge(var a, var b) { 137 ge(var a, var b) {
132 if (checkNumbers(a, b)) { 138 if (checkNumbers(a, b)) {
133 return JS('bool', @'# >= #', a, b); 139 return JS('bool', @'# >= #', a, b);
134 } 140 }
135 return UNINTERCEPTED(a >= b); 141 return UNINTERCEPTED(a >= b);
136 } 142 }
137 143
144 bool geB(var a, var b) => ge(a, b) === true;
145
138 lt(var a, var b) { 146 lt(var a, var b) {
139 if (checkNumbers(a, b)) { 147 if (checkNumbers(a, b)) {
140 return JS('bool', @'# < #', a, b); 148 return JS('bool', @'# < #', a, b);
141 } 149 }
142 return UNINTERCEPTED(a < b); 150 return UNINTERCEPTED(a < b);
143 } 151 }
144 152
153 bool ltB(var a, var b) => lt(a, b) === true;
154
145 le(var a, var b) { 155 le(var a, var b) {
146 if (checkNumbers(a, b)) { 156 if (checkNumbers(a, b)) {
147 return JS('bool', @'# <= #', a, b); 157 return JS('bool', @'# <= #', a, b);
148 } 158 }
149 return UNINTERCEPTED(a <= b); 159 return UNINTERCEPTED(a <= b);
150 } 160 }
151 161
162 bool leB(var a, var b) => le(a, b) === true;
163
152 shl(var a, var b) { 164 shl(var a, var b) {
153 // TODO(floitsch): inputs must be integers. 165 // TODO(floitsch): inputs must be integers.
154 if (checkNumbers(a, b)) { 166 if (checkNumbers(a, b)) {
155 if (b < 0) throw new IllegalArgumentException(b); 167 if (b < 0) throw new IllegalArgumentException(b);
156 return JS('num', @'# << #', a, b); 168 return JS('num', @'# << #', a, b);
157 } 169 }
158 return UNINTERCEPTED(a << b); 170 return UNINTERCEPTED(a << b);
159 } 171 }
160 172
161 shr(var a, var b) { 173 shr(var a, var b) {
(...skipping 1205 matching lines...) Expand 10 before | Expand all | Expand 10 after
1367 /** 1379 /**
1368 * Represents the type of Null. The compiler treats this specially. 1380 * Represents the type of Null. The compiler treats this specially.
1369 */ 1381 */
1370 class Null { 1382 class Null {
1371 factory Null() { 1383 factory Null() {
1372 throw new UnsupportedOperationException('new Null()'); 1384 throw new UnsupportedOperationException('new Null()');
1373 } 1385 }
1374 } 1386 }
1375 1387
1376 builtin$get$toString(receiver) => () => builtin$toString$0(receiver); 1388 builtin$get$toString(receiver) => () => builtin$toString$0(receiver);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698