Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(127)

Side by Side Diff: webkit/port/bindings/v8/v8_index.h

Issue 126296: Use upstreamed V8Index (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « webkit/glue/devtools/debugger_agent_impl.cc ('k') | webkit/port/bindings/v8/v8_index.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef V8_INDEX_H__
6 #define V8_INDEX_H__
7
8 #include <v8.h>
9 #include "PlatformString.h" // for WebCore::String
10
11 namespace WebCore {
12
13 typedef v8::Persistent<v8::FunctionTemplate> (*FunctionTemplateFactory)();
14
15 #if ENABLE(VIDEO)
16 #define VIDEO_HTMLELEMENT_TYPES(V) \
17 V(HTMLAUDIOELEMENT, HTMLAudioElement) \
18 V(HTMLMEDIAELEMENT, HTMLMediaElement) \
19 V(HTMLSOURCEELEMENT, HTMLSourceElement) \
20 V(HTMLVIDEOELEMENT, HTMLVideoElement)
21 #define VIDEO_NONNODE_TYPES(V) \
22 V(MEDIAERROR, MediaError) \
23 V(TIMERANGES, TimeRanges)
24 #else
25 #define VIDEO_HTMLELEMENT_TYPES(V)
26 #define VIDEO_NONNODE_TYPES(V)
27 #endif
28
29 #if ENABLE(WORKERS)
30 #define WORKER_ACTIVE_OBJECT_WRAPPER_TYPES(V) \
31 V(WORKER, Worker)
32
33 #define WORKER_NONNODE_WRAPPER_TYPES(V) \
34 V(WORKERCONTEXT, WorkerContext) \
35 V(WORKERLOCATION, WorkerLocation) \
36 V(WORKERNAVIGATOR, WorkerNavigator)
37 #else
38 #define WORKER_ACTIVE_OBJECT_WRAPPER_TYPES(V)
39 #define WORKER_NONNODE_WRAPPER_TYPES(V)
40 #endif
41
42 #define DOM_NODE_TYPES(V) \
43 V(ATTR, Attr) \
44 V(CHARACTERDATA, CharacterData) \
45 V(CDATASECTION, CDATASection) \
46 V(COMMENT, Comment) \
47 V(DOCUMENT, Document) \
48 V(DATAGRIDCOLUMN, DataGridColumn) \
49 V(DATAGRIDCOLUMNLIST, DataGridColumnList) \
50 V(DOCUMENTFRAGMENT, DocumentFragment) \
51 V(DOCUMENTTYPE, DocumentType) \
52 V(ELEMENT, Element) \
53 V(ENTITY, Entity) \
54 V(ENTITYREFERENCE, EntityReference) \
55 V(HTMLDOCUMENT, HTMLDocument) \
56 V(NODE, Node) \
57 V(NOTATION, Notation) \
58 V(PROCESSINGINSTRUCTION, ProcessingInstruction) \
59 V(TEXT, Text) \
60 \
61 V(HTMLANCHORELEMENT, HTMLAnchorElement) \
62 V(HTMLAPPLETELEMENT, HTMLAppletElement) \
63 V(HTMLAREAELEMENT, HTMLAreaElement) \
64 V(HTMLBASEELEMENT, HTMLBaseElement) \
65 V(HTMLBASEFONTELEMENT, HTMLBaseFontElement) \
66 V(HTMLBLOCKQUOTEELEMENT, HTMLBlockquoteElement) \
67 V(HTMLBODYELEMENT, HTMLBodyElement) \
68 V(HTMLBRELEMENT, HTMLBRElement) \
69 V(HTMLBUTTONELEMENT, HTMLButtonElement) \
70 V(HTMLCANVASELEMENT, HTMLCanvasElement) \
71 V(HTMLDATAGRIDCELLELEMENT, HTMLDataGridCellElement) \
72 V(HTMLDATAGRIDCOLELEMENT, HTMLDataGridColElement) \
73 V(HTMLDATAGRIDELEMENT, HTMLDataGridElement) \
74 V(HTMLDATAGRIDROWELEMENT, HTMLDataGridRowElement) \
75 V(HTMLDIRECTORYELEMENT, HTMLDirectoryElement) \
76 V(HTMLDIVELEMENT, HTMLDivElement) \
77 V(HTMLDLISTELEMENT, HTMLDListElement) \
78 V(HTMLEMBEDELEMENT, HTMLEmbedElement) \
79 V(HTMLFIELDSETELEMENT, HTMLFieldSetElement) \
80 V(HTMLFONTELEMENT, HTMLFontElement) \
81 V(HTMLFORMELEMENT, HTMLFormElement) \
82 V(HTMLFRAMEELEMENT, HTMLFrameElement) \
83 V(HTMLFRAMESETELEMENT, HTMLFrameSetElement) \
84 V(HTMLHEADINGELEMENT, HTMLHeadingElement) \
85 V(HTMLHEADELEMENT, HTMLHeadElement) \
86 V(HTMLHRELEMENT, HTMLHRElement) \
87 V(HTMLHTMLELEMENT, HTMLHtmlElement) \
88 V(HTMLIFRAMEELEMENT, HTMLIFrameElement) \
89 V(HTMLIMAGEELEMENT, HTMLImageElement) \
90 V(HTMLINPUTELEMENT, HTMLInputElement) \
91 V(HTMLISINDEXELEMENT, HTMLIsIndexElement) \
92 V(HTMLLABELELEMENT, HTMLLabelElement) \
93 V(HTMLLEGENDELEMENT, HTMLLegendElement) \
94 V(HTMLLIELEMENT, HTMLLIElement) \
95 V(HTMLLINKELEMENT, HTMLLinkElement) \
96 V(HTMLMAPELEMENT, HTMLMapElement) \
97 V(HTMLMARQUEEELEMENT, HTMLMarqueeElement) \
98 V(HTMLMENUELEMENT, HTMLMenuElement) \
99 V(HTMLMETAELEMENT, HTMLMetaElement) \
100 V(HTMLMODELEMENT, HTMLModElement) \
101 V(HTMLOBJECTELEMENT, HTMLObjectElement) \
102 V(HTMLOLISTELEMENT, HTMLOListElement) \
103 V(HTMLOPTGROUPELEMENT, HTMLOptGroupElement) \
104 V(HTMLOPTIONELEMENT, HTMLOptionElement) \
105 V(HTMLPARAGRAPHELEMENT, HTMLParagraphElement) \
106 V(HTMLPARAMELEMENT, HTMLParamElement) \
107 V(HTMLPREELEMENT, HTMLPreElement) \
108 V(HTMLQUOTEELEMENT, HTMLQuoteElement) \
109 V(HTMLSCRIPTELEMENT, HTMLScriptElement) \
110 V(HTMLSELECTELEMENT, HTMLSelectElement) \
111 V(HTMLSTYLEELEMENT, HTMLStyleElement) \
112 V(HTMLTABLECAPTIONELEMENT, HTMLTableCaptionElement) \
113 V(HTMLTABLECOLELEMENT, HTMLTableColElement) \
114 V(HTMLTABLEELEMENT, HTMLTableElement) \
115 V(HTMLTABLESECTIONELEMENT, HTMLTableSectionElement) \
116 V(HTMLTABLECELLELEMENT, HTMLTableCellElement) \
117 V(HTMLTABLEROWELEMENT, HTMLTableRowElement) \
118 V(HTMLTEXTAREAELEMENT, HTMLTextAreaElement) \
119 V(HTMLTITLEELEMENT, HTMLTitleElement) \
120 V(HTMLULISTELEMENT, HTMLUListElement) \
121 V(HTMLELEMENT, HTMLElement) \
122 VIDEO_HTMLELEMENT_TYPES(V)
123
124 #if ENABLE(SVG_ANIMATION)
125 #define SVG_ANIMATION_ELEMENT_TYPES(V) \
126 V(SVGANIMATECOLORELEMENT, SVGAnimateColorElement) \
127 V(SVGANIMATEELEMENT, SVGAnimateElement) \
128 V(SVGANIMATETRANSFORMELEMENT, SVGAnimateTransformElement) \
129 V(SVGANIMATIONELEMENT, SVGAnimationElement) \
130 V(SVGSETELEMENT, SVGSetElement)
131 #else
132 #define SVG_ANIMATION_ELEMENT_TYPES(V)
133 #endif
134
135 #if ENABLE(SVG_FILTERS)
136 #define SVG_FILTERS_ELEMENT_TYPES(V) \
137 V(SVGCOMPONENTTRANSFERFUNCTIONELEMENT, SVGComponentTransferFunctionElement)\
138 V(SVGFEBLENDELEMENT, SVGFEBlendElement) \
139 V(SVGFECOLORMATRIXELEMENT, SVGFEColorMatrixElement) \
140 V(SVGFECOMPONENTTRANSFERELEMENT, SVGFEComponentTransferElement) \
141 V(SVGFECOMPOSITEELEMENT, SVGFECompositeElement) \
142 V(SVGFEDIFFUSELIGHTINGELEMENT, SVGFEDiffuseLightingElement) \
143 V(SVGFEDISPLACEMENTMAPELEMENT, SVGFEDisplacementMapElement) \
144 V(SVGFEDISTANTLIGHTELEMENT, SVGFEDistantLightElement) \
145 V(SVGFEFLOODELEMENT, SVGFEFloodElement) \
146 V(SVGFEFUNCAELEMENT, SVGFEFuncAElement) \
147 V(SVGFEFUNCBELEMENT, SVGFEFuncBElement) \
148 V(SVGFEFUNCGELEMENT, SVGFEFuncGElement) \
149 V(SVGFEFUNCRELEMENT, SVGFEFuncRElement) \
150 V(SVGFEGAUSSIANBLURELEMENT, SVGFEGaussianBlurElement) \
151 V(SVGFEIMAGEELEMENT, SVGFEImageElement) \
152 V(SVGFEMERGEELEMENT, SVGFEMergeElement) \
153 V(SVGFEMERGENODEELEMENT, SVGFEMergeNodeElement) \
154 V(SVGFEOFFSETELEMENT, SVGFEOffsetElement) \
155 V(SVGFEPOINTLIGHTELEMENT, SVGFEPointLightElement) \
156 V(SVGFESPECULARLIGHTINGELEMENT, SVGFESpecularLightingElement) \
157 V(SVGFESPOTLIGHTELEMENT, SVGFESpotLightElement) \
158 V(SVGFETILEELEMENT, SVGFETileElement) \
159 V(SVGFETURBULENCEELEMENT, SVGFETurbulenceElement) \
160 V(SVGFILTERELEMENT, SVGFilterElement)
161 #else
162 #define SVG_FILTERS_ELEMENT_TYPES(V)
163 #endif
164
165 #if ENABLE(SVG_FONTS)
166 #define SVG_FONTS_ELEMENT_TYPES(V) \
167 V(SVGDEFINITIONSRCELEMENT, SVGDefinitionSrcElement) \
168 V(SVGFONTFACEELEMENT, SVGFontFaceElement) \
169 V(SVGFONTFACEFORMATELEMENT, SVGFontFaceFormatElement) \
170 V(SVGFONTFACENAMEELEMENT, SVGFontFaceNameElement) \
171 V(SVGFONTFACESRCELEMENT, SVGFontFaceSrcElement) \
172 V(SVGFONTFACEURIELEMENT, SVGFontFaceUriElement)
173 #else
174 #define SVG_FONTS_ELEMENT_TYPES(V)
175 #endif
176
177 #if ENABLE(SVG_FOREIGN_OBJECT)
178 #define SVG_FOREIGN_OBJECT_ELEMENT_TYPES(V) \
179 V(SVGFOREIGNOBJECTELEMENT, SVGForeignObjectElement)
180 #else
181 #define SVG_FOREIGN_OBJECT_ELEMENT_TYPES(V)
182 #endif
183
184 #if ENABLE(SVG_USE)
185 #define SVG_USE_ELEMENT_TYPES(V) \
186 V(SVGUSEELEMENT, SVGUseElement)
187 #else
188 #define SVG_USE_ELEMENT_TYPES(V)
189 #endif
190
191 #if ENABLE(SVG)
192 #define SVG_NODE_TYPES(V) \
193 SVG_ANIMATION_ELEMENT_TYPES(V) \
194 SVG_FILTERS_ELEMENT_TYPES(V) \
195 SVG_FONTS_ELEMENT_TYPES(V) \
196 SVG_FOREIGN_OBJECT_ELEMENT_TYPES(V) \
197 SVG_USE_ELEMENT_TYPES(V) \
198 V(SVGAELEMENT, SVGAElement) \
199 V(SVGALTGLYPHELEMENT, SVGAltGlyphElement) \
200 V(SVGCIRCLEELEMENT, SVGCircleElement) \
201 V(SVGCLIPPATHELEMENT, SVGClipPathElement) \
202 V(SVGCURSORELEMENT, SVGCursorElement) \
203 V(SVGDEFSELEMENT, SVGDefsElement) \
204 V(SVGDESCELEMENT, SVGDescElement) \
205 V(SVGELLIPSEELEMENT, SVGEllipseElement) \
206 V(SVGGELEMENT, SVGGElement) \
207 V(SVGGLYPHELEMENT, SVGGlyphElement) \
208 V(SVGGRADIENTELEMENT, SVGGradientElement) \
209 V(SVGIMAGEELEMENT, SVGImageElement) \
210 V(SVGLINEARGRADIENTELEMENT, SVGLinearGradientElement) \
211 V(SVGLINEELEMENT, SVGLineElement) \
212 V(SVGMARKERELEMENT, SVGMarkerElement) \
213 V(SVGMASKELEMENT, SVGMaskElement) \
214 V(SVGMETADATAELEMENT, SVGMetadataElement) \
215 V(SVGPATHELEMENT, SVGPathElement) \
216 V(SVGPATTERNELEMENT, SVGPatternElement) \
217 V(SVGPOLYGONELEMENT, SVGPolygonElement) \
218 V(SVGPOLYLINEELEMENT, SVGPolylineElement) \
219 V(SVGRADIALGRADIENTELEMENT, SVGRadialGradientElement) \
220 V(SVGRECTELEMENT, SVGRectElement) \
221 V(SVGSCRIPTELEMENT, SVGScriptElement) \
222 V(SVGSTOPELEMENT, SVGStopElement) \
223 V(SVGSTYLEELEMENT, SVGStyleElement) \
224 V(SVGSVGELEMENT, SVGSVGElement) \
225 V(SVGSWITCHELEMENT, SVGSwitchElement) \
226 V(SVGSYMBOLELEMENT, SVGSymbolElement) \
227 V(SVGTEXTCONTENTELEMENT, SVGTextContentElement) \
228 V(SVGTEXTELEMENT, SVGTextElement) \
229 V(SVGTEXTPATHELEMENT, SVGTextPathElement) \
230 V(SVGTEXTPOSITIONINGELEMENT, SVGTextPositioningElement) \
231 V(SVGTITLEELEMENT, SVGTitleElement) \
232 V(SVGTREFELEMENT, SVGTRefElement) \
233 V(SVGTSPANELEMENT, SVGTSpanElement) \
234 V(SVGVIEWELEMENT, SVGViewElement) \
235 V(SVGELEMENT, SVGElement) \
236 \
237 V(SVGDOCUMENT, SVGDocument)
238 #endif // SVG
239
240
241 // ACTIVE_DOM_OBJECT_TYPES are DOM_OBJECT_TYPES that need special treatement
242 // during GC.
243 #define ACTIVE_DOM_OBJECT_TYPES(V) \
244 V(MESSAGEPORT, MessagePort) \
245 V(XMLHTTPREQUEST, XMLHttpRequest) \
246 WORKER_ACTIVE_OBJECT_WRAPPER_TYPES(V)
247
248 // NOTE: DOM_OBJECT_TYPES is split into two halves because
249 // Visual Studio's Intellinonsense crashes when macros get
250 // too large. 10-29-08
251 // DOM_OBJECT_TYPES are non-node DOM types.
252 #define DOM_OBJECT_TYPES_1(V) \
253 V(BARINFO, BarInfo) \
254 V(CANVASGRADIENT, CanvasGradient) \
255 V(CANVASPATTERN, CanvasPattern) \
256 V(CANVASRENDERINGCONTEXT2D, CanvasRenderingContext2D) \
257 V(CLIENTRECT, ClientRect) \
258 V(CLIENTRECTLIST, ClientRectList) \
259 V(CLIPBOARD, Clipboard) \
260 V(CONSOLE, Console) \
261 V(COUNTER, Counter) \
262 V(CSSCHARSETRULE, CSSCharsetRule) \
263 V(CSSFONTFACERULE, CSSFontFaceRule) \
264 V(CSSIMPORTRULE, CSSImportRule) \
265 V(CSSMEDIARULE, CSSMediaRule) \
266 V(CSSPAGERULE, CSSPageRule) \
267 V(CSSPRIMITIVEVALUE, CSSPrimitiveValue) \
268 V(CSSRULE, CSSRule) \
269 V(CSSRULELIST, CSSRuleList) \
270 V(CSSSTYLEDECLARATION, CSSStyleDeclaration) \
271 V(CSSSTYLERULE, CSSStyleRule) \
272 V(CSSSTYLESHEET, CSSStyleSheet) \
273 V(CSSVALUE, CSSValue) \
274 V(CSSVALUELIST, CSSValueList) \
275 V(CSSVARIABLESDECLARATION, CSSVariablesDeclaration) \
276 V(CSSVARIABLESRULE, CSSVariablesRule) \
277 V(DOMCOREEXCEPTION, DOMCoreException) \
278 V(DOMIMPLEMENTATION, DOMImplementation) \
279 V(DOMPARSER, DOMParser) \
280 V(DOMSELECTION, DOMSelection) \
281 V(DOMWINDOW, DOMWindow) \
282 V(EVENT, Event) \
283 V(EVENTEXCEPTION, EventException) \
284 V(FILE, File) \
285 V(FILELIST, FileList) \
286 V(HISTORY, History) \
287 V(UNDETECTABLEHTMLCOLLECTION, UndetectableHTMLCollection) \
288 V(HTMLCOLLECTION, HTMLCollection) \
289 V(HTMLOPTIONSCOLLECTION, HTMLOptionsCollection) \
290 V(IMAGEDATA, ImageData) \
291 V(CANVASPIXELARRAY, CanvasPixelArray) \
292 V(INSPECTORCONTROLLER, InspectorController) \
293 V(KEYBOARDEVENT, KeyboardEvent) \
294 V(LOCATION, Location) \
295 V(MEDIALIST, MediaList)
296
297 #define DOM_OBJECT_TYPES_2(V) \
298 V(MESSAGECHANNEL, MessageChannel) \
299 V(MESSAGEEVENT, MessageEvent) \
300 V(MIMETYPE, MimeType) \
301 V(MIMETYPEARRAY, MimeTypeArray) \
302 V(MOUSEEVENT, MouseEvent) \
303 V(MUTATIONEVENT, MutationEvent) \
304 V(NAMEDNODEMAP, NamedNodeMap) \
305 V(NAVIGATOR, Navigator) \
306 V(NODEFILTER, NodeFilter) \
307 V(NODEITERATOR, NodeIterator) \
308 V(NODELIST, NodeList) \
309 V(OVERFLOWEVENT, OverflowEvent) \
310 V(PLUGIN, Plugin) \
311 V(PLUGINARRAY, PluginArray) \
312 V(PROGRESSEVENT, ProgressEvent) \
313 V(RANGE, Range) \
314 V(RANGEEXCEPTION, RangeException) \
315 V(RECT, Rect) \
316 V(RGBCOLOR, RGBColor) \
317 V(SCREEN, Screen) \
318 V(STYLESHEET, StyleSheet) \
319 V(STYLESHEETLIST, StyleSheetList) \
320 V(TEXTEVENT, TextEvent) \
321 V(TEXTMETRICS, TextMetrics) \
322 V(TREEWALKER, TreeWalker) \
323 V(UIEVENT, UIEvent) \
324 V(WEBKITANIMATIONEVENT, WebKitAnimationEvent) \
325 V(WEBKITCSSKEYFRAMERULE, WebKitCSSKeyframeRule) \
326 V(WEBKITCSSKEYFRAMESRULE, WebKitCSSKeyframesRule) \
327 V(WEBKITCSSMATRIX, WebKitCSSMatrix) \
328 V(WEBKITPOINT, WebKitPoint) \
329 V(WEBKITCSSTRANSFORMVALUE, WebKitCSSTransformValue) \
330 V(WEBKITTRANSITIONEVENT, WebKitTransitionEvent) \
331 V(WHEELEVENT, WheelEvent) \
332 V(XMLHTTPREQUESTUPLOAD, XMLHttpRequestUpload) \
333 V(XMLHTTPREQUESTEXCEPTION, XMLHttpRequestException) \
334 V(XMLHTTPREQUESTPROGRESSEVENT, XMLHttpRequestProgressEvent) \
335 V(XMLSERIALIZER, XMLSerializer) \
336 V(XPATHEVALUATOR, XPathEvaluator) \
337 V(XPATHEXCEPTION, XPathException) \
338 V(XPATHEXPRESSION, XPathExpression) \
339 V(XPATHNSRESOLVER, XPathNSResolver) \
340 V(XPATHRESULT, XPathResult) \
341 V(XSLTPROCESSOR, XSLTProcessor) \
342 ACTIVE_DOM_OBJECT_TYPES(V) \
343 VIDEO_NONNODE_TYPES(V) \
344 WORKER_NONNODE_WRAPPER_TYPES(V)
345
346 #if ENABLE(DATABASE)
347 #define DOM_OBJECT_DATABASE_TYPES(V) \
348 V(DATABASE, Database) \
349 V(SQLERROR, SQLError) \
350 V(SQLRESULTSET, SQLResultSet) \
351 V(SQLRESULTSETROWLIST, SQLResultSetRowList) \
352 V(SQLTRANSACTION, SQLTransaction)
353 #else
354 #define DOM_OBJECT_DATABASE_TYPES(V)
355 #endif
356
357 #if ENABLE(DOM_STORAGE)
358 #define DOM_OBJECT_STORAGE_TYPES(V) \
359 V(STORAGE, Storage) \
360 V(STORAGEEVENT, StorageEvent)
361 #else
362 #define DOM_OBJECT_STORAGE_TYPES(V)
363 #endif
364
365 #define DOM_OBJECT_TYPES(V) \
366 DOM_OBJECT_TYPES_1(V) \
367 DOM_OBJECT_TYPES_2(V) \
368 DOM_OBJECT_DATABASE_TYPES(V) \
369 DOM_OBJECT_STORAGE_TYPES(V)
370
371 #if ENABLE(SVG)
372 // SVG_OBJECT_TYPES are svg non-node, non-pod types.
373 #define SVG_OBJECT_TYPES(V) \
374 V(SVGANGLE, SVGAngle) \
375 V(SVGANIMATEDANGLE, SVGAnimatedAngle) \
376 V(SVGANIMATEDBOOLEAN, SVGAnimatedBoolean) \
377 V(SVGANIMATEDENUMERATION, SVGAnimatedEnumeration) \
378 V(SVGANIMATEDINTEGER, SVGAnimatedInteger) \
379 V(SVGANIMATEDLENGTH, SVGAnimatedLength) \
380 V(SVGANIMATEDLENGTHLIST, SVGAnimatedLengthList) \
381 V(SVGANIMATEDNUMBER, SVGAnimatedNumber) \
382 V(SVGANIMATEDNUMBERLIST, SVGAnimatedNumberList) \
383 V(SVGANIMATEDPRESERVEASPECTRATIO, SVGAnimatedPreserveAspectRatio) \
384 V(SVGANIMATEDRECT, SVGAnimatedRect) \
385 V(SVGANIMATEDSTRING, SVGAnimatedString) \
386 V(SVGANIMATEDTRANSFORMLIST, SVGAnimatedTransformList) \
387 V(SVGCOLOR, SVGColor) \
388 V(SVGELEMENTINSTANCE, SVGElementInstance) \
389 V(SVGELEMENTINSTANCELIST, SVGElementInstanceList) \
390 V(SVGEXCEPTION, SVGException) \
391 V(SVGLENGTHLIST, SVGLengthList) \
392 V(SVGNUMBERLIST, SVGNumberList) \
393 V(SVGPAINT, SVGPaint) \
394 V(SVGPATHSEG, SVGPathSeg) \
395 V(SVGPATHSEGARCABS, SVGPathSegArcAbs) \
396 V(SVGPATHSEGARCREL, SVGPathSegArcRel) \
397 V(SVGPATHSEGCLOSEPATH, SVGPathSegClosePath) \
398 V(SVGPATHSEGCURVETOCUBICABS, SVGPathSegCurvetoCubicAbs) \
399 V(SVGPATHSEGCURVETOCUBICREL, SVGPathSegCurvetoCubicRel) \
400 V(SVGPATHSEGCURVETOCUBICSMOOTHABS, SVGPathSegCurvetoCubicSmoothAbs) \
401 V(SVGPATHSEGCURVETOCUBICSMOOTHREL, SVGPathSegCurvetoCubicSmoothRel) \
402 V(SVGPATHSEGCURVETOQUADRATICABS, SVGPathSegCurvetoQuadraticAbs) \
403 V(SVGPATHSEGCURVETOQUADRATICREL, SVGPathSegCurvetoQuadraticRel) \
404 V(SVGPATHSEGCURVETOQUADRATICSMOOTHABS, SVGPathSegCurvetoQuadraticSmoothAbs)\
405 V(SVGPATHSEGCURVETOQUADRATICSMOOTHREL, SVGPathSegCurvetoQuadraticSmoothRel)\
406 V(SVGPATHSEGLINETOABS, SVGPathSegLinetoAbs) \
407 V(SVGPATHSEGLINETOHORIZONTALABS, SVGPathSegLinetoHorizontalAbs) \
408 V(SVGPATHSEGLINETOHORIZONTALREL, SVGPathSegLinetoHorizontalRel) \
409 V(SVGPATHSEGLINETOREL, SVGPathSegLinetoRel) \
410 V(SVGPATHSEGLINETOVERTICALABS, SVGPathSegLinetoVerticalAbs) \
411 V(SVGPATHSEGLINETOVERTICALREL, SVGPathSegLinetoVerticalRel) \
412 V(SVGPATHSEGLIST, SVGPathSegList) \
413 V(SVGPATHSEGMOVETOABS, SVGPathSegMovetoAbs) \
414 V(SVGPATHSEGMOVETOREL, SVGPathSegMovetoRel) \
415 V(SVGPOINTLIST, SVGPointList) \
416 V(SVGPRESERVEASPECTRATIO, SVGPreserveAspectRatio) \
417 V(SVGRENDERINGINTENT, SVGRenderingIntent) \
418 V(SVGSTRINGLIST, SVGStringList) \
419 V(SVGTRANSFORMLIST, SVGTransformList) \
420 V(SVGUNITTYPES, SVGUnitTypes) \
421 V(SVGZOOMEVENT, SVGZoomEvent)
422
423 // SVG POD types should list all types whose IDL has PODType declaration.
424 #define SVG_POD_TYPES(V) \
425 V(SVGLENGTH, SVGLength) \
426 V(SVGTRANSFORM, SVGTransform) \
427 V(SVGMATRIX, SVGMatrix) \
428 V(SVGNUMBER, SVGNumber) \
429 V(SVGPOINT, SVGPoint) \
430 V(SVGRECT, SVGRect)
431
432 // POD types can have different implementation names, see CodeGenerateV8.pm.
433 #define SVG_POD_NATIVE_TYPES(V) \
434 V(SVGLENGTH, SVGLength) \
435 V(SVGTRANSFORM, SVGTransform) \
436 V(SVGMATRIX, TransformationMatrix) \
437 V(SVGNUMBER, float) \
438 V(SVGPOINT, FloatPoint) \
439 V(SVGRECT, FloatRect)
440
441 // Shouldn't generate code for these two types.
442 #define SVG_NO_WRAPPER_TYPES(V) \
443 V(SVGURIREFERENCE, SVGURIReference) \
444 V(SVGANIMATEDPOINTS, SVGAnimatedPoints)
445
446 // SVG_NONNODE_TYPES are SVG non-node object types, pod typs and
447 // numerical types.
448 #define SVG_NONNODE_TYPES(V) \
449 SVG_OBJECT_TYPES(V) \
450 SVG_POD_TYPES(V)
451 #endif // SVG
452
453 // EVENTTARGET, EVENTLISTENER, and NPOBJECT do not have V8 wrappers.
454 #define DOM_NO_WRAPPER_TYPES(V) \
455 V(EVENTTARGET, EventTarget) \
456 V(EVENTLISTENER, EventListener) \
457 V(NPOBJECT, NPObject)
458
459 #if ENABLE(SVG)
460 #define WRAPPER_TYPES(V) \
461 DOM_NODE_TYPES(V) \
462 DOM_OBJECT_TYPES(V) \
463 SVG_NODE_TYPES(V) \
464 SVG_NONNODE_TYPES(V)
465 #define NO_WRAPPER_TYPES(V) \
466 DOM_NO_WRAPPER_TYPES(V) \
467 SVG_NO_WRAPPER_TYPES(V)
468 #else // SVG
469 #define WRAPPER_TYPES(V) \
470 DOM_NODE_TYPES(V) \
471 DOM_OBJECT_TYPES(V)
472 #define NO_WRAPPER_TYPES(V) \
473 DOM_NO_WRAPPER_TYPES(V)
474 #endif // SVG
475
476 #define ALL_WRAPPER_TYPES(V) \
477 WRAPPER_TYPES(V) \
478 NO_WRAPPER_TYPES(V)
479
480 class V8ClassIndex {
481 public:
482 // Type must start at non-negative numbers. See ToInt, FromInt.
483 enum V8WrapperType {
484 INVALID_CLASS_INDEX = 0,
485 #define DEFINE_ENUM(name, type) name,
486 ALL_WRAPPER_TYPES(DEFINE_ENUM)
487 #undef DEFINE_ENUM
488 CLASSINDEX_END,
489 WRAPPER_TYPE_COUNT = CLASSINDEX_END
490 };
491
492 static int ToInt(V8WrapperType type) { return static_cast<int>(type); }
493
494 static V8WrapperType FromInt(int v) {
495 ASSERT(INVALID_CLASS_INDEX <= v && v < CLASSINDEX_END);
496 return static_cast<V8WrapperType>(v);
497 }
498
499 static FunctionTemplateFactory GetFactory(V8WrapperType type);
500 // Returns a field to be used as cache for the template for the given type
501 static v8::Persistent<v8::FunctionTemplate>* GetCache(V8WrapperType type);
502 };
503
504 }
505
506 #endif // V8_INDEX_H__
OLDNEW
« no previous file with comments | « webkit/glue/devtools/debugger_agent_impl.cc ('k') | webkit/port/bindings/v8/v8_index.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698