| OLD | NEW |
| 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 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 311 CheckSub(T.Receiver, T.Any); | 311 CheckSub(T.Receiver, T.Any); |
| 312 CheckSub(T.Object, T.Any); | 312 CheckSub(T.Object, T.Any); |
| 313 CheckSub(T.Object, T.Receiver); | 313 CheckSub(T.Object, T.Receiver); |
| 314 CheckSub(T.Array, T.Object); | 314 CheckSub(T.Array, T.Object); |
| 315 CheckSub(T.Function, T.Object); | 315 CheckSub(T.Function, T.Object); |
| 316 CheckSub(T.Proxy, T.Receiver); | 316 CheckSub(T.Proxy, T.Receiver); |
| 317 CheckUnordered(T.Object, T.Proxy); | 317 CheckUnordered(T.Object, T.Proxy); |
| 318 CheckUnordered(T.Array, T.Function); | 318 CheckUnordered(T.Array, T.Function); |
| 319 | 319 |
| 320 // Structured subtyping | 320 // Structured subtyping |
| 321 CheckSub(T.None, T.ObjectClass); | |
| 322 CheckSub(T.None, T.ObjectConstant1); | |
| 323 CheckSub(T.ObjectClass, T.Any); | |
| 324 CheckSub(T.ObjectConstant1, T.Any); | |
| 325 | |
| 326 CheckSub(T.ObjectClass, T.Object); | 321 CheckSub(T.ObjectClass, T.Object); |
| 327 CheckSub(T.ArrayClass, T.Object); | 322 CheckSub(T.ArrayClass, T.Object); |
| 328 CheckUnordered(T.ObjectClass, T.ArrayClass); | 323 CheckUnordered(T.ObjectClass, T.ArrayClass); |
| 329 | 324 |
| 330 CheckSub(T.SmiConstant, T.Smi); | 325 CheckSub(T.SmiConstant, T.Smi); |
| 331 CheckSub(T.SmiConstant, T.Signed32); | 326 CheckSub(T.SmiConstant, T.Signed32); |
| 332 CheckSub(T.SmiConstant, T.Number); | 327 CheckSub(T.SmiConstant, T.Number); |
| 333 CheckSub(T.ObjectConstant1, T.Object); | 328 CheckSub(T.ObjectConstant1, T.Object); |
| 334 CheckSub(T.ObjectConstant2, T.Object); | 329 CheckSub(T.ObjectConstant2, T.Object); |
| 335 CheckSub(T.ArrayConstant1, T.Object); | 330 CheckSub(T.ArrayConstant1, T.Object); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 382 | 377 |
| 383 CheckOverlap(T.Receiver, T.Any); | 378 CheckOverlap(T.Receiver, T.Any); |
| 384 CheckOverlap(T.Object, T.Any); | 379 CheckOverlap(T.Object, T.Any); |
| 385 CheckOverlap(T.Object, T.Receiver); | 380 CheckOverlap(T.Object, T.Receiver); |
| 386 CheckOverlap(T.Array, T.Object); | 381 CheckOverlap(T.Array, T.Object); |
| 387 CheckOverlap(T.Function, T.Object); | 382 CheckOverlap(T.Function, T.Object); |
| 388 CheckOverlap(T.Proxy, T.Receiver); | 383 CheckOverlap(T.Proxy, T.Receiver); |
| 389 CheckDisjoint(T.Object, T.Proxy); | 384 CheckDisjoint(T.Object, T.Proxy); |
| 390 CheckDisjoint(T.Array, T.Function); | 385 CheckDisjoint(T.Array, T.Function); |
| 391 | 386 |
| 392 CheckOverlap(T.ObjectClass, T.Any); | |
| 393 CheckOverlap(T.ObjectConstant1, T.Any); | |
| 394 | |
| 395 CheckOverlap(T.ObjectClass, T.Object); | 387 CheckOverlap(T.ObjectClass, T.Object); |
| 396 CheckOverlap(T.ArrayClass, T.Object); | 388 CheckOverlap(T.ArrayClass, T.Object); |
| 397 CheckOverlap(T.ObjectClass, T.ObjectClass); | 389 CheckOverlap(T.ObjectClass, T.ObjectClass); |
| 398 CheckOverlap(T.ArrayClass, T.ArrayClass); | 390 CheckOverlap(T.ArrayClass, T.ArrayClass); |
| 399 CheckDisjoint(T.ObjectClass, T.ArrayClass); | 391 CheckDisjoint(T.ObjectClass, T.ArrayClass); |
| 400 | 392 |
| 401 CheckOverlap(T.SmiConstant, T.Smi); | 393 CheckOverlap(T.SmiConstant, T.Smi); |
| 402 CheckOverlap(T.SmiConstant, T.Signed32); | 394 CheckOverlap(T.SmiConstant, T.Signed32); |
| 403 CheckOverlap(T.SmiConstant, T.Number); | 395 CheckOverlap(T.SmiConstant, T.Number); |
| 404 CheckDisjoint(T.SmiConstant, T.Double); | 396 CheckDisjoint(T.SmiConstant, T.Double); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 433 CheckEqual(T.Union(T.None, T.Number), T.Number); | 425 CheckEqual(T.Union(T.None, T.Number), T.Number); |
| 434 CheckEqual(T.Union(T.Object, T.Proxy), T.Receiver); | 426 CheckEqual(T.Union(T.Object, T.Proxy), T.Receiver); |
| 435 CheckEqual(T.Union(T.Number, T.String), T.Union(T.String, T.Number)); | 427 CheckEqual(T.Union(T.Number, T.String), T.Union(T.String, T.Number)); |
| 436 CheckSub(T.Union(T.Number, T.String), T.Any); | 428 CheckSub(T.Union(T.Number, T.String), T.Any); |
| 437 | 429 |
| 438 // Class-class | 430 // Class-class |
| 439 CHECK(IsClass(Type::Union(T.ObjectClass, T.ObjectClass))); | 431 CHECK(IsClass(Type::Union(T.ObjectClass, T.ObjectClass))); |
| 440 CHECK(IsUnion(Type::Union(T.ObjectClass, T.ArrayClass))); | 432 CHECK(IsUnion(Type::Union(T.ObjectClass, T.ArrayClass))); |
| 441 | 433 |
| 442 CheckEqual(T.Union(T.ObjectClass, T.ObjectClass), T.ObjectClass); | 434 CheckEqual(T.Union(T.ObjectClass, T.ObjectClass), T.ObjectClass); |
| 443 CheckSub(T.None, T.Union(T.ObjectClass, T.ArrayClass)); | |
| 444 CheckSub(T.Union(T.ObjectClass, T.ArrayClass), T.Any); | |
| 445 CheckSub(T.ObjectClass, T.Union(T.ObjectClass, T.ArrayClass)); | 435 CheckSub(T.ObjectClass, T.Union(T.ObjectClass, T.ArrayClass)); |
| 446 CheckSub(T.ArrayClass, T.Union(T.ObjectClass, T.ArrayClass)); | 436 CheckSub(T.ArrayClass, T.Union(T.ObjectClass, T.ArrayClass)); |
| 447 CheckSub(T.Union(T.ObjectClass, T.ArrayClass), T.Object); | 437 CheckSub(T.Union(T.ObjectClass, T.ArrayClass), T.Object); |
| 448 CheckUnordered(T.Union(T.ObjectClass, T.ArrayClass), T.Array); | 438 CheckUnordered(T.Union(T.ObjectClass, T.ArrayClass), T.Array); |
| 449 CheckOverlap(T.Union(T.ObjectClass, T.ArrayClass), T.Array); | 439 CheckOverlap(T.Union(T.ObjectClass, T.ArrayClass), T.Array); |
| 450 CheckDisjoint(T.Union(T.ObjectClass, T.ArrayClass), T.Number); | 440 CheckDisjoint(T.Union(T.ObjectClass, T.ArrayClass), T.Number); |
| 451 | 441 |
| 452 // Constant-constant | 442 // Constant-constant |
| 453 CHECK(IsConstant(Type::Union(T.ObjectConstant1, T.ObjectConstant1))); | 443 CHECK(IsConstant(Type::Union(T.ObjectConstant1, T.ObjectConstant1))); |
| 454 CHECK(IsConstant(Type::Union(T.ArrayConstant1, T.ArrayConstant1))); | 444 CHECK(IsConstant(Type::Union(T.ArrayConstant1, T.ArrayConstant1))); |
| 455 CHECK(IsUnion(Type::Union(T.ObjectConstant1, T.ObjectConstant2))); | 445 CHECK(IsUnion(Type::Union(T.ObjectConstant1, T.ObjectConstant2))); |
| 456 | 446 |
| 457 CheckEqual(T.Union(T.ObjectConstant1, T.ObjectConstant1), T.ObjectConstant1); | 447 CheckEqual(T.Union(T.ObjectConstant1, T.ObjectConstant1), T.ObjectConstant1); |
| 458 CheckEqual(T.Union(T.ArrayConstant1, T.ArrayConstant1), T.ArrayConstant1); | 448 CheckEqual(T.Union(T.ArrayConstant1, T.ArrayConstant1), T.ArrayConstant1); |
| 459 CheckEqual(T.Union(T.ArrayConstant1, T.ArrayConstant1), T.ArrayConstant2); | 449 CheckEqual(T.Union(T.ArrayConstant1, T.ArrayConstant1), T.ArrayConstant2); |
| 460 CheckSub(T.None, T.Union(T.ObjectConstant1, T.ObjectConstant2)); | |
| 461 CheckSub(T.Union(T.ObjectConstant1, T.ObjectConstant2), T.Any); | |
| 462 CheckSub(T.ObjectConstant1, T.Union(T.ObjectConstant1, T.ObjectConstant2)); | 450 CheckSub(T.ObjectConstant1, T.Union(T.ObjectConstant1, T.ObjectConstant2)); |
| 463 CheckSub(T.ObjectConstant2, T.Union(T.ObjectConstant1, T.ObjectConstant2)); | 451 CheckSub(T.ObjectConstant2, T.Union(T.ObjectConstant1, T.ObjectConstant2)); |
| 464 CheckSub(T.ArrayConstant2, T.Union(T.ArrayConstant1, T.ObjectConstant2)); | 452 CheckSub(T.ArrayConstant2, T.Union(T.ArrayConstant1, T.ObjectConstant2)); |
| 465 CheckSub(T.Union(T.ObjectConstant1, T.ObjectConstant2), T.Object); | 453 CheckSub(T.Union(T.ObjectConstant1, T.ObjectConstant2), T.Object); |
| 466 CheckUnordered(T.Union(T.ObjectConstant1, T.ObjectConstant2), T.ObjectClass); | 454 CheckUnordered(T.Union(T.ObjectConstant1, T.ObjectConstant2), T.ObjectClass); |
| 467 CheckUnordered(T.Union(T.ObjectConstant1, T.ArrayConstant1), T.Array); | 455 CheckUnordered(T.Union(T.ObjectConstant1, T.ArrayConstant1), T.Array); |
| 468 CheckOverlap(T.Union(T.ObjectConstant1, T.ArrayConstant1), T.Array); | 456 CheckOverlap(T.Union(T.ObjectConstant1, T.ArrayConstant1), T.Array); |
| 469 CheckOverlap(T.Union(T.ObjectConstant1, T.ArrayConstant1), T.ArrayConstant2); | 457 CheckOverlap(T.Union(T.ObjectConstant1, T.ArrayConstant1), T.ArrayConstant2); |
| 470 CheckDisjoint(T.Union(T.ObjectConstant1, T.ArrayConstant1), T.Number); | 458 CheckDisjoint(T.Union(T.ObjectConstant1, T.ArrayConstant1), T.Number); |
| 471 CheckDisjoint(T.Union(T.ObjectConstant1, T.ArrayConstant1), T.ObjectClass); | 459 CheckDisjoint(T.Union(T.ObjectConstant1, T.ArrayConstant1), T.ObjectClass); |
| 472 | 460 |
| 473 // Bitset-class | 461 // Bitset-class |
| 474 CHECK(IsBitset(Type::Union(T.ObjectClass, T.Object))); | 462 CHECK(IsBitset(Type::Union(T.ObjectClass, T.Object))); |
| 475 CHECK(IsUnion(Type::Union(T.ObjectClass, T.Number))); | 463 CHECK(IsUnion(Type::Union(T.ObjectClass, T.Number))); |
| 476 | 464 |
| 477 CheckEqual(T.Union(T.ObjectClass, T.Object), T.Object); | 465 CheckEqual(T.Union(T.ObjectClass, T.Object), T.Object); |
| 478 CheckSub(T.None, T.Union(T.ObjectClass, T.Number)); | |
| 479 CheckSub(T.Union(T.ObjectClass, T.Number), T.Any); | 466 CheckSub(T.Union(T.ObjectClass, T.Number), T.Any); |
| 480 CheckSub(T.Union(T.ObjectClass, T.Smi), T.Union(T.Object, T.Number)); | 467 CheckSub(T.Union(T.ObjectClass, T.Smi), T.Union(T.Object, T.Number)); |
| 481 CheckSub(T.Union(T.ObjectClass, T.Array), T.Object); | 468 CheckSub(T.Union(T.ObjectClass, T.Array), T.Object); |
| 482 CheckUnordered(T.Union(T.ObjectClass, T.String), T.Array); | 469 CheckUnordered(T.Union(T.ObjectClass, T.String), T.Array); |
| 483 CheckOverlap(T.Union(T.ObjectClass, T.String), T.Object); | 470 CheckOverlap(T.Union(T.ObjectClass, T.String), T.Object); |
| 484 CheckDisjoint(T.Union(T.ObjectClass, T.String), T.Number); | 471 CheckDisjoint(T.Union(T.ObjectClass, T.String), T.Number); |
| 485 | 472 |
| 486 // Bitset-constant | 473 // Bitset-constant |
| 487 CHECK(IsBitset(Type::Union(T.SmiConstant, T.Number))); | 474 CHECK(IsBitset(Type::Union(T.SmiConstant, T.Number))); |
| 488 CHECK(IsBitset(Type::Union(T.ObjectConstant1, T.Object))); | 475 CHECK(IsBitset(Type::Union(T.ObjectConstant1, T.Object))); |
| 489 CHECK(IsUnion(Type::Union(T.ObjectConstant2, T.Number))); | 476 CHECK(IsUnion(Type::Union(T.ObjectConstant2, T.Number))); |
| 490 | 477 |
| 491 CheckEqual(T.Union(T.SmiConstant, T.Number), T.Number); | 478 CheckEqual(T.Union(T.SmiConstant, T.Number), T.Number); |
| 492 CheckEqual(T.Union(T.ObjectConstant1, T.Object), T.Object); | 479 CheckEqual(T.Union(T.ObjectConstant1, T.Object), T.Object); |
| 493 CheckSub(T.None, T.Union(T.ObjectConstant1, T.Number)); | |
| 494 CheckSub(T.Union(T.ObjectConstant1, T.Number), T.Any); | 480 CheckSub(T.Union(T.ObjectConstant1, T.Number), T.Any); |
| 495 CheckSub(T.Union(T.ObjectConstant1, T.Signed32), T.Union(T.Object, T.Number)); | 481 CheckSub(T.Union(T.ObjectConstant1, T.Signed32), T.Union(T.Object, T.Number)); |
| 496 CheckSub(T.Union(T.ObjectConstant1, T.Array), T.Object); | 482 CheckSub(T.Union(T.ObjectConstant1, T.Array), T.Object); |
| 497 CheckUnordered(T.Union(T.ObjectConstant1, T.String), T.Array); | 483 CheckUnordered(T.Union(T.ObjectConstant1, T.String), T.Array); |
| 498 CheckOverlap(T.Union(T.ObjectConstant1, T.String), T.Object); | 484 CheckOverlap(T.Union(T.ObjectConstant1, T.String), T.Object); |
| 499 CheckDisjoint(T.Union(T.ObjectConstant1, T.String), T.Number); | 485 CheckDisjoint(T.Union(T.ObjectConstant1, T.String), T.Number); |
| 500 CheckEqual(T.Union(T.Signed32, T.Signed32Constant), T.Signed32); | 486 CheckEqual(T.Union(T.Signed32, T.Signed32Constant), T.Signed32); |
| 501 | 487 |
| 502 // Class-constant | 488 // Class-constant |
| 503 CHECK(IsUnion(Type::Union(T.ObjectConstant1, T.ObjectClass))); | 489 CHECK(IsUnion(Type::Union(T.ObjectConstant1, T.ObjectClass))); |
| 504 CHECK(IsUnion(Type::Union(T.ArrayClass, T.ObjectConstant2))); | 490 CHECK(IsUnion(Type::Union(T.ArrayClass, T.ObjectConstant2))); |
| 505 | 491 |
| 506 CheckSub(T.None, T.Union(T.ObjectConstant1, T.ArrayClass)); | |
| 507 CheckSub(T.Union(T.ObjectConstant1, T.ArrayClass), T.Any); | |
| 508 CheckSub(T.Union(T.ObjectConstant1, T.ArrayClass), T.Object); | 492 CheckSub(T.Union(T.ObjectConstant1, T.ArrayClass), T.Object); |
| 509 CheckSub(T.ObjectConstant1, T.Union(T.ObjectConstant1, T.ArrayClass)); | 493 CheckSub(T.ObjectConstant1, T.Union(T.ObjectConstant1, T.ArrayClass)); |
| 510 CheckSub(T.ArrayClass, T.Union(T.ObjectConstant1, T.ArrayClass)); | 494 CheckSub(T.ArrayClass, T.Union(T.ObjectConstant1, T.ArrayClass)); |
| 511 CheckUnordered(T.ObjectClass, T.Union(T.ObjectConstant1, T.ArrayClass)); | 495 CheckUnordered(T.ObjectClass, T.Union(T.ObjectConstant1, T.ArrayClass)); |
| 512 CheckSub( | 496 CheckSub( |
| 513 T.Union(T.ObjectConstant1, T.ArrayClass), T.Union(T.Array, T.Object)); | 497 T.Union(T.ObjectConstant1, T.ArrayClass), T.Union(T.Array, T.Object)); |
| 514 CheckUnordered(T.Union(T.ObjectConstant1, T.ArrayClass), T.ArrayConstant1); | 498 CheckUnordered(T.Union(T.ObjectConstant1, T.ArrayClass), T.ArrayConstant1); |
| 515 CheckDisjoint(T.Union(T.ObjectConstant1, T.ArrayClass), T.ObjectConstant2); | 499 CheckDisjoint(T.Union(T.ObjectConstant1, T.ArrayClass), T.ObjectConstant2); |
| 516 CheckDisjoint(T.Union(T.ObjectConstant1, T.ArrayClass), T.ObjectClass); | 500 CheckDisjoint(T.Union(T.ObjectConstant1, T.ArrayClass), T.ObjectClass); |
| 517 | 501 |
| 518 // Bitset-union | 502 // Bitset-union |
| 519 CHECK(IsBitset( | 503 CHECK(IsBitset( |
| 520 Type::Union(T.Object, T.Union(T.ObjectConstant1, T.ObjectClass)))); | 504 Type::Union(T.Object, T.Union(T.ObjectConstant1, T.ObjectClass)))); |
| 521 CHECK(IsUnion( | 505 CHECK(IsUnion( |
| 522 Type::Union(T.Union(T.ArrayClass, T.ObjectConstant2), T.Number))); | 506 Type::Union(T.Union(T.ArrayClass, T.ObjectConstant2), T.Number))); |
| 523 | 507 |
| 524 CheckEqual( | 508 CheckEqual( |
| 525 T.Union(T.Object, T.Union(T.ObjectConstant1, T.ObjectClass)), | 509 T.Union(T.Object, T.Union(T.ObjectConstant1, T.ObjectClass)), |
| 526 T.Object); | 510 T.Object); |
| 527 CheckEqual( | 511 CheckEqual( |
| 528 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Number), | 512 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Number), |
| 529 T.Union(T.ObjectConstant1, T.Union(T.Number, T.ArrayClass))); | 513 T.Union(T.ObjectConstant1, T.Union(T.Number, T.ArrayClass))); |
| 530 CheckSub( | 514 CheckSub( |
| 531 T.Double, | 515 T.Double, |
| 532 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Number)); | 516 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Number)); |
| 533 CheckSub( | 517 CheckSub( |
| 534 T.ObjectConstant1, | 518 T.ObjectConstant1, |
| 535 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Double)); | 519 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Double)); |
| 536 CheckSub( | 520 CheckSub( |
| 537 T.None, | |
| 538 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Double)); | |
| 539 CheckSub( | |
| 540 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Double), | 521 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Double), |
| 541 T.Any); | 522 T.Any); |
| 542 CheckSub( | 523 CheckSub( |
| 543 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Double), | 524 T.Union(T.Union(T.ArrayClass, T.ObjectConstant1), T.Double), |
| 544 T.Union(T.ObjectConstant1, T.Union(T.Number, T.ArrayClass))); | 525 T.Union(T.ObjectConstant1, T.Union(T.Number, T.ArrayClass))); |
| 545 | 526 |
| 546 // Class-union | 527 // Class-union |
| 547 CHECK(IsUnion( | 528 CHECK(IsUnion( |
| 548 Type::Union(T.Union(T.ArrayClass, T.ObjectConstant2), T.ArrayClass))); | 529 Type::Union(T.Union(T.ArrayClass, T.ObjectConstant2), T.ArrayClass))); |
| 549 CHECK(IsUnion( | 530 CHECK(IsUnion( |
| 550 Type::Union(T.Union(T.ArrayClass, T.ObjectConstant2), T.ObjectClass))); | 531 Type::Union(T.Union(T.ArrayClass, T.ObjectConstant2), T.ObjectClass))); |
| 551 | 532 |
| 552 CheckEqual( | 533 CheckEqual( |
| 553 T.Union(T.ObjectClass, T.Union(T.ObjectConstant1, T.ObjectClass)), | 534 T.Union(T.ObjectClass, T.Union(T.ObjectConstant1, T.ObjectClass)), |
| 554 T.Union(T.ObjectClass, T.ObjectConstant1)); | 535 T.Union(T.ObjectClass, T.ObjectConstant1)); |
| 555 CheckSub( | 536 CheckSub( |
| 556 T.None, | |
| 557 T.Union(T.ObjectClass, T.Union(T.ObjectConstant1, T.ObjectClass))); | |
| 558 CheckSub( | |
| 559 T.Union(T.ObjectClass, T.Union(T.ObjectConstant1, T.ObjectClass)), | |
| 560 T.Any); | |
| 561 CheckSub( | |
| 562 T.Union(T.ObjectClass, T.Union(T.ObjectConstant1, T.ObjectClass)), | 537 T.Union(T.ObjectClass, T.Union(T.ObjectConstant1, T.ObjectClass)), |
| 563 T.Object); | 538 T.Object); |
| 564 CheckEqual( | 539 CheckEqual( |
| 565 T.Union(T.Union(T.ArrayClass, T.ObjectConstant2), T.ArrayClass), | 540 T.Union(T.Union(T.ArrayClass, T.ObjectConstant2), T.ArrayClass), |
| 566 T.Union(T.ArrayClass, T.ObjectConstant2)); | 541 T.Union(T.ArrayClass, T.ObjectConstant2)); |
| 567 | 542 |
| 568 // Constant-union | 543 // Constant-union |
| 569 CHECK(IsUnion(Type::Union( | 544 CHECK(IsUnion(Type::Union( |
| 570 T.ObjectConstant1, T.Union(T.ObjectConstant1, T.ObjectConstant2)))); | 545 T.ObjectConstant1, T.Union(T.ObjectConstant1, T.ObjectConstant2)))); |
| 571 CHECK(IsUnion(Type::Union( | 546 CHECK(IsUnion(Type::Union( |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 736 T.Union(T.Union(T.ObjectConstant2, T.ObjectConstant1), T.ArrayClass), | 711 T.Union(T.Union(T.ObjectConstant2, T.ObjectConstant1), T.ArrayClass), |
| 737 T.Union( | 712 T.Union( |
| 738 T.ObjectConstant1, T.Union(T.ArrayConstant1, T.ObjectConstant2))), | 713 T.ObjectConstant1, T.Union(T.ArrayConstant1, T.ObjectConstant2))), |
| 739 T.Union(T.ObjectConstant2, T.ObjectConstant1)); | 714 T.Union(T.ObjectConstant2, T.ObjectConstant1)); |
| 740 CheckEqual( | 715 CheckEqual( |
| 741 T.Intersect( | 716 T.Intersect( |
| 742 T.Union(T.ObjectConstant2, T.ArrayConstant1), | 717 T.Union(T.ObjectConstant2, T.ArrayConstant1), |
| 743 T.Union(T.ObjectConstant1, T.ArrayConstant2)), | 718 T.Union(T.ObjectConstant1, T.ArrayConstant2)), |
| 744 T.ArrayConstant1); | 719 T.ArrayConstant1); |
| 745 } | 720 } |
| OLD | NEW |