initial import
[vuplus_webkit] / Source / WebCore / page / DOMWindow.idl
1 /*
2  * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 module window {
27
28     interface [
29         CheckDomainSecurity,
30         CustomDefineGetter,
31         CustomDefineSetter,
32         CustomDeleteProperty,
33         CustomGetOwnPropertySlot,
34         CustomGetPropertyNames,
35         CustomLookupGetter,
36         CustomLookupSetter,
37         CustomMarkFunction,
38         CustomNativeConverter,
39         CustomPutFunction,
40         EventTarget,
41         ExtendsDOMGlobalObject,
42         GenerateNativeConverter,
43         ReplaceableConstructor,
44         LegacyParent=JSDOMWindowBase
45     ] DOMWindow {
46         // DOM Level 0
47         attribute [Replaceable] Screen screen;
48         attribute [Replaceable, DoNotCheckDomainSecurityOnGet, JSCCustomGetter] History history;
49         attribute [Replaceable] BarInfo locationbar;
50         attribute [Replaceable] BarInfo menubar;
51         attribute [Replaceable] BarInfo personalbar;
52         attribute [Replaceable] BarInfo scrollbars;
53         attribute [Replaceable] BarInfo statusbar;
54         attribute [Replaceable] BarInfo toolbar;
55         attribute [Replaceable] Navigator navigator;
56         attribute [Replaceable] Navigator clientInformation;
57         readonly attribute Crypto crypto;
58         attribute [DoNotCheckDomainSecurity, JSCCustom, V8CustomSetter, V8DisallowShadowing, CPPCustom] Location location;
59
60         attribute [Replaceable, CustomGetter, V8CustomSetter] Event event;
61
62
63         DOMSelection getSelection();
64
65         readonly attribute [CheckNodeSecurity] Element frameElement;
66
67         [DoNotCheckDomainSecurity] void focus();
68         [DoNotCheckDomainSecurity] void blur();
69         [DoNotCheckDomainSecurity, CallWith=ScriptExecutionContext] void close();
70
71         void print();
72         void stop();
73
74         [Custom] DOMWindow open(in DOMString url,
75                                 in DOMString name,
76                                 in [Optional] DOMString options);
77
78         [Custom] DOMObject showModalDialog(in DOMString url,
79                                            in [Optional] DOMObject dialogArgs,
80                                            in [Optional] DOMString featureArgs);
81
82         void alert(in [Optional=CallWithDefaultValue] DOMString message);
83         boolean confirm(in [Optional=CallWithDefaultValue] DOMString message);
84         [ConvertNullStringTo=Null] DOMString prompt(in [Optional=CallWithDefaultValue] DOMString message,
85                                                     in [ConvertUndefinedOrNullToNullString,Optional=CallWithDefaultValue] DOMString defaultValue);
86
87         boolean find(in [Optional=CallWithDefaultValue] DOMString string,
88                      in [Optional=CallWithDefaultValue] boolean caseSensitive,
89                      in [Optional=CallWithDefaultValue] boolean backwards,
90                      in [Optional=CallWithDefaultValue] boolean wrap,
91                      in [Optional=CallWithDefaultValue] boolean wholeWord,
92                      in [Optional=CallWithDefaultValue] boolean searchInFrames,
93                      in [Optional=CallWithDefaultValue] boolean showDialog);
94
95         attribute [Replaceable] boolean offscreenBuffering;
96
97         attribute [Replaceable] long outerHeight;
98         attribute [Replaceable] long outerWidth;
99         attribute [Replaceable] long innerHeight;
100         attribute [Replaceable] long innerWidth;
101         attribute [Replaceable] long screenX;
102         attribute [Replaceable] long screenY;
103         attribute [Replaceable] long screenLeft;
104         attribute [Replaceable] long screenTop;
105         attribute [Replaceable] long scrollX;
106         attribute [Replaceable] long scrollY;
107         readonly attribute long pageXOffset;
108         readonly attribute long pageYOffset;
109
110         [RequiresAllArguments] void scrollBy(in long x, in long y);
111         [RequiresAllArguments] void scrollTo(in long x, in long y);
112         [RequiresAllArguments] void scroll(in long x, in long y);
113         [RequiresAllArguments] void moveBy(in float x, in float y); // FIXME: this should take longs not floats.
114         [RequiresAllArguments] void moveTo(in float x, in float y); // FIXME: this should take longs not floats.
115         [RequiresAllArguments] void resizeBy(in float x, in float y); // FIXME: this should take longs not floats.
116         [RequiresAllArguments] void resizeTo(in float width, in float height); // FIXME: this should take longs not floats.
117
118         readonly attribute [DoNotCheckDomainSecurity] boolean closed;
119
120         attribute [Replaceable, DoNotCheckDomainSecurityOnGet] unsigned long length;
121
122         attribute DOMString name;
123
124         attribute DOMString status;
125         attribute DOMString defaultStatus;
126 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
127         // This attribute is an alias of defaultStatus and is necessary for legacy uses.
128         attribute DOMString defaultstatus;
129 #endif
130
131         // Self referential attributes
132         attribute [Replaceable, DoNotCheckDomainSecurityOnGet] DOMWindow self;
133         readonly attribute [DoNotCheckDomainSecurity, V8DisallowShadowing] DOMWindow window;
134         attribute [Replaceable, DoNotCheckDomainSecurityOnGet] DOMWindow frames;
135
136         attribute [Replaceable, DoNotCheckDomainSecurityOnGet, V8CustomSetter] DOMWindow opener;
137         attribute [Replaceable, DoNotCheckDomainSecurityOnGet] DOMWindow parent;
138         attribute [Replaceable, DoNotCheckDomainSecurityOnGet, V8DisallowShadowing, V8ReadOnly] DOMWindow top;
139
140         // DOM Level 2 AbstractView Interface
141         readonly attribute Document document;
142
143         // CSSOM View Module
144         MediaQueryList matchMedia(in DOMString query);
145
146         // styleMedia has been removed from the CSSOM View specification.
147         readonly attribute StyleMedia styleMedia;
148
149         // DOM Level 2 Style Interface
150         CSSStyleDeclaration getComputedStyle(in [Optional=CallWithDefaultValue] Element element,
151                                              in [ConvertUndefinedOrNullToNullString,Optional=CallWithDefaultValue] DOMString pseudoElement);
152
153         // WebKit extensions
154 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
155         CSSRuleList getMatchedCSSRules(in [Optional=CallWithDefaultValue] Element element,
156                                        in [Optional=CallWithDefaultValue] DOMString pseudoElement);
157 #endif
158
159         attribute [Replaceable] double devicePixelRatio;
160         
161         WebKitPoint webkitConvertPointFromPageToNode(in [Optional=CallWithDefaultValue] Node node, 
162                                                      in [Optional=CallWithDefaultValue] WebKitPoint p);
163         WebKitPoint webkitConvertPointFromNodeToPage(in [Optional=CallWithDefaultValue] Node node, 
164                                                      in [Optional=CallWithDefaultValue] WebKitPoint p);
165
166 #if defined(ENABLE_OFFLINE_WEB_APPLICATIONS) && ENABLE_OFFLINE_WEB_APPLICATIONS
167         readonly attribute [EnabledAtRuntime] DOMApplicationCache applicationCache;
168 #endif    
169 #if defined(ENABLE_DATABASE) && ENABLE_DATABASE
170         [EnabledAtRuntime] Database openDatabase(in DOMString name, in DOMString version, in DOMString displayName, in unsigned long estimatedSize, in [Callback, Optional] DatabaseCallback creationCallback)
171             raises(DOMException);
172 #endif
173 #if defined(ENABLE_DOM_STORAGE) && ENABLE_DOM_STORAGE
174         readonly attribute [EnabledAtRuntime] Storage sessionStorage
175             getter raises(DOMException);
176         readonly attribute [EnabledAtRuntime] Storage localStorage
177             getter raises(DOMException);
178 #endif
179 #if defined(ENABLE_NOTIFICATIONS) && ENABLE_NOTIFICATIONS
180         readonly attribute [EnabledAtRuntime] NotificationCenter webkitNotifications;
181 #endif
182 #if defined(ENABLE_INDEXED_DATABASE) && ENABLE_INDEXED_DATABASE
183         readonly attribute [EnabledAtRuntime] IDBFactory webkitIndexedDB;
184
185         attribute [EnabledAtRuntime] IDBCursorConstructor webkitIDBCursor;
186         attribute [EnabledAtRuntime] IDBDatabaseConstructor webkitIDBDatabase;
187         attribute [EnabledAtRuntime] IDBDatabaseErrorConstructor webkitIDBDatabaseError;
188         attribute [EnabledAtRuntime] IDBDatabaseExceptionConstructor webkitIDBDatabaseException;
189         attribute [EnabledAtRuntime] IDBFactoryConstructor webkitIDBFactory;
190         attribute [EnabledAtRuntime] IDBIndexConstructor webkitIDBIndex;
191         attribute [EnabledAtRuntime] IDBKeyRangeConstructor webkitIDBKeyRange;
192         attribute [EnabledAtRuntime] IDBObjectStoreConstructor webkitIDBObjectStore;
193         attribute [EnabledAtRuntime] IDBRequestConstructor webkitIDBRequest;
194         attribute [EnabledAtRuntime] IDBTransactionConstructor webkitIDBTransaction;
195 #endif
196 #if defined(ENABLE_FILE_SYSTEM) && ENABLE_FILE_SYSTEM
197         const unsigned short TEMPORARY = 0;
198         const unsigned short PERSISTENT = 1;
199         [EnabledAtRuntime=FileSystem] void webkitRequestFileSystem(in unsigned short type, in long long size, in [Callback, Optional] FileSystemCallback successCallback, in [Callback, Optional] ErrorCallback errorCallback);
200         [EnabledAtRuntime=FileSystem] void webkitResolveLocalFileSystemURL(in DOMString url, in [Callback, Optional] EntryCallback successCallback, in [Callback, Optional] ErrorCallback errorCallback);
201
202         attribute [EnabledAtRuntime=FileSystem] WebKitFlagsConstructor WebKitFlags;
203 #endif
204
205 #if defined(ENABLE_ORIENTATION_EVENTS) && ENABLE_ORIENTATION_EVENTS
206         // This is the interface orientation in degrees. Some examples are:
207         //  0 is straight up; -90 is when the device is rotated 90 clockwise;
208         //  90 is when rotated counter clockwise.
209         readonly attribute long orientation;
210 #endif
211
212                  attribute [Replaceable] Console console;
213
214         // cross-document messaging
215 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
216         [DoNotCheckDomainSecurity, Custom] void postMessage(in SerializedScriptValue message, in [Optional] Array messagePorts, in DOMString targetOrigin)
217             raises(DOMException);
218 #else
219         // There's no good way to expose an array via the ObjC bindings, so for now just allow passing in a single port.
220         [DoNotCheckDomainSecurity, Custom] void postMessage(in SerializedScriptValue message, in [Optional] MessagePort messagePort, in DOMString targetOrigin)
221             raises(DOMException);
222 #endif
223
224 #if defined(ENABLE_WEB_TIMING) && ENABLE_WEB_TIMING
225         attribute [Replaceable] Performance performance;
226 #endif
227
228         // Timers
229         [Custom] long setTimeout(in [Optional=CallWithDefaultValue] TimeoutHandler handler, 
230                                  in [Optional=CallWithDefaultValue] long timeout);
231         // [Custom] long setTimeout(in TimeoutHandler handler, in long timeout, arguments...);
232         // [Custom] long setTimeout(in DOMString code, in long timeout);
233         void clearTimeout(in [Optional=CallWithDefaultValue] long handle);
234         [Custom] long setInterval(in TimeoutHandler handler, in long timeout);
235         // [Custom] long setInterval(in TimeoutHandler handler, in long timeout, arguments...);
236         // [Custom] long setInterval(in DOMString code, in long timeout);
237         void clearInterval(in [Optional=CallWithDefaultValue] long handle);
238
239 #if defined(ENABLE_REQUEST_ANIMATION_FRAME)
240         // WebKit animation extensions
241         long webkitRequestAnimationFrame(in [Callback] RequestAnimationFrameCallback callback, in [Optional=CallWithDefaultValue] Element element);
242         void webkitCancelRequestAnimationFrame(in long id);
243 #endif
244
245         // Base64
246         DOMString atob(in [ConvertNullToNullString,Optional=CallWithDefaultValue] DOMString string)
247             raises(DOMException);
248         DOMString btoa(in [ConvertNullToNullString,Optional=CallWithDefaultValue] DOMString string)
249             raises(DOMException);
250
251         // Events
252         attribute EventListener onabort;
253         attribute EventListener onbeforeunload;
254         attribute EventListener onblur;
255         attribute EventListener oncanplay;
256         attribute EventListener oncanplaythrough;
257         attribute EventListener onchange;
258         attribute EventListener onclick;
259         attribute EventListener oncontextmenu;
260         attribute EventListener ondblclick;
261         attribute EventListener ondrag;
262         attribute EventListener ondragend;
263         attribute EventListener ondragenter;
264         attribute EventListener ondragleave;
265         attribute EventListener ondragover;
266         attribute EventListener ondragstart;
267         attribute EventListener ondrop;
268         attribute EventListener ondurationchange;
269         attribute EventListener onemptied;
270         attribute EventListener onended;
271         attribute EventListener onerror;
272         attribute EventListener onfocus;
273         attribute EventListener onhashchange;
274         attribute EventListener oninput;
275         attribute EventListener oninvalid;
276         attribute EventListener onkeydown;
277         attribute EventListener onkeypress;
278         attribute EventListener onkeyup;
279         attribute EventListener onload;
280         attribute EventListener onloadeddata;
281         attribute EventListener onloadedmetadata;
282         attribute EventListener onloadstart;
283         attribute EventListener onmessage;
284         attribute EventListener onmousedown;
285         attribute EventListener onmousemove;
286         attribute EventListener onmouseout;
287         attribute EventListener onmouseover;
288         attribute EventListener onmouseup;
289         attribute EventListener onmousewheel;
290         attribute EventListener onoffline;
291         attribute EventListener ononline;
292         attribute EventListener onpagehide;
293         attribute EventListener onpageshow;
294         attribute EventListener onpause;
295         attribute EventListener onplay;
296         attribute EventListener onplaying;
297         attribute EventListener onpopstate;
298         attribute EventListener onprogress;
299         attribute EventListener onratechange;
300         attribute EventListener onresize;
301         attribute EventListener onscroll;
302         attribute EventListener onseeked;
303         attribute EventListener onseeking;
304         attribute EventListener onselect;
305         attribute EventListener onstalled;
306         attribute EventListener onstorage;
307         attribute EventListener onsubmit;
308         attribute EventListener onsuspend;
309         attribute EventListener ontimeupdate;
310         attribute EventListener onunload;
311         attribute EventListener onvolumechange;
312         attribute EventListener onwaiting;
313
314         // Not implemented yet.
315         // attribute EventListener onafterprint;
316         // attribute EventListener onbeforeprint;
317         // attribute EventListener onreadystatechange;
318         // attribute EventListener onredo;
319         // attribute EventListener onshow;
320         // attribute EventListener onundo;
321
322         // Webkit extensions
323         attribute EventListener onreset;
324         attribute EventListener onsearch;
325         attribute EventListener onwebkitanimationend;
326         attribute EventListener onwebkitanimationiteration;
327         attribute EventListener onwebkitanimationstart;
328         attribute EventListener onwebkittransitionend;
329 #if defined(ENABLE_ORIENTATION_EVENTS) && ENABLE_ORIENTATION_EVENTS
330         attribute EventListener onorientationchange;
331 #endif
332         attribute [Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchstart;
333         attribute [Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchmove;
334         attribute [Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchend;
335         attribute [Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchcancel;
336
337         attribute [Conditional=DEVICE_ORIENTATION,EnabledAtRuntime] EventListener ondevicemotion;
338         attribute [Conditional=DEVICE_ORIENTATION,EnabledAtRuntime] EventListener ondeviceorientation;
339
340         attribute [Conditional=MEDIA_STREAM,EnabledAtRuntime] PeerConnectionConstructor webkitPeerConnection;
341
342         // EventTarget interface
343         [Custom] void addEventListener(in DOMString type,
344                                       in EventListener listener,
345                                       in [Optional] boolean useCapture);
346         [Custom] void removeEventListener(in DOMString type,
347                                           in EventListener listener,
348                                           in [Optional] boolean useCapture);
349         boolean dispatchEvent(in Event evt)
350             raises(EventException);
351
352         [V8Custom=DOMWindowNOP] void captureEvents(/*in long eventFlags*/);
353         [V8Custom=DOMWindowNOP] void releaseEvents(/*in long eventFlags*/);
354
355 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
356         // Global constructors
357         attribute StyleSheetConstructor StyleSheet;
358         attribute CSSStyleSheetConstructor CSSStyleSheet;
359
360         attribute CSSValueConstructor CSSValue;
361         attribute CSSPrimitiveValueConstructor CSSPrimitiveValue;
362         attribute CSSValueListConstructor CSSValueList;
363         attribute WebKitCSSTransformValueConstructor WebKitCSSTransformValue;
364
365         attribute CSSRuleConstructor CSSRule;
366         attribute CSSCharsetRuleConstructor CSSCharsetRule;
367         attribute CSSFontFaceRuleConstructor CSSFontFaceRule;
368         attribute CSSImportRuleConstructor CSSImportRule;
369         attribute CSSMediaRuleConstructor CSSMediaRule;
370         attribute CSSPageRuleConstructor CSSPageRule;
371         attribute CSSStyleRuleConstructor CSSStyleRule;
372         
373         attribute CSSStyleDeclarationConstructor CSSStyleDeclaration;
374         attribute MediaListConstructor MediaList;
375         attribute CounterConstructor Counter;
376         attribute CSSRuleListConstructor CSSRuleList;
377         attribute RectConstructor Rect;
378         attribute RGBColorConstructor RGBColor;
379         attribute StyleSheetListConstructor StyleSheetList;
380
381         // FIXME: Implement the commented-out global constructors for interfaces listed in DOM Level 3 Core specification.
382         attribute DOMCoreExceptionConstructor DOMException;
383         attribute DOMStringListConstructor DOMStringList;
384 //        attribute NameListConstructor NameList;
385 //        attribute DOMImplementationListConstructor DOMImplementationList;
386 //        attribute DOMImplementationSourceConstructor DOMImplementationSource;
387         attribute DOMImplementationConstructor DOMImplementation;
388         attribute DOMSettableTokenListConstructor DOMSettableTokenList;
389         attribute DOMTokenListConstructor DOMTokenList;
390         attribute DocumentFragmentConstructor DocumentFragment;
391         attribute DocumentConstructor Document;
392         attribute NodeConstructor Node;
393         attribute NodeListConstructor NodeList;
394         attribute NamedNodeMapConstructor NamedNodeMap;
395         attribute CharacterDataConstructor CharacterData;
396         attribute AttrConstructor Attr;
397         attribute ElementConstructor Element;
398         attribute TextConstructor Text;
399         attribute CommentConstructor Comment;
400 //        attribute TypeInfoConstructor TypeInfo;
401 //        attribute UserDataHandlerConstructor UserDataHandler;
402 //        attribute DOMErrorConstructor DOMError;
403 //        attribute DOMErrorHandlerConstructor DOMErrorHandler
404 //        attribute DOMLocatorConstructor DOMLocator;
405 //        attribute DOMConfigurationConstructor DOMConfiguration;
406         attribute CDATASectionConstructor CDATASection;
407         attribute DocumentTypeConstructor DocumentType;
408         attribute NotationConstructor Notation;
409         attribute EntityConstructor Entity;
410         attribute EntityReferenceConstructor EntityReference;
411         attribute ProcessingInstructionConstructor ProcessingInstruction;
412
413         attribute HTMLDocumentConstructor HTMLDocument;
414
415         attribute HTMLElementConstructor HTMLElement;
416         attribute HTMLAnchorElementConstructor HTMLAnchorElement;
417         attribute HTMLAppletElementConstructor HTMLAppletElement;
418         attribute HTMLAreaElementConstructor HTMLAreaElement;
419         attribute HTMLBRElementConstructor HTMLBRElement;
420         attribute HTMLBaseElementConstructor HTMLBaseElement;
421         attribute HTMLBaseFontElementConstructor HTMLBaseFontElement;
422         attribute HTMLBodyElementConstructor HTMLBodyElement;
423         attribute HTMLButtonElementConstructor HTMLButtonElement;
424         attribute HTMLCanvasElementConstructor HTMLCanvasElement;
425         attribute HTMLDListElementConstructor HTMLDListElement;
426         attribute HTMLDirectoryElementConstructor HTMLDirectoryElement;
427         attribute HTMLDivElementConstructor HTMLDivElement;
428         attribute HTMLEmbedElementConstructor HTMLEmbedElement;
429         attribute HTMLFieldSetElementConstructor HTMLFieldSetElement;
430         attribute HTMLFontElementConstructor HTMLFontElement;
431         attribute HTMLFormElementConstructor HTMLFormElement;
432         attribute HTMLFrameElementConstructor HTMLFrameElement;
433         attribute HTMLFrameSetElementConstructor HTMLFrameSetElement;
434         attribute HTMLHRElementConstructor HTMLHRElement;
435         attribute HTMLHeadElementConstructor HTMLHeadElement;
436         attribute HTMLHeadingElementConstructor HTMLHeadingElement;
437         attribute HTMLHtmlElementConstructor HTMLHtmlElement;
438         attribute HTMLIFrameElementConstructor HTMLIFrameElement;
439         attribute HTMLImageElementConstructor HTMLImageElement;
440         attribute HTMLInputElementConstructor HTMLInputElement;
441         attribute HTMLIsIndexElementConstructor HTMLIsIndexElement;
442         attribute HTMLKeygenElementConstructor HTMLKeygenElement;
443         attribute HTMLLIElementConstructor HTMLLIElement;
444         attribute HTMLLabelElementConstructor HTMLLabelElement;
445         attribute HTMLLegendElementConstructor HTMLLegendElement;
446         attribute HTMLLinkElementConstructor HTMLLinkElement;
447         attribute HTMLMapElementConstructor HTMLMapElement;
448         attribute HTMLMarqueeElementConstructor HTMLMarqueeElement;
449         attribute HTMLMenuElementConstructor HTMLMenuElement;
450         attribute HTMLMetaElementConstructor HTMLMetaElement;
451 #if defined(ENABLE_METER_TAG) && ENABLE_METER_TAG
452         attribute HTMLMeterElementConstructor HTMLMeterElement;
453 #endif
454         attribute HTMLModElementConstructor HTMLModElement;
455         attribute HTMLOListElementConstructor HTMLOListElement;
456         attribute HTMLObjectElementConstructor HTMLObjectElement;
457         attribute HTMLOptGroupElementConstructor HTMLOptGroupElement;
458         attribute HTMLOptionElementConstructor HTMLOptionElement;
459         attribute HTMLOutputElementConstructor HTMLOutputElement;
460         attribute HTMLParagraphElementConstructor HTMLParagraphElement;
461         attribute HTMLParamElementConstructor HTMLParamElement;
462         attribute HTMLPreElementConstructor HTMLPreElement;
463 #if defined(ENABLE_PROGRESS_TAG) && ENABLE_PROGRESS_TAG
464         attribute HTMLProgressElementConstructor HTMLProgressElement;
465 #endif
466         attribute HTMLQuoteElementConstructor HTMLQuoteElement;
467         attribute HTMLScriptElementConstructor HTMLScriptElement;
468         attribute HTMLSelectElementConstructor HTMLSelectElement;
469         attribute HTMLSpanElementConstructor HTMLSpanElement;
470         attribute HTMLStyleElementConstructor HTMLStyleElement;
471         attribute HTMLTableCaptionElementConstructor HTMLTableCaptionElement;
472         attribute HTMLTableCellElementConstructor HTMLTableCellElement;
473         attribute HTMLTableColElementConstructor HTMLTableColElement;
474         attribute HTMLTableElementConstructor HTMLTableElement;
475         attribute HTMLTableRowElementConstructor HTMLTableRowElement;
476         attribute HTMLTableSectionElementConstructor HTMLTableSectionElement;
477         attribute HTMLTextAreaElementConstructor HTMLTextAreaElement;
478         attribute HTMLTitleElementConstructor HTMLTitleElement;
479         attribute HTMLUListElementConstructor HTMLUListElement;
480
481         attribute HTMLCollectionConstructor HTMLCollection;
482         attribute HTMLAllCollectionConstructor HTMLAllCollection;
483         attribute HTMLUnknownElementConstructor HTMLUnknownElement;
484
485         attribute [CustomGetter] HTMLImageElementConstructor Image; // Usable with new operator
486         attribute [CustomGetter] HTMLOptionElementConstructor Option; // Usable with new operator
487
488         attribute CanvasPatternConstructor CanvasPattern;
489         attribute CanvasGradientConstructor CanvasGradient;
490         attribute CanvasRenderingContext2DConstructor CanvasRenderingContext2D;
491         attribute ImageDataConstructor ImageData;
492         attribute [Conditional=WEBGL] WebGLActiveInfoConstructor WebGLActiveInfo;
493         attribute [Conditional=WEBGL] WebGLBufferConstructor WebGLBuffer;
494         attribute [Conditional=WEBGL] WebGLFramebufferConstructor WebGLFramebuffer;
495         attribute [Conditional=WEBGL] WebGLProgramConstructor WebGLProgram;
496         attribute [Conditional=WEBGL] WebGLRenderbufferConstructor WebGLRenderbuffer;
497         attribute [Conditional=WEBGL] WebGLRenderingContextConstructor WebGLRenderingContext;
498         attribute [Conditional=WEBGL] WebGLShaderConstructor WebGLShader;
499         attribute [Conditional=WEBGL] WebGLTextureConstructor WebGLTexture;
500         attribute [Conditional=WEBGL] WebGLUniformLocationConstructor WebGLUniformLocation;
501         attribute TextMetricsConstructor TextMetrics;
502
503         attribute DOMStringMapConstructor DOMStringMap;
504
505         attribute [JSCCustomGetter] ArrayBufferConstructor ArrayBuffer; // Usable with new operator
506         attribute [JSCCustomGetter] Int8ArrayConstructor Int8Array; // Usable with new operator
507         attribute [JSCCustomGetter] Uint8ArrayConstructor Uint8Array; // Usable with new operator
508         attribute [JSCCustomGetter] Int16ArrayConstructor Int16Array; // Usable with new operator
509         attribute [JSCCustomGetter] Uint16ArrayConstructor Uint16Array; // Usable with new operator
510         attribute [JSCCustomGetter] Int32ArrayConstructor Int32Array; // Usable with new operator
511         attribute [JSCCustomGetter] Uint32ArrayConstructor Uint32Array; // Usable with new operator
512         attribute [JSCCustomGetter] Float32ArrayConstructor Float32Array; // Usable with new operator
513         attribute [JSCCustomGetter] Float64ArrayConstructor Float64Array; // Usable with new operator
514         attribute [JSCCustomGetter] DataViewConstructor DataView; // Usable with new operator
515
516         attribute [JSCCustomGetter,Conditional=WEB_AUDIO,EnabledAtRuntime] AudioContextConstructor webkitAudioContext; // Usable with new operator
517         attribute [Conditional=WEB_AUDIO] AudioPannerNodeConstructor webkitAudioPannerNode; // Needed for panning model constants
518
519         // Event Constructors
520         attribute EventConstructor Event;
521         attribute BeforeLoadEventConstructor BeforeLoadEvent;
522         attribute CompositionEventConstructor CompositionEvent;
523         attribute CustomEventConstructor CustomEvent;
524         attribute ErrorEventConstructor ErrorEvent;
525         attribute HashChangeEventConstructor HashChangeEvent;
526         attribute KeyboardEventConstructor KeyboardEvent;
527         attribute MessageEventConstructor MessageEvent;
528         attribute MouseEventConstructor MouseEvent;
529         attribute MutationEventConstructor MutationEvent;
530         attribute OverflowEventConstructor OverflowEvent;
531         attribute PopStateEventConstructor PopStateEvent;
532         attribute PageTransitionEventConstructor PageTransitionEvent;
533         attribute ProgressEventConstructor ProgressEvent;
534         attribute TextEventConstructor TextEvent;
535         attribute UIEventConstructor UIEvent;
536         attribute WebKitAnimationEventConstructor WebKitAnimationEvent;
537         attribute WebKitTransitionEventConstructor WebKitTransitionEvent;
538         attribute WheelEventConstructor WheelEvent;
539         attribute XMLHttpRequestProgressEventConstructor XMLHttpRequestProgressEvent;
540         attribute [Conditional=SVG] SVGZoomEventConstructor SVGZoomEvent;
541         attribute [Conditional=DEVICE_ORIENTATION, EnabledAtRuntime] DeviceMotionEventConstructor DeviceMotionEvent;
542         attribute [Conditional=DEVICE_ORIENTATION, EnabledAtRuntime] DeviceOrientationEventConstructor DeviceOrientationEvent;
543         attribute [Conditional=TOUCH_EVENTS] TouchEventConstructor TouchEvent;
544         attribute [Conditional=WEB_SOCKETS] CloseEventConstructor CloseEvent;
545         attribute [Conditional=DOM_STORAGE] StorageEventConstructor StorageEvent;
546         attribute [Conditional=WEB_AUDIO] AudioProcessingEventConstructor AudioProcessingEvent;
547         attribute [Conditional=WEB_AUDIO] OfflineAudioCompletionEventConstructor OfflineAudioCompletionEvent;
548         attribute [Conditional=INPUT_SPEECH] SpeechInputEventConstructor SpeechInputEvent;
549         attribute [Conditional=MEDIA_STREAM] MediaStreamEventConstructor MediaStreamEvent;
550         attribute [Conditional=WEBGL] WebGLContextEventConstructor WebGLContextEvent;
551
552         attribute EventExceptionConstructor EventException;
553
554         attribute WebKitCSSKeyframeRuleConstructor WebKitCSSKeyframeRule;
555         attribute WebKitCSSKeyframesRuleConstructor WebKitCSSKeyframesRule;
556
557         attribute [JSCCustomGetter] WebKitCSSMatrixConstructor WebKitCSSMatrix; // Usable with the new operator
558
559         attribute [JSCCustomGetter] WebKitPointConstructor WebKitPoint; // Usable with new the operator
560
561         attribute ClipboardConstructor Clipboard;
562
563         attribute FileConstructor File;
564         attribute FileListConstructor FileList;
565         attribute BlobConstructor Blob;
566
567         attribute NodeFilterConstructor NodeFilter;
568         attribute RangeConstructor Range;
569         attribute RangeExceptionConstructor RangeException;
570
571 #if ENABLE_EVENTSOURCE
572         attribute [JSCCustomGetter] EventSourceConstructor EventSource; // Usable with new the operator
573 #endif
574
575         // Mozilla has a separate XMLDocument object for XML documents. 
576         // We just use Document for this.
577         attribute DocumentConstructor XMLDocument;
578
579         attribute DOMParserConstructor DOMParser;
580         attribute XMLSerializerConstructor XMLSerializer;
581
582         attribute [JSCCustomGetter] XMLHttpRequestConstructor XMLHttpRequest; // Usable with the new operator
583         attribute XMLHttpRequestUploadConstructor XMLHttpRequestUpload;
584         attribute XMLHttpRequestExceptionConstructor XMLHttpRequestException;
585
586         attribute [JSCCustomGetter,Conditional=XSLT] XSLTProcessorConstructor XSLTProcessor; // Usable with the new operator
587
588 #if defined(ENABLE_CHANNEL_MESSAGING) && ENABLE_CHANNEL_MESSAGING
589         attribute MessagePortConstructor MessagePort;
590         attribute [JSCCustomGetter] MessageChannelConstructor MessageChannel; // Usable with the new operator
591 #endif
592
593 #if defined(ENABLE_WORKERS) && ENABLE_WORKERS
594         attribute [JSCCustomGetter] WorkerConstructor Worker; // Usable with the new operator
595 #endif
596
597 #if defined(ENABLE_SHARED_WORKERS) && ENABLE_SHARED_WORKERS
598         attribute [JSCCustomGetter, EnabledAtRuntime] SharedWorkerConstructor SharedWorker; // Usable with the new operator
599 #endif
600
601 #if defined(ENABLE_WEB_SOCKETS) && ENABLE_WEB_SOCKETS
602         attribute [JSCCustomGetter,EnabledAtRuntime] WebSocketConstructor WebSocket; // Usable with the new operator
603 #endif
604
605         attribute DOMPluginConstructor Plugin;
606         attribute DOMPluginArrayConstructor PluginArray;
607
608         attribute DOMMimeTypeConstructor MimeType;
609         attribute DOMMimeTypeArrayConstructor MimeTypeArray;
610
611         attribute ClientRectConstructor ClientRect;
612         attribute ClientRectListConstructor ClientRectList;
613
614 #if defined(ENABLE_DOM_STORAGE) && ENABLE_DOM_STORAGE
615         attribute StorageConstructor Storage;
616 #endif
617
618         attribute [CustomGetter, Conditional=VIDEO, EnabledAtRuntime] HTMLAudioElementConstructor Audio; // Usable with the new operator
619         attribute [Conditional=VIDEO, EnabledAtRuntime] HTMLAudioElementConstructor HTMLAudioElement;
620         attribute [Conditional=VIDEO, EnabledAtRuntime] HTMLMediaElementConstructor HTMLMediaElement;
621         attribute [Conditional=VIDEO, EnabledAtRuntime] HTMLVideoElementConstructor HTMLVideoElement;
622         attribute [Conditional=VIDEO, EnabledAtRuntime] MediaErrorConstructor MediaError;
623         attribute [Conditional=VIDEO, EnabledAtRuntime] TimeRangesConstructor TimeRanges;
624         attribute [Conditional=VIDEO, EnabledAtRuntime] HTMLSourceElementConstructor HTMLSourceElement;
625
626 #if defined(ENABLE_ANIMATION_API) && ENABLE_ANIMATION_API
627         attribute WebKitAnimationConstructor WebKitAnimation;
628         attribute WebKitAnimationListConstructor WebKitAnimationList;
629 #endif
630
631 #if defined(ENABLE_XPATH) && ENABLE_XPATH
632         attribute XPathEvaluatorConstructor XPathEvaluator;
633         attribute XPathResultConstructor XPathResult;
634         attribute XPathExceptionConstructor XPathException;
635 #endif
636
637 #if defined(ENABLE_SVG) && ENABLE_SVG
638         // Expose all implemented SVG 1.1 interfaces, excluding the SVG MI interfaces:
639         // SVGAnimatedPathData, SVGAnimatedPoints, SVGExternalResourcesRequired,
640         // SVGFilterPrimitiveStandardAttributes, SVGFitToViewBox, SVGLangSpace, SVGLocatable
641         // SVGStylable, SVGTests, SVGTransformable, SVGURIReference, SVGZoomAndPan
642         attribute SVGAElementConstructor SVGAElement;
643         attribute SVGAngleConstructor SVGAngle;
644         attribute SVGAnimatedAngleConstructor SVGAnimatedAngle;
645         attribute SVGAnimatedBooleanConstructor SVGAnimatedBoolean;
646         attribute SVGAnimatedEnumerationConstructor SVGAnimatedEnumeration;
647         attribute SVGAnimatedIntegerConstructor SVGAnimatedInteger;
648         attribute SVGAnimatedLengthConstructor SVGAnimatedLength;
649         attribute SVGAnimatedLengthListConstructor SVGAnimatedLengthList;
650         attribute SVGAnimatedNumberConstructor SVGAnimatedNumber;
651         attribute SVGAnimatedNumberListConstructor SVGAnimatedNumberList;
652         attribute SVGAnimatedPreserveAspectRatioConstructor SVGAnimatedPreserveAspectRatio;
653         attribute SVGAnimatedRectConstructor SVGAnimatedRect;
654         attribute SVGAnimatedStringConstructor SVGAnimatedString;
655         attribute SVGAnimatedTransformListConstructor SVGAnimatedTransformList;
656         attribute SVGCircleElementConstructor SVGCircleElement;
657         attribute SVGClipPathElementConstructor SVGClipPathElement;
658         attribute SVGColorConstructor SVGColor;
659         attribute SVGCursorElementConstructor SVGCursorElement;
660 //      attribute SVGCSSRuleConstructor SVGCSSRule;
661         attribute SVGDefsElementConstructor SVGDefsElement;
662         attribute SVGDescElementConstructor SVGDescElement;
663         attribute SVGDocumentConstructor SVGDocument;
664         attribute SVGElementConstructor SVGElement;
665         attribute SVGElementInstanceConstructor SVGElementInstance;
666         attribute SVGElementInstanceListConstructor SVGElementInstanceList;
667         attribute SVGEllipseElementConstructor SVGEllipseElement;
668         attribute SVGForeignObjectElementConstructor SVGForeignObjectElement;
669         attribute SVGExceptionConstructor SVGException;
670         attribute SVGGElementConstructor SVGGElement;
671         attribute SVGGradientElementConstructor SVGGradientElement;
672         attribute SVGImageElementConstructor SVGImageElement;
673         attribute SVGLengthConstructor SVGLength;
674         attribute SVGLengthListConstructor SVGLengthList;
675         attribute SVGLinearGradientElementConstructor SVGLinearGradientElement;
676         attribute SVGLineElementConstructor SVGLineElement;
677         attribute SVGMarkerElementConstructor SVGMarkerElement;
678         attribute SVGMaskElementConstructor SVGMaskElement;
679         attribute SVGMatrixConstructor SVGMatrix;
680         attribute SVGMetadataElementConstructor SVGMetadataElement;
681         attribute SVGNumberConstructor SVGNumber;
682         attribute SVGNumberListConstructor SVGNumberList;
683         attribute SVGPaintConstructor SVGPaint;
684         attribute SVGPathElementConstructor SVGPathElement;
685         attribute SVGPathSegConstructor SVGPathSeg;
686         attribute SVGPathSegArcAbsConstructor SVGPathSegArcAbs;
687         attribute SVGPathSegArcRelConstructor SVGPathSegArcRel;
688         attribute SVGPathSegClosePathConstructor SVGPathSegClosePath;
689         attribute SVGPathSegCurvetoCubicAbsConstructor SVGPathSegCurvetoCubicAbs;
690         attribute SVGPathSegCurvetoCubicRelConstructor SVGPathSegCurvetoCubicRel;
691         attribute SVGPathSegCurvetoCubicSmoothAbsConstructor SVGPathSegCurvetoCubicSmoothAbs;
692         attribute SVGPathSegCurvetoCubicSmoothRelConstructor SVGPathSegCurvetoCubicSmoothRel;
693         attribute SVGPathSegCurvetoQuadraticAbsConstructor SVGPathSegCurvetoQuadraticAbs;
694         attribute SVGPathSegCurvetoQuadraticRelConstructor SVGPathSegCurvetoQuadraticRel;
695         attribute SVGPathSegCurvetoQuadraticSmoothAbsConstructor SVGPathSegCurvetoQuadraticSmoothAbs;
696         attribute SVGPathSegCurvetoQuadraticSmoothRelConstructor SVGPathSegCurvetoQuadraticSmoothRel;
697         attribute SVGPathSegLinetoAbsConstructor SVGPathSegLinetoAbs;
698         attribute SVGPathSegLinetoHorizontalAbsConstructor SVGPathSegLinetoHorizontalAbs;
699         attribute SVGPathSegLinetoHorizontalRelConstructor SVGPathSegLinetoHorizontalRel;
700         attribute SVGPathSegLinetoRelConstructor SVGPathSegLinetoRel;
701         attribute SVGPathSegLinetoVerticalAbsConstructor SVGPathSegLinetoVerticalAbs;
702         attribute SVGPathSegLinetoVerticalRelConstructor SVGPathSegLinetoVerticalRel;
703         attribute SVGPathSegListConstructor SVGPathSegList;
704         attribute SVGPathSegMovetoAbsConstructor SVGPathSegMovetoAbs;
705         attribute SVGPathSegMovetoRelConstructor SVGPathSegMovetoRel;
706         attribute SVGPatternElementConstructor SVGPatternElement;
707         attribute SVGPointConstructor SVGPoint;
708         attribute SVGPointListConstructor SVGPointList;
709         attribute SVGPolygonElementConstructor SVGPolygonElement;
710         attribute SVGPolylineElementConstructor SVGPolylineElement;
711         attribute SVGPreserveAspectRatioConstructor SVGPreserveAspectRatio;
712         attribute SVGRadialGradientElementConstructor SVGRadialGradientElement;
713         attribute SVGRectConstructor SVGRect;
714         attribute SVGRectElementConstructor SVGRectElement;
715         attribute SVGRenderingIntentConstructor SVGRenderingIntent;
716         attribute SVGScriptElementConstructor SVGScriptElement;
717         attribute SVGStopElementConstructor SVGStopElement;
718         attribute SVGStringListConstructor SVGStringList;
719         attribute SVGStyleElementConstructor SVGStyleElement;
720         attribute SVGSVGElementConstructor SVGSVGElement;
721         attribute SVGSwitchElementConstructor SVGSwitchElement;
722         attribute SVGSymbolElementConstructor SVGSymbolElement;
723         attribute SVGTextContentElementConstructor SVGTextContentElement;
724         attribute SVGTextElementConstructor SVGTextElement;
725         attribute SVGTextPathElementConstructor SVGTextPathElement;
726         attribute SVGTextPositioningElementConstructor SVGTextPositioningElement;
727         attribute SVGTitleElementConstructor SVGTitleElement;
728         attribute SVGTransformConstructor SVGTransform;
729         attribute SVGTransformListConstructor SVGTransformList;
730         attribute SVGTRefElementConstructor SVGTRefElement;
731         attribute SVGTSpanElementConstructor SVGTSpanElement;
732         attribute SVGUnitTypesConstructor SVGUnitTypes;
733         attribute SVGUseElementConstructor SVGUseElement;
734         attribute SVGViewElementConstructor SVGViewElement;
735 //      attribute SVGViewSpecConstructor SVGViewSpec;
736
737 #if defined(ENABLE_SVG_ANIMATION) && ENABLE_SVG_ANIMATION
738         attribute SVGAnimateColorElementConstructor SVGAnimateColorElement;
739         attribute SVGAnimateElementConstructor SVGAnimateElement;
740         attribute SVGAnimateMotionElementConstructor SVGAnimateMotionElement;
741         attribute SVGAnimateTransformElementConstructor SVGAnimateTransformElement;
742         attribute SVGMPathElementConstructor SVGMPathElement;
743         attribute SVGSetElementConstructor SVGSetElement;
744 #endif
745
746 #if defined(ENABLE_SVG_FONTS) && ENABLE_SVG_FONTS
747         attribute SVGAltGlyphDefElementConstructor SVGAltGlyphDefElement;
748         attribute SVGAltGlyphElementConstructor SVGAltGlyphElement;
749         attribute SVGAltGlyphItemElementConstructor SVGAltGlyphItemElement;
750 //      attribute SVGDefinitionSrcElementConstructor SVGDefinitionSrcElement;
751         attribute SVGFontElementConstructor SVGFontElement;
752         attribute SVGFontFaceElementConstructor SVGFontFaceElement;
753         attribute SVGFontFaceFormatElementConstructor SVGFontFaceFormatElement;
754         attribute SVGFontFaceNameElementConstructor SVGFontFaceNameElement;
755         attribute SVGFontFaceSrcElementConstructor SVGFontFaceSrcElement;
756         attribute SVGFontFaceUriElementConstructor SVGFontFaceUriElement;
757         attribute SVGGlyphElementConstructor SVGGlyphElement;
758         attribute SVGGlyphRefElementConstructor SVGGlyphRefElement;
759         attribute SVGHKernElementConstructor SVGHKernElement;
760         attribute SVGMissingGlyphElementConstructor SVGMissingGlyphElement;
761         attribute SVGVKernElementConstructor SVGVKernElement;
762 #endif
763
764 #if defined(ENABLE_FILTERS) && ENABLE_FILTERS
765         attribute SVGComponentTransferFunctionElementConstructor SVGComponentTransferFunctionElement;
766         attribute SVGFEBlendElementConstructor SVGFEBlendElement;
767         attribute SVGFEColorMatrixElementConstructor SVGFEColorMatrixElement;
768         attribute SVGFEComponentTransferElementConstructor SVGFEComponentTransferElement;
769         attribute SVGFECompositeElementConstructor SVGFECompositeElement;
770         attribute SVGFEConvolveMatrixElementConstructor SVGFEConvolveMatrixElement;
771         attribute SVGFEDiffuseLightingElementConstructor SVGFEDiffuseLightingElement;
772         attribute SVGFEDisplacementMapElementConstructor SVGFEDisplacementMapElement;
773         attribute SVGFEDistantLightElementConstructor SVGFEDistantLightElement;
774         attribute SVGFEDropShadowElementConstructor SVGFEDropShadowElement;
775         attribute SVGFEFloodElementConstructor SVGFEFloodElement;
776         attribute SVGFEFuncAElementConstructor SVGFEFuncAElement;
777         attribute SVGFEFuncBElementConstructor SVGFEFuncBElement;
778         attribute SVGFEFuncGElementConstructor SVGFEFuncGElement;
779         attribute SVGFEFuncRElementConstructor SVGFEFuncRElement;
780         attribute SVGFEGaussianBlurElementConstructor SVGFEGaussianBlurElement;
781         attribute SVGFEImageElementConstructor SVGFEImageElement;
782         attribute SVGFEMergeElementConstructor SVGFEMergeElement;
783         attribute SVGFEMergeNodeElementConstructor SVGFEMergeNodeElement;
784         attribute SVGFEMorphologyElementConstructor SVGFEMorphologyElement;
785         attribute SVGFEOffsetElementConstructor SVGFEOffsetElement;
786         attribute SVGFEPointLightElementConstructor SVGFEPointLightElement;
787         attribute SVGFESpecularLightingElementConstructor SVGFESpecularLightingElement;
788         attribute SVGFESpotLightElementConstructor SVGFESpotLightElement;
789         attribute SVGFETileElementConstructor SVGFETileElement;
790         attribute SVGFETurbulenceElementConstructor SVGFETurbulenceElement;
791         attribute SVGFilterElementConstructor SVGFilterElement;
792 #endif
793 #endif
794
795         attribute [Conditional=DATABASE] SQLExceptionConstructor SQLException;
796
797
798         attribute DOMFormDataConstructor FormData;
799
800         attribute [Conditional=BLOB|FILE_SYSTEM] FileErrorConstructor FileError;
801         attribute [Conditional=BLOB] FileReaderConstructor FileReader;
802
803         attribute [Conditional=BLOB] WebKitBlobBuilderConstructor WebKitBlobBuilder;
804
805         readonly attribute [Conditional=BLOB] DOMURL webkitURL;
806
807 #if defined(ENABLE_QUOTA) && ENABLE_QUOTA
808         readonly attribute [EnabledAtRuntime=Quota] StorageInfo webkitStorageInfo;
809 #endif
810
811 #endif // defined(LANGUAGE_JAVASCRIPT)
812
813 #if defined(V8_BINDING) && V8_BINDING
814         // window.toString() requires special handling in V8
815         [V8DoNotCheckSignature, DoNotCheckDomainSecurity, Custom, DontEnum] DOMString toString();
816 #endif // defined(V8_BINDING)
817     };
818
819 }
820