@main[] $n(1) code junctions ignore in expression flag, this it works: $x(^if(2){^n.int[]^n.int[]}) $x this code works after #1211: ^try-catch{ $y(^test[]) } $y this code does not work in 3.4.4: ^try-catch{ $z(^test-wrapper[]) } $z ^try-catch{ string and number: $s(^test-string[]) $s $s.CLASS_NAME} string and object[]: $s[^test-object[]] $s.CLASS_NAME string and object(): $n(^test-object[]) $n.CLASS_NAME #since 3.4.7 numbers are converted to strings in expression context @test[] ^n.int[]^n.int[] #in 3.4.5-3.4.6 wrapper hided "in expression" flag, thus no exception @test-wrapper[] ^test[] @test-string[] -^n.int[] @test-object[] string value (even non-whitespace!) is ignored if object (^hash::create[]) is returned.