]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
perf: avoid cloning in parser advanceBy
authorEvan You <yyx990803@gmail.com>
Thu, 19 Sep 2019 17:59:24 +0000 (13:59 -0400)
committerEvan You <yyx990803@gmail.com>
Thu, 19 Sep 2019 17:59:24 +0000 (13:59 -0400)
packages/compiler-core/__tests__/__snapshots__/parse.spec.ts.snap
packages/compiler-core/src/parse.ts
packages/compiler-core/src/utils.ts

index ebee2f72f768633a3a35dcaffb235d8a40d02d5f..29b2338f82e13918f24169052a4a5c35095c7abe 100644 (file)
 // Jest Snapshot v1, https://goo.gl/fbAQLP
 
-exports[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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[`base parser 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,
-}
-`;
-
 exports[`compiler: parse Errors ABRUPT_CLOSING_OF_EMPTY_COMMENT <template><!--></template> 1`] = `
 Object {
   "children": Array [
index 831e009df808673232697c4971cf9c97efc9ab70..2fd5f2a00e70706f7157c0b9a44e04bb854305d9 100644 (file)
@@ -1,4 +1,5 @@
 import { ErrorCodes, CompilerError, createCompilerError } from './errors'
+import { assert, advancePositionWithMutation } from './utils'
 import {
   Namespace,
   Namespaces,
@@ -15,7 +16,6 @@ import {
   TextNode,
   ChildNode
 } from './ast'
-import { assert, advancePositionBy } from './utils'
 
 export interface ParserOptions {
   isVoidTag?: (tag: string) => boolean // e.g. img, br, hr
@@ -794,15 +794,9 @@ function startsWith(source: string, searchString: string): boolean {
 }
 
 function advanceBy(context: ParserContext, numberOfCharacters: number): void {
-  __DEV__ && assert(numberOfCharacters <= context.source.length)
-
   const { source } = context
-  const pos = advancePositionBy(context, source, numberOfCharacters)
-
+  advancePositionWithMutation(context, source, numberOfCharacters)
   context.source = source.slice(numberOfCharacters)
-  context.offset = pos.offset
-  context.line = pos.line
-  context.column = pos.column
 }
 
 function advanceSpaces(context: ParserContext): void {
index 8206b40ae10bbe935242caaa923d9bae9414a5c6..ccea3ce80a9a63fe42b218c726ee85d65599fce7 100644 (file)
@@ -24,23 +24,29 @@ export function advancePositionBy(
   source: string,
   numberOfCharacters: number
 ): Position {
-  __DEV__ && assert(numberOfCharacters <= source.length)
+  return advancePositionWithMutation({ ...pos }, source, numberOfCharacters)
+}
 
-  const newPosition = {
-    ...pos
-  }
+// advance by mutation without cloning (for performance reasons), since this
+// gets called a lot in the parser
+export function advancePositionWithMutation(
+  pos: Position,
+  source: string,
+  numberOfCharacters: number
+): Position {
+  __DEV__ && assert(numberOfCharacters <= source.length)
 
   const str = source.slice(0, numberOfCharacters)
   const lines = str.split(/\r?\n/)
 
-  newPosition.offset += numberOfCharacters
-  newPosition.line += lines.length - 1
-  newPosition.column =
+  pos.offset += numberOfCharacters
+  pos.line += lines.length - 1
+  pos.column =
     lines.length === 1
       ? pos.column + numberOfCharacters
       : Math.max(1, lines.pop()!.length)
 
-  return newPosition
+  return pos
 }
 
 export function assert(condition: boolean, msg?: string) {