diff --git a/src/testdir/test_vim9_assign.vim b/src/testdir/test_vim9_assign.vim
index 97c11a7..2294936 100644
--- a/src/testdir/test_vim9_assign.vim
+++ b/src/testdir/test_vim9_assign.vim
@@ -326,6 +326,8 @@
                'null_list',
                'null_partial',
                'null_string',
+               'null_object',
+               'null_class',
                ] + more_names
     v9.CheckDefExecAndScriptFailure(['var ' .. name .. ' =  0'], 'E1034:')
     v9.CheckDefExecAndScriptFailure(['var ' .. name .. ': bool'], 'E1034:')
diff --git a/src/version.c b/src/version.c
index 883367d..eba6725 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1279,
+/**/
     1278,
 /**/
     1277,
diff --git a/src/vim9script.c b/src/vim9script.c
index cdacf0b..7e33770 100644
--- a/src/vim9script.c
+++ b/src/vim9script.c
@@ -1119,36 +1119,52 @@
 }
 
 // words that cannot be used as a variable
+// Keep this array sorted, as bsearch() is used to search this array.
 static char *reserved[] = {
-    "true",
     "false",
     "null",
     "null_blob",
+    "null_channel",
+    "null_class",
     "null_dict",
     "null_function",
+    "null_job",
     "null_list",
-    "null_tuple",
+    "null_object",
     "null_partial",
     "null_string",
-    "null_channel",
-    "null_job",
+    "null_tuple",
     "super",
     "this",
-    NULL
+    "true",
 };
 
+/*
+ * String compare function used for bsearch()
+ */
+    static int
+comp_names(const void *s1, const void *s2)
+{
+    return STRCMP(*(char **)s1, *(char **)s2);
+}
+
+/*
+ * Returns OK if "name" is not a reserved keyword.  Otherwise returns FAIL.
+ */
     int
 check_reserved_name(char_u *name, int is_objm_access)
 {
-    int idx;
+    // "this" can be used in an object method
+    if (is_objm_access && STRCMP("this", name) == 0)
+	return OK;
 
-    for (idx = 0; reserved[idx] != NULL; ++idx)
-	if (STRCMP(reserved[idx], name) == 0
-		&& !(STRCMP("this", name) == 0 && is_objm_access))
-	{
-	    semsg(_(e_cannot_use_reserved_name_str), name);
-	    return FAIL;
-	}
+    if (bsearch(&name, reserved, ARRAY_LENGTH(reserved),
+				sizeof(reserved[0]), comp_names) != NULL)
+    {
+	semsg(_(e_cannot_use_reserved_name_str), name);
+	return FAIL;
+    }
+
     return OK;
 }
 
diff --git a/src/vim9type.c b/src/vim9type.c
index a90c0cc..ab5e077 100644
--- a/src/vim9type.c
+++ b/src/vim9type.c
@@ -333,6 +333,9 @@
     return OK;
 }
 
+/*
+ * Get a list type, based on the member item type in "member_type".
+ */
     type_T *
 get_list_type(type_T *member_type, garray_T *type_gap)
 {
@@ -367,9 +370,7 @@
  * "tuple_types_ga".
  */
     type_T *
-get_tuple_type(
-    garray_T	*tuple_types_gap,
-    garray_T	*type_gap)
+get_tuple_type(garray_T *tuple_types_gap, garray_T *type_gap)
 {
     type_T	*type;
     type_T	**tuple_types = tuple_types_gap->ga_data;
@@ -397,6 +398,9 @@
     return type;
 }
 
+/*
+ * Get a dict type, based on the member item type in "member_type".
+ */
     type_T *
 get_dict_type(type_T *member_type, garray_T *type_gap)
 {
