OLD | NEW |
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 import "package:async_helper/async_helper.dart"; | 5 import "package:async_helper/async_helper.dart"; |
6 import "package:expect/expect.dart"; | 6 import "package:expect/expect.dart"; |
7 import "compiler_helper.dart"; | 7 import "compiler_helper.dart"; |
8 import "package:compiler/src/types/types.dart"; | 8 import "package:compiler/src/types/types.dart"; |
9 import "type_mask_test_helper.dart"; | 9 import "type_mask_test_helper.dart"; |
10 import 'package:compiler/src/js_backend/js_backend.dart'; | 10 import 'package:compiler/src/js_backend/js_backend.dart'; |
(...skipping 16 matching lines...) Expand all Loading... |
27 TypeMask nonPrimitive2; | 27 TypeMask nonPrimitive2; |
28 TypeMask potentialArray; | 28 TypeMask potentialArray; |
29 TypeMask potentialString; | 29 TypeMask potentialString; |
30 TypeMask jsInterceptor; | 30 TypeMask jsInterceptor; |
31 | 31 |
32 TypeMask jsIndexable; | 32 TypeMask jsIndexable; |
33 TypeMask jsReadableArray; | 33 TypeMask jsReadableArray; |
34 TypeMask jsMutableArray; | 34 TypeMask jsMutableArray; |
35 TypeMask jsFixedArray; | 35 TypeMask jsFixedArray; |
36 TypeMask jsExtendableArray; | 36 TypeMask jsExtendableArray; |
| 37 TypeMask jsUnmodifiableArray; |
37 TypeMask jsString; | 38 TypeMask jsString; |
38 TypeMask jsStringOrNull; | 39 TypeMask jsStringOrNull; |
39 TypeMask jsArrayOrNull; | 40 TypeMask jsArrayOrNull; |
40 TypeMask jsMutableArrayOrNull; | 41 TypeMask jsMutableArrayOrNull; |
41 TypeMask jsFixedArrayOrNull; | 42 TypeMask jsFixedArrayOrNull; |
42 TypeMask jsExtendableArrayOrNull; | 43 TypeMask jsExtendableArrayOrNull; |
| 44 TypeMask jsUnmodifiableArrayOrNull; |
43 TypeMask jsIndexableOrNull; | 45 TypeMask jsIndexableOrNull; |
44 TypeMask jsInterceptorOrNull; | 46 TypeMask jsInterceptorOrNull; |
45 | 47 |
46 | 48 |
47 class Pair { | 49 class Pair { |
48 final first; | 50 final first; |
49 final second; | 51 final second; |
50 Pair(this.first, this.second); | 52 Pair(this.first, this.second); |
51 int get hashCode => first.hashCode * 47 + second.hashCode; | 53 int get hashCode => first.hashCode * 47 + second.hashCode; |
52 bool operator==(Pair other) => | 54 bool operator==(Pair other) => |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
106 rule(emptyType, dynamicType, dynamicType); | 108 rule(emptyType, dynamicType, dynamicType); |
107 rule(emptyType, jsBoolean, jsBoolean); | 109 rule(emptyType, jsBoolean, jsBoolean); |
108 rule(emptyType, jsNumber, jsNumber); | 110 rule(emptyType, jsNumber, jsNumber); |
109 rule(emptyType, jsInteger, jsInteger); | 111 rule(emptyType, jsInteger, jsInteger); |
110 rule(emptyType, jsDouble, jsDouble); | 112 rule(emptyType, jsDouble, jsDouble); |
111 rule(emptyType, jsIndexable, jsIndexable); | 113 rule(emptyType, jsIndexable, jsIndexable); |
112 rule(emptyType, jsString, jsString); | 114 rule(emptyType, jsString, jsString); |
113 rule(emptyType, jsReadableArray, jsReadableArray); | 115 rule(emptyType, jsReadableArray, jsReadableArray); |
114 rule(emptyType, jsMutableArray, jsMutableArray); | 116 rule(emptyType, jsMutableArray, jsMutableArray); |
115 rule(emptyType, jsExtendableArray, jsExtendableArray); | 117 rule(emptyType, jsExtendableArray, jsExtendableArray); |
| 118 rule(emptyType, jsUnmodifiableArray, jsUnmodifiableArray); |
116 rule(emptyType, nonPrimitive1, nonPrimitive1); | 119 rule(emptyType, nonPrimitive1, nonPrimitive1); |
117 rule(emptyType, nonPrimitive2, nonPrimitive2); | 120 rule(emptyType, nonPrimitive2, nonPrimitive2); |
118 rule(emptyType, potentialArray, potentialArray); | 121 rule(emptyType, potentialArray, potentialArray); |
119 rule(emptyType, potentialString, potentialString); | 122 rule(emptyType, potentialString, potentialString); |
120 rule(emptyType, jsBooleanOrNull, jsBooleanOrNull); | 123 rule(emptyType, jsBooleanOrNull, jsBooleanOrNull); |
121 rule(emptyType, jsNumberOrNull, jsNumberOrNull); | 124 rule(emptyType, jsNumberOrNull, jsNumberOrNull); |
122 rule(emptyType, jsIntegerOrNull, jsIntegerOrNull); | 125 rule(emptyType, jsIntegerOrNull, jsIntegerOrNull); |
123 rule(emptyType, jsDoubleOrNull, jsDoubleOrNull); | 126 rule(emptyType, jsDoubleOrNull, jsDoubleOrNull); |
124 rule(emptyType, jsStringOrNull, jsStringOrNull); | 127 rule(emptyType, jsStringOrNull, jsStringOrNull); |
125 rule(emptyType, nullType, nullType); | 128 rule(emptyType, nullType, nullType); |
126 rule(emptyType, jsFixedArray, jsFixedArray); | 129 rule(emptyType, jsFixedArray, jsFixedArray); |
127 | 130 |
128 rule(dynamicType, dynamicType, dynamicType); | 131 rule(dynamicType, dynamicType, dynamicType); |
129 rule(dynamicType, jsBoolean, dynamicType); | 132 rule(dynamicType, jsBoolean, dynamicType); |
130 rule(dynamicType, jsNumber, dynamicType); | 133 rule(dynamicType, jsNumber, dynamicType); |
131 rule(dynamicType, jsInteger, dynamicType); | 134 rule(dynamicType, jsInteger, dynamicType); |
132 rule(dynamicType, jsDouble, dynamicType); | 135 rule(dynamicType, jsDouble, dynamicType); |
133 rule(dynamicType, jsIndexable, dynamicType); | 136 rule(dynamicType, jsIndexable, dynamicType); |
134 rule(dynamicType, jsString, dynamicType); | 137 rule(dynamicType, jsString, dynamicType); |
135 rule(dynamicType, jsReadableArray, dynamicType); | 138 rule(dynamicType, jsReadableArray, dynamicType); |
136 rule(dynamicType, jsMutableArray, dynamicType); | 139 rule(dynamicType, jsMutableArray, dynamicType); |
137 rule(dynamicType, jsExtendableArray, dynamicType); | 140 rule(dynamicType, jsExtendableArray, dynamicType); |
| 141 rule(dynamicType, jsUnmodifiableArray, dynamicType); |
138 rule(dynamicType, nonPrimitive1, dynamicType); | 142 rule(dynamicType, nonPrimitive1, dynamicType); |
139 rule(dynamicType, nonPrimitive2, dynamicType); | 143 rule(dynamicType, nonPrimitive2, dynamicType); |
140 rule(dynamicType, potentialArray, dynamicType); | 144 rule(dynamicType, potentialArray, dynamicType); |
141 rule(dynamicType, potentialString, dynamicType); | 145 rule(dynamicType, potentialString, dynamicType); |
142 rule(dynamicType, jsBooleanOrNull, dynamicType); | 146 rule(dynamicType, jsBooleanOrNull, dynamicType); |
143 rule(dynamicType, jsNumberOrNull, dynamicType); | 147 rule(dynamicType, jsNumberOrNull, dynamicType); |
144 rule(dynamicType, jsIntegerOrNull, dynamicType); | 148 rule(dynamicType, jsIntegerOrNull, dynamicType); |
145 rule(dynamicType, jsDoubleOrNull, dynamicType); | 149 rule(dynamicType, jsDoubleOrNull, dynamicType); |
146 rule(dynamicType, jsStringOrNull, dynamicType); | 150 rule(dynamicType, jsStringOrNull, dynamicType); |
147 rule(dynamicType, nullType, dynamicType); | 151 rule(dynamicType, nullType, dynamicType); |
148 rule(dynamicType, jsFixedArray, dynamicType); | 152 rule(dynamicType, jsFixedArray, dynamicType); |
149 | 153 |
150 rule(jsBoolean, jsBoolean, jsBoolean); | 154 rule(jsBoolean, jsBoolean, jsBoolean); |
151 rule(jsBoolean, jsNumber, jsInterceptor); | 155 rule(jsBoolean, jsNumber, jsInterceptor); |
152 rule(jsBoolean, jsInteger, jsInterceptor); | 156 rule(jsBoolean, jsInteger, jsInterceptor); |
153 rule(jsBoolean, jsDouble, jsInterceptor); | 157 rule(jsBoolean, jsDouble, jsInterceptor); |
154 rule(jsBoolean, jsIndexable, objectType); | 158 rule(jsBoolean, jsIndexable, objectType); |
155 rule(jsBoolean, jsString, jsInterceptor); | 159 rule(jsBoolean, jsString, jsInterceptor); |
156 rule(jsBoolean, jsReadableArray, jsInterceptor); | 160 rule(jsBoolean, jsReadableArray, jsInterceptor); |
157 rule(jsBoolean, jsMutableArray, jsInterceptor); | 161 rule(jsBoolean, jsMutableArray, jsInterceptor); |
158 rule(jsBoolean, jsExtendableArray, jsInterceptor); | 162 rule(jsBoolean, jsExtendableArray, jsInterceptor); |
| 163 rule(jsBoolean, jsUnmodifiableArray, jsInterceptor); |
159 rule(jsBoolean, nonPrimitive1, objectType); | 164 rule(jsBoolean, nonPrimitive1, objectType); |
160 rule(jsBoolean, nonPrimitive2, objectType); | 165 rule(jsBoolean, nonPrimitive2, objectType); |
161 rule(jsBoolean, potentialArray, dynamicType); | 166 rule(jsBoolean, potentialArray, dynamicType); |
162 rule(jsBoolean, potentialString, dynamicType); | 167 rule(jsBoolean, potentialString, dynamicType); |
163 rule(jsBoolean, jsBooleanOrNull, jsBooleanOrNull); | 168 rule(jsBoolean, jsBooleanOrNull, jsBooleanOrNull); |
164 rule(jsBoolean, jsNumberOrNull, jsInterceptorOrNull); | 169 rule(jsBoolean, jsNumberOrNull, jsInterceptorOrNull); |
165 rule(jsBoolean, jsIntegerOrNull, jsInterceptorOrNull); | 170 rule(jsBoolean, jsIntegerOrNull, jsInterceptorOrNull); |
166 rule(jsBoolean, jsDoubleOrNull, jsInterceptorOrNull); | 171 rule(jsBoolean, jsDoubleOrNull, jsInterceptorOrNull); |
167 rule(jsBoolean, jsStringOrNull, jsInterceptorOrNull); | 172 rule(jsBoolean, jsStringOrNull, jsInterceptorOrNull); |
168 rule(jsBoolean, nullType, jsBooleanOrNull); | 173 rule(jsBoolean, nullType, jsBooleanOrNull); |
169 rule(jsBoolean, jsFixedArray, jsInterceptor); | 174 rule(jsBoolean, jsFixedArray, jsInterceptor); |
170 | 175 |
171 rule(jsNumber, jsNumber, jsNumber); | 176 rule(jsNumber, jsNumber, jsNumber); |
172 rule(jsNumber, jsInteger, jsNumber); | 177 rule(jsNumber, jsInteger, jsNumber); |
173 rule(jsNumber, jsDouble, jsNumber); | 178 rule(jsNumber, jsDouble, jsNumber); |
174 rule(jsNumber, jsIndexable, objectType); | 179 rule(jsNumber, jsIndexable, objectType); |
175 rule(jsNumber, jsString, jsInterceptor); | 180 rule(jsNumber, jsString, jsInterceptor); |
176 rule(jsNumber, jsReadableArray, jsInterceptor); | 181 rule(jsNumber, jsReadableArray, jsInterceptor); |
177 rule(jsNumber, jsMutableArray, jsInterceptor); | 182 rule(jsNumber, jsMutableArray, jsInterceptor); |
178 rule(jsNumber, jsExtendableArray, jsInterceptor); | 183 rule(jsNumber, jsExtendableArray, jsInterceptor); |
| 184 rule(jsNumber, jsUnmodifiableArray, jsInterceptor); |
179 rule(jsNumber, nonPrimitive1, objectType); | 185 rule(jsNumber, nonPrimitive1, objectType); |
180 rule(jsNumber, nonPrimitive2, objectType); | 186 rule(jsNumber, nonPrimitive2, objectType); |
181 rule(jsNumber, potentialArray, dynamicType); | 187 rule(jsNumber, potentialArray, dynamicType); |
182 rule(jsNumber, potentialString, dynamicType); | 188 rule(jsNumber, potentialString, dynamicType); |
183 rule(jsNumber, jsBooleanOrNull, jsInterceptorOrNull); | 189 rule(jsNumber, jsBooleanOrNull, jsInterceptorOrNull); |
184 rule(jsNumber, jsNumberOrNull, jsNumberOrNull); | 190 rule(jsNumber, jsNumberOrNull, jsNumberOrNull); |
185 rule(jsNumber, jsIntegerOrNull, jsNumberOrNull); | 191 rule(jsNumber, jsIntegerOrNull, jsNumberOrNull); |
186 rule(jsNumber, jsDoubleOrNull, jsNumberOrNull); | 192 rule(jsNumber, jsDoubleOrNull, jsNumberOrNull); |
187 rule(jsNumber, jsStringOrNull, jsInterceptorOrNull); | 193 rule(jsNumber, jsStringOrNull, jsInterceptorOrNull); |
188 rule(jsNumber, nullType, jsNumberOrNull); | 194 rule(jsNumber, nullType, jsNumberOrNull); |
189 rule(jsNumber, jsFixedArray, jsInterceptor); | 195 rule(jsNumber, jsFixedArray, jsInterceptor); |
190 | 196 |
191 rule(jsInteger, jsInteger, jsInteger); | 197 rule(jsInteger, jsInteger, jsInteger); |
192 rule(jsInteger, jsDouble, jsNumber); | 198 rule(jsInteger, jsDouble, jsNumber); |
193 rule(jsInteger, jsIndexable, objectType); | 199 rule(jsInteger, jsIndexable, objectType); |
194 rule(jsInteger, jsString, jsInterceptor); | 200 rule(jsInteger, jsString, jsInterceptor); |
195 rule(jsInteger, jsReadableArray, jsInterceptor); | 201 rule(jsInteger, jsReadableArray, jsInterceptor); |
196 rule(jsInteger, jsMutableArray, jsInterceptor); | 202 rule(jsInteger, jsMutableArray, jsInterceptor); |
197 rule(jsInteger, jsExtendableArray, jsInterceptor); | 203 rule(jsInteger, jsExtendableArray, jsInterceptor); |
| 204 rule(jsInteger, jsUnmodifiableArray, jsInterceptor); |
198 rule(jsInteger, nonPrimitive1, objectType); | 205 rule(jsInteger, nonPrimitive1, objectType); |
199 rule(jsInteger, nonPrimitive2, objectType); | 206 rule(jsInteger, nonPrimitive2, objectType); |
200 rule(jsInteger, potentialArray, dynamicType); | 207 rule(jsInteger, potentialArray, dynamicType); |
201 rule(jsInteger, potentialString, dynamicType); | 208 rule(jsInteger, potentialString, dynamicType); |
202 rule(jsInteger, jsBooleanOrNull, jsInterceptorOrNull); | 209 rule(jsInteger, jsBooleanOrNull, jsInterceptorOrNull); |
203 rule(jsInteger, jsNumberOrNull, jsNumberOrNull); | 210 rule(jsInteger, jsNumberOrNull, jsNumberOrNull); |
204 rule(jsInteger, jsIntegerOrNull, jsIntegerOrNull); | 211 rule(jsInteger, jsIntegerOrNull, jsIntegerOrNull); |
205 rule(jsInteger, jsDoubleOrNull, jsNumberOrNull); | 212 rule(jsInteger, jsDoubleOrNull, jsNumberOrNull); |
206 rule(jsInteger, jsStringOrNull, jsInterceptorOrNull); | 213 rule(jsInteger, jsStringOrNull, jsInterceptorOrNull); |
207 rule(jsInteger, nullType, jsIntegerOrNull); | 214 rule(jsInteger, nullType, jsIntegerOrNull); |
208 rule(jsInteger, jsFixedArray, jsInterceptor); | 215 rule(jsInteger, jsFixedArray, jsInterceptor); |
209 | 216 |
210 rule(jsDouble, jsDouble, jsDouble); | 217 rule(jsDouble, jsDouble, jsDouble); |
211 rule(jsDouble, jsIndexable, objectType); | 218 rule(jsDouble, jsIndexable, objectType); |
212 rule(jsDouble, jsString, jsInterceptor); | 219 rule(jsDouble, jsString, jsInterceptor); |
213 rule(jsDouble, jsReadableArray, jsInterceptor); | 220 rule(jsDouble, jsReadableArray, jsInterceptor); |
214 rule(jsDouble, jsMutableArray, jsInterceptor); | 221 rule(jsDouble, jsMutableArray, jsInterceptor); |
215 rule(jsDouble, jsExtendableArray, jsInterceptor); | 222 rule(jsDouble, jsExtendableArray, jsInterceptor); |
| 223 rule(jsDouble, jsUnmodifiableArray, jsInterceptor); |
216 rule(jsDouble, nonPrimitive1, objectType); | 224 rule(jsDouble, nonPrimitive1, objectType); |
217 rule(jsDouble, nonPrimitive2, objectType); | 225 rule(jsDouble, nonPrimitive2, objectType); |
218 rule(jsDouble, potentialArray, dynamicType); | 226 rule(jsDouble, potentialArray, dynamicType); |
219 rule(jsDouble, potentialString, dynamicType); | 227 rule(jsDouble, potentialString, dynamicType); |
220 rule(jsDouble, jsBooleanOrNull, jsInterceptorOrNull); | 228 rule(jsDouble, jsBooleanOrNull, jsInterceptorOrNull); |
221 rule(jsDouble, jsNumberOrNull, jsNumberOrNull); | 229 rule(jsDouble, jsNumberOrNull, jsNumberOrNull); |
222 rule(jsDouble, jsIntegerOrNull, jsNumberOrNull); | 230 rule(jsDouble, jsIntegerOrNull, jsNumberOrNull); |
223 rule(jsDouble, jsDoubleOrNull, jsDoubleOrNull); | 231 rule(jsDouble, jsDoubleOrNull, jsDoubleOrNull); |
224 rule(jsDouble, jsStringOrNull, jsInterceptorOrNull); | 232 rule(jsDouble, jsStringOrNull, jsInterceptorOrNull); |
225 rule(jsDouble, nullType, jsDoubleOrNull); | 233 rule(jsDouble, nullType, jsDoubleOrNull); |
226 rule(jsDouble, jsFixedArray, jsInterceptor); | 234 rule(jsDouble, jsFixedArray, jsInterceptor); |
227 | 235 |
228 rule(jsIndexable, jsIndexable, jsIndexable); | 236 rule(jsIndexable, jsIndexable, jsIndexable); |
229 rule(jsIndexable, jsString, jsIndexable); | 237 rule(jsIndexable, jsString, jsIndexable); |
230 rule(jsIndexable, jsReadableArray, jsIndexable); | 238 rule(jsIndexable, jsReadableArray, jsIndexable); |
231 rule(jsIndexable, jsMutableArray, jsIndexable); | 239 rule(jsIndexable, jsMutableArray, jsIndexable); |
232 rule(jsIndexable, jsExtendableArray, jsIndexable); | 240 rule(jsIndexable, jsExtendableArray, jsIndexable); |
| 241 rule(jsIndexable, jsUnmodifiableArray, jsIndexable); |
233 rule(jsIndexable, nonPrimitive1, objectType); | 242 rule(jsIndexable, nonPrimitive1, objectType); |
234 rule(jsIndexable, nonPrimitive2, objectType); | 243 rule(jsIndexable, nonPrimitive2, objectType); |
235 rule(jsIndexable, potentialArray, dynamicType); | 244 rule(jsIndexable, potentialArray, dynamicType); |
236 rule(jsIndexable, potentialString, dynamicType); | 245 rule(jsIndexable, potentialString, dynamicType); |
237 rule(jsIndexable, jsBooleanOrNull, dynamicType); | 246 rule(jsIndexable, jsBooleanOrNull, dynamicType); |
238 rule(jsIndexable, jsNumberOrNull, dynamicType); | 247 rule(jsIndexable, jsNumberOrNull, dynamicType); |
239 rule(jsIndexable, jsIntegerOrNull, dynamicType); | 248 rule(jsIndexable, jsIntegerOrNull, dynamicType); |
240 rule(jsIndexable, jsDoubleOrNull, dynamicType); | 249 rule(jsIndexable, jsDoubleOrNull, dynamicType); |
241 rule(jsIndexable, jsStringOrNull, jsIndexableOrNull); | 250 rule(jsIndexable, jsStringOrNull, jsIndexableOrNull); |
242 rule(jsIndexable, nullType, jsIndexableOrNull); | 251 rule(jsIndexable, nullType, jsIndexableOrNull); |
243 rule(jsIndexable, jsFixedArray, jsIndexable); | 252 rule(jsIndexable, jsFixedArray, jsIndexable); |
244 | 253 |
245 rule(jsString, jsString, jsString); | 254 rule(jsString, jsString, jsString); |
246 rule(jsString, jsReadableArray, jsIndexable); | 255 rule(jsString, jsReadableArray, jsIndexable); |
247 rule(jsString, jsMutableArray, jsIndexable); | 256 rule(jsString, jsMutableArray, jsIndexable); |
248 rule(jsString, jsExtendableArray, jsIndexable); | 257 rule(jsString, jsExtendableArray, jsIndexable); |
| 258 rule(jsString, jsUnmodifiableArray, jsIndexable); |
249 rule(jsString, nonPrimitive1, objectType); | 259 rule(jsString, nonPrimitive1, objectType); |
250 rule(jsString, nonPrimitive2, objectType); | 260 rule(jsString, nonPrimitive2, objectType); |
251 rule(jsString, potentialArray, dynamicType); | 261 rule(jsString, potentialArray, dynamicType); |
252 rule(jsString, potentialString, potentialString); | 262 rule(jsString, potentialString, potentialString); |
253 rule(jsString, jsBooleanOrNull, jsInterceptorOrNull); | 263 rule(jsString, jsBooleanOrNull, jsInterceptorOrNull); |
254 rule(jsString, jsNumberOrNull, jsInterceptorOrNull); | 264 rule(jsString, jsNumberOrNull, jsInterceptorOrNull); |
255 rule(jsString, jsIntegerOrNull, jsInterceptorOrNull); | 265 rule(jsString, jsIntegerOrNull, jsInterceptorOrNull); |
256 rule(jsString, jsDoubleOrNull, jsInterceptorOrNull); | 266 rule(jsString, jsDoubleOrNull, jsInterceptorOrNull); |
257 rule(jsString, jsStringOrNull, jsStringOrNull); | 267 rule(jsString, jsStringOrNull, jsStringOrNull); |
258 rule(jsString, nullType, jsStringOrNull); | 268 rule(jsString, nullType, jsStringOrNull); |
259 rule(jsString, jsFixedArray, jsIndexable); | 269 rule(jsString, jsFixedArray, jsIndexable); |
260 | 270 |
261 rule(jsReadableArray, jsReadableArray, jsReadableArray); | 271 rule(jsReadableArray, jsReadableArray, jsReadableArray); |
262 rule(jsReadableArray, jsMutableArray, jsReadableArray); | 272 rule(jsReadableArray, jsMutableArray, jsReadableArray); |
263 rule(jsReadableArray, jsExtendableArray, jsReadableArray); | 273 rule(jsReadableArray, jsExtendableArray, jsReadableArray); |
| 274 rule(jsReadableArray, jsUnmodifiableArray, jsReadableArray); |
264 rule(jsReadableArray, nonPrimitive1, objectType); | 275 rule(jsReadableArray, nonPrimitive1, objectType); |
265 rule(jsReadableArray, nonPrimitive2, objectType); | 276 rule(jsReadableArray, nonPrimitive2, objectType); |
266 rule(jsReadableArray, potentialArray, potentialArray); | 277 rule(jsReadableArray, potentialArray, potentialArray); |
267 rule(jsReadableArray, potentialString, dynamicType); | 278 rule(jsReadableArray, potentialString, dynamicType); |
268 rule(jsReadableArray, jsBooleanOrNull, jsInterceptorOrNull); | 279 rule(jsReadableArray, jsBooleanOrNull, jsInterceptorOrNull); |
269 rule(jsReadableArray, jsNumberOrNull, jsInterceptorOrNull); | 280 rule(jsReadableArray, jsNumberOrNull, jsInterceptorOrNull); |
270 rule(jsReadableArray, jsIntegerOrNull, jsInterceptorOrNull); | 281 rule(jsReadableArray, jsIntegerOrNull, jsInterceptorOrNull); |
271 rule(jsReadableArray, jsDoubleOrNull, jsInterceptorOrNull); | 282 rule(jsReadableArray, jsDoubleOrNull, jsInterceptorOrNull); |
272 rule(jsReadableArray, jsStringOrNull, jsIndexableOrNull); | 283 rule(jsReadableArray, jsStringOrNull, jsIndexableOrNull); |
273 rule(jsReadableArray, nullType, jsArrayOrNull); | 284 rule(jsReadableArray, nullType, jsArrayOrNull); |
274 rule(jsReadableArray, jsFixedArray, jsReadableArray); | 285 rule(jsReadableArray, jsFixedArray, jsReadableArray); |
275 | 286 |
276 rule(jsMutableArray, jsMutableArray, jsMutableArray); | 287 rule(jsMutableArray, jsMutableArray, jsMutableArray); |
277 rule(jsMutableArray, jsExtendableArray, jsMutableArray); | 288 rule(jsMutableArray, jsExtendableArray, jsMutableArray); |
| 289 rule(jsMutableArray, jsUnmodifiableArray, jsReadableArray); |
278 rule(jsMutableArray, nonPrimitive1, objectType); | 290 rule(jsMutableArray, nonPrimitive1, objectType); |
279 rule(jsMutableArray, nonPrimitive2, objectType); | 291 rule(jsMutableArray, nonPrimitive2, objectType); |
280 rule(jsMutableArray, potentialArray, potentialArray); | 292 rule(jsMutableArray, potentialArray, potentialArray); |
281 rule(jsMutableArray, potentialString, dynamicType); | 293 rule(jsMutableArray, potentialString, dynamicType); |
282 rule(jsMutableArray, jsBooleanOrNull, jsInterceptorOrNull); | 294 rule(jsMutableArray, jsBooleanOrNull, jsInterceptorOrNull); |
283 rule(jsMutableArray, jsNumberOrNull, jsInterceptorOrNull); | 295 rule(jsMutableArray, jsNumberOrNull, jsInterceptorOrNull); |
284 rule(jsMutableArray, jsIntegerOrNull, jsInterceptorOrNull); | 296 rule(jsMutableArray, jsIntegerOrNull, jsInterceptorOrNull); |
285 rule(jsMutableArray, jsDoubleOrNull, jsInterceptorOrNull); | 297 rule(jsMutableArray, jsDoubleOrNull, jsInterceptorOrNull); |
286 rule(jsMutableArray, jsStringOrNull, jsIndexableOrNull); | 298 rule(jsMutableArray, jsStringOrNull, jsIndexableOrNull); |
287 rule(jsMutableArray, nullType, jsMutableArrayOrNull); | 299 rule(jsMutableArray, nullType, jsMutableArrayOrNull); |
288 rule(jsMutableArray, jsFixedArray, jsMutableArray); | 300 rule(jsMutableArray, jsFixedArray, jsMutableArray); |
289 | 301 |
290 rule(jsExtendableArray, jsExtendableArray, jsExtendableArray); | 302 rule(jsExtendableArray, jsExtendableArray, jsExtendableArray); |
| 303 rule(jsExtendableArray, jsUnmodifiableArray, jsReadableArray); |
291 rule(jsExtendableArray, nonPrimitive1, objectType); | 304 rule(jsExtendableArray, nonPrimitive1, objectType); |
292 rule(jsExtendableArray, nonPrimitive2, objectType); | 305 rule(jsExtendableArray, nonPrimitive2, objectType); |
293 rule(jsExtendableArray, potentialArray, potentialArray); | 306 rule(jsExtendableArray, potentialArray, potentialArray); |
294 rule(jsExtendableArray, potentialString, dynamicType); | 307 rule(jsExtendableArray, potentialString, dynamicType); |
295 rule(jsExtendableArray, jsBooleanOrNull, jsInterceptorOrNull); | 308 rule(jsExtendableArray, jsBooleanOrNull, jsInterceptorOrNull); |
296 rule(jsExtendableArray, jsNumberOrNull, jsInterceptorOrNull); | 309 rule(jsExtendableArray, jsNumberOrNull, jsInterceptorOrNull); |
297 rule(jsExtendableArray, jsIntegerOrNull, jsInterceptorOrNull); | 310 rule(jsExtendableArray, jsIntegerOrNull, jsInterceptorOrNull); |
298 rule(jsExtendableArray, jsDoubleOrNull, jsInterceptorOrNull); | 311 rule(jsExtendableArray, jsDoubleOrNull, jsInterceptorOrNull); |
299 rule(jsExtendableArray, jsStringOrNull, jsIndexableOrNull); | 312 rule(jsExtendableArray, jsStringOrNull, jsIndexableOrNull); |
300 rule(jsExtendableArray, nullType, jsExtendableArrayOrNull); | 313 rule(jsExtendableArray, nullType, jsExtendableArrayOrNull); |
301 rule(jsExtendableArray, jsFixedArray, jsMutableArray); | 314 rule(jsExtendableArray, jsFixedArray, jsMutableArray); |
302 | 315 |
| 316 rule(jsUnmodifiableArray, jsUnmodifiableArray, jsUnmodifiableArray); |
| 317 rule(jsUnmodifiableArray, nonPrimitive1, objectType); |
| 318 rule(jsUnmodifiableArray, nonPrimitive2, objectType); |
| 319 rule(jsUnmodifiableArray, potentialArray, potentialArray); |
| 320 rule(jsUnmodifiableArray, potentialString, dynamicType); |
| 321 rule(jsUnmodifiableArray, jsBooleanOrNull, jsInterceptorOrNull); |
| 322 rule(jsUnmodifiableArray, jsNumberOrNull, jsInterceptorOrNull); |
| 323 rule(jsUnmodifiableArray, jsIntegerOrNull, jsInterceptorOrNull); |
| 324 rule(jsUnmodifiableArray, jsDoubleOrNull, jsInterceptorOrNull); |
| 325 rule(jsUnmodifiableArray, jsStringOrNull, jsIndexableOrNull); |
| 326 rule(jsUnmodifiableArray, nullType, jsUnmodifiableArrayOrNull); |
| 327 rule(jsUnmodifiableArray, jsFixedArray, jsReadableArray); |
| 328 |
303 rule(nonPrimitive1, nonPrimitive1, nonPrimitive1); | 329 rule(nonPrimitive1, nonPrimitive1, nonPrimitive1); |
304 rule(nonPrimitive1, nonPrimitive2, objectType); | 330 rule(nonPrimitive1, nonPrimitive2, objectType); |
305 rule(nonPrimitive1, potentialArray, dynamicType); | 331 rule(nonPrimitive1, potentialArray, dynamicType); |
306 rule(nonPrimitive1, potentialString, dynamicType); | 332 rule(nonPrimitive1, potentialString, dynamicType); |
307 rule(nonPrimitive1, jsBooleanOrNull, dynamicType); | 333 rule(nonPrimitive1, jsBooleanOrNull, dynamicType); |
308 rule(nonPrimitive1, jsNumberOrNull, dynamicType); | 334 rule(nonPrimitive1, jsNumberOrNull, dynamicType); |
309 rule(nonPrimitive1, jsIntegerOrNull, dynamicType); | 335 rule(nonPrimitive1, jsIntegerOrNull, dynamicType); |
310 rule(nonPrimitive1, jsDoubleOrNull, dynamicType); | 336 rule(nonPrimitive1, jsDoubleOrNull, dynamicType); |
311 rule(nonPrimitive1, jsStringOrNull, dynamicType); | 337 rule(nonPrimitive1, jsStringOrNull, dynamicType); |
312 rule(nonPrimitive1, jsFixedArray, objectType); | 338 rule(nonPrimitive1, jsFixedArray, objectType); |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
393 rule(emptyType, dynamicType, emptyType); | 419 rule(emptyType, dynamicType, emptyType); |
394 rule(emptyType, jsBoolean, emptyType); | 420 rule(emptyType, jsBoolean, emptyType); |
395 rule(emptyType, jsNumber, emptyType); | 421 rule(emptyType, jsNumber, emptyType); |
396 rule(emptyType, jsInteger, emptyType); | 422 rule(emptyType, jsInteger, emptyType); |
397 rule(emptyType, jsDouble, emptyType); | 423 rule(emptyType, jsDouble, emptyType); |
398 rule(emptyType, jsIndexable, emptyType); | 424 rule(emptyType, jsIndexable, emptyType); |
399 rule(emptyType, jsString, emptyType); | 425 rule(emptyType, jsString, emptyType); |
400 rule(emptyType, jsReadableArray, emptyType); | 426 rule(emptyType, jsReadableArray, emptyType); |
401 rule(emptyType, jsMutableArray, emptyType); | 427 rule(emptyType, jsMutableArray, emptyType); |
402 rule(emptyType, jsExtendableArray, emptyType); | 428 rule(emptyType, jsExtendableArray, emptyType); |
| 429 rule(emptyType, jsUnmodifiableArray, emptyType); |
403 rule(emptyType, nonPrimitive1, emptyType); | 430 rule(emptyType, nonPrimitive1, emptyType); |
404 rule(emptyType, nonPrimitive2, emptyType); | 431 rule(emptyType, nonPrimitive2, emptyType); |
405 rule(emptyType, potentialArray, emptyType); | 432 rule(emptyType, potentialArray, emptyType); |
406 rule(emptyType, potentialString, emptyType); | 433 rule(emptyType, potentialString, emptyType); |
407 rule(emptyType, jsBooleanOrNull, emptyType); | 434 rule(emptyType, jsBooleanOrNull, emptyType); |
408 rule(emptyType, jsNumberOrNull, emptyType); | 435 rule(emptyType, jsNumberOrNull, emptyType); |
409 rule(emptyType, jsIntegerOrNull, emptyType); | 436 rule(emptyType, jsIntegerOrNull, emptyType); |
410 rule(emptyType, jsDoubleOrNull, emptyType); | 437 rule(emptyType, jsDoubleOrNull, emptyType); |
411 rule(emptyType, jsStringOrNull, emptyType); | 438 rule(emptyType, jsStringOrNull, emptyType); |
412 rule(emptyType, nullType, emptyType); | 439 rule(emptyType, nullType, emptyType); |
413 rule(emptyType, jsFixedArray, emptyType); | 440 rule(emptyType, jsFixedArray, emptyType); |
414 | 441 |
415 rule(dynamicType, dynamicType, dynamicType); | 442 rule(dynamicType, dynamicType, dynamicType); |
416 rule(dynamicType, jsBoolean, jsBoolean); | 443 rule(dynamicType, jsBoolean, jsBoolean); |
417 rule(dynamicType, jsNumber, jsNumber); | 444 rule(dynamicType, jsNumber, jsNumber); |
418 rule(dynamicType, jsInteger, jsInteger); | 445 rule(dynamicType, jsInteger, jsInteger); |
419 rule(dynamicType, jsDouble, jsDouble); | 446 rule(dynamicType, jsDouble, jsDouble); |
420 rule(dynamicType, jsIndexable, jsIndexable); | 447 rule(dynamicType, jsIndexable, jsIndexable); |
421 rule(dynamicType, jsString, jsString); | 448 rule(dynamicType, jsString, jsString); |
422 rule(dynamicType, jsReadableArray, jsReadableArray); | 449 rule(dynamicType, jsReadableArray, jsReadableArray); |
423 rule(dynamicType, jsMutableArray, jsMutableArray); | 450 rule(dynamicType, jsMutableArray, jsMutableArray); |
424 rule(dynamicType, jsExtendableArray, jsExtendableArray); | 451 rule(dynamicType, jsExtendableArray, jsExtendableArray); |
| 452 rule(dynamicType, jsUnmodifiableArray, jsUnmodifiableArray); |
425 rule(dynamicType, nonPrimitive1, nonPrimitive1); | 453 rule(dynamicType, nonPrimitive1, nonPrimitive1); |
426 rule(dynamicType, nonPrimitive2, nonPrimitive2); | 454 rule(dynamicType, nonPrimitive2, nonPrimitive2); |
427 rule(dynamicType, potentialArray, potentialArray); | 455 rule(dynamicType, potentialArray, potentialArray); |
428 rule(dynamicType, potentialString, potentialString); | 456 rule(dynamicType, potentialString, potentialString); |
429 rule(dynamicType, jsBooleanOrNull, jsBooleanOrNull); | 457 rule(dynamicType, jsBooleanOrNull, jsBooleanOrNull); |
430 rule(dynamicType, jsNumberOrNull, jsNumberOrNull); | 458 rule(dynamicType, jsNumberOrNull, jsNumberOrNull); |
431 rule(dynamicType, jsIntegerOrNull, jsIntegerOrNull); | 459 rule(dynamicType, jsIntegerOrNull, jsIntegerOrNull); |
432 rule(dynamicType, jsDoubleOrNull, jsDoubleOrNull); | 460 rule(dynamicType, jsDoubleOrNull, jsDoubleOrNull); |
433 rule(dynamicType, jsStringOrNull, jsStringOrNull); | 461 rule(dynamicType, jsStringOrNull, jsStringOrNull); |
434 rule(dynamicType, nullType, nullType); | 462 rule(dynamicType, nullType, nullType); |
435 rule(dynamicType, jsFixedArray, jsFixedArray); | 463 rule(dynamicType, jsFixedArray, jsFixedArray); |
436 | 464 |
437 rule(jsBoolean, jsBoolean, jsBoolean); | 465 rule(jsBoolean, jsBoolean, jsBoolean); |
438 rule(jsBoolean, jsNumber, emptyType); | 466 rule(jsBoolean, jsNumber, emptyType); |
439 rule(jsBoolean, jsInteger, emptyType); | 467 rule(jsBoolean, jsInteger, emptyType); |
440 rule(jsBoolean, jsDouble, emptyType); | 468 rule(jsBoolean, jsDouble, emptyType); |
441 rule(jsBoolean, jsIndexable, emptyType); | 469 rule(jsBoolean, jsIndexable, emptyType); |
442 rule(jsBoolean, jsString, emptyType); | 470 rule(jsBoolean, jsString, emptyType); |
443 rule(jsBoolean, jsReadableArray, emptyType); | 471 rule(jsBoolean, jsReadableArray, emptyType); |
444 rule(jsBoolean, jsMutableArray, emptyType); | 472 rule(jsBoolean, jsMutableArray, emptyType); |
445 rule(jsBoolean, jsExtendableArray, emptyType); | 473 rule(jsBoolean, jsExtendableArray, emptyType); |
| 474 rule(jsBoolean, jsUnmodifiableArray, emptyType); |
446 rule(jsBoolean, nonPrimitive1, emptyType); | 475 rule(jsBoolean, nonPrimitive1, emptyType); |
447 rule(jsBoolean, nonPrimitive2, emptyType); | 476 rule(jsBoolean, nonPrimitive2, emptyType); |
448 rule(jsBoolean, potentialArray, emptyType); | 477 rule(jsBoolean, potentialArray, emptyType); |
449 rule(jsBoolean, potentialString, emptyType); | 478 rule(jsBoolean, potentialString, emptyType); |
450 rule(jsBoolean, jsBooleanOrNull, jsBoolean); | 479 rule(jsBoolean, jsBooleanOrNull, jsBoolean); |
451 rule(jsBoolean, jsNumberOrNull, emptyType); | 480 rule(jsBoolean, jsNumberOrNull, emptyType); |
452 rule(jsBoolean, jsIntegerOrNull, emptyType); | 481 rule(jsBoolean, jsIntegerOrNull, emptyType); |
453 rule(jsBoolean, jsDoubleOrNull, emptyType); | 482 rule(jsBoolean, jsDoubleOrNull, emptyType); |
454 rule(jsBoolean, jsStringOrNull, emptyType); | 483 rule(jsBoolean, jsStringOrNull, emptyType); |
455 rule(jsBoolean, nullType, emptyType); | 484 rule(jsBoolean, nullType, emptyType); |
456 rule(jsBoolean, jsFixedArray, emptyType); | 485 rule(jsBoolean, jsFixedArray, emptyType); |
457 | 486 |
458 rule(jsNumber, jsNumber, jsNumber); | 487 rule(jsNumber, jsNumber, jsNumber); |
459 rule(jsNumber, jsInteger, jsInteger); | 488 rule(jsNumber, jsInteger, jsInteger); |
460 rule(jsNumber, jsDouble, jsDouble); | 489 rule(jsNumber, jsDouble, jsDouble); |
461 rule(jsNumber, jsIndexable, emptyType); | 490 rule(jsNumber, jsIndexable, emptyType); |
462 rule(jsNumber, jsString, emptyType); | 491 rule(jsNumber, jsString, emptyType); |
463 rule(jsNumber, jsReadableArray, emptyType); | 492 rule(jsNumber, jsReadableArray, emptyType); |
464 rule(jsNumber, jsMutableArray, emptyType); | 493 rule(jsNumber, jsMutableArray, emptyType); |
465 rule(jsNumber, jsExtendableArray, emptyType); | 494 rule(jsNumber, jsExtendableArray, emptyType); |
| 495 rule(jsNumber, jsUnmodifiableArray, emptyType); |
466 rule(jsNumber, nonPrimitive1, emptyType); | 496 rule(jsNumber, nonPrimitive1, emptyType); |
467 rule(jsNumber, nonPrimitive2, emptyType); | 497 rule(jsNumber, nonPrimitive2, emptyType); |
468 rule(jsNumber, potentialArray, emptyType); | 498 rule(jsNumber, potentialArray, emptyType); |
469 rule(jsNumber, potentialString, emptyType); | 499 rule(jsNumber, potentialString, emptyType); |
470 rule(jsNumber, jsBooleanOrNull, emptyType); | 500 rule(jsNumber, jsBooleanOrNull, emptyType); |
471 rule(jsNumber, jsNumberOrNull, jsNumber); | 501 rule(jsNumber, jsNumberOrNull, jsNumber); |
472 rule(jsNumber, jsIntegerOrNull, jsInteger); | 502 rule(jsNumber, jsIntegerOrNull, jsInteger); |
473 rule(jsNumber, jsDoubleOrNull, jsDouble); | 503 rule(jsNumber, jsDoubleOrNull, jsDouble); |
474 rule(jsNumber, jsStringOrNull, emptyType); | 504 rule(jsNumber, jsStringOrNull, emptyType); |
475 rule(jsNumber, nullType, emptyType); | 505 rule(jsNumber, nullType, emptyType); |
476 rule(jsNumber, jsFixedArray, emptyType); | 506 rule(jsNumber, jsFixedArray, emptyType); |
477 | 507 |
478 rule(jsInteger, jsInteger, jsInteger); | 508 rule(jsInteger, jsInteger, jsInteger); |
479 rule(jsInteger, jsDouble, emptyType); | 509 rule(jsInteger, jsDouble, emptyType); |
480 rule(jsInteger, jsIndexable, emptyType); | 510 rule(jsInteger, jsIndexable, emptyType); |
481 rule(jsInteger, jsString, emptyType); | 511 rule(jsInteger, jsString, emptyType); |
482 rule(jsInteger, jsReadableArray, emptyType); | 512 rule(jsInteger, jsReadableArray, emptyType); |
483 rule(jsInteger, jsMutableArray, emptyType); | 513 rule(jsInteger, jsMutableArray, emptyType); |
484 rule(jsInteger, jsExtendableArray, emptyType); | 514 rule(jsInteger, jsExtendableArray, emptyType); |
| 515 rule(jsInteger, jsUnmodifiableArray, emptyType); |
485 rule(jsInteger, nonPrimitive1, emptyType); | 516 rule(jsInteger, nonPrimitive1, emptyType); |
486 rule(jsInteger, nonPrimitive2, emptyType); | 517 rule(jsInteger, nonPrimitive2, emptyType); |
487 rule(jsInteger, potentialArray, emptyType); | 518 rule(jsInteger, potentialArray, emptyType); |
488 rule(jsInteger, potentialString, emptyType); | 519 rule(jsInteger, potentialString, emptyType); |
489 rule(jsInteger, jsBooleanOrNull, emptyType); | 520 rule(jsInteger, jsBooleanOrNull, emptyType); |
490 rule(jsInteger, jsNumberOrNull, jsInteger); | 521 rule(jsInteger, jsNumberOrNull, jsInteger); |
491 rule(jsInteger, jsIntegerOrNull, jsInteger); | 522 rule(jsInteger, jsIntegerOrNull, jsInteger); |
492 rule(jsInteger, jsDoubleOrNull, emptyType); | 523 rule(jsInteger, jsDoubleOrNull, emptyType); |
493 rule(jsInteger, jsStringOrNull, emptyType); | 524 rule(jsInteger, jsStringOrNull, emptyType); |
494 rule(jsInteger, nullType, emptyType); | 525 rule(jsInteger, nullType, emptyType); |
495 rule(jsInteger, jsFixedArray, emptyType); | 526 rule(jsInteger, jsFixedArray, emptyType); |
496 | 527 |
497 rule(jsDouble, jsDouble, jsDouble); | 528 rule(jsDouble, jsDouble, jsDouble); |
498 rule(jsDouble, jsIndexable, emptyType); | 529 rule(jsDouble, jsIndexable, emptyType); |
499 rule(jsDouble, jsString, emptyType); | 530 rule(jsDouble, jsString, emptyType); |
500 rule(jsDouble, jsReadableArray, emptyType); | 531 rule(jsDouble, jsReadableArray, emptyType); |
501 rule(jsDouble, jsMutableArray, emptyType); | 532 rule(jsDouble, jsMutableArray, emptyType); |
502 rule(jsDouble, jsExtendableArray, emptyType); | 533 rule(jsDouble, jsExtendableArray, emptyType); |
| 534 rule(jsDouble, jsUnmodifiableArray, emptyType); |
503 rule(jsDouble, nonPrimitive1, emptyType); | 535 rule(jsDouble, nonPrimitive1, emptyType); |
504 rule(jsDouble, nonPrimitive2, emptyType); | 536 rule(jsDouble, nonPrimitive2, emptyType); |
505 rule(jsDouble, potentialArray, emptyType); | 537 rule(jsDouble, potentialArray, emptyType); |
506 rule(jsDouble, potentialString, emptyType); | 538 rule(jsDouble, potentialString, emptyType); |
507 rule(jsDouble, jsBooleanOrNull, emptyType); | 539 rule(jsDouble, jsBooleanOrNull, emptyType); |
508 rule(jsDouble, jsNumberOrNull, jsDouble); | 540 rule(jsDouble, jsNumberOrNull, jsDouble); |
509 rule(jsDouble, jsIntegerOrNull, emptyType); | 541 rule(jsDouble, jsIntegerOrNull, emptyType); |
510 rule(jsDouble, jsDoubleOrNull, jsDouble); | 542 rule(jsDouble, jsDoubleOrNull, jsDouble); |
511 rule(jsDouble, jsStringOrNull, emptyType); | 543 rule(jsDouble, jsStringOrNull, emptyType); |
512 rule(jsDouble, nullType, emptyType); | 544 rule(jsDouble, nullType, emptyType); |
513 rule(jsDouble, jsFixedArray, emptyType); | 545 rule(jsDouble, jsFixedArray, emptyType); |
514 | 546 |
515 rule(jsIndexable, jsIndexable, jsIndexable); | 547 rule(jsIndexable, jsIndexable, jsIndexable); |
516 rule(jsIndexable, jsString, jsString); | 548 rule(jsIndexable, jsString, jsString); |
517 rule(jsIndexable, jsReadableArray, jsReadableArray); | 549 rule(jsIndexable, jsReadableArray, jsReadableArray); |
518 rule(jsIndexable, jsMutableArray, jsMutableArray); | 550 rule(jsIndexable, jsMutableArray, jsMutableArray); |
519 rule(jsIndexable, jsExtendableArray, jsExtendableArray); | 551 rule(jsIndexable, jsExtendableArray, jsExtendableArray); |
| 552 rule(jsIndexable, jsUnmodifiableArray, jsUnmodifiableArray); |
520 rule(jsIndexable, nonPrimitive1, emptyType); | 553 rule(jsIndexable, nonPrimitive1, emptyType); |
521 rule(jsIndexable, nonPrimitive2, emptyType); | 554 rule(jsIndexable, nonPrimitive2, emptyType); |
522 rule(jsIndexable, potentialArray, new TypeMask.nonNullSubtype( | 555 rule(jsIndexable, potentialArray, new TypeMask.nonNullSubtype( |
523 backend.jsArrayClass, compiler.world)); | 556 backend.jsArrayClass, compiler.world)); |
524 rule(jsIndexable, potentialString, new TypeMask.nonNullSubtype( | 557 rule(jsIndexable, potentialString, new TypeMask.nonNullSubtype( |
525 backend.jsStringClass, compiler.world)); | 558 backend.jsStringClass, compiler.world)); |
526 rule(jsIndexable, jsBooleanOrNull, emptyType); | 559 rule(jsIndexable, jsBooleanOrNull, emptyType); |
527 rule(jsIndexable, jsNumberOrNull, emptyType); | 560 rule(jsIndexable, jsNumberOrNull, emptyType); |
528 rule(jsIndexable, jsIntegerOrNull, emptyType); | 561 rule(jsIndexable, jsIntegerOrNull, emptyType); |
529 rule(jsIndexable, jsDoubleOrNull, emptyType); | 562 rule(jsIndexable, jsDoubleOrNull, emptyType); |
530 rule(jsIndexable, jsStringOrNull, jsString); | 563 rule(jsIndexable, jsStringOrNull, jsString); |
531 rule(jsIndexable, nullType, emptyType); | 564 rule(jsIndexable, nullType, emptyType); |
532 rule(jsIndexable, jsFixedArray, jsFixedArray); | 565 rule(jsIndexable, jsFixedArray, jsFixedArray); |
533 | 566 |
534 rule(jsString, jsString, jsString); | 567 rule(jsString, jsString, jsString); |
535 rule(jsString, jsReadableArray, emptyType); | 568 rule(jsString, jsReadableArray, emptyType); |
536 rule(jsString, jsMutableArray, emptyType); | 569 rule(jsString, jsMutableArray, emptyType); |
537 rule(jsString, jsExtendableArray, emptyType); | 570 rule(jsString, jsExtendableArray, emptyType); |
| 571 rule(jsString, jsUnmodifiableArray, emptyType); |
538 rule(jsString, nonPrimitive1, emptyType); | 572 rule(jsString, nonPrimitive1, emptyType); |
539 rule(jsString, nonPrimitive2, emptyType); | 573 rule(jsString, nonPrimitive2, emptyType); |
540 rule(jsString, potentialArray, emptyType); | 574 rule(jsString, potentialArray, emptyType); |
541 rule(jsString, potentialString, jsString); | 575 rule(jsString, potentialString, jsString); |
542 rule(jsString, jsBooleanOrNull, emptyType); | 576 rule(jsString, jsBooleanOrNull, emptyType); |
543 rule(jsString, jsNumberOrNull, emptyType); | 577 rule(jsString, jsNumberOrNull, emptyType); |
544 rule(jsString, jsIntegerOrNull, emptyType); | 578 rule(jsString, jsIntegerOrNull, emptyType); |
545 rule(jsString, jsDoubleOrNull, emptyType); | 579 rule(jsString, jsDoubleOrNull, emptyType); |
546 rule(jsString, jsStringOrNull, jsString); | 580 rule(jsString, jsStringOrNull, jsString); |
547 rule(jsString, nullType, emptyType); | 581 rule(jsString, nullType, emptyType); |
548 rule(jsString, jsFixedArray, emptyType); | 582 rule(jsString, jsFixedArray, emptyType); |
549 | 583 |
550 rule(jsReadableArray, jsReadableArray, jsReadableArray); | 584 rule(jsReadableArray, jsReadableArray, jsReadableArray); |
551 rule(jsReadableArray, jsMutableArray, jsMutableArray); | 585 rule(jsReadableArray, jsMutableArray, jsMutableArray); |
552 rule(jsReadableArray, jsExtendableArray, jsExtendableArray); | 586 rule(jsReadableArray, jsExtendableArray, jsExtendableArray); |
| 587 rule(jsReadableArray, jsUnmodifiableArray, jsUnmodifiableArray); |
553 rule(jsReadableArray, nonPrimitive1, emptyType); | 588 rule(jsReadableArray, nonPrimitive1, emptyType); |
554 rule(jsReadableArray, nonPrimitive2, emptyType); | 589 rule(jsReadableArray, nonPrimitive2, emptyType); |
555 rule(jsReadableArray, potentialArray, jsReadableArray); | 590 rule(jsReadableArray, potentialArray, jsReadableArray); |
556 rule(jsReadableArray, potentialString, emptyType); | 591 rule(jsReadableArray, potentialString, emptyType); |
557 rule(jsReadableArray, jsBooleanOrNull, emptyType); | 592 rule(jsReadableArray, jsBooleanOrNull, emptyType); |
558 rule(jsReadableArray, jsNumberOrNull, emptyType); | 593 rule(jsReadableArray, jsNumberOrNull, emptyType); |
559 rule(jsReadableArray, jsIntegerOrNull, emptyType); | 594 rule(jsReadableArray, jsIntegerOrNull, emptyType); |
560 rule(jsReadableArray, jsDoubleOrNull, emptyType); | 595 rule(jsReadableArray, jsDoubleOrNull, emptyType); |
561 rule(jsReadableArray, jsStringOrNull, emptyType); | 596 rule(jsReadableArray, jsStringOrNull, emptyType); |
562 rule(jsReadableArray, nullType, emptyType); | 597 rule(jsReadableArray, nullType, emptyType); |
563 rule(jsReadableArray, jsFixedArray, jsFixedArray); | 598 rule(jsReadableArray, jsFixedArray, jsFixedArray); |
564 | 599 |
565 rule(jsMutableArray, jsMutableArray, jsMutableArray); | 600 rule(jsMutableArray, jsMutableArray, jsMutableArray); |
566 rule(jsMutableArray, jsExtendableArray, jsExtendableArray); | 601 rule(jsMutableArray, jsExtendableArray, jsExtendableArray); |
| 602 rule(jsMutableArray, jsUnmodifiableArray, emptyType); |
567 rule(jsMutableArray, nonPrimitive1, emptyType); | 603 rule(jsMutableArray, nonPrimitive1, emptyType); |
568 rule(jsMutableArray, nonPrimitive2, emptyType); | 604 rule(jsMutableArray, nonPrimitive2, emptyType); |
569 rule(jsMutableArray, potentialArray, jsMutableArray); | 605 rule(jsMutableArray, potentialArray, jsMutableArray); |
570 rule(jsMutableArray, potentialString, emptyType); | 606 rule(jsMutableArray, potentialString, emptyType); |
571 rule(jsMutableArray, jsBooleanOrNull, emptyType); | 607 rule(jsMutableArray, jsBooleanOrNull, emptyType); |
572 rule(jsMutableArray, jsNumberOrNull, emptyType); | 608 rule(jsMutableArray, jsNumberOrNull, emptyType); |
573 rule(jsMutableArray, jsIntegerOrNull, emptyType); | 609 rule(jsMutableArray, jsIntegerOrNull, emptyType); |
574 rule(jsMutableArray, jsDoubleOrNull, emptyType); | 610 rule(jsMutableArray, jsDoubleOrNull, emptyType); |
575 rule(jsMutableArray, jsStringOrNull, emptyType); | 611 rule(jsMutableArray, jsStringOrNull, emptyType); |
576 rule(jsMutableArray, nullType, emptyType); | 612 rule(jsMutableArray, nullType, emptyType); |
577 rule(jsMutableArray, jsFixedArray, jsFixedArray); | 613 rule(jsMutableArray, jsFixedArray, jsFixedArray); |
578 | 614 |
579 rule(jsExtendableArray, jsExtendableArray, jsExtendableArray); | 615 rule(jsExtendableArray, jsExtendableArray, jsExtendableArray); |
| 616 rule(jsExtendableArray, jsUnmodifiableArray, emptyType); |
580 rule(jsExtendableArray, nonPrimitive1, emptyType); | 617 rule(jsExtendableArray, nonPrimitive1, emptyType); |
581 rule(jsExtendableArray, nonPrimitive2, emptyType); | 618 rule(jsExtendableArray, nonPrimitive2, emptyType); |
582 rule(jsExtendableArray, potentialArray, jsExtendableArray); | 619 rule(jsExtendableArray, potentialArray, jsExtendableArray); |
583 rule(jsExtendableArray, potentialString, emptyType); | 620 rule(jsExtendableArray, potentialString, emptyType); |
584 rule(jsExtendableArray, jsBooleanOrNull, emptyType); | 621 rule(jsExtendableArray, jsBooleanOrNull, emptyType); |
585 rule(jsExtendableArray, jsNumberOrNull, emptyType); | 622 rule(jsExtendableArray, jsNumberOrNull, emptyType); |
586 rule(jsExtendableArray, jsIntegerOrNull, emptyType); | 623 rule(jsExtendableArray, jsIntegerOrNull, emptyType); |
587 rule(jsExtendableArray, jsDoubleOrNull, emptyType); | 624 rule(jsExtendableArray, jsDoubleOrNull, emptyType); |
588 rule(jsExtendableArray, jsStringOrNull, emptyType); | 625 rule(jsExtendableArray, jsStringOrNull, emptyType); |
589 rule(jsExtendableArray, nullType, emptyType); | 626 rule(jsExtendableArray, nullType, emptyType); |
590 rule(jsExtendableArray, jsFixedArray, emptyType); | 627 rule(jsExtendableArray, jsFixedArray, emptyType); |
591 | 628 |
| 629 rule(jsUnmodifiableArray, jsUnmodifiableArray, jsUnmodifiableArray); |
| 630 rule(jsUnmodifiableArray, nonPrimitive1, emptyType); |
| 631 rule(jsUnmodifiableArray, nonPrimitive2, emptyType); |
| 632 rule(jsUnmodifiableArray, potentialArray, jsUnmodifiableArray); |
| 633 rule(jsUnmodifiableArray, potentialString, emptyType); |
| 634 rule(jsUnmodifiableArray, jsBooleanOrNull, emptyType); |
| 635 rule(jsUnmodifiableArray, jsNumberOrNull, emptyType); |
| 636 rule(jsUnmodifiableArray, jsIntegerOrNull, emptyType); |
| 637 rule(jsUnmodifiableArray, jsDoubleOrNull, emptyType); |
| 638 rule(jsUnmodifiableArray, jsStringOrNull, emptyType); |
| 639 rule(jsUnmodifiableArray, nullType, emptyType); |
| 640 rule(jsUnmodifiableArray, jsFixedArray, emptyType); |
| 641 |
592 rule(nonPrimitive1, nonPrimitive1, nonPrimitive1); | 642 rule(nonPrimitive1, nonPrimitive1, nonPrimitive1); |
593 rule(nonPrimitive1, nonPrimitive2, emptyType); | 643 rule(nonPrimitive1, nonPrimitive2, emptyType); |
594 rule(nonPrimitive1, potentialArray, emptyType); | 644 rule(nonPrimitive1, potentialArray, emptyType); |
595 rule(nonPrimitive1, potentialString, emptyType); | 645 rule(nonPrimitive1, potentialString, emptyType); |
596 rule(nonPrimitive1, jsBooleanOrNull, emptyType); | 646 rule(nonPrimitive1, jsBooleanOrNull, emptyType); |
597 rule(nonPrimitive1, jsNumberOrNull, emptyType); | 647 rule(nonPrimitive1, jsNumberOrNull, emptyType); |
598 rule(nonPrimitive1, jsIntegerOrNull, emptyType); | 648 rule(nonPrimitive1, jsIntegerOrNull, emptyType); |
599 rule(nonPrimitive1, jsDoubleOrNull, emptyType); | 649 rule(nonPrimitive1, jsDoubleOrNull, emptyType); |
600 rule(nonPrimitive1, jsStringOrNull, emptyType); | 650 rule(nonPrimitive1, jsStringOrNull, emptyType); |
601 rule(nonPrimitive1, nullType, emptyType); | 651 rule(nonPrimitive1, nullType, emptyType); |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
710 jsMutableArrayOrNull = new TypeMask.subclass(backend.jsMutableArrayClass, | 760 jsMutableArrayOrNull = new TypeMask.subclass(backend.jsMutableArrayClass, |
711 world); | 761 world); |
712 jsMutableArray = new TypeMask.nonNullSubclass(backend.jsMutableArrayClass, | 762 jsMutableArray = new TypeMask.nonNullSubclass(backend.jsMutableArrayClass, |
713 world); | 763 world); |
714 jsFixedArrayOrNull = new TypeMask.exact(backend.jsFixedArrayClass, world); | 764 jsFixedArrayOrNull = new TypeMask.exact(backend.jsFixedArrayClass, world); |
715 jsFixedArray = new TypeMask.nonNullExact(backend.jsFixedArrayClass, world); | 765 jsFixedArray = new TypeMask.nonNullExact(backend.jsFixedArrayClass, world); |
716 jsExtendableArrayOrNull = new TypeMask.exact(backend.jsExtendableArrayClass, | 766 jsExtendableArrayOrNull = new TypeMask.exact(backend.jsExtendableArrayClass, |
717 world); | 767 world); |
718 jsExtendableArray = new TypeMask.nonNullExact( | 768 jsExtendableArray = new TypeMask.nonNullExact( |
719 backend.jsExtendableArrayClass, world); | 769 backend.jsExtendableArrayClass, world); |
| 770 jsUnmodifiableArrayOrNull = |
| 771 new TypeMask.exact(backend.jsUnmodifiableArrayClass, world); |
| 772 jsUnmodifiableArray = |
| 773 new TypeMask.nonNullExact(backend.jsUnmodifiableArrayClass, world); |
720 jsIndexableOrNull = new TypeMask.subtype(backend.jsIndexableClass, world); | 774 jsIndexableOrNull = new TypeMask.subtype(backend.jsIndexableClass, world); |
721 jsIndexable = new TypeMask.nonNullSubtype(backend.jsIndexableClass, world); | 775 jsIndexable = new TypeMask.nonNullSubtype(backend.jsIndexableClass, world); |
722 jsInterceptorOrNull = new TypeMask.subclass(backend.jsInterceptorClass, | 776 jsInterceptorOrNull = new TypeMask.subclass(backend.jsInterceptorClass, |
723 world); | 777 world); |
724 jsStringOrNull = new TypeMask.exact(backend.jsStringClass, world); | 778 jsStringOrNull = new TypeMask.exact(backend.jsStringClass, world); |
725 jsString = new TypeMask.nonNullExact(backend.jsStringClass, world); | 779 jsString = new TypeMask.nonNullExact(backend.jsStringClass, world); |
726 jsBoolean = new TypeMask.nonNullExact(backend.jsBoolClass, world); | 780 jsBoolean = new TypeMask.nonNullExact(backend.jsBoolClass, world); |
727 jsNumber = new TypeMask.nonNullSubclass(backend.jsNumberClass, world); | 781 jsNumber = new TypeMask.nonNullSubclass(backend.jsNumberClass, world); |
728 jsInteger = new TypeMask.nonNullExact(backend.jsIntClass, world); | 782 jsInteger = new TypeMask.nonNullExact(backend.jsIntClass, world); |
729 jsDouble = new TypeMask.nonNullExact(backend.jsDoubleClass, world); | 783 jsDouble = new TypeMask.nonNullExact(backend.jsDoubleClass, world); |
730 jsBooleanOrNull = new TypeMask.exact(backend.jsBoolClass, world); | 784 jsBooleanOrNull = new TypeMask.exact(backend.jsBoolClass, world); |
731 jsNumberOrNull = new TypeMask.subclass(backend.jsNumberClass, world); | 785 jsNumberOrNull = new TypeMask.subclass(backend.jsNumberClass, world); |
732 jsIntegerOrNull = new TypeMask.exact(backend.jsIntClass, world); | 786 jsIntegerOrNull = new TypeMask.exact(backend.jsIntClass, world); |
733 jsDoubleOrNull = new TypeMask.exact(backend.jsDoubleClass, world); | 787 jsDoubleOrNull = new TypeMask.exact(backend.jsDoubleClass, world); |
734 nullType = const TypeMask.empty(); | 788 nullType = const TypeMask.empty(); |
735 objectType = new TypeMask.nonNullSubclass( | 789 objectType = new TypeMask.nonNullSubclass( |
736 compiler.objectClass, world); | 790 compiler.objectClass, world); |
737 emptyType = const TypeMask.nonNullEmpty(); | 791 emptyType = const TypeMask.nonNullEmpty(); |
738 dynamicType = new TypeMask.subclass( | 792 dynamicType = new TypeMask.subclass( |
739 compiler.objectClass, world); | 793 compiler.objectClass, world); |
740 | 794 |
741 testUnion(compiler); | 795 testUnion(compiler); |
742 testIntersection(compiler); | 796 testIntersection(compiler); |
743 testRegressions(compiler); | 797 testRegressions(compiler); |
744 })); | 798 })); |
745 } | 799 } |
OLD | NEW |