// FIR_DIFFERENCE // The difference is okay: K1 and K2 report a bit differently // ERROR_POLICY: SEMANTIC @file:Suppress( "DEPRECATED_IDENTITY_EQUALS", "SENSELESS_COMPARISON" ) fun testTrimMargin() { js(""" | var x = 1; """.trimMargin()) } fun testTrimIndent() { js(""" var x = 1; """.trimIndent()) } const val ONE = 1 const val UONE = 1U const val HALF = 0.5 const val TRUE = true const val STR = "str" const val CHAR = 'C' fun testStringSize() { js("var a = ${STR.length};") } fun testSimpleStringConcat() { js("{ var a = '${'b'}'; }") js("{ var a = ${123}; }") js("{ var a = ${123U}; }") js("{ var a = ${123L}; }") js("{ var a = ${123UL}; }") js("{ var a = ${1.23}; }") js("{ var a = ${1.23f}; }") js("{ var a = ${true}; }") js("{ var a = ${false}; }") js("{ var a = ${null}; }") js("{ var a = ${ONE}; }") js("{ var a = ${UONE}; }") js("{ var a = ${HALF}; }") js("{ var a = ${TRUE}; }") js("{ var a = '${STR}'; }") js("{ var a = '${CHAR}'; }") } fun testArithmeticOperations() { js("{ var a = ${1 + 2}; }") js("{ var a = ${1 - 2}; }") js("{ var a = ${1 * 2}; }") js("{ var a = ${1 / 2}; }") js("{ var a = ${1 % 2}; }") js("{ var a = ${1.1 + 2.1}; }") js("{ var a = ${1.1 - 2.1}; }") js("{ var a = ${1.1 * 2.1}; }") js("{ var a = ${1.1 / 2.1}; }") js("{ var a = ${ONE + 2}; }") js("{ var a = ${HALF + 2.1}; }") js("{ var a = '${"foo" + "bar"}'; }") js("{ var a = '${"foo" + 'c'}'; }") js("{ var a = '${'c' + "foo"}'; }") js("{ var a = ${STR + STR}; }") js("{ var a = ${STR + CHAR}; }") js("{ var a = ${CHAR + STR}; }") } fun testLogicOperations() { js("{ var a = ${!true}; }") js("{ var a = ${true or false}; }") js("{ var a = ${true || false}; }") js("{ var a = ${true and false}; }") js("{ var a = ${true && false}; }") js("{ var a = ${TRUE && false}; }") js("{ var a = ${TRUE or false}; }") } fun testEq() { js("{ var a = ${1 == 1}; }") js("{ var a = ${1U == 1U}; }") js("{ var a = ${UONE == 1U}; }") js("{ var a = ${"FOO" == STR}; }") js("{ var a = ${TRUE == null}; }") js("{ var a = ${STR == null}; }") js("{ var a = ${1 != 1}; }") js("{ var a = ${1U != 1U}; }") js("{ var a = ${UONE != 1U}; }") js("{ var a = ${"FOO" != STR}; }") js("{ var a = ${TRUE != null}; }") js("{ var a = ${STR != null}; }") js("{ var a = ${1 === 1}; }") js("{ var a = ${TRUE === false}; }") js("{ var a = ${CHAR === 's'}; }") js("{ var a = ${1 !== 1}; }") js("{ var a = ${TRUE !== false}; }") js("{ var a = ${CHAR !== 's'}; }") } fun testCmp() { js("{ var a = ${1 < 1}; }") js("{ var a = ${1 <= 1}; }") js("{ var a = ${1 > 1}; }") js("{ var a = ${1 >= 1}; }") js("{ var a = ${"fo=" < "bar"}; }") js("{ var a = ${'a' > 'c'}; }") js("{ var a = ${ONE > 1}; }") js("{ var a = ${STR <= "1"}; }") }