//// [tests/cases/conformance/expressions/commaOperator/commaOperatorWithSecondOperandBooleanType.ts] ////

=== commaOperatorWithSecondOperandBooleanType.ts ===
var ANY: any;
>ANY : any
>    : ^^^

var BOOLEAN: boolean;
>BOOLEAN : boolean
>        : ^^^^^^^

var NUMBER: number;
>NUMBER : number
>       : ^^^^^^

var STRING: string;
>STRING : string
>       : ^^^^^^

var OBJECT: Object;
>OBJECT : Object
>       : ^^^^^^

//The second operand type is boolean
ANY, BOOLEAN;
>ANY, BOOLEAN : boolean
>             : ^^^^^^^
>ANY : any
>    : ^^^
>BOOLEAN : boolean
>        : ^^^^^^^

BOOLEAN, BOOLEAN;
>BOOLEAN, BOOLEAN : boolean
>                 : ^^^^^^^
>BOOLEAN : boolean
>        : ^^^^^^^
>BOOLEAN : boolean
>        : ^^^^^^^

NUMBER, BOOLEAN;
>NUMBER, BOOLEAN : boolean
>                : ^^^^^^^
>NUMBER : number
>       : ^^^^^^
>BOOLEAN : boolean
>        : ^^^^^^^

STRING, BOOLEAN;
>STRING, BOOLEAN : boolean
>                : ^^^^^^^
>STRING : string
>       : ^^^^^^
>BOOLEAN : boolean
>        : ^^^^^^^

OBJECT, BOOLEAN;
>OBJECT, BOOLEAN : boolean
>                : ^^^^^^^
>OBJECT : Object
>       : ^^^^^^
>BOOLEAN : boolean
>        : ^^^^^^^

//Return type is boolean
var resultIsBoolean1 = (ANY, BOOLEAN);
>resultIsBoolean1 : boolean
>                 : ^^^^^^^
>(ANY, BOOLEAN) : boolean
>               : ^^^^^^^
>ANY, BOOLEAN : boolean
>             : ^^^^^^^
>ANY : any
>    : ^^^
>BOOLEAN : boolean
>        : ^^^^^^^

var resultIsBoolean2 = (BOOLEAN, BOOLEAN);
>resultIsBoolean2 : boolean
>                 : ^^^^^^^
>(BOOLEAN, BOOLEAN) : boolean
>                   : ^^^^^^^
>BOOLEAN, BOOLEAN : boolean
>                 : ^^^^^^^
>BOOLEAN : boolean
>        : ^^^^^^^
>BOOLEAN : boolean
>        : ^^^^^^^

var resultIsBoolean3 = (NUMBER, BOOLEAN);
>resultIsBoolean3 : boolean
>                 : ^^^^^^^
>(NUMBER, BOOLEAN) : boolean
>                  : ^^^^^^^
>NUMBER, BOOLEAN : boolean
>                : ^^^^^^^
>NUMBER : number
>       : ^^^^^^
>BOOLEAN : boolean
>        : ^^^^^^^

var resultIsBoolean4 = (STRING, BOOLEAN);
>resultIsBoolean4 : boolean
>                 : ^^^^^^^
>(STRING, BOOLEAN) : boolean
>                  : ^^^^^^^
>STRING, BOOLEAN : boolean
>                : ^^^^^^^
>STRING : string
>       : ^^^^^^
>BOOLEAN : boolean
>        : ^^^^^^^

var resultIsBoolean5 = (OBJECT, BOOLEAN);
>resultIsBoolean5 : boolean
>                 : ^^^^^^^
>(OBJECT, BOOLEAN) : boolean
>                  : ^^^^^^^
>OBJECT, BOOLEAN : boolean
>                : ^^^^^^^
>OBJECT : Object
>       : ^^^^^^
>BOOLEAN : boolean
>        : ^^^^^^^

//Literal and expression
null, BOOLEAN;
>null, BOOLEAN : boolean
>              : ^^^^^^^
>BOOLEAN : boolean
>        : ^^^^^^^

ANY = undefined, BOOLEAN;
>ANY = undefined, BOOLEAN : boolean
>                         : ^^^^^^^
>ANY = undefined : undefined
>                : ^^^^^^^^^
>ANY : any
>    : ^^^
>undefined : undefined
>          : ^^^^^^^^^
>BOOLEAN : boolean
>        : ^^^^^^^

