         }
       ]
     },
+    "javascript-comment-line": {
+      "captures": {
+        "0": {
+          "patterns": [
+            {
+              "include": "source.js"
+            }
+          ]
+        }
+      },
+      "comment": "JavaScript // single line comment",
+      "contentName": "source.js",
+      "match": "\\s*//.*$"
+    },
+    "javascript-comment-multiline": {
+      "begin": "\\s*(?=/\\*)",
+      "comment": "JavaScript /* block comment */",
+      "contentName": "source.js",
+      "end": "(?<=\\*/)",
+      "patterns": [
+        {
+          "include": "source.js"
+        }
+      ]
+    },
     "javascript-comments": {
       "patterns": [
         {
-          "begin": "\\s*(?=/\\*)",
-          "comment": "JavaScript /* block comment */",
-          "contentName": "source.js",
-          "end": "(?<=\\*/)",
-          "patterns": [
-            {
-              "include": "source.js"
-            }
-          ]
-        },
-        {
-          "captures": {
-            "0": {
-              "patterns": [
-                {
-                  "include": "source.js"
-                }
-              ]
-            }
-          },
-          "comment": "JavaScript // single line comment",
-          "contentName": "source.js",
-          "match": "\\s*//.*$"
+          "include": "#javascript-comment-multiline"
+        },
+        {
+          "include": "#javascript-comment-line"
         }
       ]
     },

        },
        {
          "comment": "Shorthand class or ID attribute",
          "match": "[#.][a-zA-Z_$]+(?:\\-[a-zA-Z0-9_$]+)*",
          "name": "entity.other.attribute-name.marko"
        },
        {

                }
              },
              "comment": "Body content",
              "end": "\\s*(</)([a-zA-Z0-9_$:@-]+)?(.*?)(>)",
              "endCaptures": {
                "1": {
                  "name": "punctuation.definition.tag.end.marko"
