diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index 46816fd..46034fb 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -13,6 +13,9 @@
     assert_equal('one', 0.1 ? 'one' : 'two')
   endif
   assert_equal('one', 'x' ? 'one' : 'two')
+  assert_equal('one', 'x'
+  			? 'one'
+			: 'two')
   assert_equal('one', 0z1234 ? 'one' : 'two')
   assert_equal('one', [0] ? 'one' : 'two')
   assert_equal('one', #{x: 0} ? 'one' : 'two')
@@ -70,6 +73,8 @@
 		    0 ||
 		    7)
   assert_equal(0, 0 || 0)
+  assert_equal(0, 0
+  		    || 0)
   assert_equal('', 0 || '')
 
   g:vals = []
@@ -81,7 +86,9 @@
   assert_equal([0, 5], g:vals)
 
   g:vals = []
-  assert_equal(4, Record(0) || Record(4) || Record(0))
+  assert_equal(4, Record(0)
+		      || Record(4)
+		      || Record(0))
   assert_equal([0, 4], g:vals)
 
   g:vals = []
@@ -104,7 +111,9 @@
   assert_equal(0, 0 &&
 		0 &&
 		7)
-  assert_equal(7, 2 && 3 && 7)
+  assert_equal(7, 2
+  		    && 3
+		    && 7)
   assert_equal(0, 0 && 0)
   assert_equal(0, 0 && '')
   assert_equal('', 8 && '')
@@ -158,7 +167,8 @@
   assert_equal(true, true == true)
   assert_equal(false, true ==
 			false)
-  assert_equal(true, true == trueVar)
+  assert_equal(true, true
+			== trueVar)
   assert_equal(false, true == falseVar)
   assert_equal(true, true == g:atrue)
   assert_equal(false, g:atrue == false)
@@ -250,7 +260,8 @@
   assert_equal(false, true != true)
   assert_equal(true, true !=
 			false)
-  assert_equal(false, true != trueVar)
+  assert_equal(false, true
+  			!= trueVar)
   assert_equal(true, true != falseVar)
   assert_equal(false, true != g:atrue)
   assert_equal(true, g:atrue != false)
@@ -334,7 +345,8 @@
   assert_true(nr2 >
 		1)
   assert_false(nr2 > 2)
-  assert_false(nr2 > 3)
+  assert_false(nr2
+  		    > 3)
   if has('float')
     let ff = 2.0
     assert_true(ff > 0.0)
@@ -367,7 +379,8 @@
   assert_false(2 < 0)
   assert_false(2 <
 			2)
-  assert_true(2 < 3)
+  assert_true(2
+  		< 3)
   let nr2 = 2
   assert_false(nr2 < 0)
   assert_false(nr2 < 2)
@@ -385,7 +398,8 @@
   assert_false(2 <= 0)
   assert_false(2 <=
 			1)
-  assert_true(2 <= 2)
+  assert_true(2
+  		<= 2)
   assert_true(2 <= 3)
   let nr2 = 2
   assert_false(nr2 <= 0)
@@ -404,6 +418,8 @@
 " test =~ comperator
 def Test_expr4_match()
   assert_equal(false, '2' =~ '0')
+  assert_equal(false, ''
+  			 =~ '0')
   assert_equal(true, '2' =~
 			'[0-9]')
 enddef
@@ -411,6 +427,8 @@
 " test !~ comperator
 def Test_expr4_nomatch()
   assert_equal(true, '2' !~ '0')
+  assert_equal(true, ''
+  			!~ '0')
   assert_equal(false, '2' !~
 			'[0-9]')
 enddef
@@ -424,7 +442,8 @@
 		other)
 
   let myblob = 0z1234
-  assert_false(myblob is 0z1234)
+  assert_false(myblob
+  			is 0z1234)
   let otherblob = myblob
   assert_true(myblob is otherblob)
 enddef
@@ -439,7 +458,8 @@
 			other)
 
   let myblob = 0z1234
