Remove [CustomGetter] IDL from 'HTMLAudioElementConstructor' of V8
authorharaken@chromium.org <haraken@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 7 Nov 2011 22:39:41 +0000 (22:39 +0000)
committerharaken@chromium.org <haraken@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 7 Nov 2011 22:39:41 +0000 (22:39 +0000)
commit878218620683c0706c2c6dd6b18c3a17c6868565
tree31df9a01da8475ba4591fc3906052055ee198741
parent2c321438b8d16695d266143ea2e12d5752424624
Remove [CustomGetter] IDL from 'HTMLAudioElementConstructor' of V8
https://bugs.webkit.org/show_bug.cgi?id=71660

Reviewed by Adam Barth.

Currently, "new Audio()" uses a custom getter to get the template
of 'HTMLAudioElementConstructor'. However, this getter does not need to
be custom and can use a default getter 'DOMWindowInternal::DOMWindowConstructorGetter'.

Tests: fast/js/custom-constructors.html
       media/audio-constructor.html
       media/audio-constructor-src.html
       media/audio-constructor-preload.html
       media/audio-controls-do-not-fade-out.html
       media/audio-controls-rendering.html

* bindings/v8/custom/V8DOMWindowCustom.cpp: Removed a custom getter.
* page/DOMWindow.idl: Removed [CustomGetter] IDL from 'HTMLAudioElementConstructor' of V8. Renamed 'HTMLAudioElementConstructor' to 'HTMLAudioElementConstructorConstructor' in order to make 'new Audio()' use the template of (not 'HTMLAudioElement' but) 'HTMLAudioElementConstructor'. Note that CodeGenerator*.pm strips /Constructor$/ from an IDL type.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation): If an IDL type is 'XXXXConstructorConstructor', then we do not add a header file 'XXXXConstructor.h' to JSDOMWindow.cpp, because the NamedConstructor declaration is written in the header file of class XXXX 'XXXX.h'. Incidentally, the reason why CodeGeneratorV8.pm does not need a corresponding change is that V8 is still generating the NamedConstructor declaration in its dedicated header file 'XXXXConstructor.h'. This V8 issue will be fixed in the upcoming patch that implements [NamedConstructor] IDL in V8.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@99481 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
Source/WebCore/bindings/v8/custom/V8DOMWindowCustom.cpp
Source/WebCore/page/DOMWindow.idl