• bashi@chromium.org's avatar
    IDL: DOM impl class code generation for IDL dictionaries · 3ec3a1a9
    bashi@chromium.org authored
    After this CL, CodeGeneratorV8 generates not only V8 bindings, but also
    DOM implementation classes for IDL dictionaries.
    
    - For an IDL file which defines a dictionary, the code generator
      generates bindings code (V8Foo.{cpp,h}) and DOM impl code
      (Foo.{cpp,h}).
    
    - Added Jinja templates for DOM impl generation. The context for these
      templates is created by v8_dictionary.dictionary_impl_context().
    
    - v8_types.cpp_types() takes a new argument called
      |used_as_return_type|. This flags is used by member_impl_context().
      Also, |used_in_cpp_sequence| argument is renamed to |used_as_member|.
    
    IDL dictionaries are still not be able to use in core/modules. We need
    to generate impl classes in the right place.
    (e.g. core/dom/Foo.idl -> gen/blink/core/dom/Foo.{cpp,h})
    
    Also, following types are not supported yet as dictionary members:
    - union types.
    - enumeration types.
    - composite types (arrays, sequences and dictionaries) of which element
      type is an interface.
    
    BUG=321462
    
    Review URL: https://codereview.chromium.org/420763002
    
    git-svn-id: svn://svn.chromium.org/blink/trunk@179190 bbb929c8-8fbe-4397-9dbb-9b2b20218538
    3ec3a1a9
TestDictionary.idl 889 Bytes