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