-  assert_true(myblob isnot 0z1234)
+  assert_true(myblob
+  		isnot 0z1234)
   let otherblob = myblob
   assert_false(myblob isnot otherblob)
 enddef
@@ -522,26 +542,30 @@
   assert_equal(66, 60 + 6)
   assert_equal(70, 60 +
 			g:anint)
-  assert_equal(9, g:alsoint + 5)
+  assert_equal(9, g:alsoint
+  			+ 5)
   assert_equal(14, g:alsoint + g:anint)
   assert_equal([1, 2, 3, 4], [1] + g:alist)
 
   assert_equal(54, 60 - 6)
   assert_equal(50, 60 -
 		    g:anint)
-  assert_equal(-1, g:alsoint - 5)
+  assert_equal(-1, g:alsoint
+  			- 5)
   assert_equal(-6, g:alsoint - g:anint)
 
   assert_equal('hello', 'hel' .. 'lo')
   assert_equal('hello 123', 'hello ' ..
 					123)
-  assert_equal('hello 123', 'hello ' ..  123)
+  assert_equal('hello 123', 'hello '
+  				..  123)
   assert_equal('123 hello', 123 .. ' hello')
   assert_equal('123456', 123 .. 456)
 
   assert_equal([1, 2, 3, 4], [1, 2] + [3, 4])
   assert_equal(0z11223344, 0z1122 + 0z3344)
-  assert_equal(0z112201ab, 0z1122 + g:ablob)
+  assert_equal(0z112201ab, 0z1122
+  				+ g:ablob)
   assert_equal(0z01ab3344, g:ablob + 0z3344)
   assert_equal(0z01ab01ab, g:ablob + g:ablob)
 enddef
@@ -554,13 +578,15 @@
     assert_equal(66.0, 60.0 + 6)
     assert_equal(66.0, 60 +
 			 6.0)
-    assert_equal(5.1, g:afloat + 5)
+    assert_equal(5.1, g:afloat
+    			+ 5)
     assert_equal(8.1, 8 + g:afloat)
     assert_equal(10.1, g:anint + g:afloat)
     assert_equal(10.1, g:afloat + g:anint)
 
     assert_equal(54.0, 60.0 - 6.0)
-    assert_equal(54.0, 60.0 - 6)
+    assert_equal(54.0, 60.0
+    			    - 6)
     assert_equal(54.0, 60 - 6.0)
     assert_equal(-4.9, g:afloat - 5)
     assert_equal(7.9, 8 - g:afloat)
@@ -599,20 +625,23 @@
   assert_equal(36, 6 * 6)
   assert_equal(24, 6 *
 			g:alsoint)
-  assert_equal(24, g:alsoint * 6)
+  assert_equal(24, g:alsoint
+  			* 6)
   assert_equal(40, g:anint * g:alsoint)
 
   assert_equal(10, 60 / 6)
   assert_equal(6, 60 /
 			g:anint)
   assert_equal(1, g:anint / 6)
-  assert_equal(2, g:anint / g:alsoint)
+  assert_equal(2, g:anint
+  			/ g:alsoint)
 
   assert_equal(5, 11 % 6)
   assert_equal(4, g:anint % 6)
   assert_equal(3, 13 %
 			g:anint)
-  assert_equal(2, g:anint % g:alsoint)
+  assert_equal(2, g:anint
+  			% g:alsoint)
 
   assert_equal(4, 6 * 4 / 6)
 
@@ -623,8 +652,10 @@
   if has('float')
     let xf = [2.0]
     let yf = [3.0]
-    assert_equal(5.0, xf[0] + yf[0])
-    assert_equal(6.0, xf[0] * yf[0])
+    assert_equal(5.0, xf[0]
+    			+ yf[0])
+    assert_equal(6.0, xf[0]
+    			* yf[0])
   endif
 
   call CheckDefFailure(["let x = 6 * xxx"], 'E1001')
