diff --git a/src/shared/cplusplus/Keywords.cpp b/src/shared/cplusplus/Keywords.cpp
index 94699c1745e4ca510283b9204f1f30023d25d1d0..1e25c5ecbe23202dad0d0cc22c677651f983e9b7 100644
--- a/src/shared/cplusplus/Keywords.cpp
+++ b/src/shared/cplusplus/Keywords.cpp
@@ -745,7 +745,7 @@ static inline int classify7(const char *s, bool q, bool) {
   return T_IDENTIFIER;
 }
 
-static inline int classify8(const char *s, bool q, bool) {
+static inline int classify8(const char *s, bool q, bool x) {
   if (s[0] == '_') {
     if (s[1] == '_') {
       if (s[2] == 'i') {
@@ -793,6 +793,23 @@ static inline int classify8(const char *s, bool q, bool) {
       }
     }
   }
+  else if (x && s[0] == 'd') {
+    if (s[1] == 'e') {
+      if (s[2] == 'c') {
+        if (s[3] == 'l') {
+          if (s[4] == 't') {
+            if (s[5] == 'y') {
+              if (s[6] == 'p') {
+                if (s[7] == 'e') {
+                  return T___TYPEOF;
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
   else if (s[0] == 'e') {
     if (s[1] == 'x') {
       if (s[2] == 'p') {