1, true;
>1, true : true
>        : ^^^^
>1 : 1
>  : ^
>true : true
>     : ^^^^

++NUMBER, true;
>++NUMBER, true : true
>               : ^^^^
>++NUMBER : number
>         : ^^^^^^
>NUMBER : number
>       : ^^^^^^
>true : true
>     : ^^^^

[1, 2, 3], !BOOLEAN;
>[1, 2, 3], !BOOLEAN : boolean
>                    : ^^^^^^^
>[1, 2, 3] : number[]
>          : ^^^^^^^^
>1 : 1
>  : ^
>2 : 2
>  : ^
>3 : 3
>  : ^
>!BOOLEAN : boolean
>         : ^^^^^^^
>BOOLEAN : boolean
>        : ^^^^^^^

OBJECT = [1, 2, 3], BOOLEAN = false;
>OBJECT = [1, 2, 3], BOOLEAN = false : false
>                                    : ^^^^^
>OBJECT = [1, 2, 3] : number[]
>                   : ^^^^^^^^
>OBJECT : Object
>       : ^^^^^^
>[1, 2, 3] : number[]
>          : ^^^^^^^^
>1 : 1
>  : ^
>2 : 2
>  : ^
>3 : 3
>  : ^
>BOOLEAN = false : false
>                : ^^^^^
>BOOLEAN : boolean
>        : ^^^^^^^
>false : false
>      : ^^^^^

var resultIsBoolean6 = (null, BOOLEAN);
>resultIsBoolean6 : boolean
>                 : ^^^^^^^
>(null, BOOLEAN) : false
>                : ^^^^^
>null, BOOLEAN : false
>              : ^^^^^
>BOOLEAN : false
>        : ^^^^^

var resultIsBoolean7 = (ANY = undefined, BOOLEAN);
>resultIsBoolean7 : boolean
>                 : ^^^^^^^
>(ANY = undefined, BOOLEAN) : false
>                           : ^^^^^
>ANY = undefined, BOOLEAN : false
>                         : ^^^^^
>ANY = undefined : undefined
>                : ^^^^^^^^^
>ANY : any
>    : ^^^
>undefined : undefined
>          : ^^^^^^^^^
>BOOLEAN : false
>        : ^^^^^

var resultIsBoolean8 = (1, true);
>resultIsBoolean8 : boolean
>                 : ^^^^^^^
>(1, true) : true
>          : ^^^^
>1, true : true
>        : ^^^^
>1 : 1
>  : ^
>true : true
>     : ^^^^

var resultIsBoolean9 = (++NUMBER, true);
>resultIsBoolean9 : boolean
>                 : ^^^^^^^
>(++NUMBER, true) : true
>                 : ^^^^
>++NUMBER, true : true
>               : ^^^^
>++NUMBER : number
>         : ^^^^^^
>NUMBER : number
>       : ^^^^^^
>true : true
>     : ^^^^

var resultIsBoolean10 = ([1, 2, 3], !BOOLEAN);
>resultIsBoolean10 : boolean
>                  : ^^^^^^^
>([1, 2, 3], !BOOLEAN) : true
>                      : ^^^^
>[1, 2, 3], !BOOLEAN : true
>                    : ^^^^
>[1, 2, 3] : number[]
>          : ^^^^^^^^
>1 : 1
>  : ^
>2 : 2
>  : ^
>3 : 3
>  : ^
>!BOOLEAN : true
>         : ^^^^
>BOOLEAN : false
>        : ^^^^^

var resultIsBoolean11 = (OBJECT = [1, 2, 3], BOOLEAN = false);
>resultIsBoolean11 : boolean
>                  : ^^^^^^^
>(OBJECT = [1, 2, 3], BOOLEAN = false) : false
>                                      : ^^^^^
>OBJECT = [1, 2, 3], BOOLEAN = false : false
>                                    : ^^^^^
>OBJECT = [1, 2, 3] : number[]
>                   : ^^^^^^^^
>OBJECT : Object
>       : ^^^^^^
>[1, 2, 3] : number[]
>          : ^^^^^^^^
>1 : 1
>  : ^
>2 : 2
>  : ^
>3 : 3
>  : ^
>BOOLEAN = false : false
>                : ^^^^^
>BOOLEAN : boolean
>        : ^^^^^^^
>false : false
>      : ^^^^^

