Last Comment Bug 764398 - Implement enum as dictionary member for WebIDL
: Implement enum as dictionary member for WebIDL
Product: Core
Classification: Components
Component: DOM (show other bugs)
: unspecified
: x86 Mac OS X
-- normal (vote)
: ---
Assigned To: Nobody; OK to take it and work on it
: Andrew Overholt [:overholt]
Depends on: 763911
  Show dependency treegraph
Reported: 2012-06-13 08:01 PDT by William Chen [:wchen]
Modified: 2012-06-25 06:23 PDT (History)
5 users (show)
See Also:
Crash Signature:
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Description User image William Chen [:wchen] 2012-06-13 08:01:33 PDT
Code generation fails if we have an enum type as a dictionary member.

Example (from

dictionary NotificationOptions {
  NotificationDirection titleDir;
  DOMString body;
  NotificationDirection bodyDir;
  DOMString tag;
  DOMString iconUrl;

enum NotificationDirection {
Comment 1 User image Boris Zbarsky [:bz] (still a bit busy) 2012-06-13 08:59:50 PDT
The actual error William is seeing:

  File "/Users/wchen/mozilla/dom/bindings/", line 1704, in
    if type.isAny():
  File "/Users/wchen/mozilla/dom/bindings/parser/", line 778, in isAny
    return self.tag() == IDLType.Tags.any
  File "/Users/wchen/mozilla/dom/bindings/parser/", line 791, in tag
    assert False # Override me!

This is due to dictionaries not calling complete() on their member types, which causes the type here to be an IDLUnresolvedType instead of an IDLWrapperType for a dictionary.

The patch in bug 763911 fixes that, and in my tree with that patch this works.
Comment 2 User image Boris Zbarsky [:bz] (still a bit busy) 2012-06-13 09:01:01 PDT
er, I meant IDLWrapperType for an enum.
Comment 3 User image Peter Van der Beken [:peterv] 2012-06-25 03:55:35 PDT
Is this fixed? If so, should this be a dupe of bug 763911?
Comment 4 User image Boris Zbarsky [:bz] (still a bit busy) 2012-06-25 06:23:49 PDT
Yeah, this is fixed.  We have a test for this in TestCodeGen.webidl.

Note You need to log in before you can comment on or make changes to this bug.