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

Side by Side Diff: test/cctest/test-types.cc

Issue 134643025: Fix clang build. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 11 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 CHECK(!type1->Is(type2)); 236 CHECK(!type1->Is(type2));
237 CHECK(!type2->Is(type1)); 237 CHECK(!type2->Is(type1));
238 CHECK(!type1->Maybe(type2)); 238 CHECK(!type1->Maybe(type2));
239 CHECK(!type2->Maybe(type1)); 239 CHECK(!type2->Maybe(type1));
240 if (Rep::IsBitset(type1) && Rep::IsBitset(type2)) { 240 if (Rep::IsBitset(type1) && Rep::IsBitset(type2)) {
241 CHECK_EQ(0, Rep::AsBitset(type1) & Rep::AsBitset(type2)); 241 CHECK_EQ(0, Rep::AsBitset(type1) & Rep::AsBitset(type2));
242 } 242 }
243 } 243 }
244 244
245 void Bitset() { 245 void Bitset() {
246 CHECK(IsBitset(T.None)); 246 CHECK(this->IsBitset(T.None));
247 CHECK(IsBitset(T.Any)); 247 CHECK(this->IsBitset(T.Any));
248 CHECK(IsBitset(T.String)); 248 CHECK(this->IsBitset(T.String));
249 CHECK(IsBitset(T.Object)); 249 CHECK(this->IsBitset(T.Object));
250 250
251 CHECK(IsBitset(T.Union(T.String, T.Number))); 251 CHECK(this->IsBitset(T.Union(T.String, T.Number)));
252 CHECK(IsBitset(T.Union(T.String, T.Receiver))); 252 CHECK(this->IsBitset(T.Union(T.String, T.Receiver)));
253 253
254 CHECK_EQ(0, AsBitset(T.None)); 254 CHECK_EQ(0, this->AsBitset(T.None));
255 CHECK_EQ(AsBitset(T.Number) | AsBitset(T.String), 255 CHECK_EQ(this->AsBitset(T.Number) | this->AsBitset(T.String),
256 AsBitset(T.Union(T.String, T.Number))); 256 this->AsBitset(T.Union(T.String, T.Number)));
257 CHECK_EQ(AsBitset(T.Receiver), 257 CHECK_EQ(this->AsBitset(T.Receiver),
258 AsBitset(T.Union(T.Receiver, T.Object))); 258 this->AsBitset(T.Union(T.Receiver, T.Object)));
259 } 259 }
260 260
261 void Class() { 261 void Class() {
262 CHECK(IsClass(T.ObjectClass)); 262 CHECK(this->IsClass(T.ObjectClass));
263 CHECK(IsClass(T.ArrayClass)); 263 CHECK(this->IsClass(T.ArrayClass));
264 264
265 CHECK(*T.object_map == AsClass(T.ObjectClass)); 265 CHECK(*T.object_map == this->AsClass(T.ObjectClass));
266 CHECK(*T.array_map == AsClass(T.ArrayClass)); 266 CHECK(*T.array_map == this->AsClass(T.ArrayClass));
267 } 267 }
268 268
269 void Constant() { 269 void Constant() {
270 CHECK(IsConstant(T.SmiConstant)); 270 CHECK(this->IsConstant(T.SmiConstant));
271 CHECK(IsConstant(T.ObjectConstant1)); 271 CHECK(this->IsConstant(T.ObjectConstant1));
272 CHECK(IsConstant(T.ObjectConstant2)); 272 CHECK(this->IsConstant(T.ObjectConstant2));
273 CHECK(IsConstant(T.ArrayConstant1)); 273 CHECK(this->IsConstant(T.ArrayConstant1));
274 CHECK(IsConstant(T.ArrayConstant2)); 274 CHECK(this->IsConstant(T.ArrayConstant2));
275 275
276 CHECK(*T.smi == AsConstant(T.SmiConstant)); 276 CHECK(*T.smi == this->AsConstant(T.SmiConstant));
277 CHECK(*T.object1 == AsConstant(T.ObjectConstant1)); 277 CHECK(*T.object1 == this->AsConstant(T.ObjectConstant1));
278 CHECK(*T.object2 == AsConstant(T.ObjectConstant2)); 278 CHECK(*T.object2 == this->AsConstant(T.ObjectConstant2));
279 CHECK(*T.object1 != AsConstant(T.ObjectConstant2)); 279 CHECK(*T.object1 != this->AsConstant(T.ObjectConstant2));
280 CHECK(*T.array == AsConstant(T.ArrayConstant1)); 280 CHECK(*T.array == this->AsConstant(T.ArrayConstant1));
281 CHECK(*T.array == AsConstant(T.ArrayConstant2)); 281 CHECK(*T.array == this->AsConstant(T.ArrayConstant2));
282 } 282 }
283 283
284 void Is() { 284 void Is() {
285 // Reflexivity 285 // Reflexivity
286 CHECK(T.None->Is(T.None)); 286 CHECK(T.None->Is(T.None));
287 CHECK(T.Any->Is(T.Any)); 287 CHECK(T.Any->Is(T.Any));
288 CHECK(T.Object->Is(T.Object)); 288 CHECK(T.Object->Is(T.Object));
289 289
290 CHECK(T.ObjectClass->Is(T.ObjectClass)); 290 CHECK(T.ObjectClass->Is(T.ObjectClass));
291 CHECK(T.ObjectConstant1->Is(T.ObjectConstant1)); 291 CHECK(T.ObjectConstant1->Is(T.ObjectConstant1));
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
423 423
424 CheckDisjoint(T.ObjectConstant1, T.ObjectClass); 424 CheckDisjoint(T.ObjectConstant1, T.ObjectClass);
425 CheckDisjoint(T.ObjectConstant2, T.ObjectClass); 425 CheckDisjoint(T.ObjectConstant2, T.ObjectClass);
426 CheckDisjoint(T.ObjectConstant1, T.ArrayClass); 426 CheckDisjoint(T.ObjectConstant1, T.ArrayClass);
427 CheckDisjoint(T.ObjectConstant2, T.ArrayClass); 427 CheckDisjoint(T.ObjectConstant2, T.ArrayClass);
428 CheckDisjoint(T.ArrayConstant1, T.ObjectClass); 428 CheckDisjoint(T.ArrayConstant1, T.ObjectClass);
429 } 429 }
430 430
431 void Union() { 431 void Union() {
432 // Bitset-bitset 432 // Bitset-bitset
433 CHECK(IsBitset(T.Union(T.Object, T.Number))); 433 CHECK(this->IsBitset(T.Union(T.Object, T.Number)));
434 CHECK(IsBitset(T.Union(T.Object, T.Object))); 434 CHECK(this->IsBitset(T.Union(T.Object, T.Object)));
435 CHECK(IsBitset(T.Union(T.Any, T.None))); 435 CHECK(this->IsBitset(T.Union(T.Any, T.None)));
436 436
437 CheckEqual(T.Union(T.None, T.Number), T.Number); 437 CheckEqual(T.Union(T.None, T.Number), T.Number);
438 CheckEqual(T.Union(T.Object, T.Proxy), T.Receiver); 438 CheckEqual(T.Union(T.Object, T.Proxy), T.Receiver);
439 CheckEqual(T.Union(T.Number, T.String), T.Union(T.String, T.Number)); 439 CheckEqual(T.Union(T.Number, T.String), T.Union(T.String, T.Number));
440 CheckSub(T.Union(T.Number, T.String), T.Any); 440 CheckSub(T.Union(T.Number, T.String), T.Any);
441 441
442 // Class-class 442 // Class-class
443 CHECK(IsClass(T.Union(T.ObjectClass, T.ObjectClass))); 443 CHECK(this->IsClass(T.Union(T.ObjectClass, T.ObjectClass)));
444 CHECK(IsUnion(T.Union(T.ObjectClass, T.ArrayClass))); 444 CHECK(this->IsUnion(T.Union(T.ObjectClass, T.ArrayClass)));
445 445
446 CheckEqual(T.Union(T.ObjectClass, T.ObjectClass), T.ObjectClass); 446 CheckEqual(T.Union(T.ObjectClass, T.ObjectClass), T.ObjectClass);
447 CheckSub(T.None, T.Union(T.ObjectClass, T.ArrayClass)); 447 CheckSub(T.None, T.Union(T.ObjectClass, T.ArrayClass));
448 CheckSub(T.Union(T.ObjectClass, T.ArrayClass), T.Any); 448 CheckSub(T.Union(T.ObjectClass, T.ArrayClass), T.Any);
449 CheckSub(T.ObjectClass, T.Union(T.ObjectClass, T.ArrayClass)); 449 CheckSub(T.ObjectClass, T.Union(T.ObjectClass, T.ArrayClass));
450 CheckSub(T.ArrayClass, T.Union(T.ObjectClass, T.ArrayClass)); 450 CheckSub(T.ArrayClass, T.Union(T.ObjectClass, T.ArrayClass));
451 CheckSub(T.Union(T.ObjectClass, T.ArrayClass), T.Object); 451 CheckSub(T.Union(T.ObjectClass, T.ArrayClass), T.Object);
452 CheckUnordered(T.Union(T.ObjectClass, T.ArrayClass), T.Array); 452 CheckUnordered(T.Union(T.ObjectClass, T.ArrayClass), T.Array);
453 CheckOverlap(T.Union(T.ObjectClass, T.ArrayClass), T.Array); 453 CheckOverlap(T.Union(T.ObjectClass, T.ArrayClass), T.Array);
454 CheckDisjoint(T.Union(T.ObjectClass, T.ArrayClass), T.Number); 454 CheckDisjoint(T.Union(T.ObjectClass, T.ArrayClass), T.Number);
455 455
456 // Constant-constant 456 // Constant-constant
457 CHECK(IsConstant(T.Union(T.ObjectConstant1, T.ObjectConstant1))); 457 CHECK(this->IsConstant(T.Union(T.ObjectConstant1, T.ObjectConstant1)));
458 CHECK(IsConstant(T.Union(T.ArrayConstant1, T.ArrayConstant1))); 458 CHECK(this->IsConstant(T.Union(T.ArrayConstant1, T.ArrayConstant1)));
459 CHECK(IsUnion(T.Union(T.ObjectConstant1, T.ObjectConstant2))); 459 CHECK(this->IsUnion(T.Union(T.ObjectConstant1, T.ObjectConstant2)));
460 460
461 CheckEqual( 461 CheckEqual(
462 T.Union(T.ObjectConstant1, T.ObjectConstant1), 462 T.Union(T.ObjectConstant1, T.ObjectConstant1),
463 T.ObjectConstant1); 463 T.ObjectConstant1);
464 CheckEqual(T.Union(T.ArrayConstant1, T.ArrayConstant1), T.ArrayConstant1); 464 CheckEqual(T.Union(T.ArrayConstant1, T.ArrayConstant1), T.ArrayConstant1);
465 CheckEqual(T.Union(T.ArrayConstant1, T.ArrayConstant1), T.ArrayConstant2); 465 CheckEqual(T.Union(T.ArrayConstant1, T.ArrayConstant1), T.ArrayConstant2);
466 CheckSub(T.None, T.Union(T.ObjectConstant1, T.ObjectConstant2)); 466 CheckSub(T.None, T.Union(T.ObjectConstant1, T.ObjectConstant2));
467 CheckSub(T.Union(T.ObjectConstant1, T.ObjectConstant2), T.Any); 467 CheckSub(T.Union(T.ObjectConstant1, T.ObjectConstant2), T.Any);
468 CheckSub(T.ObjectConstant1, T.Union(T.ObjectConstant1, T.ObjectConstant2)); 468 CheckSub(T.ObjectConstant1, T.Union(T.ObjectConstant1, T.ObjectConstant2));
469 CheckSub(T.ObjectConstant2, T.Union(T.ObjectConstant1, T.ObjectConstant2)); 469 CheckSub(T.ObjectConstant2, T.Union(T.ObjectConstant1, T.ObjectConstant2));
470 CheckSub(T.ArrayConstant2, T.Union(T.ArrayConstant1, T.ObjectConstant2)); 470 CheckSub(T.ArrayConstant2, T.Union(T.ArrayConstant1, T.ObjectConstant2));
471 CheckSub(T.Union(T.ObjectConstant1, T.ObjectConstant2), T.Object); 471 CheckSub(T.Union(T.ObjectConstant1, T.ObjectConstant2), T.Object);
472 CheckUnordered( 472 CheckUnordered(
473 T.Union(T.ObjectConstant1, T.ObjectConstant2), T.ObjectClass); 473 T.Union(T.ObjectConstant1, T.ObjectConstant2), T.ObjectClass);
474 CheckUnordered(T.Union(T.ObjectConstant1, T.ArrayConstant1), T.Array); 474 CheckUnordered(T.Union(T.ObjectConstant1, T.ArrayConstant1), T.Array);
475 CheckOverlap(T.Union(T.ObjectConstant1, T.ArrayConstant1), T.Array); 475 CheckOverlap(T.Union(T.ObjectConstant1, T.ArrayConstant1), T.Array);
476 CheckOverlap( 476 CheckOverlap(
477 T.Union(T.ObjectConstant1, T.ArrayConstant1), T.ArrayConstant2); 477 T.Union(T.ObjectConstant1, T.ArrayConstant1), T.ArrayConstant2);
478 CheckDisjoint(T.Union(T.ObjectConstant1, T.ArrayConstant1), T.Number); 478 CheckDisjoint(T.Union(T.ObjectConstant1, T.ArrayConstant1), T.Number);
479 CheckDisjoint(T.Union(T.ObjectConstant1, T.ArrayConstant1), T.ObjectClass); 479 CheckDisjoint(T.Union(T.ObjectConstant1, T.ArrayConstant1), T.ObjectClass);
480 480
481 // Bitset-class 481 // Bitset-class
482 CHECK(IsBitset(T.Union(T.ObjectClass, T.Object))); 482 CHECK(this->IsBitset(T.Union(T.ObjectClass, T.Object)));
483 CHECK(IsUnion(T.Union(T.ObjectClass, T.Number))); 483 CHECK(this->IsUnion(T.Union(T.ObjectClass, T.Number)));
484 484
485 CheckEqual(T.Union(T.ObjectClass, T.Object), T.Object); 485 CheckEqual(T.Union(T.ObjectClass, T.Object), T.Object);
486 CheckSub(T.None, T.Union(T.ObjectClass, T.Number)); 486 CheckSub(T.None, T.Union(T.ObjectClass, T.Number));
487 CheckSub(T.Union(T.ObjectClass, T.Number), T.Any); 487 CheckSub(T.Union(T.ObjectClass, T.Number), T.Any);
488 CheckSub(T.Union(T.ObjectClass, T.Smi), T.Union(T.Object, T.Number)); 488 CheckSub(T.Union(T.ObjectClass, T.Smi), T.Union(T.Object, T.Number));
489 CheckSub(T.Union(T.ObjectClass, T.Array), T.Object); 489 CheckSub(T.Union(T.ObjectClass, T.Array), T.Object);
490 CheckUnordered(T.Union(T.ObjectClass, T.String), T.Array); 490 CheckUnordered(T.Union(T.ObjectClass, T.String), T.Array);
491 CheckOverlap(T.Union(T.ObjectClass, T.String), T.Object); 491 CheckOverlap(T.Union(T.ObjectClass, T.String), T.Object);
492 CheckDisjoint(T.Union(T.ObjectClass, T.String), T.Number); 492 CheckDisjoint(T.Union(T.ObjectClass, T.String), T.Number);
493 493
494 // Bitset-constant 494 // Bitset-constant
495 CHECK(IsBitset(T.Union(T.SmiConstant, T.Number))); 495 CHECK(this->IsBitset(T.Union(T.SmiConstant, T.Number)));
496 CHECK(IsBitset(T.Union(T.ObjectConstant1, T.Object))); 496 CHECK(this->IsBitset(T.Union(T.ObjectConstant1, T.Object)));
497 CHECK(IsUnion(T.Union(T.ObjectConstant2, T.Number))); 497 CHECK(this->IsUnion(T.Union(T.ObjectConstant2, T.Number)));
498 498
499 CheckEqual(T.Union(T.SmiConstant, T.Number), T.Number); 499 CheckEqual(T.Union(T.SmiConstant, T.Number), T.Number);
500 CheckEqual(T.Union(T.ObjectConstant1, T.Object), T.Object); 500 CheckEqual(T.Union(T.ObjectConstant1, T.Object), T.Object);
501 CheckSub(T.None, T.Union(T.ObjectConstant1, T.Number)); 501 CheckSub(T.None, T.Union(T.ObjectConstant1, T.Number));
502 CheckSub(T.Union(T.ObjectConstant1, T.Number), T.Any); 502 CheckSub(T.Union(T.ObjectConstant1, T.Number), T.Any);
503 CheckSub( 503 CheckSub(
504 T.Union(T.ObjectConstant1, T.Signed32), T.Union(T.Object, T.Number)); 504 T.Union(T.ObjectConstant1, T.Signed32), T.Union(T.Object, T.Number));
505 CheckSub(T.Union(T.ObjectConstant1, T.Array), T.Object); 505 CheckSub(T.Union(T.ObjectConstant1, T.Array), T.Object);
506 CheckUnordered(T.Union(T.ObjectConstant1, T.String), T.Array); 506 CheckUnordered(T.Union(T.ObjectConstant1, T.String), T.Array);
507 CheckOverlap(T.Union(T.ObjectConstant1, T.String), T.Object); 507 CheckOverlap(T.Union(T.ObjectConstant1, T.String), T.Object);
508 CheckDisjoint(T.Union(T.ObjectConstant1, T.String), T.Number); 508 CheckDisjoint(T.Union(T.ObjectConstant1, T.String), T.Number);
509 CheckEqual(T.Union(T.Signed32, T.Signed32Constant), T.Signed32); 509 CheckEqual(T.Union(T.Signed32, T.Signed32Constant), T.Signed32);
510 510
511 // Class-constant 511 // Class-constant
512 CHECK(IsUnion(T.Union(T.ObjectConstant1, T.ObjectClass))); 512 CHECK(this->IsUnion(T.Union(T.ObjectConstant1, T.ObjectClass)));
513 CHECK(IsUnion(T.Union(T.ArrayClass, T.ObjectConstant2))); 513 CHECK(this->IsUnion(T.Union(T.ArrayClass, T.ObjectConstant2)));
514 514
515 CheckSub(T.None, T.Union(T.ObjectConstant1, T.ArrayClass)); 515 CheckSub(T.None, T.Union(T.ObjectConstant1, T.ArrayClass));
516 CheckSub(T.Union(T.ObjectConstant1, T.ArrayClass), T.Any); 516 CheckSub(T.Union(T.ObjectConstant1, T.ArrayClass), T.Any);
517 CheckSub(T.Union(T.ObjectConstant1, T.ArrayClass), T.Object); 517 CheckSub(T.Union(T.ObjectConstant1, T.ArrayClass), T.Object);
518 CheckSub(T.ObjectConstant1, T.Union(T.ObjectConstant1, T.ArrayClass)); 518 CheckSub(T.ObjectConstant1, T.Union(T.ObjectConstant1, T.ArrayClass));
519 CheckSub(T.ArrayClass, T.Union(T.ObjectConstant1, T.ArrayClass)); 519 CheckSub(T.ArrayClass, T.Union(T.ObjectConstant1, T.ArrayClass));
520 CheckUnordered(T.ObjectClass, T.Union(T.ObjectConstant1, T.ArrayClass)); 520 CheckUnordered(T.ObjectClass, T.Union(T.ObjectConstant1, T.ArrayClass));
521 CheckSub( 521 CheckSub(
522 T.Union(T.ObjectConstant1, T.ArrayClass), T.Union(T.Array, T.Object)); 522 T.Union(T.ObjectConstant1, T.ArrayClass), T.Union(T.Array, T.Object));
523 CheckUnordered(T.Union(T.ObjectConstant1, T.ArrayClass), T.ArrayConstant1); 523 CheckUnordered(T.Union(T.ObjectConstant1, T.ArrayClass), T.ArrayConstant1);
524 CheckDisjoint(T.Union(T.ObjectConstant1, T.ArrayClass), T.ObjectConstant2); 524 CheckDisjoint(T.Union(T.ObjectConstant1, T.ArrayClass), T.ObjectConstant2);
525 CheckDisjoint(T.Union(T.ObjectConstant1, T.ArrayClass), T.ObjectClass); 525 CheckDisjoint(T.Union(T.ObjectConstant1, T.ArrayClass), T.ObjectClass);
526 526
527 // Bitset-union 527 // Bitset-union
528 CHECK(IsBitset( 528 CHECK(this->IsBitset(
529 T.Union(T.Object, T.Union(T.ObjectConstant1, T.ObjectClass)))); 529 T.Union(T.Object, T.Union(T.ObjectConstant1, T.ObjectClass))));
530 CHECK(IsUnion(T.Union(T.Union(T.ArrayClass, T.ObjectConstant2), T.Number))); 530 CHECK(this->IsUnion(
531 T.Union(T.Union(T.ArrayClass, T.ObjectConstant2), T.Number)));
531 532
532 CheckEqual( 533 CheckEqual(
533 T.Union(T.Object, T.Union(T.ObjectConstant1, T.ObjectClass)), 534 T.Union(T.Object, T.Union(T.ObjectConstant1, T.ObjectClass)),
534 T.Object); 535 T.Object);
535 CheckEqual( 536 CheckEqual(
536 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Number), 537 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Number),
537 T.Union(T.ObjectConstant1, T.Union(T.Number, T.ArrayClass))); 538 T.Union(T.ObjectConstant1, T.Union(T.Number, T.ArrayClass)));
538 CheckSub( 539 CheckSub(
539 T.Double, 540 T.Double,
540 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Number)); 541 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Number));
541 CheckSub( 542 CheckSub(
542 T.ObjectConstant1, 543 T.ObjectConstant1,
543 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Double)); 544 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Double));
544 CheckSub( 545 CheckSub(
545 T.None, 546 T.None,
546 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Double)); 547 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Double));
547 CheckSub( 548 CheckSub(
548 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Double), 549 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Double),
549 T.Any); 550 T.Any);
550 CheckSub( 551 CheckSub(
551 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Double), 552 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Double),
552 T.Union(T.ObjectConstant1, T.Union(T.Number, T.ArrayClass))); 553 T.Union(T.ObjectConstant1, T.Union(T.Number, T.ArrayClass)));
553 554
554 // Class-union 555 // Class-union
555 CHECK(IsUnion( 556 CHECK(this->IsUnion(
556 T.Union(T.Union(T.ArrayClass, T.ObjectConstant2), T.ArrayClass))); 557 T.Union(T.Union(T.ArrayClass, T.ObjectConstant2), T.ArrayClass)));
557 CHECK(IsUnion( 558 CHECK(this->IsUnion(
558 T.Union(T.Union(T.ArrayClass, T.ObjectConstant2), T.ObjectClass))); 559 T.Union(T.Union(T.ArrayClass, T.ObjectConstant2), T.ObjectClass)));
559 560
560 CheckEqual( 561 CheckEqual(
561 T.Union(T.ObjectClass, T.Union(T.ObjectConstant1, T.ObjectClass)), 562 T.Union(T.ObjectClass, T.Union(T.ObjectConstant1, T.ObjectClass)),
562 T.Union(T.ObjectClass, T.ObjectConstant1)); 563 T.Union(T.ObjectClass, T.ObjectConstant1));
563 CheckSub( 564 CheckSub(
564 T.None, 565 T.None,
565 T.Union(T.ObjectClass, T.Union(T.ObjectConstant1, T.ObjectClass))); 566 T.Union(T.ObjectClass, T.Union(T.ObjectConstant1, T.ObjectClass)));
566 CheckSub( 567 CheckSub(
567 T.Union(T.ObjectClass, T.Union(T.ObjectConstant1, T.ObjectClass)), 568 T.Union(T.ObjectClass, T.Union(T.ObjectConstant1, T.ObjectClass)),
568 T.Any); 569 T.Any);
569 CheckSub( 570 CheckSub(
570 T.Union(T.ObjectClass, T.Union(T.ObjectConstant1, T.ObjectClass)), 571 T.Union(T.ObjectClass, T.Union(T.ObjectConstant1, T.ObjectClass)),
571 T.Object); 572 T.Object);
572 CheckEqual( 573 CheckEqual(
573 T.Union(T.Union(T.ArrayClass, T.ObjectConstant2), T.ArrayClass), 574 T.Union(T.Union(T.ArrayClass, T.ObjectConstant2), T.ArrayClass),
574 T.Union(T.ArrayClass, T.ObjectConstant2)); 575 T.Union(T.ArrayClass, T.ObjectConstant2));
575 576
576 // Constant-union 577 // Constant-union
577 CHECK(IsUnion(T.Union( 578 CHECK(this->IsUnion(T.Union(
578 T.ObjectConstant1, T.Union(T.ObjectConstant1, T.ObjectConstant2)))); 579 T.ObjectConstant1, T.Union(T.ObjectConstant1, T.ObjectConstant2))));
579 CHECK(IsUnion(T.Union( 580 CHECK(this->IsUnion(T.Union(
580 T.Union(T.ArrayConstant1, T.ObjectClass), T.ObjectConstant1))); 581 T.Union(T.ArrayConstant1, T.ObjectClass), T.ObjectConstant1)));
581 CHECK(IsUnion(T.Union( 582 CHECK(this->IsUnion(T.Union(
582 T.Union(T.ArrayConstant1, T.ObjectConstant2), T.ObjectConstant1))); 583 T.Union(T.ArrayConstant1, T.ObjectConstant2), T.ObjectConstant1)));
583 584
584 CheckEqual( 585 CheckEqual(
585 T.Union( 586 T.Union(
586 T.ObjectConstant1, T.Union(T.ObjectConstant1, T.ObjectConstant2)), 587 T.ObjectConstant1, T.Union(T.ObjectConstant1, T.ObjectConstant2)),
587 T.Union(T.ObjectConstant2, T.ObjectConstant1)); 588 T.Union(T.ObjectConstant2, T.ObjectConstant1));
588 CheckEqual( 589 CheckEqual(
589 T.Union( 590 T.Union(
590 T.Union(T.ArrayConstant1, T.ObjectConstant2), T.ObjectConstant1), 591 T.Union(T.ArrayConstant1, T.ObjectConstant2), T.ObjectConstant1),
591 T.Union( 592 T.Union(
592 T.ObjectConstant2, T.Union(T.ArrayConstant1, T.ObjectConstant1))); 593 T.ObjectConstant2, T.Union(T.ArrayConstant1, T.ObjectConstant1)));
593 594
594 // Union-union 595 // Union-union
595 CHECK(IsBitset(T.Union( 596 CHECK(this->IsBitset(T.Union(
596 T.Union(T.Number, T.ArrayClass), 597 T.Union(T.Number, T.ArrayClass),
597 T.Union(T.Signed32, T.Array)))); 598 T.Union(T.Signed32, T.Array))));
598 CHECK(IsUnion(T.Union( 599 CHECK(this->IsUnion(T.Union(
599 T.Union(T.Number, T.ArrayClass), 600 T.Union(T.Number, T.ArrayClass),
600 T.Union(T.ObjectClass, T.ArrayClass)))); 601 T.Union(T.ObjectClass, T.ArrayClass))));
601 602
602 CheckEqual( 603 CheckEqual(
603 T.Union( 604 T.Union(
604 T.Union(T.ObjectConstant2, T.ObjectConstant1), 605 T.Union(T.ObjectConstant2, T.ObjectConstant1),
605 T.Union(T.ObjectConstant1, T.ObjectConstant2)), 606 T.Union(T.ObjectConstant1, T.ObjectConstant2)),
606 T.Union(T.ObjectConstant2, T.ObjectConstant1)); 607 T.Union(T.ObjectConstant2, T.ObjectConstant1));
607 CheckEqual( 608 CheckEqual(
608 T.Union( 609 T.Union(
609 T.Union(T.ObjectConstant2, T.ArrayConstant1), 610 T.Union(T.ObjectConstant2, T.ArrayConstant1),
610 T.Union(T.ObjectConstant1, T.ArrayConstant2)), 611 T.Union(T.ObjectConstant1, T.ArrayConstant2)),
611 T.Union( 612 T.Union(
612 T.Union(T.ObjectConstant1, T.ObjectConstant2), 613 T.Union(T.ObjectConstant1, T.ObjectConstant2),
613 T.ArrayConstant1)); 614 T.ArrayConstant1));
614 CheckEqual( 615 CheckEqual(
615 T.Union(T.Union(T.Number, T.ArrayClass), T.Union(T.Smi, T.Array)), 616 T.Union(T.Union(T.Number, T.ArrayClass), T.Union(T.Smi, T.Array)),
616 T.Union(T.Number, T.Array)); 617 T.Union(T.Number, T.Array));
617 } 618 }
618 619
619 void Intersect() { 620 void Intersect() {
620 // Bitset-bitset 621 // Bitset-bitset
621 CHECK(IsBitset(T.Intersect(T.Object, T.Number))); 622 CHECK(this->IsBitset(T.Intersect(T.Object, T.Number)));
622 CHECK(IsBitset(T.Intersect(T.Object, T.Object))); 623 CHECK(this->IsBitset(T.Intersect(T.Object, T.Object)));
623 CHECK(IsBitset(T.Intersect(T.Any, T.None))); 624 CHECK(this->IsBitset(T.Intersect(T.Any, T.None)));
624 625
625 CheckEqual(T.Intersect(T.None, T.Number), T.None); 626 CheckEqual(T.Intersect(T.None, T.Number), T.None);
626 CheckEqual(T.Intersect(T.Object, T.Proxy), T.None); 627 CheckEqual(T.Intersect(T.Object, T.Proxy), T.None);
627 CheckEqual(T.Intersect(T.Name, T.String), T.Intersect(T.String, T.Name)); 628 CheckEqual(T.Intersect(T.Name, T.String), T.Intersect(T.String, T.Name));
628 CheckEqual(T.Intersect(T.UniqueName, T.String), T.InternalizedString); 629 CheckEqual(T.Intersect(T.UniqueName, T.String), T.InternalizedString);
629 630
630 // Class-class 631 // Class-class
631 CHECK(IsClass(T.Intersect(T.ObjectClass, T.ObjectClass))); 632 CHECK(this->IsClass(T.Intersect(T.ObjectClass, T.ObjectClass)));
632 CHECK(IsBitset(T.Intersect(T.ObjectClass, T.ArrayClass))); 633 CHECK(this->IsBitset(T.Intersect(T.ObjectClass, T.ArrayClass)));
633 634
634 CheckEqual(T.Intersect(T.ObjectClass, T.ObjectClass), T.ObjectClass); 635 CheckEqual(T.Intersect(T.ObjectClass, T.ObjectClass), T.ObjectClass);
635 CheckEqual(T.Intersect(T.ObjectClass, T.ArrayClass), T.None); 636 CheckEqual(T.Intersect(T.ObjectClass, T.ArrayClass), T.None);
636 637
637 // Constant-constant 638 // Constant-constant
638 CHECK(IsConstant(T.Intersect(T.ObjectConstant1, T.ObjectConstant1))); 639 CHECK(this->IsConstant(T.Intersect(T.ObjectConstant1, T.ObjectConstant1)));
639 CHECK(IsConstant(T.Intersect(T.ArrayConstant1, T.ArrayConstant2))); 640 CHECK(this->IsConstant(T.Intersect(T.ArrayConstant1, T.ArrayConstant2)));
640 CHECK(IsBitset(T.Intersect(T.ObjectConstant1, T.ObjectConstant2))); 641 CHECK(this->IsBitset(T.Intersect(T.ObjectConstant1, T.ObjectConstant2)));
641 642
642 CheckEqual( 643 CheckEqual(
643 T.Intersect(T.ObjectConstant1, T.ObjectConstant1), T.ObjectConstant1); 644 T.Intersect(T.ObjectConstant1, T.ObjectConstant1), T.ObjectConstant1);
644 CheckEqual( 645 CheckEqual(
645 T.Intersect(T.ArrayConstant1, T.ArrayConstant2), T.ArrayConstant1); 646 T.Intersect(T.ArrayConstant1, T.ArrayConstant2), T.ArrayConstant1);
646 CheckEqual(T.Intersect(T.ObjectConstant1, T.ObjectConstant2), T.None); 647 CheckEqual(T.Intersect(T.ObjectConstant1, T.ObjectConstant2), T.None);
647 648
648 // Bitset-class 649 // Bitset-class
649 CHECK(IsClass(T.Intersect(T.ObjectClass, T.Object))); 650 CHECK(this->IsClass(T.Intersect(T.ObjectClass, T.Object)));
650 CHECK(IsBitset(T.Intersect(T.ObjectClass, T.Number))); 651 CHECK(this->IsBitset(T.Intersect(T.ObjectClass, T.Number)));
651 652
652 CheckEqual(T.Intersect(T.ObjectClass, T.Object), T.ObjectClass); 653 CheckEqual(T.Intersect(T.ObjectClass, T.Object), T.ObjectClass);
653 CheckEqual(T.Intersect(T.ObjectClass, T.Array), T.None); 654 CheckEqual(T.Intersect(T.ObjectClass, T.Array), T.None);
654 CheckEqual(T.Intersect(T.ObjectClass, T.Number), T.None); 655 CheckEqual(T.Intersect(T.ObjectClass, T.Number), T.None);
655 656
656 // Bitset-constant 657 // Bitset-constant
657 CHECK(IsBitset(T.Intersect(T.Smi, T.Number))); 658 CHECK(this->IsBitset(T.Intersect(T.Smi, T.Number)));
658 CHECK(IsConstant(T.Intersect(T.SmiConstant, T.Number))); 659 CHECK(this->IsConstant(T.Intersect(T.SmiConstant, T.Number)));
659 CHECK(IsConstant(T.Intersect(T.ObjectConstant1, T.Object))); 660 CHECK(this->IsConstant(T.Intersect(T.ObjectConstant1, T.Object)));
660 661
661 CheckEqual(T.Intersect(T.Smi, T.Number), T.Smi); 662 CheckEqual(T.Intersect(T.Smi, T.Number), T.Smi);
662 CheckEqual(T.Intersect(T.SmiConstant, T.Number), T.SmiConstant); 663 CheckEqual(T.Intersect(T.SmiConstant, T.Number), T.SmiConstant);
663 CheckEqual(T.Intersect(T.ObjectConstant1, T.Object), T.ObjectConstant1); 664 CheckEqual(T.Intersect(T.ObjectConstant1, T.Object), T.ObjectConstant1);
664 665
665 // Class-constant 666 // Class-constant
666 CHECK(IsBitset(T.Intersect(T.ObjectConstant1, T.ObjectClass))); 667 CHECK(this->IsBitset(T.Intersect(T.ObjectConstant1, T.ObjectClass)));
667 CHECK(IsBitset(T.Intersect(T.ArrayClass, T.ObjectConstant2))); 668 CHECK(this->IsBitset(T.Intersect(T.ArrayClass, T.ObjectConstant2)));
668 669
669 CheckEqual(T.Intersect(T.ObjectConstant1, T.ObjectClass), T.None); 670 CheckEqual(T.Intersect(T.ObjectConstant1, T.ObjectClass), T.None);
670 CheckEqual(T.Intersect(T.ArrayClass, T.ObjectConstant2), T.None); 671 CheckEqual(T.Intersect(T.ArrayClass, T.ObjectConstant2), T.None);
671 672
672 // Bitset-union 673 // Bitset-union
673 CHECK(IsUnion( 674 CHECK(this->IsUnion(
674 T.Intersect(T.Object, T.Union(T.ObjectConstant1, T.ObjectClass)))); 675 T.Intersect(T.Object, T.Union(T.ObjectConstant1, T.ObjectClass))));
675 CHECK(IsBitset( 676 CHECK(this->IsBitset(
676 T.Intersect(T.Union(T.ArrayClass, T.ObjectConstant2), T.Number))); 677 T.Intersect(T.Union(T.ArrayClass, T.ObjectConstant2), T.Number)));
677 678
678 CheckEqual( 679 CheckEqual(
679 T.Intersect(T.Object, T.Union(T.ObjectConstant1, T.ObjectClass)), 680 T.Intersect(T.Object, T.Union(T.ObjectConstant1, T.ObjectClass)),
680 T.Union(T.ObjectConstant1, T.ObjectClass)); 681 T.Union(T.ObjectConstant1, T.ObjectClass));
681 CheckEqual( 682 CheckEqual(
682 T.Intersect(T.Union(T.ArrayClass, T.ObjectConstant1), T.Number), 683 T.Intersect(T.Union(T.ArrayClass, T.ObjectConstant1), T.Number),
683 T.None); 684 T.None);
684 685
685 // Class-union 686 // Class-union
686 CHECK(IsClass( 687 CHECK(this->IsClass(
687 T.Intersect(T.Union(T.ArrayClass, T.ObjectConstant2), T.ArrayClass))); 688 T.Intersect(T.Union(T.ArrayClass, T.ObjectConstant2), T.ArrayClass)));
688 CHECK(IsClass( 689 CHECK(this->IsClass(
689 T.Intersect(T.Union(T.Object, T.SmiConstant), T.ArrayClass))); 690 T.Intersect(T.Union(T.Object, T.SmiConstant), T.ArrayClass)));
690 CHECK(IsBitset( 691 CHECK(this->IsBitset(
691 T.Intersect(T.Union(T.ObjectClass, T.ArrayConstant1), T.ArrayClass))); 692 T.Intersect(T.Union(T.ObjectClass, T.ArrayConstant1), T.ArrayClass)));
692 693
693 CheckEqual( 694 CheckEqual(
694 T.Intersect(T.ArrayClass, T.Union(T.ObjectConstant2, T.ArrayClass)), 695 T.Intersect(T.ArrayClass, T.Union(T.ObjectConstant2, T.ArrayClass)),
695 T.ArrayClass); 696 T.ArrayClass);
696 CheckEqual( 697 CheckEqual(
697 T.Intersect(T.ArrayClass, T.Union(T.Object, T.SmiConstant)), 698 T.Intersect(T.ArrayClass, T.Union(T.Object, T.SmiConstant)),
698 T.ArrayClass); 699 T.ArrayClass);
699 CheckEqual( 700 CheckEqual(
700 T.Intersect(T.Union(T.ObjectClass, T.ArrayConstant1), T.ArrayClass), 701 T.Intersect(T.Union(T.ObjectClass, T.ArrayConstant1), T.ArrayClass),
701 T.None); 702 T.None);
702 703
703 // Constant-union 704 // Constant-union
704 CHECK(IsConstant(T.Intersect( 705 CHECK(this->IsConstant(T.Intersect(
705 T.ObjectConstant1, T.Union(T.ObjectConstant1, T.ObjectConstant2)))); 706 T.ObjectConstant1, T.Union(T.ObjectConstant1, T.ObjectConstant2))));
706 CHECK(IsConstant(T.Intersect( 707 CHECK(this->IsConstant(T.Intersect(
707 T.Union(T.Number, T.ObjectClass), T.SmiConstant))); 708 T.Union(T.Number, T.ObjectClass), T.SmiConstant)));
708 CHECK(IsBitset(T.Intersect( 709 CHECK(this->IsBitset(T.Intersect(
709 T.Union(T.ArrayConstant1, T.ObjectClass), T.ObjectConstant1))); 710 T.Union(T.ArrayConstant1, T.ObjectClass), T.ObjectConstant1)));
710 711
711 CheckEqual( 712 CheckEqual(
712 T.Intersect( 713 T.Intersect(
713 T.ObjectConstant1, T.Union(T.ObjectConstant1, T.ObjectConstant2)), 714 T.ObjectConstant1, T.Union(T.ObjectConstant1, T.ObjectConstant2)),
714 T.ObjectConstant1); 715 T.ObjectConstant1);
715 CheckEqual( 716 CheckEqual(
716 T.Intersect(T.SmiConstant, T.Union(T.Number, T.ObjectConstant2)), 717 T.Intersect(T.SmiConstant, T.Union(T.Number, T.ObjectConstant2)),
717 T.SmiConstant); 718 T.SmiConstant);
718 CheckEqual( 719 CheckEqual(
719 T.Intersect( 720 T.Intersect(
720 T.Union(T.ArrayConstant1, T.ObjectClass), T.ObjectConstant1), 721 T.Union(T.ArrayConstant1, T.ObjectClass), T.ObjectConstant1),
721 T.None); 722 T.None);
722 723
723 // Union-union 724 // Union-union
724 CHECK(IsUnion(T.Intersect( 725 CHECK(this->IsUnion(T.Intersect(
725 T.Union(T.Number, T.ArrayClass), T.Union(T.Signed32, T.Array)))); 726 T.Union(T.Number, T.ArrayClass), T.Union(T.Signed32, T.Array))));
726 CHECK(IsBitset(T.Intersect( 727 CHECK(this->IsBitset(T.Intersect(
727 T.Union(T.Number, T.ObjectClass), T.Union(T.Signed32, T.Array)))); 728 T.Union(T.Number, T.ObjectClass), T.Union(T.Signed32, T.Array))));
728 729
729 CheckEqual( 730 CheckEqual(
730 T.Intersect( 731 T.Intersect(
731 T.Union(T.Number, T.ArrayClass), 732 T.Union(T.Number, T.ArrayClass),
732 T.Union(T.Smi, T.Array)), 733 T.Union(T.Smi, T.Array)),
733 T.Union(T.Smi, T.ArrayClass)); 734 T.Union(T.Smi, T.ArrayClass));
734 CheckEqual( 735 CheckEqual(
735 T.Intersect( 736 T.Intersect(
736 T.Union(T.Number, T.ObjectClass), 737 T.Union(T.Number, T.ObjectClass),
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
801 ZoneTests().Union(); 802 ZoneTests().Union();
802 HeapTests().Union(); 803 HeapTests().Union();
803 } 804 }
804 805
805 806
806 TEST(Intersect) { 807 TEST(Intersect) {
807 CcTest::InitializeVM(); 808 CcTest::InitializeVM();
808 ZoneTests().Intersect(); 809 ZoneTests().Intersect();
809 HeapTests().Intersect(); 810 HeapTests().Intersect();
810 } 811 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698