Actually... I see what's going on. Since we're now changing this section works it would be nice to refactor the other parts of this section. So you could do: 

```js
if (self.state === "INITIAL") {
  // We can't start parsing until we have the first line.
  if (!/\r\n|\n/.test(self.buffer))
      return this;
  
  line = collectNextLine();

  var m = line.match(/^WEBVTT([ \t].*)?$/);
  if (!m[0]) {
    throw "error";
  }

  self.state = "HEADER";
}
```

The if statement on the regex match might be a bit off, but this is the general idea. From this we can also remove the `WEBVTT` const and the `advance` arg that `collectectNextLine` takes since this is the only use case for that arg.