]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
test: update snapshots
authorEvan You <yyx990803@gmail.com>
Thu, 19 Sep 2019 17:40:08 +0000 (13:40 -0400)
committerEvan You <yyx990803@gmail.com>
Thu, 19 Sep 2019 17:40:08 +0000 (13:40 -0400)
packages/compiler-core/__tests__/__snapshots__/parse.spec.ts.snap

index f9e949bc628481d35fc9d1410077393977951131..ebee2f72f768633a3a35dcaffb235d8a40d02d5f 100644 (file)
@@ -7523,3 +7523,7527 @@ Object {
   "type": 0,
 }
 `;
+
+exports[`compiler: parse Errors ABRUPT_CLOSING_OF_EMPTY_COMMENT <template><!--></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "",
+          "loc": Object {
+            "end": Object {
+              "column": 16,
+              "line": 1,
+              "offset": 15,
+            },
+            "source": "<!-->",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 3,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 27,
+          "line": 1,
+          "offset": 26,
+        },
+        "source": "<template><!--></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 27,
+      "line": 1,
+      "offset": 26,
+    },
+    "source": "<template><!--></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors ABRUPT_CLOSING_OF_EMPTY_COMMENT <template><!---></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "",
+          "loc": Object {
+            "end": Object {
+              "column": 17,
+              "line": 1,
+              "offset": 16,
+            },
+            "source": "<!--->",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 3,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 28,
+          "line": 1,
+          "offset": 27,
+        },
+        "source": "<template><!---></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 28,
+      "line": 1,
+      "offset": 27,
+    },
+    "source": "<template><!---></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors ABRUPT_CLOSING_OF_EMPTY_COMMENT <template><!----></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "",
+          "loc": Object {
+            "end": Object {
+              "column": 18,
+              "line": 1,
+              "offset": 17,
+            },
+            "source": "<!---->",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 3,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 29,
+          "line": 1,
+          "offset": 28,
+        },
+        "source": "<template><!----></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 29,
+      "line": 1,
+      "offset": 28,
+    },
+    "source": "<template><!----></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors ABSENCE_OF_DIGITS_IN_NUMERIC_CHARACTER_REFERENCE <template attr="&#99;"></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [
+        Object {
+          "loc": Object {
+            "end": Object {
+              "column": 23,
+              "line": 1,
+              "offset": 22,
+            },
+            "source": "attr=\\"&#99;\\"",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "name": "attr",
+          "type": 5,
+          "value": Object {
+            "content": "c",
+            "isEmpty": false,
+            "loc": Object {
+              "end": Object {
+                "column": 23,
+                "line": 1,
+                "offset": 22,
+              },
+              "source": "\\"&#99;\\"",
+              "start": Object {
+                "column": 16,
+                "line": 1,
+                "offset": 15,
+              },
+            },
+            "type": 2,
+          },
+        },
+      ],
+      "children": Array [],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 35,
+          "line": 1,
+          "offset": 34,
+        },
+        "source": "<template attr=\\"&#99;\\"></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 35,
+      "line": 1,
+      "offset": 34,
+    },
+    "source": "<template attr=\\"&#99;\\"></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors ABSENCE_OF_DIGITS_IN_NUMERIC_CHARACTER_REFERENCE <template attr="&#a;"></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [
+        Object {
+          "loc": Object {
+            "end": Object {
+              "column": 22,
+              "line": 1,
+              "offset": 21,
+            },
+            "source": "attr=\\"&#a;\\"",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "name": "attr",
+          "type": 5,
+          "value": Object {
+            "content": "&#a;",
+            "isEmpty": false,
+            "loc": Object {
+              "end": Object {
+                "column": 22,
+                "line": 1,
+                "offset": 21,
+              },
+              "source": "\\"&#a;\\"",
+              "start": Object {
+                "column": 16,
+                "line": 1,
+                "offset": 15,
+              },
+            },
+            "type": 2,
+          },
+        },
+      ],
+      "children": Array [],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 34,
+          "line": 1,
+          "offset": 33,
+        },
+        "source": "<template attr=\\"&#a;\\"></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 34,
+      "line": 1,
+      "offset": 33,
+    },
+    "source": "<template attr=\\"&#a;\\"></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors ABSENCE_OF_DIGITS_IN_NUMERIC_CHARACTER_REFERENCE <template attr="&#xff;"></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [
+        Object {
+          "loc": Object {
+            "end": Object {
+              "column": 24,
+              "line": 1,
+              "offset": 23,
+            },
+            "source": "attr=\\"&#xff;\\"",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "name": "attr",
+          "type": 5,
+          "value": Object {
+            "content": "ΓΏ",
+            "isEmpty": false,
+            "loc": Object {
+              "end": Object {
+                "column": 24,
+                "line": 1,
+                "offset": 23,
+              },
+              "source": "\\"&#xff;\\"",
+              "start": Object {
+                "column": 16,
+                "line": 1,
+                "offset": 15,
+              },
+            },
+            "type": 2,
+          },
+        },
+      ],
+      "children": Array [],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 36,
+          "line": 1,
+          "offset": 35,
+        },
+        "source": "<template attr=\\"&#xff;\\"></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 36,
+      "line": 1,
+      "offset": 35,
+    },
+    "source": "<template attr=\\"&#xff;\\"></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors ABSENCE_OF_DIGITS_IN_NUMERIC_CHARACTER_REFERENCE <template attr="&#xg;"></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [
+        Object {
+          "loc": Object {
+            "end": Object {
+              "column": 23,
+              "line": 1,
+              "offset": 22,
+            },
+            "source": "attr=\\"&#xg;\\"",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "name": "attr",
+          "type": 5,
+          "value": Object {
+            "content": "&#xg;",
+            "isEmpty": false,
+            "loc": Object {
+              "end": Object {
+                "column": 23,
+                "line": 1,
+                "offset": 22,
+              },
+              "source": "\\"&#xg;\\"",
+              "start": Object {
+                "column": 16,
+                "line": 1,
+                "offset": 15,
+              },
+            },
+            "type": 2,
+          },
+        },
+      ],
+      "children": Array [],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 35,
+          "line": 1,
+          "offset": 34,
+        },
+        "source": "<template attr=\\"&#xg;\\"></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 35,
+      "line": 1,
+      "offset": 34,
+    },
+    "source": "<template attr=\\"&#xg;\\"></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors ABSENCE_OF_DIGITS_IN_NUMERIC_CHARACTER_REFERENCE <template>&#99;</template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "c",
+          "isEmpty": false,
+          "loc": Object {
+            "end": Object {
+              "column": 16,
+              "line": 1,
+              "offset": 15,
+            },
+            "source": "&#99;",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 2,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 27,
+          "line": 1,
+          "offset": 26,
+        },
+        "source": "<template>&#99;</template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 27,
+      "line": 1,
+      "offset": 26,
+    },
+    "source": "<template>&#99;</template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors ABSENCE_OF_DIGITS_IN_NUMERIC_CHARACTER_REFERENCE <template>&#a;</template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "&#a;",
+          "isEmpty": false,
+          "loc": Object {
+            "end": Object {
+              "column": 15,
+              "line": 1,
+              "offset": 14,
+            },
+            "source": "&#a;",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 2,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 26,
+          "line": 1,
+          "offset": 25,
+        },
+        "source": "<template>&#a;</template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 26,
+      "line": 1,
+      "offset": 25,
+    },
+    "source": "<template>&#a;</template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors ABSENCE_OF_DIGITS_IN_NUMERIC_CHARACTER_REFERENCE <template>&#xff;</template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "ΓΏ",
+          "isEmpty": false,
+          "loc": Object {
+            "end": Object {
+              "column": 17,
+              "line": 1,
+              "offset": 16,
+            },
+            "source": "&#xff;",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 2,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 28,
+          "line": 1,
+          "offset": 27,
+        },
+        "source": "<template>&#xff;</template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 28,
+      "line": 1,
+      "offset": 27,
+    },
+    "source": "<template>&#xff;</template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors ABSENCE_OF_DIGITS_IN_NUMERIC_CHARACTER_REFERENCE <template>&#xg;</template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "&#xg;",
+          "isEmpty": false,
+          "loc": Object {
+            "end": Object {
+              "column": 16,
+              "line": 1,
+              "offset": 15,
+            },
+            "source": "&#xg;",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 2,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 27,
+          "line": 1,
+          "offset": 26,
+        },
+        "source": "<template>&#xg;</template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 27,
+      "line": 1,
+      "offset": 26,
+    },
+    "source": "<template>&#xg;</template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors CDATA_IN_HTML_CONTENT <template><![CDATA[cdata]]></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "[CDATA[cdata]]",
+          "loc": Object {
+            "end": Object {
+              "column": 28,
+              "line": 1,
+              "offset": 27,
+            },
+            "source": "<![CDATA[cdata]]>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 3,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 39,
+          "line": 1,
+          "offset": 38,
+        },
+        "source": "<template><![CDATA[cdata]]></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 39,
+      "line": 1,
+      "offset": 38,
+    },
+    "source": "<template><![CDATA[cdata]]></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors CDATA_IN_HTML_CONTENT <template><svg><![CDATA[cdata]]></svg></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [],
+          "children": Array [
+            Object {
+              "content": "cdata",
+              "isEmpty": false,
+              "loc": Object {
+                "end": Object {
+                  "column": 30,
+                  "line": 1,
+                  "offset": 29,
+                },
+                "source": "cdata",
+                "start": Object {
+                  "column": 25,
+                  "line": 1,
+                  "offset": 24,
+                },
+              },
+              "type": 2,
+            },
+          ],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 39,
+              "line": 1,
+              "offset": 38,
+            },
+            "source": "<svg><![CDATA[cdata]]></svg>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 1,
+          "tag": "svg",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 50,
+          "line": 1,
+          "offset": 49,
+        },
+        "source": "<template><svg><![CDATA[cdata]]></svg></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 50,
+      "line": 1,
+      "offset": 49,
+    },
+    "source": "<template><svg><![CDATA[cdata]]></svg></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors CHARACTER_REFERENCE_OUTSIDE_UNICODE_RANGE <template>&#1234567;</template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "οΏ½",
+          "isEmpty": false,
+          "loc": Object {
+            "end": Object {
+              "column": 21,
+              "line": 1,
+              "offset": 20,
+            },
+            "source": "&#1234567;",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 2,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 32,
+          "line": 1,
+          "offset": 31,
+        },
+        "source": "<template>&#1234567;</template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 32,
+      "line": 1,
+      "offset": 31,
+    },
+    "source": "<template>&#1234567;</template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors CONTROL_CHARACTER_REFERENCE <template>&#0003;</template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "\ 3",
+          "isEmpty": false,
+          "loc": Object {
+            "end": Object {
+              "column": 18,
+              "line": 1,
+              "offset": 17,
+            },
+            "source": "&#0003;",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 2,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 29,
+          "line": 1,
+          "offset": 28,
+        },
+        "source": "<template>&#0003;</template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 29,
+      "line": 1,
+      "offset": 28,
+    },
+    "source": "<template>&#0003;</template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors CONTROL_CHARACTER_REFERENCE <template>&#x7F;</template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "\7f",
+          "isEmpty": false,
+          "loc": Object {
+            "end": Object {
+              "column": 17,
+              "line": 1,
+              "offset": 16,
+            },
+            "source": "&#x7F;",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 2,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 28,
+          "line": 1,
+          "offset": 27,
+        },
+        "source": "<template>&#x7F;</template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 28,
+      "line": 1,
+      "offset": 27,
+    },
+    "source": "<template>&#x7F;</template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors DUPLICATE_ATTRIBUTE <template><div id="" id=""></div></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 21,
+                  "line": 1,
+                  "offset": 20,
+                },
+                "source": "id=\\"\\"",
+                "start": Object {
+                  "column": 16,
+                  "line": 1,
+                  "offset": 15,
+                },
+              },
+              "name": "id",
+              "type": 5,
+              "value": Object {
+                "content": "",
+                "isEmpty": true,
+                "loc": Object {
+                  "end": Object {
+                    "column": 21,
+                    "line": 1,
+                    "offset": 20,
+                  },
+                  "source": "\\"\\"",
+                  "start": Object {
+                    "column": 19,
+                    "line": 1,
+                    "offset": 18,
+                  },
+                },
+                "type": 2,
+              },
+            },
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 27,
+                  "line": 1,
+                  "offset": 26,
+                },
+                "source": "id=\\"\\"",
+                "start": Object {
+                  "column": 22,
+                  "line": 1,
+                  "offset": 21,
+                },
+              },
+              "name": "id",
+              "type": 5,
+              "value": Object {
+                "content": "",
+                "isEmpty": true,
+                "loc": Object {
+                  "end": Object {
+                    "column": 27,
+                    "line": 1,
+                    "offset": 26,
+                  },
+                  "source": "\\"\\"",
+                  "start": Object {
+                    "column": 25,
+                    "line": 1,
+                    "offset": 24,
+                  },
+                },
+                "type": 2,
+              },
+            },
+          ],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 34,
+              "line": 1,
+              "offset": 33,
+            },
+            "source": "<div id=\\"\\" id=\\"\\"></div>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 45,
+          "line": 1,
+          "offset": 44,
+        },
+        "source": "<template><div id=\\"\\" id=\\"\\"></div></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 45,
+      "line": 1,
+      "offset": 44,
+    },
+    "source": "<template><div id=\\"\\" id=\\"\\"></div></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors END_TAG_WITH_ATTRIBUTES <template><div></div id=""></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 28,
+              "line": 1,
+              "offset": 27,
+            },
+            "source": "<div></div id=\\"\\">",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 39,
+          "line": 1,
+          "offset": 38,
+        },
+        "source": "<template><div></div id=\\"\\"></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 39,
+      "line": 1,
+      "offset": 38,
+    },
+    "source": "<template><div></div id=\\"\\"></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors END_TAG_WITH_TRAILING_SOLIDUS <template><div></div/></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 23,
+              "line": 1,
+              "offset": 22,
+            },
+            "source": "<div></div/>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 34,
+          "line": 1,
+          "offset": 33,
+        },
+        "source": "<template><div></div/></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 34,
+      "line": 1,
+      "offset": 33,
+    },
+    "source": "<template><div></div/></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors EOF_BEFORE_TAG_NAME <template>< 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "<",
+          "isEmpty": false,
+          "loc": Object {
+            "end": Object {
+              "column": 12,
+              "line": 1,
+              "offset": 11,
+            },
+            "source": "<",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 2,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 12,
+          "line": 1,
+          "offset": 11,
+        },
+        "source": "<template><",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 12,
+      "line": 1,
+      "offset": 11,
+    },
+    "source": "<template><",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors EOF_BEFORE_TAG_NAME <template></ 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "</",
+          "isEmpty": false,
+          "loc": Object {
+            "end": Object {
+              "column": 13,
+              "line": 1,
+              "offset": 12,
+            },
+            "source": "</",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 2,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 13,
+          "line": 1,
+          "offset": 12,
+        },
+        "source": "<template></",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 13,
+      "line": 1,
+      "offset": 12,
+    },
+    "source": "<template></",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors EOF_IN_CDATA <template><svg><![CDATA[ 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 25,
+              "line": 1,
+              "offset": 24,
+            },
+            "source": "<svg><![CDATA[",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 1,
+          "tag": "svg",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 25,
+          "line": 1,
+          "offset": 24,
+        },
+        "source": "<template><svg><![CDATA[",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 25,
+      "line": 1,
+      "offset": 24,
+    },
+    "source": "<template><svg><![CDATA[",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors EOF_IN_CDATA <template><svg><![CDATA[cdata 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [],
+          "children": Array [
+            Object {
+              "content": "cdata",
+              "isEmpty": false,
+              "loc": Object {
+                "end": Object {
+                  "column": 30,
+                  "line": 1,
+                  "offset": 29,
+                },
+                "source": "cdata",
+                "start": Object {
+                  "column": 25,
+                  "line": 1,
+                  "offset": 24,
+                },
+              },
+              "type": 2,
+            },
+          ],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 30,
+              "line": 1,
+              "offset": 29,
+            },
+            "source": "<svg><![CDATA[cdata",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 1,
+          "tag": "svg",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 30,
+          "line": 1,
+          "offset": 29,
+        },
+        "source": "<template><svg><![CDATA[cdata",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 30,
+      "line": 1,
+      "offset": 29,
+    },
+    "source": "<template><svg><![CDATA[cdata",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors EOF_IN_COMMENT <template><! 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "",
+          "loc": Object {
+            "end": Object {
+              "column": 13,
+              "line": 1,
+              "offset": 12,
+            },
+            "source": "<!",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 3,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 13,
+          "line": 1,
+          "offset": 12,
+        },
+        "source": "<template><!",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 13,
+      "line": 1,
+      "offset": 12,
+    },
+    "source": "<template><!",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors EOF_IN_COMMENT <template><!- 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "-",
+          "loc": Object {
+            "end": Object {
+              "column": 14,
+              "line": 1,
+              "offset": 13,
+            },
+            "source": "<!-",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 3,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 14,
+          "line": 1,
+          "offset": 13,
+        },
+        "source": "<template><!-",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 14,
+      "line": 1,
+      "offset": 13,
+    },
+    "source": "<template><!-",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors EOF_IN_COMMENT <template><!-- 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "",
+          "loc": Object {
+            "end": Object {
+              "column": 15,
+              "line": 1,
+              "offset": 14,
+            },
+            "source": "<!--",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 3,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 15,
+          "line": 1,
+          "offset": 14,
+        },
+        "source": "<template><!--",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 15,
+      "line": 1,
+      "offset": 14,
+    },
+    "source": "<template><!--",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors EOF_IN_COMMENT <template><!--comment 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "comment",
+          "loc": Object {
+            "end": Object {
+              "column": 22,
+              "line": 1,
+              "offset": 21,
+            },
+            "source": "<!--comment",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 3,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 22,
+          "line": 1,
+          "offset": 21,
+        },
+        "source": "<template><!--comment",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 22,
+      "line": 1,
+      "offset": 21,
+    },
+    "source": "<template><!--comment",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors EOF_IN_COMMENT <template><!abc 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "abc",
+          "loc": Object {
+            "end": Object {
+              "column": 16,
+              "line": 1,
+              "offset": 15,
+            },
+            "source": "<!abc",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 3,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 16,
+          "line": 1,
+          "offset": 15,
+        },
+        "source": "<template><!abc",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 16,
+      "line": 1,
+      "offset": 15,
+    },
+    "source": "<template><!abc",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT <script><!--console.log('hello') 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "<!--console.log('hello')",
+          "isEmpty": false,
+          "loc": Object {
+            "end": Object {
+              "column": 33,
+              "line": 1,
+              "offset": 32,
+            },
+            "source": "<!--console.log('hello')",
+            "start": Object {
+              "column": 9,
+              "line": 1,
+              "offset": 8,
+            },
+          },
+          "type": 2,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 33,
+          "line": 1,
+          "offset": 32,
+        },
+        "source": "<script><!--console.log('hello')",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "script",
+      "tagType": 0,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 33,
+      "line": 1,
+      "offset": 32,
+    },
+    "source": "<script><!--console.log('hello')",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT <script>console.log('hello') 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "console.log('hello')",
+          "isEmpty": false,
+          "loc": Object {
+            "end": Object {
+              "column": 29,
+              "line": 1,
+              "offset": 28,
+            },
+            "source": "console.log('hello')",
+            "start": Object {
+              "column": 9,
+              "line": 1,
+              "offset": 8,
+            },
+          },
+          "type": 2,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 29,
+          "line": 1,
+          "offset": 28,
+        },
+        "source": "<script>console.log('hello')",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "script",
+      "tagType": 0,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 29,
+      "line": 1,
+      "offset": 28,
+    },
+    "source": "<script>console.log('hello')",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors EOF_IN_TAG <template><div  1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 16,
+              "line": 1,
+              "offset": 15,
+            },
+            "source": "<div ",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 16,
+          "line": 1,
+          "offset": 15,
+        },
+        "source": "<template><div ",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 16,
+      "line": 1,
+      "offset": 15,
+    },
+    "source": "<template><div ",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors EOF_IN_TAG <template><div 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 15,
+              "line": 1,
+              "offset": 14,
+            },
+            "source": "<div",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 15,
+          "line": 1,
+          "offset": 14,
+        },
+        "source": "<template><div",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 15,
+      "line": 1,
+      "offset": 14,
+    },
+    "source": "<template><div",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors EOF_IN_TAG <template><div id  1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 18,
+                  "line": 1,
+                  "offset": 17,
+                },
+                "source": "id",
+                "start": Object {
+                  "column": 16,
+                  "line": 1,
+                  "offset": 15,
+                },
+              },
+              "name": "id",
+              "type": 5,
+              "value": undefined,
+            },
+          ],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 19,
+              "line": 1,
+              "offset": 18,
+            },
+            "source": "<div id ",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 19,
+          "line": 1,
+          "offset": 18,
+        },
+        "source": "<template><div id ",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 19,
+      "line": 1,
+      "offset": 18,
+    },
+    "source": "<template><div id ",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors EOF_IN_TAG <template><div id = 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 20,
+                  "line": 1,
+                  "offset": 19,
+                },
+                "source": "id =",
+                "start": Object {
+                  "column": 16,
+                  "line": 1,
+                  "offset": 15,
+                },
+              },
+              "name": "id",
+              "type": 5,
+              "value": undefined,
+            },
+          ],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 20,
+              "line": 1,
+              "offset": 19,
+            },
+            "source": "<div id =",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 20,
+          "line": 1,
+          "offset": 19,
+        },
+        "source": "<template><div id =",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 20,
+      "line": 1,
+      "offset": 19,
+    },
+    "source": "<template><div id =",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors EOF_IN_TAG <template><div id 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 18,
+                  "line": 1,
+                  "offset": 17,
+                },
+                "source": "id",
+                "start": Object {
+                  "column": 16,
+                  "line": 1,
+                  "offset": 15,
+                },
+              },
+              "name": "id",
+              "type": 5,
+              "value": undefined,
+            },
+          ],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 18,
+              "line": 1,
+              "offset": 17,
+            },
+            "source": "<div id",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 18,
+          "line": 1,
+          "offset": 17,
+        },
+        "source": "<template><div id",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 18,
+      "line": 1,
+      "offset": 17,
+    },
+    "source": "<template><div id",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors EOF_IN_TAG <template><div id="abc 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 23,
+                  "line": 1,
+                  "offset": 22,
+                },
+                "source": "id=\\"abc",
+                "start": Object {
+                  "column": 16,
+                  "line": 1,
+                  "offset": 15,
+                },
+              },
+              "name": "id",
+              "type": 5,
+              "value": Object {
+                "content": "abc",
+                "isEmpty": false,
+                "loc": Object {
+                  "end": Object {
+                    "column": 23,
+                    "line": 1,
+                    "offset": 22,
+                  },
+                  "source": "\\"abc",
+                  "start": Object {
+                    "column": 19,
+                    "line": 1,
+                    "offset": 18,
+                  },
+                },
+                "type": 2,
+              },
+            },
+          ],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 23,
+              "line": 1,
+              "offset": 22,
+            },
+            "source": "<div id=\\"abc",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 23,
+          "line": 1,
+          "offset": 22,
+        },
+        "source": "<template><div id=\\"abc",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 23,
+      "line": 1,
+      "offset": 22,
+    },
+    "source": "<template><div id=\\"abc",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors EOF_IN_TAG <template><div id="abc" 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 24,
+                  "line": 1,
+                  "offset": 23,
+                },
+                "source": "id=\\"abc\\"",
+                "start": Object {
+                  "column": 16,
+                  "line": 1,
+                  "offset": 15,
+                },
+              },
+              "name": "id",
+              "type": 5,
+              "value": Object {
+                "content": "abc",
+                "isEmpty": false,
+                "loc": Object {
+                  "end": Object {
+                    "column": 24,
+                    "line": 1,
+                    "offset": 23,
+                  },
+                  "source": "\\"abc\\"",
+                  "start": Object {
+                    "column": 19,
+                    "line": 1,
+                    "offset": 18,
+                  },
+                },
+                "type": 2,
+              },
+            },
+          ],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 24,
+              "line": 1,
+              "offset": 23,
+            },
+            "source": "<div id=\\"abc\\"",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 24,
+          "line": 1,
+          "offset": 23,
+        },
+        "source": "<template><div id=\\"abc\\"",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 24,
+      "line": 1,
+      "offset": 23,
+    },
+    "source": "<template><div id=\\"abc\\"",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors EOF_IN_TAG <template><div id="abc"/ 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 24,
+                  "line": 1,
+                  "offset": 23,
+                },
+                "source": "id=\\"abc\\"",
+                "start": Object {
+                  "column": 16,
+                  "line": 1,
+                  "offset": 15,
+                },
+              },
+              "name": "id",
+              "type": 5,
+              "value": Object {
+                "content": "abc",
+                "isEmpty": false,
+                "loc": Object {
+                  "end": Object {
+                    "column": 24,
+                    "line": 1,
+                    "offset": 23,
+                  },
+                  "source": "\\"abc\\"",
+                  "start": Object {
+                    "column": 19,
+                    "line": 1,
+                    "offset": 18,
+                  },
+                },
+                "type": 2,
+              },
+            },
+          ],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 25,
+              "line": 1,
+              "offset": 24,
+            },
+            "source": "<div id=\\"abc\\"/",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 25,
+          "line": 1,
+          "offset": 24,
+        },
+        "source": "<template><div id=\\"abc\\"/",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 25,
+      "line": 1,
+      "offset": 24,
+    },
+    "source": "<template><div id=\\"abc\\"/",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors EOF_IN_TAG <template><div id='abc 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 23,
+                  "line": 1,
+                  "offset": 22,
+                },
+                "source": "id='abc",
+                "start": Object {
+                  "column": 16,
+                  "line": 1,
+                  "offset": 15,
+                },
+              },
+              "name": "id",
+              "type": 5,
+              "value": Object {
+                "content": "abc",
+                "isEmpty": false,
+                "loc": Object {
+                  "end": Object {
+                    "column": 23,
+                    "line": 1,
+                    "offset": 22,
+                  },
+                  "source": "'abc",
+                  "start": Object {
+                    "column": 19,
+                    "line": 1,
+                    "offset": 18,
+                  },
+                },
+                "type": 2,
+              },
+            },
+          ],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 23,
+              "line": 1,
+              "offset": 22,
+            },
+            "source": "<div id='abc",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 23,
+          "line": 1,
+          "offset": 22,
+        },
+        "source": "<template><div id='abc",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 23,
+      "line": 1,
+      "offset": 22,
+    },
+    "source": "<template><div id='abc",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors EOF_IN_TAG <template><div id='abc' 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 24,
+                  "line": 1,
+                  "offset": 23,
+                },
+                "source": "id='abc'",
+                "start": Object {
+                  "column": 16,
+                  "line": 1,
+                  "offset": 15,
+                },
+              },
+              "name": "id",
+              "type": 5,
+              "value": Object {
+                "content": "abc",
+                "isEmpty": false,
+                "loc": Object {
+                  "end": Object {
+                    "column": 24,
+                    "line": 1,
+                    "offset": 23,
+                  },
+                  "source": "'abc'",
+                  "start": Object {
+                    "column": 19,
+                    "line": 1,
+                    "offset": 18,
+                  },
+                },
+                "type": 2,
+              },
+            },
+          ],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 24,
+              "line": 1,
+              "offset": 23,
+            },
+            "source": "<div id='abc'",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 24,
+          "line": 1,
+          "offset": 23,
+        },
+        "source": "<template><div id='abc'",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 24,
+      "line": 1,
+      "offset": 23,
+    },
+    "source": "<template><div id='abc'",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors EOF_IN_TAG <template><div id='abc'/ 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 24,
+                  "line": 1,
+                  "offset": 23,
+                },
+                "source": "id='abc'",
+                "start": Object {
+                  "column": 16,
+                  "line": 1,
+                  "offset": 15,
+                },
+              },
+              "name": "id",
+              "type": 5,
+              "value": Object {
+                "content": "abc",
+                "isEmpty": false,
+                "loc": Object {
+                  "end": Object {
+                    "column": 24,
+                    "line": 1,
+                    "offset": 23,
+                  },
+                  "source": "'abc'",
+                  "start": Object {
+                    "column": 19,
+                    "line": 1,
+                    "offset": 18,
+                  },
+                },
+                "type": 2,
+              },
+            },
+          ],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 25,
+              "line": 1,
+              "offset": 24,
+            },
+            "source": "<div id='abc'/",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 25,
+          "line": 1,
+          "offset": 24,
+        },
+        "source": "<template><div id='abc'/",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 25,
+      "line": 1,
+      "offset": 24,
+    },
+    "source": "<template><div id='abc'/",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors EOF_IN_TAG <template><div id=abc / 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 22,
+                  "line": 1,
+                  "offset": 21,
+                },
+                "source": "id=abc",
+                "start": Object {
+                  "column": 16,
+                  "line": 1,
+                  "offset": 15,
+                },
+              },
+              "name": "id",
+              "type": 5,
+              "value": Object {
+                "content": "abc",
+                "isEmpty": false,
+                "loc": Object {
+                  "end": Object {
+                    "column": 22,
+                    "line": 1,
+                    "offset": 21,
+                  },
+                  "source": "abc",
+                  "start": Object {
+                    "column": 19,
+                    "line": 1,
+                    "offset": 18,
+                  },
+                },
+                "type": 2,
+              },
+            },
+          ],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 24,
+              "line": 1,
+              "offset": 23,
+            },
+            "source": "<div id=abc /",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 24,
+          "line": 1,
+          "offset": 23,
+        },
+        "source": "<template><div id=abc /",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 24,
+      "line": 1,
+      "offset": 23,
+    },
+    "source": "<template><div id=abc /",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors EOF_IN_TAG <template><div id=abc 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 22,
+                  "line": 1,
+                  "offset": 21,
+                },
+                "source": "id=abc",
+                "start": Object {
+                  "column": 16,
+                  "line": 1,
+                  "offset": 15,
+                },
+              },
+              "name": "id",
+              "type": 5,
+              "value": Object {
+                "content": "abc",
+                "isEmpty": false,
+                "loc": Object {
+                  "end": Object {
+                    "column": 22,
+                    "line": 1,
+                    "offset": 21,
+                  },
+                  "source": "abc",
+                  "start": Object {
+                    "column": 19,
+                    "line": 1,
+                    "offset": 18,
+                  },
+                },
+                "type": 2,
+              },
+            },
+          ],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 22,
+              "line": 1,
+              "offset": 21,
+            },
+            "source": "<div id=abc",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 22,
+          "line": 1,
+          "offset": 21,
+        },
+        "source": "<template><div id=abc",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 22,
+      "line": 1,
+      "offset": 21,
+    },
+    "source": "<template><div id=abc",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors INCORRECTLY_CLOSED_COMMENT <template><!--comment--!></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "comment",
+          "loc": Object {
+            "end": Object {
+              "column": 26,
+              "line": 1,
+              "offset": 25,
+            },
+            "source": "<!--comment--!>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 3,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 37,
+          "line": 1,
+          "offset": 36,
+        },
+        "source": "<template><!--comment--!></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 37,
+      "line": 1,
+      "offset": 36,
+    },
+    "source": "<template><!--comment--!></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors INCORRECTLY_OPENED_COMMENT <!DOCTYPE html> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "content": "DOCTYPE html",
+      "loc": Object {
+        "end": Object {
+          "column": 16,
+          "line": 1,
+          "offset": 15,
+        },
+        "source": "<!DOCTYPE html>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "type": 3,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 16,
+      "line": 1,
+      "offset": 15,
+    },
+    "source": "<!DOCTYPE html>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors INCORRECTLY_OPENED_COMMENT <template><!></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "",
+          "loc": Object {
+            "end": Object {
+              "column": 14,
+              "line": 1,
+              "offset": 13,
+            },
+            "source": "<!>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 3,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 25,
+          "line": 1,
+          "offset": 24,
+        },
+        "source": "<template><!></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 25,
+      "line": 1,
+      "offset": 24,
+    },
+    "source": "<template><!></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors INCORRECTLY_OPENED_COMMENT <template><!-></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "-",
+          "loc": Object {
+            "end": Object {
+              "column": 15,
+              "line": 1,
+              "offset": 14,
+            },
+            "source": "<!->",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 3,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 26,
+          "line": 1,
+          "offset": 25,
+        },
+        "source": "<template><!-></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 26,
+      "line": 1,
+      "offset": 25,
+    },
+    "source": "<template><!-></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors INCORRECTLY_OPENED_COMMENT <template><!ELEMENT br EMPTY></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "ELEMENT br EMPTY",
+          "loc": Object {
+            "end": Object {
+              "column": 30,
+              "line": 1,
+              "offset": 29,
+            },
+            "source": "<!ELEMENT br EMPTY>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 3,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 41,
+          "line": 1,
+          "offset": 40,
+        },
+        "source": "<template><!ELEMENT br EMPTY></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 41,
+      "line": 1,
+      "offset": 40,
+    },
+    "source": "<template><!ELEMENT br EMPTY></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors INVALID_FIRST_CHARACTER_OF_TAG_NAME <template></οΏ½></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "οΏ½",
+          "loc": Object {
+            "end": Object {
+              "column": 15,
+              "line": 1,
+              "offset": 14,
+            },
+            "source": "</οΏ½>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 3,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 26,
+          "line": 1,
+          "offset": 25,
+        },
+        "source": "<template></οΏ½></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 26,
+      "line": 1,
+      "offset": 25,
+    },
+    "source": "<template></οΏ½></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors INVALID_FIRST_CHARACTER_OF_TAG_NAME <template><οΏ½></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "<οΏ½>",
+          "isEmpty": false,
+          "loc": Object {
+            "end": Object {
+              "column": 14,
+              "line": 1,
+              "offset": 13,
+            },
+            "source": "<οΏ½>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 2,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 25,
+          "line": 1,
+          "offset": 24,
+        },
+        "source": "<template><οΏ½></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 25,
+      "line": 1,
+      "offset": 24,
+    },
+    "source": "<template><οΏ½></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors INVALID_FIRST_CHARACTER_OF_TAG_NAME <template>{{a < b}}</template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "a < b",
+          "isStatic": false,
+          "loc": Object {
+            "end": Object {
+              "column": 20,
+              "line": 1,
+              "offset": 19,
+            },
+            "source": "{{a < b}}",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 4,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 31,
+          "line": 1,
+          "offset": 30,
+        },
+        "source": "<template>{{a < b}}</template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 31,
+      "line": 1,
+      "offset": 30,
+    },
+    "source": "<template>{{a < b}}</template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors INVALID_FIRST_CHARACTER_OF_TAG_NAME <template>a < b</template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "a < b",
+          "isEmpty": false,
+          "loc": Object {
+            "end": Object {
+              "column": 16,
+              "line": 1,
+              "offset": 15,
+            },
+            "source": "a < b",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 2,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 27,
+          "line": 1,
+          "offset": 26,
+        },
+        "source": "<template>a < b</template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 27,
+      "line": 1,
+      "offset": 26,
+    },
+    "source": "<template>a < b</template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors INVALID_FIRST_CHARACTER_OF_TAG_NAME <template>a </ b</template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "a ",
+          "isEmpty": false,
+          "loc": Object {
+            "end": Object {
+              "column": 13,
+              "line": 1,
+              "offset": 12,
+            },
+            "source": "a ",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 2,
+        },
+        Object {
+          "content": " b</template",
+          "loc": Object {
+            "end": Object {
+              "column": 28,
+              "line": 1,
+              "offset": 27,
+            },
+            "source": "</ b</template>",
+            "start": Object {
+              "column": 13,
+              "line": 1,
+              "offset": 12,
+            },
+          },
+          "type": 3,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 28,
+          "line": 1,
+          "offset": 27,
+        },
+        "source": "<template>a </ b</template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 28,
+      "line": 1,
+      "offset": 27,
+    },
+    "source": "<template>a </ b</template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors MISSING_ATTRIBUTE_VALUE <template><div id= /></div></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 21,
+                  "line": 1,
+                  "offset": 20,
+                },
+                "source": "id= /",
+                "start": Object {
+                  "column": 16,
+                  "line": 1,
+                  "offset": 15,
+                },
+              },
+              "name": "id",
+              "type": 5,
+              "value": Object {
+                "content": "/",
+                "isEmpty": false,
+                "loc": Object {
+                  "end": Object {
+                    "column": 21,
+                    "line": 1,
+                    "offset": 20,
+                  },
+                  "source": "/",
+                  "start": Object {
+                    "column": 20,
+                    "line": 1,
+                    "offset": 19,
+                  },
+                },
+                "type": 2,
+              },
+            },
+          ],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 28,
+              "line": 1,
+              "offset": 27,
+            },
+            "source": "<div id= /></div>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 39,
+          "line": 1,
+          "offset": 38,
+        },
+        "source": "<template><div id= /></div></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 39,
+      "line": 1,
+      "offset": 38,
+    },
+    "source": "<template><div id= /></div></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors MISSING_ATTRIBUTE_VALUE <template><div id= ></div></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 20,
+                  "line": 1,
+                  "offset": 19,
+                },
+                "source": "id= ",
+                "start": Object {
+                  "column": 16,
+                  "line": 1,
+                  "offset": 15,
+                },
+              },
+              "name": "id",
+              "type": 5,
+              "value": undefined,
+            },
+          ],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 27,
+              "line": 1,
+              "offset": 26,
+            },
+            "source": "<div id= ></div>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 38,
+          "line": 1,
+          "offset": 37,
+        },
+        "source": "<template><div id= ></div></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 38,
+      "line": 1,
+      "offset": 37,
+    },
+    "source": "<template><div id= ></div></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors MISSING_ATTRIBUTE_VALUE <template><div id=></div></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 19,
+                  "line": 1,
+                  "offset": 18,
+                },
+                "source": "id=",
+                "start": Object {
+                  "column": 16,
+                  "line": 1,
+                  "offset": 15,
+                },
+              },
+              "name": "id",
+              "type": 5,
+              "value": undefined,
+            },
+          ],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 26,
+              "line": 1,
+              "offset": 25,
+            },
+            "source": "<div id=></div>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 37,
+          "line": 1,
+          "offset": 36,
+        },
+        "source": "<template><div id=></div></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 37,
+      "line": 1,
+      "offset": 36,
+    },
+    "source": "<template><div id=></div></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors MISSING_END_TAG_NAME <template></></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 25,
+          "line": 1,
+          "offset": 24,
+        },
+        "source": "<template></></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 25,
+      "line": 1,
+      "offset": 24,
+    },
+    "source": "<template></></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors MISSING_SEMICOLON_AFTER_CHARACTER_REFERENCE <template>&#40</template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "(",
+          "isEmpty": false,
+          "loc": Object {
+            "end": Object {
+              "column": 15,
+              "line": 1,
+              "offset": 14,
+            },
+            "source": "&#40",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 2,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 26,
+          "line": 1,
+          "offset": 25,
+        },
+        "source": "<template>&#40</template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 26,
+      "line": 1,
+      "offset": 25,
+    },
+    "source": "<template>&#40</template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors MISSING_SEMICOLON_AFTER_CHARACTER_REFERENCE <template>&#x40</template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "@",
+          "isEmpty": false,
+          "loc": Object {
+            "end": Object {
+              "column": 16,
+              "line": 1,
+              "offset": 15,
+            },
+            "source": "&#x40",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 2,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 27,
+          "line": 1,
+          "offset": 26,
+        },
+        "source": "<template>&#x40</template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 27,
+      "line": 1,
+      "offset": 26,
+    },
+    "source": "<template>&#x40</template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors MISSING_SEMICOLON_AFTER_CHARACTER_REFERENCE <template>&amp</template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "&",
+          "isEmpty": false,
+          "loc": Object {
+            "end": Object {
+              "column": 15,
+              "line": 1,
+              "offset": 14,
+            },
+            "source": "&amp",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 2,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 26,
+          "line": 1,
+          "offset": 25,
+        },
+        "source": "<template>&amp</template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 26,
+      "line": 1,
+      "offset": 25,
+    },
+    "source": "<template>&amp</template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors MISSING_WHITESPACE_BETWEEN_ATTRIBUTES <template><div id="foo"\\x0d;\\x0a;class="bar"></div></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 24,
+                  "line": 1,
+                  "offset": 23,
+                },
+                "source": "id=\\"foo\\"",
+                "start": Object {
+                  "column": 16,
+                  "line": 1,
+                  "offset": 15,
+                },
+              },
+              "name": "id",
+              "type": 5,
+              "value": Object {
+                "content": "foo",
+                "isEmpty": false,
+                "loc": Object {
+                  "end": Object {
+                    "column": 24,
+                    "line": 1,
+                    "offset": 23,
+                  },
+                  "source": "\\"foo\\"",
+                  "start": Object {
+                    "column": 19,
+                    "line": 1,
+                    "offset": 18,
+                  },
+                },
+                "type": 2,
+              },
+            },
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 12,
+                  "line": 2,
+                  "offset": 36,
+                },
+                "source": "class=\\"bar\\"",
+                "start": Object {
+                  "column": 1,
+                  "line": 2,
+                  "offset": 25,
+                },
+              },
+              "name": "class",
+              "type": 5,
+              "value": Object {
+                "content": "bar",
+                "isEmpty": false,
+                "loc": Object {
+                  "end": Object {
+                    "column": 12,
+                    "line": 2,
+                    "offset": 36,
+                  },
+                  "source": "\\"bar\\"",
+                  "start": Object {
+                    "column": 7,
+                    "line": 2,
+                    "offset": 31,
+                  },
+                },
+                "type": 2,
+              },
+            },
+          ],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 19,
+              "line": 2,
+              "offset": 43,
+            },
+            "source": "<div id=\\"foo\\"
+class=\\"bar\\"></div>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 30,
+          "line": 2,
+          "offset": 54,
+        },
+        "source": "<template><div id=\\"foo\\"
+class=\\"bar\\"></div></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 30,
+      "line": 2,
+      "offset": 54,
+    },
+    "source": "<template><div id=\\"foo\\"
+class=\\"bar\\"></div></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors MISSING_WHITESPACE_BETWEEN_ATTRIBUTES <template><div id="foo"class="bar"></div></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 24,
+                  "line": 1,
+                  "offset": 23,
+                },
+                "source": "id=\\"foo\\"",
+                "start": Object {
+                  "column": 16,
+                  "line": 1,
+                  "offset": 15,
+                },
+              },
+              "name": "id",
+              "type": 5,
+              "value": Object {
+                "content": "foo",
+                "isEmpty": false,
+                "loc": Object {
+                  "end": Object {
+                    "column": 24,
+                    "line": 1,
+                    "offset": 23,
+                  },
+                  "source": "\\"foo\\"",
+                  "start": Object {
+                    "column": 19,
+                    "line": 1,
+                    "offset": 18,
+                  },
+                },
+                "type": 2,
+              },
+            },
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 35,
+                  "line": 1,
+                  "offset": 34,
+                },
+                "source": "class=\\"bar\\"",
+                "start": Object {
+                  "column": 24,
+                  "line": 1,
+                  "offset": 23,
+                },
+              },
+              "name": "class",
+              "type": 5,
+              "value": Object {
+                "content": "bar",
+                "isEmpty": false,
+                "loc": Object {
+                  "end": Object {
+                    "column": 35,
+                    "line": 1,
+                    "offset": 34,
+                  },
+                  "source": "\\"bar\\"",
+                  "start": Object {
+                    "column": 30,
+                    "line": 1,
+                    "offset": 29,
+                  },
+                },
+                "type": 2,
+              },
+            },
+          ],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 42,
+              "line": 1,
+              "offset": 41,
+            },
+            "source": "<div id=\\"foo\\"class=\\"bar\\"></div>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 53,
+          "line": 1,
+          "offset": 52,
+        },
+        "source": "<template><div id=\\"foo\\"class=\\"bar\\"></div></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 53,
+      "line": 1,
+      "offset": 52,
+    },
+    "source": "<template><div id=\\"foo\\"class=\\"bar\\"></div></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors NESTED_COMMENT <template><!--a<!-- 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "a<!--",
+          "loc": Object {
+            "end": Object {
+              "column": 20,
+              "line": 1,
+              "offset": 19,
+            },
+            "source": "<!--a<!--",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 3,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 20,
+          "line": 1,
+          "offset": 19,
+        },
+        "source": "<template><!--a<!--",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 20,
+      "line": 1,
+      "offset": 19,
+    },
+    "source": "<template><!--a<!--",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors NESTED_COMMENT <template><!--a<!--></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "a<!",
+          "loc": Object {
+            "end": Object {
+              "column": 21,
+              "line": 1,
+              "offset": 20,
+            },
+            "source": "<!--a<!-->",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 3,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 32,
+          "line": 1,
+          "offset": 31,
+        },
+        "source": "<template><!--a<!--></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 32,
+      "line": 1,
+      "offset": 31,
+    },
+    "source": "<template><!--a<!--></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors NESTED_COMMENT <template><!--a<!--b<!--c--></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "a<!--b<!--c",
+          "loc": Object {
+            "end": Object {
+              "column": 29,
+              "line": 1,
+              "offset": 28,
+            },
+            "source": "<!--a<!--b<!--c-->",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 3,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 40,
+          "line": 1,
+          "offset": 39,
+        },
+        "source": "<template><!--a<!--b<!--c--></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 40,
+      "line": 1,
+      "offset": 39,
+    },
+    "source": "<template><!--a<!--b<!--c--></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors NESTED_COMMENT <template><!--a<!--b--></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "a<!--b",
+          "loc": Object {
+            "end": Object {
+              "column": 24,
+              "line": 1,
+              "offset": 23,
+            },
+            "source": "<!--a<!--b-->",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 3,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 35,
+          "line": 1,
+          "offset": 34,
+        },
+        "source": "<template><!--a<!--b--></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 35,
+      "line": 1,
+      "offset": 34,
+    },
+    "source": "<template><!--a<!--b--></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors NONCHARACTER_CHARACTER_REFERENCE <template>&#x1FFFF;</template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "🿿",
+          "isEmpty": false,
+          "loc": Object {
+            "end": Object {
+              "column": 20,
+              "line": 1,
+              "offset": 19,
+            },
+            "source": "&#x1FFFF;",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 2,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 31,
+          "line": 1,
+          "offset": 30,
+        },
+        "source": "<template>&#x1FFFF;</template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 31,
+      "line": 1,
+      "offset": 30,
+    },
+    "source": "<template>&#x1FFFF;</template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors NONCHARACTER_CHARACTER_REFERENCE <template>&#xFFFE;</template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "οΏΎ",
+          "isEmpty": false,
+          "loc": Object {
+            "end": Object {
+              "column": 19,
+              "line": 1,
+              "offset": 18,
+            },
+            "source": "&#xFFFE;",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 2,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 30,
+          "line": 1,
+          "offset": 29,
+        },
+        "source": "<template>&#xFFFE;</template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 30,
+      "line": 1,
+      "offset": 29,
+    },
+    "source": "<template>&#xFFFE;</template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors NULL_CHARACTER_REFERENCE <template>&#0000;</template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "οΏ½",
+          "isEmpty": false,
+          "loc": Object {
+            "end": Object {
+              "column": 18,
+              "line": 1,
+              "offset": 17,
+            },
+            "source": "&#0000;",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 2,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 29,
+          "line": 1,
+          "offset": 28,
+        },
+        "source": "<template>&#0000;</template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 29,
+      "line": 1,
+      "offset": 28,
+    },
+    "source": "<template>&#0000;</template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors SURROGATE_CHARACTER_REFERENCE <template>&#xD800;</template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "οΏ½",
+          "isEmpty": false,
+          "loc": Object {
+            "end": Object {
+              "column": 19,
+              "line": 1,
+              "offset": 18,
+            },
+            "source": "&#xD800;",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 2,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 30,
+          "line": 1,
+          "offset": 29,
+        },
+        "source": "<template>&#xD800;</template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 30,
+      "line": 1,
+      "offset": 29,
+    },
+    "source": "<template>&#xD800;</template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME <template><div a"bc=''></div></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 23,
+                  "line": 1,
+                  "offset": 22,
+                },
+                "source": "a\\"bc=''",
+                "start": Object {
+                  "column": 16,
+                  "line": 1,
+                  "offset": 15,
+                },
+              },
+              "name": "a\\"bc",
+              "type": 5,
+              "value": Object {
+                "content": "",
+                "isEmpty": true,
+                "loc": Object {
+                  "end": Object {
+                    "column": 23,
+                    "line": 1,
+                    "offset": 22,
+                  },
+                  "source": "''",
+                  "start": Object {
+                    "column": 21,
+                    "line": 1,
+                    "offset": 20,
+                  },
+                },
+                "type": 2,
+              },
+            },
+          ],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 30,
+              "line": 1,
+              "offset": 29,
+            },
+            "source": "<div a\\"bc=''></div>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 41,
+          "line": 1,
+          "offset": 40,
+        },
+        "source": "<template><div a\\"bc=''></div></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 41,
+      "line": 1,
+      "offset": 40,
+    },
+    "source": "<template><div a\\"bc=''></div></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME <template><div a'bc=''></div></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 23,
+                  "line": 1,
+                  "offset": 22,
+                },
+                "source": "a'bc=''",
+                "start": Object {
+                  "column": 16,
+                  "line": 1,
+                  "offset": 15,
+                },
+              },
+              "name": "a'bc",
+              "type": 5,
+              "value": Object {
+                "content": "",
+                "isEmpty": true,
+                "loc": Object {
+                  "end": Object {
+                    "column": 23,
+                    "line": 1,
+                    "offset": 22,
+                  },
+                  "source": "''",
+                  "start": Object {
+                    "column": 21,
+                    "line": 1,
+                    "offset": 20,
+                  },
+                },
+                "type": 2,
+              },
+            },
+          ],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 30,
+              "line": 1,
+              "offset": 29,
+            },
+            "source": "<div a'bc=''></div>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 41,
+          "line": 1,
+          "offset": 40,
+        },
+        "source": "<template><div a'bc=''></div></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 41,
+      "line": 1,
+      "offset": 40,
+    },
+    "source": "<template><div a'bc=''></div></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME <template><div a<bc=''></div></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 23,
+                  "line": 1,
+                  "offset": 22,
+                },
+                "source": "a<bc=''",
+                "start": Object {
+                  "column": 16,
+                  "line": 1,
+                  "offset": 15,
+                },
+              },
+              "name": "a<bc",
+              "type": 5,
+              "value": Object {
+                "content": "",
+                "isEmpty": true,
+                "loc": Object {
+                  "end": Object {
+                    "column": 23,
+                    "line": 1,
+                    "offset": 22,
+                  },
+                  "source": "''",
+                  "start": Object {
+                    "column": 21,
+                    "line": 1,
+                    "offset": 20,
+                  },
+                },
+                "type": 2,
+              },
+            },
+          ],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 30,
+              "line": 1,
+              "offset": 29,
+            },
+            "source": "<div a<bc=''></div>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 41,
+          "line": 1,
+          "offset": 40,
+        },
+        "source": "<template><div a<bc=''></div></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 41,
+      "line": 1,
+      "offset": 40,
+    },
+    "source": "<template><div a<bc=''></div></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE <template><div foo=bar"></div></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 24,
+                  "line": 1,
+                  "offset": 23,
+                },
+                "source": "foo=bar\\"",
+                "start": Object {
+                  "column": 16,
+                  "line": 1,
+                  "offset": 15,
+                },
+              },
+              "name": "foo",
+              "type": 5,
+              "value": Object {
+                "content": "bar\\"",
+                "isEmpty": false,
+                "loc": Object {
+                  "end": Object {
+                    "column": 24,
+                    "line": 1,
+                    "offset": 23,
+                  },
+                  "source": "bar\\"",
+                  "start": Object {
+                    "column": 20,
+                    "line": 1,
+                    "offset": 19,
+                  },
+                },
+                "type": 2,
+              },
+            },
+          ],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 31,
+              "line": 1,
+              "offset": 30,
+            },
+            "source": "<div foo=bar\\"></div>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 42,
+          "line": 1,
+          "offset": 41,
+        },
+        "source": "<template><div foo=bar\\"></div></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 42,
+      "line": 1,
+      "offset": 41,
+    },
+    "source": "<template><div foo=bar\\"></div></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE <template><div foo=bar'></div></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 24,
+                  "line": 1,
+                  "offset": 23,
+                },
+                "source": "foo=bar'",
+                "start": Object {
+                  "column": 16,
+                  "line": 1,
+                  "offset": 15,
+                },
+              },
+              "name": "foo",
+              "type": 5,
+              "value": Object {
+                "content": "bar'",
+                "isEmpty": false,
+                "loc": Object {
+                  "end": Object {
+                    "column": 24,
+                    "line": 1,
+                    "offset": 23,
+                  },
+                  "source": "bar'",
+                  "start": Object {
+                    "column": 20,
+                    "line": 1,
+                    "offset": 19,
+                  },
+                },
+                "type": 2,
+              },
+            },
+          ],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 31,
+              "line": 1,
+              "offset": 30,
+            },
+            "source": "<div foo=bar'></div>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 42,
+          "line": 1,
+          "offset": 41,
+        },
+        "source": "<template><div foo=bar'></div></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 42,
+      "line": 1,
+      "offset": 41,
+    },
+    "source": "<template><div foo=bar'></div></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE <template><div foo=bar<div></div></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 27,
+                  "line": 1,
+                  "offset": 26,
+                },
+                "source": "foo=bar<div",
+                "start": Object {
+                  "column": 16,
+                  "line": 1,
+                  "offset": 15,
+                },
+              },
+              "name": "foo",
+              "type": 5,
+              "value": Object {
+                "content": "bar<div",
+                "isEmpty": false,
+                "loc": Object {
+                  "end": Object {
+                    "column": 27,
+                    "line": 1,
+                    "offset": 26,
+                  },
+                  "source": "bar<div",
+                  "start": Object {
+                    "column": 20,
+                    "line": 1,
+                    "offset": 19,
+                  },
+                },
+                "type": 2,
+              },
+            },
+          ],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 34,
+              "line": 1,
+              "offset": 33,
+            },
+            "source": "<div foo=bar<div></div>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 45,
+          "line": 1,
+          "offset": 44,
+        },
+        "source": "<template><div foo=bar<div></div></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 45,
+      "line": 1,
+      "offset": 44,
+    },
+    "source": "<template><div foo=bar<div></div></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE <template><div foo=bar=baz></div></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 27,
+                  "line": 1,
+                  "offset": 26,
+                },
+                "source": "foo=bar=baz",
+                "start": Object {
+                  "column": 16,
+                  "line": 1,
+                  "offset": 15,
+                },
+              },
+              "name": "foo",
+              "type": 5,
+              "value": Object {
+                "content": "bar=baz",
+                "isEmpty": false,
+                "loc": Object {
+                  "end": Object {
+                    "column": 27,
+                    "line": 1,
+                    "offset": 26,
+                  },
+                  "source": "bar=baz",
+                  "start": Object {
+                    "column": 20,
+                    "line": 1,
+                    "offset": 19,
+                  },
+                },
+                "type": 2,
+              },
+            },
+          ],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 34,
+              "line": 1,
+              "offset": 33,
+            },
+            "source": "<div foo=bar=baz></div>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 45,
+          "line": 1,
+          "offset": 44,
+        },
+        "source": "<template><div foo=bar=baz></div></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 45,
+      "line": 1,
+      "offset": 44,
+    },
+    "source": "<template><div foo=bar=baz></div></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE <template><div foo=bar\`></div></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 24,
+                  "line": 1,
+                  "offset": 23,
+                },
+                "source": "foo=bar\`",
+                "start": Object {
+                  "column": 16,
+                  "line": 1,
+                  "offset": 15,
+                },
+              },
+              "name": "foo",
+              "type": 5,
+              "value": Object {
+                "content": "bar\`",
+                "isEmpty": false,
+                "loc": Object {
+                  "end": Object {
+                    "column": 24,
+                    "line": 1,
+                    "offset": 23,
+                  },
+                  "source": "bar\`",
+                  "start": Object {
+                    "column": 20,
+                    "line": 1,
+                    "offset": 19,
+                  },
+                },
+                "type": 2,
+              },
+            },
+          ],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 31,
+              "line": 1,
+              "offset": 30,
+            },
+            "source": "<div foo=bar\`></div>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 42,
+          "line": 1,
+          "offset": 41,
+        },
+        "source": "<template><div foo=bar\`></div></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 42,
+      "line": 1,
+      "offset": 41,
+    },
+    "source": "<template><div foo=bar\`></div></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME <template><div =></div></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 17,
+                  "line": 1,
+                  "offset": 16,
+                },
+                "source": "=",
+                "start": Object {
+                  "column": 16,
+                  "line": 1,
+                  "offset": 15,
+                },
+              },
+              "name": "=",
+              "type": 5,
+              "value": undefined,
+            },
+          ],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 24,
+              "line": 1,
+              "offset": 23,
+            },
+            "source": "<div =></div>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 35,
+          "line": 1,
+          "offset": 34,
+        },
+        "source": "<template><div =></div></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 35,
+      "line": 1,
+      "offset": 34,
+    },
+    "source": "<template><div =></div></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME <template><div =foo=bar></div></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 24,
+                  "line": 1,
+                  "offset": 23,
+                },
+                "source": "=foo=bar",
+                "start": Object {
+                  "column": 16,
+                  "line": 1,
+                  "offset": 15,
+                },
+              },
+              "name": "=foo",
+              "type": 5,
+              "value": Object {
+                "content": "bar",
+                "isEmpty": false,
+                "loc": Object {
+                  "end": Object {
+                    "column": 24,
+                    "line": 1,
+                    "offset": 23,
+                  },
+                  "source": "bar",
+                  "start": Object {
+                    "column": 21,
+                    "line": 1,
+                    "offset": 20,
+                  },
+                },
+                "type": 2,
+              },
+            },
+          ],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 31,
+              "line": 1,
+              "offset": 30,
+            },
+            "source": "<div =foo=bar></div>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 42,
+          "line": 1,
+          "offset": 41,
+        },
+        "source": "<template><div =foo=bar></div></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 42,
+      "line": 1,
+      "offset": 41,
+    },
+    "source": "<template><div =foo=bar></div></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME <template><?xml?></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "?xml?",
+          "loc": Object {
+            "end": Object {
+              "column": 18,
+              "line": 1,
+              "offset": 17,
+            },
+            "source": "<?xml?>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 3,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 29,
+          "line": 1,
+          "offset": 28,
+        },
+        "source": "<template><?xml?></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 29,
+      "line": 1,
+      "offset": 28,
+    },
+    "source": "<template><?xml?></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors UNEXPECTED_SOLIDUS_IN_TAG <template><div a/b></div></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 17,
+                  "line": 1,
+                  "offset": 16,
+                },
+                "source": "a",
+                "start": Object {
+                  "column": 16,
+                  "line": 1,
+                  "offset": 15,
+                },
+              },
+              "name": "a",
+              "type": 5,
+              "value": undefined,
+            },
+            Object {
+              "loc": Object {
+                "end": Object {
+                  "column": 19,
+                  "line": 1,
+                  "offset": 18,
+                },
+                "source": "b",
+                "start": Object {
+                  "column": 18,
+                  "line": 1,
+                  "offset": 17,
+                },
+              },
+              "name": "b",
+              "type": 5,
+              "value": undefined,
+            },
+          ],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 26,
+              "line": 1,
+              "offset": 25,
+            },
+            "source": "<div a/b></div>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 37,
+          "line": 1,
+          "offset": 36,
+        },
+        "source": "<template><div a/b></div></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 37,
+      "line": 1,
+      "offset": 36,
+    },
+    "source": "<template><div a/b></div></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors UNKNOWN_NAMED_CHARACTER_REFERENCE <template>&unknown;</template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "&unknown;",
+          "isEmpty": false,
+          "loc": Object {
+            "end": Object {
+              "column": 20,
+              "line": 1,
+              "offset": 19,
+            },
+            "source": "&unknown;",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 2,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 31,
+          "line": 1,
+          "offset": 30,
+        },
+        "source": "<template>&unknown;</template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 31,
+      "line": 1,
+      "offset": 30,
+    },
+    "source": "<template>&unknown;</template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors X_INVALID_END_TAG <svg><![CDATA[</div>]]></svg> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "</div>",
+          "isEmpty": false,
+          "loc": Object {
+            "end": Object {
+              "column": 21,
+              "line": 1,
+              "offset": 20,
+            },
+            "source": "</div>",
+            "start": Object {
+              "column": 15,
+              "line": 1,
+              "offset": 14,
+            },
+          },
+          "type": 2,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 30,
+          "line": 1,
+          "offset": 29,
+        },
+        "source": "<svg><![CDATA[</div>]]></svg>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 1,
+      "tag": "svg",
+      "tagType": 0,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 30,
+      "line": 1,
+      "offset": 29,
+    },
+    "source": "<svg><![CDATA[</div>]]></svg>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors X_INVALID_END_TAG <svg><!--</div>--></svg> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "</div>",
+          "loc": Object {
+            "end": Object {
+              "column": 19,
+              "line": 1,
+              "offset": 18,
+            },
+            "source": "<!--</div>-->",
+            "start": Object {
+              "column": 6,
+              "line": 1,
+              "offset": 5,
+            },
+          },
+          "type": 3,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 25,
+          "line": 1,
+          "offset": 24,
+        },
+        "source": "<svg><!--</div>--></svg>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 1,
+      "tag": "svg",
+      "tagType": 0,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 25,
+      "line": 1,
+      "offset": 24,
+    },
+    "source": "<svg><!--</div>--></svg>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors X_INVALID_END_TAG <template></div></div></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 34,
+          "line": 1,
+          "offset": 33,
+        },
+        "source": "<template></div></div></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 34,
+      "line": 1,
+      "offset": 33,
+    },
+    "source": "<template></div></div></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors X_INVALID_END_TAG <template></div></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 28,
+          "line": 1,
+          "offset": 27,
+        },
+        "source": "<template></div></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 28,
+      "line": 1,
+      "offset": 27,
+    },
+    "source": "<template></div></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors X_INVALID_END_TAG <template>{{'</div>'}}</template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "'</div>'",
+          "isStatic": false,
+          "loc": Object {
+            "end": Object {
+              "column": 23,
+              "line": 1,
+              "offset": 22,
+            },
+            "source": "{{'</div>'}}",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 4,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 34,
+          "line": 1,
+          "offset": 33,
+        },
+        "source": "<template>{{'</div>'}}</template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 34,
+      "line": 1,
+      "offset": 33,
+    },
+    "source": "<template>{{'</div>'}}</template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors X_INVALID_END_TAG <textarea></div></textarea> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "content": "</div>",
+          "isEmpty": false,
+          "loc": Object {
+            "end": Object {
+              "column": 17,
+              "line": 1,
+              "offset": 16,
+            },
+            "source": "</div>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "type": 2,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 28,
+          "line": 1,
+          "offset": 27,
+        },
+        "source": "<textarea></div></textarea>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "textarea",
+      "tagType": 0,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 28,
+      "line": 1,
+      "offset": 27,
+    },
+    "source": "<textarea></div></textarea>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors X_MISSING_END_TAG <template><div> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 16,
+              "line": 1,
+              "offset": 15,
+            },
+            "source": "<div>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 16,
+          "line": 1,
+          "offset": 15,
+        },
+        "source": "<template><div>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 16,
+      "line": 1,
+      "offset": 15,
+    },
+    "source": "<template><div>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors X_MISSING_END_TAG <template><div></template> 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 16,
+              "line": 1,
+              "offset": 15,
+            },
+            "source": "<div>",
+            "start": Object {
+              "column": 11,
+              "line": 1,
+              "offset": 10,
+            },
+          },
+          "ns": 0,
+          "tag": "div",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 27,
+          "line": 1,
+          "offset": 26,
+        },
+        "source": "<template><div></template>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "template",
+      "tagType": 3,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 27,
+      "line": 1,
+      "offset": 26,
+    },
+    "source": "<template><div></template>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors X_MISSING_INTERPOLATION_END {{ 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "content": "{{",
+      "isEmpty": false,
+      "loc": Object {
+        "end": Object {
+          "column": 3,
+          "line": 1,
+          "offset": 2,
+        },
+        "source": "{{",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "type": 2,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 3,
+      "line": 1,
+      "offset": 2,
+    },
+    "source": "{{",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors X_MISSING_INTERPOLATION_END {{ foo 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "content": "{{ foo",
+      "isEmpty": false,
+      "loc": Object {
+        "end": Object {
+          "column": 7,
+          "line": 1,
+          "offset": 6,
+        },
+        "source": "{{ foo",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "type": 2,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 7,
+      "line": 1,
+      "offset": 6,
+    },
+    "source": "{{ foo",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse Errors X_MISSING_INTERPOLATION_END {{}} 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "content": "",
+      "isStatic": true,
+      "loc": Object {
+        "end": Object {
+          "column": 5,
+          "line": 1,
+          "offset": 4,
+        },
+        "source": "{{}}",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "type": 4,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 5,
+      "line": 1,
+      "offset": 4,
+    },
+    "source": "{{}}",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse invalid html 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [],
+          "children": Array [],
+          "directives": Array [],
+          "isSelfClosing": false,
+          "loc": Object {
+            "end": Object {
+              "column": 1,
+              "line": 3,
+              "offset": 13,
+            },
+            "source": "<span>
+",
+            "start": Object {
+              "column": 1,
+              "line": 2,
+              "offset": 6,
+            },
+          },
+          "ns": 0,
+          "tag": "span",
+          "tagType": 0,
+          "type": 1,
+        },
+      ],
+      "directives": Array [],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 7,
+          "line": 3,
+          "offset": 19,
+        },
+        "source": "<div>
+<span>
+</div>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "div",
+      "tagType": 0,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 8,
+      "line": 4,
+      "offset": 27,
+    },
+    "source": "<div>
+<span>
+</div>
+</span>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse self closing multiple tag 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [],
+      "directives": Array [
+        Object {
+          "arg": Object {
+            "content": "class",
+            "isStatic": true,
+            "loc": Object {
+              "end": Object {
+                "column": 12,
+                "line": 1,
+                "offset": 11,
+              },
+              "source": "class",
+              "start": Object {
+                "column": 7,
+                "line": 1,
+                "offset": 6,
+              },
+            },
+            "type": 4,
+          },
+          "exp": Object {
+            "content": "{ some: condition }",
+            "isStatic": false,
+            "loc": Object {
+              "end": Object {
+                "column": 34,
+                "line": 1,
+                "offset": 33,
+              },
+              "source": "\\"{ some: condition }\\"",
+              "start": Object {
+                "column": 13,
+                "line": 1,
+                "offset": 12,
+              },
+            },
+            "type": 4,
+          },
+          "loc": Object {
+            "end": Object {
+              "column": 34,
+              "line": 1,
+              "offset": 33,
+            },
+            "source": ":class=\\"{ some: condition }\\"",
+            "start": Object {
+              "column": 6,
+              "line": 1,
+              "offset": 5,
+            },
+          },
+          "modifiers": Array [],
+          "name": "bind",
+          "type": 6,
+        },
+      ],
+      "isSelfClosing": true,
+      "loc": Object {
+        "end": Object {
+          "column": 37,
+          "line": 1,
+          "offset": 36,
+        },
+        "source": "<div :class=\\"{ some: condition }\\" />",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "div",
+      "tagType": 0,
+      "type": 1,
+    },
+    Object {
+      "attrs": Array [],
+      "children": Array [],
+      "directives": Array [
+        Object {
+          "arg": Object {
+            "content": "style",
+            "isStatic": true,
+            "loc": Object {
+              "end": Object {
+                "column": 16,
+                "line": 2,
+                "offset": 52,
+              },
+              "source": "style",
+              "start": Object {
+                "column": 11,
+                "line": 2,
+                "offset": 47,
+              },
+            },
+            "type": 4,
+          },
+          "exp": Object {
+            "content": "{ color: 'red' }",
+            "isStatic": false,
+            "loc": Object {
+              "end": Object {
+                "column": 35,
+                "line": 2,
+                "offset": 71,
+              },
+              "source": "\\"{ color: 'red' }\\"",
+              "start": Object {
+                "column": 17,
+                "line": 2,
+                "offset": 53,
+              },
+            },
+            "type": 4,
+          },
+          "loc": Object {
+            "end": Object {
+              "column": 35,
+              "line": 2,
+              "offset": 71,
+            },
+            "source": "v-bind:style=\\"{ color: 'red' }\\"",
+            "start": Object {
+              "column": 4,
+              "line": 2,
+              "offset": 40,
+            },
+          },
+          "modifiers": Array [],
+          "name": "bind",
+          "type": 6,
+        },
+      ],
+      "isSelfClosing": true,
+      "loc": Object {
+        "end": Object {
+          "column": 37,
+          "line": 2,
+          "offset": 73,
+        },
+        "source": "<p v-bind:style=\\"{ color: 'red' }\\"/>",
+        "start": Object {
+          "column": 1,
+          "line": 2,
+          "offset": 37,
+        },
+      },
+      "ns": 0,
+      "tag": "p",
+      "tagType": 0,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 37,
+      "line": 2,
+      "offset": 73,
+    },
+    "source": "<div :class=\\"{ some: condition }\\" />
+<p v-bind:style=\\"{ color: 'red' }\\"/>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;
+
+exports[`compiler: parse valid html 1`] = `
+Object {
+  "children": Array [
+    Object {
+      "attrs": Array [],
+      "children": Array [
+        Object {
+          "attrs": Array [],
+          "children": Array [],
+          "directives": Array [
+            Object {
+              "arg": Object {
+                "content": "style",
+                "isStatic": true,
+                "loc": Object {
+                  "end": Object {
+                    "column": 17,
+                    "line": 2,
+                    "offset": 52,
+                  },
+                  "source": "style",
+                  "start": Object {
+                    "column": 12,
+                    "line": 2,
+                    "offset": 47,
+                  },
+                },
+                "type": 4,
+              },
+              "exp": Object {
+                "content": "{ color: 'red' }",
+                "isStatic": false,
+                "loc": Object {
+                  "end": Object {
+                    "column": 36,
+                    "line": 2,
+                    "offset": 71,
+                  },
+                  "source": "\\"{ color: 'red' }\\"",
+                  "start": Object {
+                    "column": 18,
+                    "line": 2,
+                    "offset": 53,
+                  },
+                },
+                "type": 4,
+              },
+              "loc": Object {
+                "end": Object {
+                  "column": 36,
+                  "line": 2,
+                  "offset": 71,
+                },
+                "source": "v-bind:style=\\"{ color: 'red' }\\"",
+                "start": Object {
+                  "column": 5,
+                  "line": 2,
+                  "offset": 40,
+                },
+              },
+              "modifiers": Array [],
+              "name": "bind",
+              "type": 6,
+            },
+          ],
+          "isSelfClosing": true,
+          "loc": Object {
+            "end": Object {
+              "column": 38,
+              "line": 2,
+              "offset": 73,
+            },
+            "source": "<p v-bind:style=\\"{ color: 'red' }\\"/>",
+            "start": Object {
+              "column": 2,
+              "line": 2,
+              "offset": 37,
+            },
+          },
+          "ns": 0,
+          "tag": "p",
+          "tagType": 0,
+          "type": 1,
+        },
+        Object {
+          "content": " a comment with <html> inside it ",
+          "loc": Object {
+            "end": Object {
+              "column": 42,
+              "line": 3,
+              "offset": 116,
+            },
+            "source": "<!-- a comment with <html> inside it -->",
+            "start": Object {
+              "column": 2,
+              "line": 3,
+              "offset": 76,
+            },
+          },
+          "type": 3,
+        },
+      ],
+      "directives": Array [
+        Object {
+          "arg": Object {
+            "content": "class",
+            "isStatic": true,
+            "loc": Object {
+              "end": Object {
+                "column": 12,
+                "line": 1,
+                "offset": 11,
+              },
+              "source": "class",
+              "start": Object {
+                "column": 7,
+                "line": 1,
+                "offset": 6,
+              },
+            },
+            "type": 4,
+          },
+          "exp": Object {
+            "content": "{ some: condition }",
+            "isStatic": false,
+            "loc": Object {
+              "end": Object {
+                "column": 34,
+                "line": 1,
+                "offset": 33,
+              },
+              "source": "\\"{ some: condition }\\"",
+              "start": Object {
+                "column": 13,
+                "line": 1,
+                "offset": 12,
+              },
+            },
+            "type": 4,
+          },
+          "loc": Object {
+            "end": Object {
+              "column": 34,
+              "line": 1,
+              "offset": 33,
+            },
+            "source": ":class=\\"{ some: condition }\\"",
+            "start": Object {
+              "column": 6,
+              "line": 1,
+              "offset": 5,
+            },
+          },
+          "modifiers": Array [],
+          "name": "bind",
+          "type": 6,
+        },
+      ],
+      "isSelfClosing": false,
+      "loc": Object {
+        "end": Object {
+          "column": 7,
+          "line": 4,
+          "offset": 123,
+        },
+        "source": "<div :class=\\"{ some: condition }\\">
+  <p v-bind:style=\\"{ color: 'red' }\\"/>
+  <!-- a comment with <html> inside it -->
+</div>",
+        "start": Object {
+          "column": 1,
+          "line": 1,
+          "offset": 0,
+        },
+      },
+      "ns": 0,
+      "tag": "div",
+      "tagType": 0,
+      "type": 1,
+    },
+  ],
+  "loc": Object {
+    "end": Object {
+      "column": 7,
+      "line": 4,
+      "offset": 123,
+    },
+    "source": "<div :class=\\"{ some: condition }\\">
+  <p v-bind:style=\\"{ color: 'red' }\\"/>
+  <!-- a comment with <html> inside it -->
+</div>",
+    "start": Object {
+      "column": 1,
+      "line": 1,
+      "offset": 0,
+    },
+  },
+  "type": 0,
+}
+`;