IDL: Add error handlings to avoid infinite loops

The IDL parser lacks some error propagation rules, which cause
infinite loops when an IDL file contains syntax errors. This
CL fixes following two cases:
(1) Missing arguments:
  interface I {
    void foo(DOMString arg, );
  };
(2) Unexpected "attribute" in dictionary
  dictionary D {
    attribute DOMString member = "";
  };

BUG=435794

Review URL: https://codereview.chromium.org/761223002

Cr-Original-Commit-Position: refs/heads/master@{#306049}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: d54ddee89897d16b1611a7dc80c8eb4aed81b422
3 files changed