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

Side by Side Diff: third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h

Issue 2382653006: Split CSSPrimitiveValue into CSSPrimitiveValue and CSSIdentifierValue (Closed)
Patch Set: Make check-webkit-style happy Created 4 years, 2 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2007 Alexey Proskuryakov <ap@nypop.com>. 2 * Copyright (C) 2007 Alexey Proskuryakov <ap@nypop.com>.
3 * Copyright (C) 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. 3 * Copyright (C) 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
4 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) 4 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/)
5 * Copyright (C) 2009 Jeff Schiller <codedread@gmail.com> 5 * Copyright (C) 2009 Jeff Schiller <codedread@gmail.com>
6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. 6 * Copyright (C) Research In Motion Limited 2010. All rights reserved.
7 * 7 *
8 * Redistribution and use in source and binary forms, with or without 8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions 9 * modification, are permitted provided that the following conditions
10 * are met: 10 * are met:
(...skipping 14 matching lines...) Expand all
25 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 */ 28 */
29 29
30 #ifndef CSSPrimitiveValueMappings_h 30 #ifndef CSSPrimitiveValueMappings_h
31 #define CSSPrimitiveValueMappings_h 31 #define CSSPrimitiveValueMappings_h
32 32
33 #include "core/CSSValueKeywords.h" 33 #include "core/CSSValueKeywords.h"
34 #include "core/css/CSSCalculationValue.h" 34 #include "core/css/CSSCalculationValue.h"
35 #include "core/css/CSSIdentifierValue.h"
35 #include "core/css/CSSPrimitiveValue.h" 36 #include "core/css/CSSPrimitiveValue.h"
36 #include "core/css/CSSReflectionDirection.h" 37 #include "core/css/CSSReflectionDirection.h"
37 #include "core/css/CSSToLengthConversionData.h" 38 #include "core/css/CSSToLengthConversionData.h"
38 #include "core/style/ComputedStyleConstants.h" 39 #include "core/style/ComputedStyleConstants.h"
40 #include "core/style/LineClampValue.h"
39 #include "core/style/SVGComputedStyleDefs.h" 41 #include "core/style/SVGComputedStyleDefs.h"
40 #include "core/style/LineClampValue.h"
41 #include "platform/Length.h" 42 #include "platform/Length.h"
42 #include "platform/ThemeTypes.h" 43 #include "platform/ThemeTypes.h"
43 #include "platform/fonts/FontDescription.h" 44 #include "platform/fonts/FontDescription.h"
44 #include "platform/fonts/FontSmoothingMode.h" 45 #include "platform/fonts/FontSmoothingMode.h"
45 #include "platform/fonts/TextRenderingMode.h" 46 #include "platform/fonts/TextRenderingMode.h"
46 #include "platform/graphics/GraphicsTypes.h" 47 #include "platform/graphics/GraphicsTypes.h"
47 #include "platform/scroll/ScrollableArea.h" 48 #include "platform/scroll/ScrollableArea.h"
48 #include "platform/text/TextDirection.h" 49 #include "platform/text/TextDirection.h"
49 #include "platform/text/TextRun.h" 50 #include "platform/text/TextRun.h"
50 #include "platform/text/UnicodeBidi.h" 51 #include "platform/text/UnicodeBidi.h"
51 #include "platform/text/WritingMode.h" 52 #include "platform/text/WritingMode.h"
52 #include "public/platform/WebBlendMode.h" 53 #include "public/platform/WebBlendMode.h"
53 #include "wtf/MathExtras.h" 54 #include "wtf/MathExtras.h"
54 55
55 namespace blink { 56 namespace blink {
56 57
58 // TODO(sashab): Move these to CSSPrimitiveValue.h.
57 template <> 59 template <>
58 inline short CSSPrimitiveValue::convertTo() const { 60 inline short CSSPrimitiveValue::convertTo() const {
59 ASSERT(isNumber()); 61 ASSERT(isNumber());
60 return clampTo<short>(getDoubleValue()); 62 return clampTo<short>(getDoubleValue());
61 } 63 }
62 64
63 template <> 65 template <>
64 inline unsigned short CSSPrimitiveValue::convertTo() const { 66 inline unsigned short CSSPrimitiveValue::convertTo() const {
65 ASSERT(isNumber()); 67 ASSERT(isNumber());
66 return clampTo<unsigned short>(getDoubleValue()); 68 return clampTo<unsigned short>(getDoubleValue());
(...skipping 29 matching lines...) Expand all
96 if (type() == UnitType::Integer) 98 if (type() == UnitType::Integer)
97 return LineClampValue(clampTo<int>(m_value.num), LineClampLineCount); 99 return LineClampValue(clampTo<int>(m_value.num), LineClampLineCount);
98 100
99 if (type() == UnitType::Percentage) 101 if (type() == UnitType::Percentage)
100 return LineClampValue(clampTo<int>(m_value.num), LineClampPercentage); 102 return LineClampValue(clampTo<int>(m_value.num), LineClampPercentage);
101 103
102 ASSERT_NOT_REACHED(); 104 ASSERT_NOT_REACHED();
103 return LineClampValue(); 105 return LineClampValue();
104 } 106 }
105 107
108 // TODO(sashab): Move these to CSSIdentifierValueMappings.h, and update to use
109 // the CSSValuePool.
106 template <> 110 template <>
107 inline CSSPrimitiveValue::CSSPrimitiveValue(CSSReflectionDirection e) 111 inline CSSIdentifierValue::CSSIdentifierValue(CSSReflectionDirection e)
108 : CSSValue(PrimitiveClass) { 112 : CSSValue(IdentifierClass) {
109 init(UnitType::ValueID);
110 switch (e) { 113 switch (e) {
111 case ReflectionAbove: 114 case ReflectionAbove:
112 m_value.valueID = CSSValueAbove; 115 m_valueID = CSSValueAbove;
113 break; 116 break;
114 case ReflectionBelow: 117 case ReflectionBelow:
115 m_value.valueID = CSSValueBelow; 118 m_valueID = CSSValueBelow;
116 break; 119 break;
117 case ReflectionLeft: 120 case ReflectionLeft:
118 m_value.valueID = CSSValueLeft; 121 m_valueID = CSSValueLeft;
119 break; 122 break;
120 case ReflectionRight: 123 case ReflectionRight:
121 m_value.valueID = CSSValueRight; 124 m_valueID = CSSValueRight;
122 } 125 }
123 } 126 }
124 127
125 template <> 128 template <>
126 inline CSSReflectionDirection CSSPrimitiveValue::convertTo() const { 129 inline CSSReflectionDirection CSSIdentifierValue::convertTo() const {
127 ASSERT(isValueID()); 130 switch (m_valueID) {
128 switch (m_value.valueID) {
129 case CSSValueAbove: 131 case CSSValueAbove:
130 return ReflectionAbove; 132 return ReflectionAbove;
131 case CSSValueBelow: 133 case CSSValueBelow:
132 return ReflectionBelow; 134 return ReflectionBelow;
133 case CSSValueLeft: 135 case CSSValueLeft:
134 return ReflectionLeft; 136 return ReflectionLeft;
135 case CSSValueRight: 137 case CSSValueRight:
136 return ReflectionRight; 138 return ReflectionRight;
137 default: 139 default:
138 break; 140 break;
139 } 141 }
140 142
141 ASSERT_NOT_REACHED(); 143 ASSERT_NOT_REACHED();
142 return ReflectionBelow; 144 return ReflectionBelow;
143 } 145 }
144 146
145 template <> 147 template <>
146 inline CSSPrimitiveValue::CSSPrimitiveValue(ColumnFill columnFill) 148 inline CSSIdentifierValue::CSSIdentifierValue(ColumnFill columnFill)
147 : CSSValue(PrimitiveClass) { 149 : CSSValue(IdentifierClass) {
148 init(UnitType::ValueID);
149 switch (columnFill) { 150 switch (columnFill) {
150 case ColumnFillAuto: 151 case ColumnFillAuto:
151 m_value.valueID = CSSValueAuto; 152 m_valueID = CSSValueAuto;
152 break; 153 break;
153 case ColumnFillBalance: 154 case ColumnFillBalance:
154 m_value.valueID = CSSValueBalance; 155 m_valueID = CSSValueBalance;
155 break; 156 break;
156 } 157 }
157 } 158 }
158 159
159 template <> 160 template <>
160 inline ColumnFill CSSPrimitiveValue::convertTo() const { 161 inline ColumnFill CSSIdentifierValue::convertTo() const {
161 if (type() == UnitType::ValueID) { 162 if (m_valueID == CSSValueBalance)
162 if (m_value.valueID == CSSValueBalance) 163 return ColumnFillBalance;
163 return ColumnFillBalance; 164 if (m_valueID == CSSValueAuto)
164 if (m_value.valueID == CSSValueAuto) 165 return ColumnFillAuto;
165 return ColumnFillAuto;
166 }
167 ASSERT_NOT_REACHED(); 166 ASSERT_NOT_REACHED();
168 return ColumnFillBalance; 167 return ColumnFillBalance;
169 } 168 }
170 169
171 template <> 170 template <>
172 inline CSSPrimitiveValue::CSSPrimitiveValue(ColumnSpan columnSpan) 171 inline CSSIdentifierValue::CSSIdentifierValue(ColumnSpan columnSpan)
173 : CSSValue(PrimitiveClass) { 172 : CSSValue(IdentifierClass) {
174 init(UnitType::ValueID);
175 switch (columnSpan) { 173 switch (columnSpan) {
176 case ColumnSpanAll: 174 case ColumnSpanAll:
177 m_value.valueID = CSSValueAll; 175 m_valueID = CSSValueAll;
178 break; 176 break;
179 case ColumnSpanNone: 177 case ColumnSpanNone:
180 m_value.valueID = CSSValueNone; 178 m_valueID = CSSValueNone;
181 break; 179 break;
182 } 180 }
183 } 181 }
184 182
185 template <> 183 template <>
186 inline ColumnSpan CSSPrimitiveValue::convertTo() const { 184 inline ColumnSpan CSSIdentifierValue::convertTo() const {
187 ASSERT(isValueID()); 185 switch (m_valueID) {
188 switch (m_value.valueID) {
189 case CSSValueAll: 186 case CSSValueAll:
190 return ColumnSpanAll; 187 return ColumnSpanAll;
191 default: 188 default:
192 ASSERT_NOT_REACHED(); 189 ASSERT_NOT_REACHED();
193 // fall-through 190 // fall-through
194 case CSSValueNone: 191 case CSSValueNone:
195 return ColumnSpanNone; 192 return ColumnSpanNone;
196 } 193 }
197 } 194 }
198 195
199 template <> 196 template <>
200 inline CSSPrimitiveValue::CSSPrimitiveValue(PrintColorAdjust value) 197 inline CSSIdentifierValue::CSSIdentifierValue(PrintColorAdjust value)
201 : CSSValue(PrimitiveClass) { 198 : CSSValue(IdentifierClass) {
202 init(UnitType::ValueID);
203 switch (value) { 199 switch (value) {
204 case PrintColorAdjustExact: 200 case PrintColorAdjustExact:
205 m_value.valueID = CSSValueExact; 201 m_valueID = CSSValueExact;
206 break; 202 break;
207 case PrintColorAdjustEconomy: 203 case PrintColorAdjustEconomy:
208 m_value.valueID = CSSValueEconomy; 204 m_valueID = CSSValueEconomy;
209 break; 205 break;
210 } 206 }
211 } 207 }
212 208
213 template <> 209 template <>
214 inline PrintColorAdjust CSSPrimitiveValue::convertTo() const { 210 inline PrintColorAdjust CSSIdentifierValue::convertTo() const {
215 ASSERT(isValueID()); 211 switch (m_valueID) {
216 switch (m_value.valueID) {
217 case CSSValueEconomy: 212 case CSSValueEconomy:
218 return PrintColorAdjustEconomy; 213 return PrintColorAdjustEconomy;
219 case CSSValueExact: 214 case CSSValueExact:
220 return PrintColorAdjustExact; 215 return PrintColorAdjustExact;
221 default: 216 default:
222 break; 217 break;
223 } 218 }
224 219
225 ASSERT_NOT_REACHED(); 220 ASSERT_NOT_REACHED();
226 return PrintColorAdjustEconomy; 221 return PrintColorAdjustEconomy;
227 } 222 }
228 223
229 template <> 224 template <>
230 inline CSSPrimitiveValue::CSSPrimitiveValue(EBorderStyle e) 225 inline CSSIdentifierValue::CSSIdentifierValue(EBorderStyle e)
231 : CSSValue(PrimitiveClass) { 226 : CSSValue(IdentifierClass) {
232 init(UnitType::ValueID);
233 switch (e) { 227 switch (e) {
234 case BorderStyleNone: 228 case BorderStyleNone:
235 m_value.valueID = CSSValueNone; 229 m_valueID = CSSValueNone;
236 break; 230 break;
237 case BorderStyleHidden: 231 case BorderStyleHidden:
238 m_value.valueID = CSSValueHidden; 232 m_valueID = CSSValueHidden;
239 break; 233 break;
240 case BorderStyleInset: 234 case BorderStyleInset:
241 m_value.valueID = CSSValueInset; 235 m_valueID = CSSValueInset;
242 break; 236 break;
243 case BorderStyleGroove: 237 case BorderStyleGroove:
244 m_value.valueID = CSSValueGroove; 238 m_valueID = CSSValueGroove;
245 break; 239 break;
246 case BorderStyleRidge: 240 case BorderStyleRidge:
247 m_value.valueID = CSSValueRidge; 241 m_valueID = CSSValueRidge;
248 break; 242 break;
249 case BorderStyleOutset: 243 case BorderStyleOutset:
250 m_value.valueID = CSSValueOutset; 244 m_valueID = CSSValueOutset;
251 break; 245 break;
252 case BorderStyleDotted: 246 case BorderStyleDotted:
253 m_value.valueID = CSSValueDotted; 247 m_valueID = CSSValueDotted;
254 break; 248 break;
255 case BorderStyleDashed: 249 case BorderStyleDashed:
256 m_value.valueID = CSSValueDashed; 250 m_valueID = CSSValueDashed;
257 break; 251 break;
258 case BorderStyleSolid: 252 case BorderStyleSolid:
259 m_value.valueID = CSSValueSolid; 253 m_valueID = CSSValueSolid;
260 break; 254 break;
261 case BorderStyleDouble: 255 case BorderStyleDouble:
262 m_value.valueID = CSSValueDouble; 256 m_valueID = CSSValueDouble;
263 break; 257 break;
264 } 258 }
265 } 259 }
266 260
267 template <> 261 template <>
268 inline EBorderStyle CSSPrimitiveValue::convertTo() const { 262 inline EBorderStyle CSSIdentifierValue::convertTo() const {
269 ASSERT(isValueID()); 263 if (m_valueID == CSSValueAuto) // Valid for CSS outline-style
270 if (m_value.valueID == CSSValueAuto) // Valid for CSS outline-style
271 return BorderStyleDotted; 264 return BorderStyleDotted;
272 return (EBorderStyle)(m_value.valueID - CSSValueNone); 265 return (EBorderStyle)(m_valueID - CSSValueNone);
273 } 266 }
274 267
275 template <> 268 template <>
276 inline OutlineIsAuto CSSPrimitiveValue::convertTo() const { 269 inline OutlineIsAuto CSSIdentifierValue::convertTo() const {
277 if (m_value.valueID == CSSValueAuto) 270 if (m_valueID == CSSValueAuto)
278 return OutlineIsAutoOn; 271 return OutlineIsAutoOn;
279 return OutlineIsAutoOff; 272 return OutlineIsAutoOff;
280 } 273 }
281 274
282 template <> 275 template <>
283 inline CSSPrimitiveValue::CSSPrimitiveValue(CompositeOperator e) 276 inline CSSIdentifierValue::CSSIdentifierValue(CompositeOperator e)
284 : CSSValue(PrimitiveClass) { 277 : CSSValue(IdentifierClass) {
285 init(UnitType::ValueID);
286 switch (e) { 278 switch (e) {
287 case CompositeClear: 279 case CompositeClear:
288 m_value.valueID = CSSValueClear; 280 m_valueID = CSSValueClear;
289 break; 281 break;
290 case CompositeCopy: 282 case CompositeCopy:
291 m_value.valueID = CSSValueCopy; 283 m_valueID = CSSValueCopy;
292 break; 284 break;
293 case CompositeSourceOver: 285 case CompositeSourceOver:
294 m_value.valueID = CSSValueSourceOver; 286 m_valueID = CSSValueSourceOver;
295 break; 287 break;
296 case CompositeSourceIn: 288 case CompositeSourceIn:
297 m_value.valueID = CSSValueSourceIn; 289 m_valueID = CSSValueSourceIn;
298 break; 290 break;
299 case CompositeSourceOut: 291 case CompositeSourceOut:
300 m_value.valueID = CSSValueSourceOut; 292 m_valueID = CSSValueSourceOut;
301 break; 293 break;
302 case CompositeSourceAtop: 294 case CompositeSourceAtop:
303 m_value.valueID = CSSValueSourceAtop; 295 m_valueID = CSSValueSourceAtop;
304 break; 296 break;
305 case CompositeDestinationOver: 297 case CompositeDestinationOver:
306 m_value.valueID = CSSValueDestinationOver; 298 m_valueID = CSSValueDestinationOver;
307 break; 299 break;
308 case CompositeDestinationIn: 300 case CompositeDestinationIn:
309 m_value.valueID = CSSValueDestinationIn; 301 m_valueID = CSSValueDestinationIn;
310 break; 302 break;
311 case CompositeDestinationOut: 303 case CompositeDestinationOut:
312 m_value.valueID = CSSValueDestinationOut; 304 m_valueID = CSSValueDestinationOut;
313 break; 305 break;
314 case CompositeDestinationAtop: 306 case CompositeDestinationAtop:
315 m_value.valueID = CSSValueDestinationAtop; 307 m_valueID = CSSValueDestinationAtop;
316 break; 308 break;
317 case CompositeXOR: 309 case CompositeXOR:
318 m_value.valueID = CSSValueXor; 310 m_valueID = CSSValueXor;
319 break; 311 break;
320 case CompositePlusLighter: 312 case CompositePlusLighter:
321 m_value.valueID = CSSValuePlusLighter; 313 m_valueID = CSSValuePlusLighter;
322 break; 314 break;
323 default: 315 default:
324 ASSERT_NOT_REACHED(); 316 ASSERT_NOT_REACHED();
325 break; 317 break;
326 } 318 }
327 } 319 }
328 320
329 template <> 321 template <>
330 inline CompositeOperator CSSPrimitiveValue::convertTo() const { 322 inline CompositeOperator CSSIdentifierValue::convertTo() const {
331 ASSERT(isValueID()); 323 switch (m_valueID) {
332 switch (m_value.valueID) {
333 case CSSValueClear: 324 case CSSValueClear:
334 return CompositeClear; 325 return CompositeClear;
335 case CSSValueCopy: 326 case CSSValueCopy:
336 return CompositeCopy; 327 return CompositeCopy;
337 case CSSValueSourceOver: 328 case CSSValueSourceOver:
338 return CompositeSourceOver; 329 return CompositeSourceOver;
339 case CSSValueSourceIn: 330 case CSSValueSourceIn:
340 return CompositeSourceIn; 331 return CompositeSourceIn;
341 case CSSValueSourceOut: 332 case CSSValueSourceOut:
342 return CompositeSourceOut; 333 return CompositeSourceOut;
(...skipping 13 matching lines...) Expand all
356 return CompositePlusLighter; 347 return CompositePlusLighter;
357 default: 348 default:
358 break; 349 break;
359 } 350 }
360 351
361 ASSERT_NOT_REACHED(); 352 ASSERT_NOT_REACHED();
362 return CompositeClear; 353 return CompositeClear;
363 } 354 }
364 355
365 template <> 356 template <>
366 inline CSSPrimitiveValue::CSSPrimitiveValue(ControlPart e) 357 inline CSSIdentifierValue::CSSIdentifierValue(ControlPart e)
367 : CSSValue(PrimitiveClass) { 358 : CSSValue(IdentifierClass) {
368 init(UnitType::ValueID);
369 switch (e) { 359 switch (e) {
370 case NoControlPart: 360 case NoControlPart:
371 m_value.valueID = CSSValueNone; 361 m_valueID = CSSValueNone;
372 break; 362 break;
373 case CheckboxPart: 363 case CheckboxPart:
374 m_value.valueID = CSSValueCheckbox; 364 m_valueID = CSSValueCheckbox;
375 break; 365 break;
376 case RadioPart: 366 case RadioPart:
377 m_value.valueID = CSSValueRadio; 367 m_valueID = CSSValueRadio;
378 break; 368 break;
379 case PushButtonPart: 369 case PushButtonPart:
380 m_value.valueID = CSSValuePushButton; 370 m_valueID = CSSValuePushButton;
381 break; 371 break;
382 case SquareButtonPart: 372 case SquareButtonPart:
383 m_value.valueID = CSSValueSquareButton; 373 m_valueID = CSSValueSquareButton;
384 break; 374 break;
385 case ButtonPart: 375 case ButtonPart:
386 m_value.valueID = CSSValueButton; 376 m_valueID = CSSValueButton;
387 break; 377 break;
388 case ButtonBevelPart: 378 case ButtonBevelPart:
389 m_value.valueID = CSSValueButtonBevel; 379 m_valueID = CSSValueButtonBevel;
390 break; 380 break;
391 case InnerSpinButtonPart: 381 case InnerSpinButtonPart:
392 m_value.valueID = CSSValueInnerSpinButton; 382 m_valueID = CSSValueInnerSpinButton;
393 break; 383 break;
394 case ListboxPart: 384 case ListboxPart:
395 m_value.valueID = CSSValueListbox; 385 m_valueID = CSSValueListbox;
396 break; 386 break;
397 case ListItemPart: 387 case ListItemPart:
398 m_value.valueID = CSSValueListitem; 388 m_valueID = CSSValueListitem;
399 break; 389 break;
400 case MediaEnterFullscreenButtonPart: 390 case MediaEnterFullscreenButtonPart:
401 m_value.valueID = CSSValueMediaEnterFullscreenButton; 391 m_valueID = CSSValueMediaEnterFullscreenButton;
402 break; 392 break;
403 case MediaExitFullscreenButtonPart: 393 case MediaExitFullscreenButtonPart:
404 m_value.valueID = CSSValueMediaExitFullscreenButton; 394 m_valueID = CSSValueMediaExitFullscreenButton;
405 break; 395 break;
406 case MediaPlayButtonPart: 396 case MediaPlayButtonPart:
407 m_value.valueID = CSSValueMediaPlayButton; 397 m_valueID = CSSValueMediaPlayButton;
408 break; 398 break;
409 case MediaOverlayPlayButtonPart: 399 case MediaOverlayPlayButtonPart:
410 m_value.valueID = CSSValueMediaOverlayPlayButton; 400 m_valueID = CSSValueMediaOverlayPlayButton;
411 break; 401 break;
412 case MediaMuteButtonPart: 402 case MediaMuteButtonPart:
413 m_value.valueID = CSSValueMediaMuteButton; 403 m_valueID = CSSValueMediaMuteButton;
414 break; 404 break;
415 case MediaToggleClosedCaptionsButtonPart: 405 case MediaToggleClosedCaptionsButtonPart:
416 m_value.valueID = CSSValueMediaToggleClosedCaptionsButton; 406 m_valueID = CSSValueMediaToggleClosedCaptionsButton;
417 break; 407 break;
418 case MediaCastOffButtonPart: 408 case MediaCastOffButtonPart:
419 m_value.valueID = CSSValueInternalMediaCastOffButton; 409 m_valueID = CSSValueInternalMediaCastOffButton;
420 break; 410 break;
421 case MediaOverlayCastOffButtonPart: 411 case MediaOverlayCastOffButtonPart:
422 m_value.valueID = CSSValueInternalMediaOverlayCastOffButton; 412 m_valueID = CSSValueInternalMediaOverlayCastOffButton;
423 break; 413 break;
424 case MediaSliderPart: 414 case MediaSliderPart:
425 m_value.valueID = CSSValueMediaSlider; 415 m_valueID = CSSValueMediaSlider;
426 break; 416 break;
427 case MediaSliderThumbPart: 417 case MediaSliderThumbPart:
428 m_value.valueID = CSSValueMediaSliderthumb; 418 m_valueID = CSSValueMediaSliderthumb;
429 break; 419 break;
430 case MediaVolumeSliderContainerPart: 420 case MediaVolumeSliderContainerPart:
431 m_value.valueID = CSSValueMediaVolumeSliderContainer; 421 m_valueID = CSSValueMediaVolumeSliderContainer;
432 break; 422 break;
433 case MediaVolumeSliderPart: 423 case MediaVolumeSliderPart:
434 m_value.valueID = CSSValueMediaVolumeSlider; 424 m_valueID = CSSValueMediaVolumeSlider;
435 break; 425 break;
436 case MediaVolumeSliderThumbPart: 426 case MediaVolumeSliderThumbPart:
437 m_value.valueID = CSSValueMediaVolumeSliderthumb; 427 m_valueID = CSSValueMediaVolumeSliderthumb;
438 break; 428 break;
439 case MediaControlsBackgroundPart: 429 case MediaControlsBackgroundPart:
440 m_value.valueID = CSSValueMediaControlsBackground; 430 m_valueID = CSSValueMediaControlsBackground;
441 break; 431 break;
442 case MediaControlsFullscreenBackgroundPart: 432 case MediaControlsFullscreenBackgroundPart:
443 m_value.valueID = CSSValueMediaControlsFullscreenBackground; 433 m_valueID = CSSValueMediaControlsFullscreenBackground;
444 break; 434 break;
445 case MediaFullscreenVolumeSliderPart: 435 case MediaFullscreenVolumeSliderPart:
446 m_value.valueID = CSSValueMediaFullscreenVolumeSlider; 436 m_valueID = CSSValueMediaFullscreenVolumeSlider;
447 break; 437 break;
448 case MediaFullscreenVolumeSliderThumbPart: 438 case MediaFullscreenVolumeSliderThumbPart:
449 m_value.valueID = CSSValueMediaFullscreenVolumeSliderThumb; 439 m_valueID = CSSValueMediaFullscreenVolumeSliderThumb;
450 break; 440 break;
451 case MediaCurrentTimePart: 441 case MediaCurrentTimePart:
452 m_value.valueID = CSSValueMediaCurrentTimeDisplay; 442 m_valueID = CSSValueMediaCurrentTimeDisplay;
453 break; 443 break;
454 case MediaTimeRemainingPart: 444 case MediaTimeRemainingPart:
455 m_value.valueID = CSSValueMediaTimeRemainingDisplay; 445 m_valueID = CSSValueMediaTimeRemainingDisplay;
456 break; 446 break;
457 case MediaTrackSelectionCheckmarkPart: 447 case MediaTrackSelectionCheckmarkPart:
458 m_value.valueID = CSSValueInternalMediaTrackSelectionCheckmark; 448 m_valueID = CSSValueInternalMediaTrackSelectionCheckmark;
459 break; 449 break;
460 case MediaClosedCaptionsIconPart: 450 case MediaClosedCaptionsIconPart:
461 m_value.valueID = CSSValueInternalMediaClosedCaptionsIcon; 451 m_valueID = CSSValueInternalMediaClosedCaptionsIcon;
462 break; 452 break;
463 case MediaSubtitlesIconPart: 453 case MediaSubtitlesIconPart:
464 m_value.valueID = CSSValueInternalMediaSubtitlesIcon; 454 m_valueID = CSSValueInternalMediaSubtitlesIcon;
465 break; 455 break;
466 case MediaOverflowMenuButtonPart: 456 case MediaOverflowMenuButtonPart:
467 m_value.valueID = CSSValueInternalMediaOverflowButton; 457 m_valueID = CSSValueInternalMediaOverflowButton;
468 break; 458 break;
469 case MediaDownloadIconPart: 459 case MediaDownloadIconPart:
470 m_value.valueID = CSSValueInternalMediaDownloadButton; 460 m_valueID = CSSValueInternalMediaDownloadButton;
471 break; 461 break;
472 case MenulistPart: 462 case MenulistPart:
473 m_value.valueID = CSSValueMenulist; 463 m_valueID = CSSValueMenulist;
474 break; 464 break;
475 case MenulistButtonPart: 465 case MenulistButtonPart:
476 m_value.valueID = CSSValueMenulistButton; 466 m_valueID = CSSValueMenulistButton;
477 break; 467 break;
478 case MenulistTextPart: 468 case MenulistTextPart:
479 m_value.valueID = CSSValueMenulistText; 469 m_valueID = CSSValueMenulistText;
480 break; 470 break;
481 case MenulistTextFieldPart: 471 case MenulistTextFieldPart:
482 m_value.valueID = CSSValueMenulistTextfield; 472 m_valueID = CSSValueMenulistTextfield;
483 break; 473 break;
484 case MeterPart: 474 case MeterPart:
485 m_value.valueID = CSSValueMeter; 475 m_valueID = CSSValueMeter;
486 break; 476 break;
487 case ProgressBarPart: 477 case ProgressBarPart:
488 m_value.valueID = CSSValueProgressBar; 478 m_valueID = CSSValueProgressBar;
489 break; 479 break;
490 case ProgressBarValuePart: 480 case ProgressBarValuePart:
491 m_value.valueID = CSSValueProgressBarValue; 481 m_valueID = CSSValueProgressBarValue;
492 break; 482 break;
493 case SliderHorizontalPart: 483 case SliderHorizontalPart:
494 m_value.valueID = CSSValueSliderHorizontal; 484 m_valueID = CSSValueSliderHorizontal;
495 break; 485 break;
496 case SliderVerticalPart: 486 case SliderVerticalPart:
497 m_value.valueID = CSSValueSliderVertical; 487 m_valueID = CSSValueSliderVertical;
498 break; 488 break;
499 case SliderThumbHorizontalPart: 489 case SliderThumbHorizontalPart:
500 m_value.valueID = CSSValueSliderthumbHorizontal; 490 m_valueID = CSSValueSliderthumbHorizontal;
501 break; 491 break;
502 case SliderThumbVerticalPart: 492 case SliderThumbVerticalPart:
503 m_value.valueID = CSSValueSliderthumbVertical; 493 m_valueID = CSSValueSliderthumbVertical;
504 break; 494 break;
505 case CaretPart: 495 case CaretPart:
506 m_value.valueID = CSSValueCaret; 496 m_valueID = CSSValueCaret;
507 break; 497 break;
508 case SearchFieldPart: 498 case SearchFieldPart:
509 m_value.valueID = CSSValueSearchfield; 499 m_valueID = CSSValueSearchfield;
510 break; 500 break;
511 case SearchFieldCancelButtonPart: 501 case SearchFieldCancelButtonPart:
512 m_value.valueID = CSSValueSearchfieldCancelButton; 502 m_valueID = CSSValueSearchfieldCancelButton;
513 break; 503 break;
514 case TextFieldPart: 504 case TextFieldPart:
515 m_value.valueID = CSSValueTextfield; 505 m_valueID = CSSValueTextfield;
516 break; 506 break;
517 case TextAreaPart: 507 case TextAreaPart:
518 m_value.valueID = CSSValueTextarea; 508 m_valueID = CSSValueTextarea;
519 break; 509 break;
520 case CapsLockIndicatorPart: 510 case CapsLockIndicatorPart:
521 m_value.valueID = CSSValueCapsLockIndicator; 511 m_valueID = CSSValueCapsLockIndicator;
522 break; 512 break;
523 } 513 }
524 } 514 }
525 515
526 template <> 516 template <>
527 inline ControlPart CSSPrimitiveValue::convertTo() const { 517 inline ControlPart CSSIdentifierValue::convertTo() const {
528 ASSERT(isValueID()); 518 if (m_valueID == CSSValueNone)
529 if (m_value.valueID == CSSValueNone)
530 return NoControlPart; 519 return NoControlPart;
531 return ControlPart(m_value.valueID - CSSValueCheckbox + 1); 520 return ControlPart(m_valueID - CSSValueCheckbox + 1);
532 } 521 }
533 522
534 template <> 523 template <>
535 inline CSSPrimitiveValue::CSSPrimitiveValue(EBackfaceVisibility e) 524 inline CSSIdentifierValue::CSSIdentifierValue(EBackfaceVisibility e)
536 : CSSValue(PrimitiveClass) { 525 : CSSValue(IdentifierClass) {
537 init(UnitType::ValueID);
538 switch (e) { 526 switch (e) {
539 case BackfaceVisibilityVisible: 527 case BackfaceVisibilityVisible:
540 m_value.valueID = CSSValueVisible; 528 m_valueID = CSSValueVisible;
541 break; 529 break;
542 case BackfaceVisibilityHidden: 530 case BackfaceVisibilityHidden:
543 m_value.valueID = CSSValueHidden; 531 m_valueID = CSSValueHidden;
544 break; 532 break;
545 } 533 }
546 } 534 }
547 535
548 template <> 536 template <>
549 inline EBackfaceVisibility CSSPrimitiveValue::convertTo() const { 537 inline EBackfaceVisibility CSSIdentifierValue::convertTo() const {
550 ASSERT(isValueID()); 538 switch (m_valueID) {
551 switch (m_value.valueID) {
552 case CSSValueVisible: 539 case CSSValueVisible:
553 return BackfaceVisibilityVisible; 540 return BackfaceVisibilityVisible;
554 case CSSValueHidden: 541 case CSSValueHidden:
555 return BackfaceVisibilityHidden; 542 return BackfaceVisibilityHidden;
556 default: 543 default:
557 break; 544 break;
558 } 545 }
559 546
560 ASSERT_NOT_REACHED(); 547 ASSERT_NOT_REACHED();
561 return BackfaceVisibilityHidden; 548 return BackfaceVisibilityHidden;
562 } 549 }
563 550
564 template <> 551 template <>
565 inline CSSPrimitiveValue::CSSPrimitiveValue(EFillAttachment e) 552 inline CSSIdentifierValue::CSSIdentifierValue(EFillAttachment e)
566 : CSSValue(PrimitiveClass) { 553 : CSSValue(IdentifierClass) {
567 init(UnitType::ValueID);
568 switch (e) { 554 switch (e) {
569 case ScrollBackgroundAttachment: 555 case ScrollBackgroundAttachment:
570 m_value.valueID = CSSValueScroll; 556 m_valueID = CSSValueScroll;
571 break; 557 break;
572 case LocalBackgroundAttachment: 558 case LocalBackgroundAttachment:
573 m_value.valueID = CSSValueLocal; 559 m_valueID = CSSValueLocal;
574 break; 560 break;
575 case FixedBackgroundAttachment: 561 case FixedBackgroundAttachment:
576 m_value.valueID = CSSValueFixed; 562 m_valueID = CSSValueFixed;
577 break; 563 break;
578 } 564 }
579 } 565 }
580 566
581 template <> 567 template <>
582 inline EFillAttachment CSSPrimitiveValue::convertTo() const { 568 inline EFillAttachment CSSIdentifierValue::convertTo() const {
583 ASSERT(isValueID()); 569 switch (m_valueID) {
584 switch (m_value.valueID) {
585 case CSSValueScroll: 570 case CSSValueScroll:
586 return ScrollBackgroundAttachment; 571 return ScrollBackgroundAttachment;
587 case CSSValueLocal: 572 case CSSValueLocal:
588 return LocalBackgroundAttachment; 573 return LocalBackgroundAttachment;
589 case CSSValueFixed: 574 case CSSValueFixed:
590 return FixedBackgroundAttachment; 575 return FixedBackgroundAttachment;
591 default: 576 default:
592 break; 577 break;
593 } 578 }
594 579
595 ASSERT_NOT_REACHED(); 580 ASSERT_NOT_REACHED();
596 return ScrollBackgroundAttachment; 581 return ScrollBackgroundAttachment;
597 } 582 }
598 583
599 template <> 584 template <>
600 inline CSSPrimitiveValue::CSSPrimitiveValue(EFillBox e) 585 inline CSSIdentifierValue::CSSIdentifierValue(EFillBox e)
601 : CSSValue(PrimitiveClass) { 586 : CSSValue(IdentifierClass) {
602 init(UnitType::ValueID);
603 switch (e) { 587 switch (e) {
604 case BorderFillBox: 588 case BorderFillBox:
605 m_value.valueID = CSSValueBorderBox; 589 m_valueID = CSSValueBorderBox;
606 break; 590 break;
607 case PaddingFillBox: 591 case PaddingFillBox:
608 m_value.valueID = CSSValuePaddingBox; 592 m_valueID = CSSValuePaddingBox;
609 break; 593 break;
610 case ContentFillBox: 594 case ContentFillBox:
611 m_value.valueID = CSSValueContentBox; 595 m_valueID = CSSValueContentBox;
612 break; 596 break;
613 case TextFillBox: 597 case TextFillBox:
614 m_value.valueID = CSSValueText; 598 m_valueID = CSSValueText;
615 break; 599 break;
616 } 600 }
617 } 601 }
618 602
619 template <> 603 template <>
620 inline EFillBox CSSPrimitiveValue::convertTo() const { 604 inline EFillBox CSSIdentifierValue::convertTo() const {
621 ASSERT(isValueID()); 605 switch (m_valueID) {
622 switch (m_value.valueID) {
623 case CSSValueBorder: 606 case CSSValueBorder:
624 case CSSValueBorderBox: 607 case CSSValueBorderBox:
625 return BorderFillBox; 608 return BorderFillBox;
626 case CSSValuePadding: 609 case CSSValuePadding:
627 case CSSValuePaddingBox: 610 case CSSValuePaddingBox:
628 return PaddingFillBox; 611 return PaddingFillBox;
629 case CSSValueContent: 612 case CSSValueContent:
630 case CSSValueContentBox: 613 case CSSValueContentBox:
631 return ContentFillBox; 614 return ContentFillBox;
632 case CSSValueText: 615 case CSSValueText:
633 return TextFillBox; 616 return TextFillBox;
634 default: 617 default:
635 break; 618 break;
636 } 619 }
637 620
638 ASSERT_NOT_REACHED(); 621 ASSERT_NOT_REACHED();
639 return BorderFillBox; 622 return BorderFillBox;
640 } 623 }
641 624
642 template <> 625 template <>
643 inline CSSPrimitiveValue::CSSPrimitiveValue(EFillRepeat e) 626 inline CSSIdentifierValue::CSSIdentifierValue(EFillRepeat e)
644 : CSSValue(PrimitiveClass) { 627 : CSSValue(IdentifierClass) {
645 init(UnitType::ValueID);
646 switch (e) { 628 switch (e) {
647 case RepeatFill: 629 case RepeatFill:
648 m_value.valueID = CSSValueRepeat; 630 m_valueID = CSSValueRepeat;
649 break; 631 break;
650 case NoRepeatFill: 632 case NoRepeatFill:
651 m_value.valueID = CSSValueNoRepeat; 633 m_valueID = CSSValueNoRepeat;
652 break; 634 break;
653 case RoundFill: 635 case RoundFill:
654 m_value.valueID = CSSValueRound; 636 m_valueID = CSSValueRound;
655 break; 637 break;
656 case SpaceFill: 638 case SpaceFill:
657 m_value.valueID = CSSValueSpace; 639 m_valueID = CSSValueSpace;
658 break; 640 break;
659 } 641 }
660 } 642 }
661 643
662 template <> 644 template <>
663 inline EFillRepeat CSSPrimitiveValue::convertTo() const { 645 inline EFillRepeat CSSIdentifierValue::convertTo() const {
664 ASSERT(isValueID()); 646 switch (m_valueID) {
665 switch (m_value.valueID) {
666 case CSSValueRepeat: 647 case CSSValueRepeat:
667 return RepeatFill; 648 return RepeatFill;
668 case CSSValueNoRepeat: 649 case CSSValueNoRepeat:
669 return NoRepeatFill; 650 return NoRepeatFill;
670 case CSSValueRound: 651 case CSSValueRound:
671 return RoundFill; 652 return RoundFill;
672 case CSSValueSpace: 653 case CSSValueSpace:
673 return SpaceFill; 654 return SpaceFill;
674 default: 655 default:
675 break; 656 break;
676 } 657 }
677 658
678 ASSERT_NOT_REACHED(); 659 ASSERT_NOT_REACHED();
679 return RepeatFill; 660 return RepeatFill;
680 } 661 }
681 662
682 template <> 663 template <>
683 inline CSSPrimitiveValue::CSSPrimitiveValue(EBoxPack e) 664 inline CSSIdentifierValue::CSSIdentifierValue(EBoxPack e)
684 : CSSValue(PrimitiveClass) { 665 : CSSValue(IdentifierClass) {
685 init(UnitType::ValueID);
686 switch (e) { 666 switch (e) {
687 case BoxPackStart: 667 case BoxPackStart:
688 m_value.valueID = CSSValueStart; 668 m_valueID = CSSValueStart;
689 break; 669 break;
690 case BoxPackCenter: 670 case BoxPackCenter:
691 m_value.valueID = CSSValueCenter; 671 m_valueID = CSSValueCenter;
692 break; 672 break;
693 case BoxPackEnd: 673 case BoxPackEnd:
694 m_value.valueID = CSSValueEnd; 674 m_valueID = CSSValueEnd;
695 break; 675 break;
696 case BoxPackJustify: 676 case BoxPackJustify:
697 m_value.valueID = CSSValueJustify; 677 m_valueID = CSSValueJustify;
698 break; 678 break;
699 } 679 }
700 } 680 }
701 681
702 template <> 682 template <>
703 inline EBoxPack CSSPrimitiveValue::convertTo() const { 683 inline EBoxPack CSSIdentifierValue::convertTo() const {
704 ASSERT(isValueID()); 684 switch (m_valueID) {
705 switch (m_value.valueID) {
706 case CSSValueStart: 685 case CSSValueStart:
707 return BoxPackStart; 686 return BoxPackStart;
708 case CSSValueEnd: 687 case CSSValueEnd:
709 return BoxPackEnd; 688 return BoxPackEnd;
710 case CSSValueCenter: 689 case CSSValueCenter:
711 return BoxPackCenter; 690 return BoxPackCenter;
712 case CSSValueJustify: 691 case CSSValueJustify:
713 return BoxPackJustify; 692 return BoxPackJustify;
714 default: 693 default:
715 break; 694 break;
716 } 695 }
717 696
718 ASSERT_NOT_REACHED(); 697 ASSERT_NOT_REACHED();
719 return BoxPackJustify; 698 return BoxPackJustify;
720 } 699 }
721 700
722 template <> 701 template <>
723 inline CSSPrimitiveValue::CSSPrimitiveValue(EBoxAlignment e) 702 inline CSSIdentifierValue::CSSIdentifierValue(EBoxAlignment e)
724 : CSSValue(PrimitiveClass) { 703 : CSSValue(IdentifierClass) {
725 init(UnitType::ValueID);
726 switch (e) { 704 switch (e) {
727 case BSTRETCH: 705 case BSTRETCH:
728 m_value.valueID = CSSValueStretch; 706 m_valueID = CSSValueStretch;
729 break; 707 break;
730 case BSTART: 708 case BSTART:
731 m_value.valueID = CSSValueStart; 709 m_valueID = CSSValueStart;
732 break; 710 break;
733 case BCENTER: 711 case BCENTER:
734 m_value.valueID = CSSValueCenter; 712 m_valueID = CSSValueCenter;
735 break; 713 break;
736 case BEND: 714 case BEND:
737 m_value.valueID = CSSValueEnd; 715 m_valueID = CSSValueEnd;
738 break; 716 break;
739 case BBASELINE: 717 case BBASELINE:
740 m_value.valueID = CSSValueBaseline; 718 m_valueID = CSSValueBaseline;
741 break; 719 break;
742 } 720 }
743 } 721 }
744 722
745 template <> 723 template <>
746 inline EBoxAlignment CSSPrimitiveValue::convertTo() const { 724 inline EBoxAlignment CSSIdentifierValue::convertTo() const {
747 ASSERT(isValueID()); 725 switch (m_valueID) {
748 switch (m_value.valueID) {
749 case CSSValueStretch: 726 case CSSValueStretch:
750 return BSTRETCH; 727 return BSTRETCH;
751 case CSSValueStart: 728 case CSSValueStart:
752 return BSTART; 729 return BSTART;
753 case CSSValueEnd: 730 case CSSValueEnd:
754 return BEND; 731 return BEND;
755 case CSSValueCenter: 732 case CSSValueCenter:
756 return BCENTER; 733 return BCENTER;
757 case CSSValueBaseline: 734 case CSSValueBaseline:
758 return BBASELINE; 735 return BBASELINE;
759 default: 736 default:
760 break; 737 break;
761 } 738 }
762 739
763 ASSERT_NOT_REACHED(); 740 ASSERT_NOT_REACHED();
764 return BSTRETCH; 741 return BSTRETCH;
765 } 742 }
766 743
767 template <> 744 template <>
768 inline CSSPrimitiveValue::CSSPrimitiveValue(EBoxDecorationBreak e) 745 inline CSSIdentifierValue::CSSIdentifierValue(EBoxDecorationBreak e)
769 : CSSValue(PrimitiveClass) { 746 : CSSValue(IdentifierClass) {
770 init(UnitType::ValueID);
771 switch (e) { 747 switch (e) {
772 case BoxDecorationBreakSlice: 748 case BoxDecorationBreakSlice:
773 m_value.valueID = CSSValueSlice; 749 m_valueID = CSSValueSlice;
774 break; 750 break;
775 case BoxDecorationBreakClone: 751 case BoxDecorationBreakClone:
776 m_value.valueID = CSSValueClone; 752 m_valueID = CSSValueClone;
777 break; 753 break;
778 } 754 }
779 } 755 }
780 756
781 template <> 757 template <>
782 inline EBoxDecorationBreak CSSPrimitiveValue::convertTo() const { 758 inline EBoxDecorationBreak CSSIdentifierValue::convertTo() const {
783 ASSERT(isValueID()); 759 switch (m_valueID) {
784 switch (m_value.valueID) {
785 case CSSValueSlice: 760 case CSSValueSlice:
786 return BoxDecorationBreakSlice; 761 return BoxDecorationBreakSlice;
787 case CSSValueClone: 762 case CSSValueClone:
788 return BoxDecorationBreakClone; 763 return BoxDecorationBreakClone;
789 default: 764 default:
790 break; 765 break;
791 } 766 }
792 767
793 ASSERT_NOT_REACHED(); 768 ASSERT_NOT_REACHED();
794 return BoxDecorationBreakSlice; 769 return BoxDecorationBreakSlice;
795 } 770 }
796 771
797 template <> 772 template <>
798 inline CSSPrimitiveValue::CSSPrimitiveValue(BackgroundEdgeOrigin e) 773 inline CSSIdentifierValue::CSSIdentifierValue(BackgroundEdgeOrigin e)
799 : CSSValue(PrimitiveClass) { 774 : CSSValue(IdentifierClass) {
800 init(UnitType::ValueID);
801 switch (e) { 775 switch (e) {
802 case TopEdge: 776 case TopEdge:
803 m_value.valueID = CSSValueTop; 777 m_valueID = CSSValueTop;
804 break; 778 break;
805 case RightEdge: 779 case RightEdge:
806 m_value.valueID = CSSValueRight; 780 m_valueID = CSSValueRight;
807 break; 781 break;
808 case BottomEdge: 782 case BottomEdge:
809 m_value.valueID = CSSValueBottom; 783 m_valueID = CSSValueBottom;
810 break; 784 break;
811 case LeftEdge: 785 case LeftEdge:
812 m_value.valueID = CSSValueLeft; 786 m_valueID = CSSValueLeft;
813 break; 787 break;
814 } 788 }
815 } 789 }
816 790
817 template <> 791 template <>
818 inline BackgroundEdgeOrigin CSSPrimitiveValue::convertTo() const { 792 inline BackgroundEdgeOrigin CSSIdentifierValue::convertTo() const {
819 ASSERT(isValueID()); 793 switch (m_valueID) {
820 switch (m_value.valueID) {
821 case CSSValueTop: 794 case CSSValueTop:
822 return TopEdge; 795 return TopEdge;
823 case CSSValueRight: 796 case CSSValueRight:
824 return RightEdge; 797 return RightEdge;
825 case CSSValueBottom: 798 case CSSValueBottom:
826 return BottomEdge; 799 return BottomEdge;
827 case CSSValueLeft: 800 case CSSValueLeft:
828 return LeftEdge; 801 return LeftEdge;
829 default: 802 default:
830 break; 803 break;
831 } 804 }
832 805
833 ASSERT_NOT_REACHED(); 806 ASSERT_NOT_REACHED();
834 return TopEdge; 807 return TopEdge;
835 } 808 }
836 809
837 template <> 810 template <>
838 inline CSSPrimitiveValue::CSSPrimitiveValue(EBoxSizing e) 811 inline CSSIdentifierValue::CSSIdentifierValue(EBoxSizing e)
839 : CSSValue(PrimitiveClass) { 812 : CSSValue(IdentifierClass) {
840 init(UnitType::ValueID);
841 switch (e) { 813 switch (e) {
842 case BoxSizingBorderBox: 814 case BoxSizingBorderBox:
843 m_value.valueID = CSSValueBorderBox; 815 m_valueID = CSSValueBorderBox;
844 break; 816 break;
845 case BoxSizingContentBox: 817 case BoxSizingContentBox:
846 m_value.valueID = CSSValueContentBox; 818 m_valueID = CSSValueContentBox;
847 break; 819 break;
848 } 820 }
849 } 821 }
850 822
851 template <> 823 template <>
852 inline EBoxSizing CSSPrimitiveValue::convertTo() const { 824 inline EBoxSizing CSSIdentifierValue::convertTo() const {
853 ASSERT(isValueID()); 825 switch (m_valueID) {
854 switch (m_value.valueID) {
855 case CSSValueBorderBox: 826 case CSSValueBorderBox:
856 return BoxSizingBorderBox; 827 return BoxSizingBorderBox;
857 case CSSValueContentBox: 828 case CSSValueContentBox:
858 return BoxSizingContentBox; 829 return BoxSizingContentBox;
859 default: 830 default:
860 break; 831 break;
861 } 832 }
862 833
863 ASSERT_NOT_REACHED(); 834 ASSERT_NOT_REACHED();
864 return BoxSizingBorderBox; 835 return BoxSizingBorderBox;
865 } 836 }
866 837
867 template <> 838 template <>
868 inline CSSPrimitiveValue::CSSPrimitiveValue(EBoxDirection e) 839 inline CSSIdentifierValue::CSSIdentifierValue(EBoxDirection e)
869 : CSSValue(PrimitiveClass) { 840 : CSSValue(IdentifierClass) {
870 init(UnitType::ValueID);
871 switch (e) { 841 switch (e) {
872 case BNORMAL: 842 case BNORMAL:
873 m_value.valueID = CSSValueNormal; 843 m_valueID = CSSValueNormal;
874 break; 844 break;
875 case BREVERSE: 845 case BREVERSE:
876 m_value.valueID = CSSValueReverse; 846 m_valueID = CSSValueReverse;
877 break; 847 break;
878 } 848 }
879 } 849 }
880 850
881 template <> 851 template <>
882 inline EBoxDirection CSSPrimitiveValue::convertTo() const { 852 inline EBoxDirection CSSIdentifierValue::convertTo() const {
883 ASSERT(isValueID()); 853 switch (m_valueID) {
884 switch (m_value.valueID) {
885 case CSSValueNormal: 854 case CSSValueNormal:
886 return BNORMAL; 855 return BNORMAL;
887 case CSSValueReverse: 856 case CSSValueReverse:
888 return BREVERSE; 857 return BREVERSE;
889 default: 858 default:
890 break; 859 break;
891 } 860 }
892 861
893 ASSERT_NOT_REACHED(); 862 ASSERT_NOT_REACHED();
894 return BNORMAL; 863 return BNORMAL;
895 } 864 }
896 865
897 template <> 866 template <>
898 inline CSSPrimitiveValue::CSSPrimitiveValue(EBoxLines e) 867 inline CSSIdentifierValue::CSSIdentifierValue(EBoxLines e)
899 : CSSValue(PrimitiveClass) { 868 : CSSValue(IdentifierClass) {
900 init(UnitType::ValueID);
901 switch (e) { 869 switch (e) {
902 case SINGLE: 870 case SINGLE:
903 m_value.valueID = CSSValueSingle; 871 m_valueID = CSSValueSingle;
904 break; 872 break;
905 case MULTIPLE: 873 case MULTIPLE:
906 m_value.valueID = CSSValueMultiple; 874 m_valueID = CSSValueMultiple;
907 break; 875 break;
908 } 876 }
909 } 877 }
910 878
911 template <> 879 template <>
912 inline EBoxLines CSSPrimitiveValue::convertTo() const { 880 inline EBoxLines CSSIdentifierValue::convertTo() const {
913 ASSERT(isValueID()); 881 switch (m_valueID) {
914 switch (m_value.valueID) {
915 case CSSValueSingle: 882 case CSSValueSingle:
916 return SINGLE; 883 return SINGLE;
917 case CSSValueMultiple: 884 case CSSValueMultiple:
918 return MULTIPLE; 885 return MULTIPLE;
919 default: 886 default:
920 break; 887 break;
921 } 888 }
922 889
923 ASSERT_NOT_REACHED(); 890 ASSERT_NOT_REACHED();
924 return SINGLE; 891 return SINGLE;
925 } 892 }
926 893
927 template <> 894 template <>
928 inline CSSPrimitiveValue::CSSPrimitiveValue(EBoxOrient e) 895 inline CSSIdentifierValue::CSSIdentifierValue(EBoxOrient e)
929 : CSSValue(PrimitiveClass) { 896 : CSSValue(IdentifierClass) {
930 init(UnitType::ValueID);
931 switch (e) { 897 switch (e) {
932 case HORIZONTAL: 898 case HORIZONTAL:
933 m_value.valueID = CSSValueHorizontal; 899 m_valueID = CSSValueHorizontal;
934 break; 900 break;
935 case VERTICAL: 901 case VERTICAL:
936 m_value.valueID = CSSValueVertical; 902 m_valueID = CSSValueVertical;
937 break; 903 break;
938 } 904 }
939 } 905 }
940 906
941 template <> 907 template <>
942 inline EBoxOrient CSSPrimitiveValue::convertTo() const { 908 inline EBoxOrient CSSIdentifierValue::convertTo() const {
943 ASSERT(isValueID()); 909 switch (m_valueID) {
944 switch (m_value.valueID) {
945 case CSSValueHorizontal: 910 case CSSValueHorizontal:
946 case CSSValueInlineAxis: 911 case CSSValueInlineAxis:
947 return HORIZONTAL; 912 return HORIZONTAL;
948 case CSSValueVertical: 913 case CSSValueVertical:
949 case CSSValueBlockAxis: 914 case CSSValueBlockAxis:
950 return VERTICAL; 915 return VERTICAL;
951 default: 916 default:
952 break; 917 break;
953 } 918 }
954 919
955 ASSERT_NOT_REACHED(); 920 ASSERT_NOT_REACHED();
956 return HORIZONTAL; 921 return HORIZONTAL;
957 } 922 }
958 923
959 template <> 924 template <>
960 inline CSSPrimitiveValue::CSSPrimitiveValue(ECaptionSide e) 925 inline CSSIdentifierValue::CSSIdentifierValue(ECaptionSide e)
961 : CSSValue(PrimitiveClass) { 926 : CSSValue(IdentifierClass) {
962 init(UnitType::ValueID);
963 switch (e) { 927 switch (e) {
964 case ECaptionSide::Left: 928 case ECaptionSide::Left:
965 m_value.valueID = CSSValueLeft; 929 m_valueID = CSSValueLeft;
966 break; 930 break;
967 case ECaptionSide::Right: 931 case ECaptionSide::Right:
968 m_value.valueID = CSSValueRight; 932 m_valueID = CSSValueRight;
969 break; 933 break;
970 case ECaptionSide::Top: 934 case ECaptionSide::Top:
971 m_value.valueID = CSSValueTop; 935 m_valueID = CSSValueTop;
972 break; 936 break;
973 case ECaptionSide::Bottom: 937 case ECaptionSide::Bottom:
974 m_value.valueID = CSSValueBottom; 938 m_valueID = CSSValueBottom;
975 break; 939 break;
976 } 940 }
977 } 941 }
978 942
979 template <> 943 template <>
980 inline ECaptionSide CSSPrimitiveValue::convertTo() const { 944 inline ECaptionSide CSSIdentifierValue::convertTo() const {
981 ASSERT(isValueID()); 945 switch (m_valueID) {
982 switch (m_value.valueID) {
983 case CSSValueLeft: 946 case CSSValueLeft:
984 return ECaptionSide::Left; 947 return ECaptionSide::Left;
985 case CSSValueRight: 948 case CSSValueRight:
986 return ECaptionSide::Right; 949 return ECaptionSide::Right;
987 case CSSValueTop: 950 case CSSValueTop:
988 return ECaptionSide::Top; 951 return ECaptionSide::Top;
989 case CSSValueBottom: 952 case CSSValueBottom:
990 return ECaptionSide::Bottom; 953 return ECaptionSide::Bottom;
991 default: 954 default:
992 break; 955 break;
993 } 956 }
994 957
995 ASSERT_NOT_REACHED(); 958 ASSERT_NOT_REACHED();
996 return ECaptionSide::Top; 959 return ECaptionSide::Top;
997 } 960 }
998 961
999 template <> 962 template <>
1000 inline CSSPrimitiveValue::CSSPrimitiveValue(EClear e) 963 inline CSSIdentifierValue::CSSIdentifierValue(EClear e)
1001 : CSSValue(PrimitiveClass) { 964 : CSSValue(IdentifierClass) {
1002 init(UnitType::ValueID);
1003 switch (e) { 965 switch (e) {
1004 case ClearNone: 966 case ClearNone:
1005 m_value.valueID = CSSValueNone; 967 m_valueID = CSSValueNone;
1006 break; 968 break;
1007 case ClearLeft: 969 case ClearLeft:
1008 m_value.valueID = CSSValueLeft; 970 m_valueID = CSSValueLeft;
1009 break; 971 break;
1010 case ClearRight: 972 case ClearRight:
1011 m_value.valueID = CSSValueRight; 973 m_valueID = CSSValueRight;
1012 break; 974 break;
1013 case ClearBoth: 975 case ClearBoth:
1014 m_value.valueID = CSSValueBoth; 976 m_valueID = CSSValueBoth;
1015 break; 977 break;
1016 } 978 }
1017 } 979 }
1018 980
1019 template <> 981 template <>
1020 inline EClear CSSPrimitiveValue::convertTo() const { 982 inline EClear CSSIdentifierValue::convertTo() const {
1021 ASSERT(isValueID()); 983 switch (m_valueID) {
1022 switch (m_value.valueID) {
1023 case CSSValueNone: 984 case CSSValueNone:
1024 return ClearNone; 985 return ClearNone;
1025 case CSSValueLeft: 986 case CSSValueLeft:
1026 return ClearLeft; 987 return ClearLeft;
1027 case CSSValueRight: 988 case CSSValueRight:
1028 return ClearRight; 989 return ClearRight;
1029 case CSSValueBoth: 990 case CSSValueBoth:
1030 return ClearBoth; 991 return ClearBoth;
1031 default: 992 default:
1032 break; 993 break;
1033 } 994 }
1034 995
1035 ASSERT_NOT_REACHED(); 996 ASSERT_NOT_REACHED();
1036 return ClearNone; 997 return ClearNone;
1037 } 998 }
1038 999
1039 template <> 1000 template <>
1040 inline CSSPrimitiveValue::CSSPrimitiveValue(ECursor e) 1001 inline CSSIdentifierValue::CSSIdentifierValue(ECursor e)
1041 : CSSValue(PrimitiveClass) { 1002 : CSSValue(IdentifierClass) {
1042 init(UnitType::ValueID);
1043 switch (e) { 1003 switch (e) {
1044 case CURSOR_AUTO: 1004 case CURSOR_AUTO:
1045 m_value.valueID = CSSValueAuto; 1005 m_valueID = CSSValueAuto;
1046 break; 1006 break;
1047 case CURSOR_CROSS: 1007 case CURSOR_CROSS:
1048 m_value.valueID = CSSValueCrosshair; 1008 m_valueID = CSSValueCrosshair;
1049 break; 1009 break;
1050 case CURSOR_DEFAULT: 1010 case CURSOR_DEFAULT:
1051 m_value.valueID = CSSValueDefault; 1011 m_valueID = CSSValueDefault;
1052 break; 1012 break;
1053 case CURSOR_POINTER: 1013 case CURSOR_POINTER:
1054 m_value.valueID = CSSValuePointer; 1014 m_valueID = CSSValuePointer;
1055 break; 1015 break;
1056 case CURSOR_MOVE: 1016 case CURSOR_MOVE:
1057 m_value.valueID = CSSValueMove; 1017 m_valueID = CSSValueMove;
1058 break; 1018 break;
1059 case CURSOR_CELL: 1019 case CURSOR_CELL:
1060 m_value.valueID = CSSValueCell; 1020 m_valueID = CSSValueCell;
1061 break; 1021 break;
1062 case CURSOR_VERTICAL_TEXT: 1022 case CURSOR_VERTICAL_TEXT:
1063 m_value.valueID = CSSValueVerticalText; 1023 m_valueID = CSSValueVerticalText;
1064 break; 1024 break;
1065 case CURSOR_CONTEXT_MENU: 1025 case CURSOR_CONTEXT_MENU:
1066 m_value.valueID = CSSValueContextMenu; 1026 m_valueID = CSSValueContextMenu;
1067 break; 1027 break;
1068 case CURSOR_ALIAS: 1028 case CURSOR_ALIAS:
1069 m_value.valueID = CSSValueAlias; 1029 m_valueID = CSSValueAlias;
1070 break; 1030 break;
1071 case CURSOR_COPY: 1031 case CURSOR_COPY:
1072 m_value.valueID = CSSValueCopy; 1032 m_valueID = CSSValueCopy;
1073 break; 1033 break;
1074 case CURSOR_NONE: 1034 case CURSOR_NONE:
1075 m_value.valueID = CSSValueNone; 1035 m_valueID = CSSValueNone;
1076 break; 1036 break;
1077 case CURSOR_PROGRESS: 1037 case CURSOR_PROGRESS:
1078 m_value.valueID = CSSValueProgress; 1038 m_valueID = CSSValueProgress;
1079 break; 1039 break;
1080 case CURSOR_NO_DROP: 1040 case CURSOR_NO_DROP:
1081 m_value.valueID = CSSValueNoDrop; 1041 m_valueID = CSSValueNoDrop;
1082 break; 1042 break;
1083 case CURSOR_NOT_ALLOWED: 1043 case CURSOR_NOT_ALLOWED:
1084 m_value.valueID = CSSValueNotAllowed; 1044 m_valueID = CSSValueNotAllowed;
1085 break; 1045 break;
1086 case CURSOR_ZOOM_IN: 1046 case CURSOR_ZOOM_IN:
1087 m_value.valueID = CSSValueZoomIn; 1047 m_valueID = CSSValueZoomIn;
1088 break; 1048 break;
1089 case CURSOR_ZOOM_OUT: 1049 case CURSOR_ZOOM_OUT:
1090 m_value.valueID = CSSValueZoomOut; 1050 m_valueID = CSSValueZoomOut;
1091 break; 1051 break;
1092 case CURSOR_E_RESIZE: 1052 case CURSOR_E_RESIZE:
1093 m_value.valueID = CSSValueEResize; 1053 m_valueID = CSSValueEResize;
1094 break; 1054 break;
1095 case CURSOR_NE_RESIZE: 1055 case CURSOR_NE_RESIZE:
1096 m_value.valueID = CSSValueNeResize; 1056 m_valueID = CSSValueNeResize;
1097 break; 1057 break;
1098 case CURSOR_NW_RESIZE: 1058 case CURSOR_NW_RESIZE:
1099 m_value.valueID = CSSValueNwResize; 1059 m_valueID = CSSValueNwResize;
1100 break; 1060 break;
1101 case CURSOR_N_RESIZE: 1061 case CURSOR_N_RESIZE:
1102 m_value.valueID = CSSValueNResize; 1062 m_valueID = CSSValueNResize;
1103 break; 1063 break;
1104 case CURSOR_SE_RESIZE: 1064 case CURSOR_SE_RESIZE:
1105 m_value.valueID = CSSValueSeResize; 1065 m_valueID = CSSValueSeResize;
1106 break; 1066 break;
1107 case CURSOR_SW_RESIZE: 1067 case CURSOR_SW_RESIZE:
1108 m_value.valueID = CSSValueSwResize; 1068 m_valueID = CSSValueSwResize;
1109 break; 1069 break;
1110 case CURSOR_S_RESIZE: 1070 case CURSOR_S_RESIZE:
1111 m_value.valueID = CSSValueSResize; 1071 m_valueID = CSSValueSResize;
1112 break; 1072 break;
1113 case CURSOR_W_RESIZE: 1073 case CURSOR_W_RESIZE:
1114 m_value.valueID = CSSValueWResize; 1074 m_valueID = CSSValueWResize;
1115 break; 1075 break;
1116 case CURSOR_EW_RESIZE: 1076 case CURSOR_EW_RESIZE:
1117 m_value.valueID = CSSValueEwResize; 1077 m_valueID = CSSValueEwResize;
1118 break; 1078 break;
1119 case CURSOR_NS_RESIZE: 1079 case CURSOR_NS_RESIZE:
1120 m_value.valueID = CSSValueNsResize; 1080 m_valueID = CSSValueNsResize;
1121 break; 1081 break;
1122 case CURSOR_NESW_RESIZE: 1082 case CURSOR_NESW_RESIZE:
1123 m_value.valueID = CSSValueNeswResize; 1083 m_valueID = CSSValueNeswResize;
1124 break; 1084 break;
1125 case CURSOR_NWSE_RESIZE: 1085 case CURSOR_NWSE_RESIZE:
1126 m_value.valueID = CSSValueNwseResize; 1086 m_valueID = CSSValueNwseResize;
1127 break; 1087 break;
1128 case CURSOR_COL_RESIZE: 1088 case CURSOR_COL_RESIZE:
1129 m_value.valueID = CSSValueColResize; 1089 m_valueID = CSSValueColResize;
1130 break; 1090 break;
1131 case CURSOR_ROW_RESIZE: 1091 case CURSOR_ROW_RESIZE:
1132 m_value.valueID = CSSValueRowResize; 1092 m_valueID = CSSValueRowResize;
1133 break; 1093 break;
1134 case CURSOR_TEXT: 1094 case CURSOR_TEXT:
1135 m_value.valueID = CSSValueText; 1095 m_valueID = CSSValueText;
1136 break; 1096 break;
1137 case CURSOR_WAIT: 1097 case CURSOR_WAIT:
1138 m_value.valueID = CSSValueWait; 1098 m_valueID = CSSValueWait;
1139 break; 1099 break;
1140 case CURSOR_HELP: 1100 case CURSOR_HELP:
1141 m_value.valueID = CSSValueHelp; 1101 m_valueID = CSSValueHelp;
1142 break; 1102 break;
1143 case CURSOR_ALL_SCROLL: 1103 case CURSOR_ALL_SCROLL:
1144 m_value.valueID = CSSValueAllScroll; 1104 m_valueID = CSSValueAllScroll;
1145 break; 1105 break;
1146 case CURSOR_WEBKIT_GRAB: 1106 case CURSOR_WEBKIT_GRAB:
1147 m_value.valueID = CSSValueWebkitGrab; 1107 m_valueID = CSSValueWebkitGrab;
1148 break; 1108 break;
1149 case CURSOR_WEBKIT_GRABBING: 1109 case CURSOR_WEBKIT_GRABBING:
1150 m_value.valueID = CSSValueWebkitGrabbing; 1110 m_valueID = CSSValueWebkitGrabbing;
1151 break; 1111 break;
1152 } 1112 }
1153 } 1113 }
1154 1114
1155 template <> 1115 template <>
1156 inline ECursor CSSPrimitiveValue::convertTo() const { 1116 inline ECursor CSSIdentifierValue::convertTo() const {
1157 ASSERT(isValueID()); 1117 switch (m_valueID) {
1158 switch (m_value.valueID) {
1159 case CSSValueCopy: 1118 case CSSValueCopy:
1160 return CURSOR_COPY; 1119 return CURSOR_COPY;
1161 case CSSValueWebkitZoomIn: 1120 case CSSValueWebkitZoomIn:
1162 return CURSOR_ZOOM_IN; 1121 return CURSOR_ZOOM_IN;
1163 case CSSValueWebkitZoomOut: 1122 case CSSValueWebkitZoomOut:
1164 return CURSOR_ZOOM_OUT; 1123 return CURSOR_ZOOM_OUT;
1165 case CSSValueNone: 1124 case CSSValueNone:
1166 return CURSOR_NONE; 1125 return CURSOR_NONE;
1167 default: 1126 default:
1168 return static_cast<ECursor>(m_value.valueID - CSSValueAuto); 1127 return static_cast<ECursor>(m_valueID - CSSValueAuto);
1169 } 1128 }
1170 } 1129 }
1171 1130
1172 template <> 1131 template <>
1173 inline CSSPrimitiveValue::CSSPrimitiveValue(EDisplay e) 1132 inline CSSIdentifierValue::CSSIdentifierValue(EDisplay e)
1174 : CSSValue(PrimitiveClass) { 1133 : CSSValue(IdentifierClass) {
1175 init(UnitType::ValueID);
1176 switch (e) { 1134 switch (e) {
1177 case EDisplay::Inline: 1135 case EDisplay::Inline:
1178 m_value.valueID = CSSValueInline; 1136 m_valueID = CSSValueInline;
1179 break; 1137 break;
1180 case EDisplay::Block: 1138 case EDisplay::Block:
1181 m_value.valueID = CSSValueBlock; 1139 m_valueID = CSSValueBlock;
1182 break; 1140 break;
1183 case EDisplay::ListItem: 1141 case EDisplay::ListItem:
1184 m_value.valueID = CSSValueListItem; 1142 m_valueID = CSSValueListItem;
1185 break; 1143 break;
1186 case EDisplay::InlineBlock: 1144 case EDisplay::InlineBlock:
1187 m_value.valueID = CSSValueInlineBlock; 1145 m_valueID = CSSValueInlineBlock;
1188 break; 1146 break;
1189 case EDisplay::Table: 1147 case EDisplay::Table:
1190 m_value.valueID = CSSValueTable; 1148 m_valueID = CSSValueTable;
1191 break; 1149 break;
1192 case EDisplay::InlineTable: 1150 case EDisplay::InlineTable:
1193 m_value.valueID = CSSValueInlineTable; 1151 m_valueID = CSSValueInlineTable;
1194 break; 1152 break;
1195 case EDisplay::TableRowGroup: 1153 case EDisplay::TableRowGroup:
1196 m_value.valueID = CSSValueTableRowGroup; 1154 m_valueID = CSSValueTableRowGroup;
1197 break; 1155 break;
1198 case EDisplay::TableHeaderGroup: 1156 case EDisplay::TableHeaderGroup:
1199 m_value.valueID = CSSValueTableHeaderGroup; 1157 m_valueID = CSSValueTableHeaderGroup;
1200 break; 1158 break;
1201 case EDisplay::TableFooterGroup: 1159 case EDisplay::TableFooterGroup:
1202 m_value.valueID = CSSValueTableFooterGroup; 1160 m_valueID = CSSValueTableFooterGroup;
1203 break; 1161 break;
1204 case EDisplay::TableRow: 1162 case EDisplay::TableRow:
1205 m_value.valueID = CSSValueTableRow; 1163 m_valueID = CSSValueTableRow;
1206 break; 1164 break;
1207 case EDisplay::TableColumnGroup: 1165 case EDisplay::TableColumnGroup:
1208 m_value.valueID = CSSValueTableColumnGroup; 1166 m_valueID = CSSValueTableColumnGroup;
1209 break; 1167 break;
1210 case EDisplay::TableColumn: 1168 case EDisplay::TableColumn:
1211 m_value.valueID = CSSValueTableColumn; 1169 m_valueID = CSSValueTableColumn;
1212 break; 1170 break;
1213 case EDisplay::TableCell: 1171 case EDisplay::TableCell:
1214 m_value.valueID = CSSValueTableCell; 1172 m_valueID = CSSValueTableCell;
1215 break; 1173 break;
1216 case EDisplay::TableCaption: 1174 case EDisplay::TableCaption:
1217 m_value.valueID = CSSValueTableCaption; 1175 m_valueID = CSSValueTableCaption;
1218 break; 1176 break;
1219 case EDisplay::Box: 1177 case EDisplay::Box:
1220 m_value.valueID = CSSValueWebkitBox; 1178 m_valueID = CSSValueWebkitBox;
1221 break; 1179 break;
1222 case EDisplay::InlineBox: 1180 case EDisplay::InlineBox:
1223 m_value.valueID = CSSValueWebkitInlineBox; 1181 m_valueID = CSSValueWebkitInlineBox;
1224 break; 1182 break;
1225 case EDisplay::Flex: 1183 case EDisplay::Flex:
1226 m_value.valueID = CSSValueFlex; 1184 m_valueID = CSSValueFlex;
1227 break; 1185 break;
1228 case EDisplay::InlineFlex: 1186 case EDisplay::InlineFlex:
1229 m_value.valueID = CSSValueInlineFlex; 1187 m_valueID = CSSValueInlineFlex;
1230 break; 1188 break;
1231 case EDisplay::Grid: 1189 case EDisplay::Grid:
1232 m_value.valueID = CSSValueGrid; 1190 m_valueID = CSSValueGrid;
1233 break; 1191 break;
1234 case EDisplay::InlineGrid: 1192 case EDisplay::InlineGrid:
1235 m_value.valueID = CSSValueInlineGrid; 1193 m_valueID = CSSValueInlineGrid;
1236 break; 1194 break;
1237 case EDisplay::None: 1195 case EDisplay::None:
1238 m_value.valueID = CSSValueNone; 1196 m_valueID = CSSValueNone;
1239 break; 1197 break;
1240 } 1198 }
1241 } 1199 }
1242 1200
1243 template <> 1201 template <>
1244 inline EDisplay CSSPrimitiveValue::convertTo() const { 1202 inline EDisplay CSSIdentifierValue::convertTo() const {
1245 ASSERT(isValueID()); 1203 if (m_valueID == CSSValueNone)
1246 if (m_value.valueID == CSSValueNone)
1247 return EDisplay::None; 1204 return EDisplay::None;
1248 1205
1249 if (m_value.valueID == CSSValueWebkitFlex) 1206 if (m_valueID == CSSValueWebkitFlex)
1250 return EDisplay::Flex; 1207 return EDisplay::Flex;
1251 if (m_value.valueID == CSSValueWebkitInlineFlex) 1208 if (m_valueID == CSSValueWebkitInlineFlex)
1252 return EDisplay::InlineFlex; 1209 return EDisplay::InlineFlex;
1253 1210
1254 EDisplay display = static_cast<EDisplay>(m_value.valueID - CSSValueInline); 1211 EDisplay display = static_cast<EDisplay>(m_valueID - CSSValueInline);
1255 // TODO(sashab): Check display is a valid EDisplay here. 1212 // TODO(sashab): Check display is a valid EDisplay here.
1256 return display; 1213 return display;
1257 } 1214 }
1258 1215
1259 template <> 1216 template <>
1260 inline CSSPrimitiveValue::CSSPrimitiveValue(EEmptyCells e) 1217 inline CSSIdentifierValue::CSSIdentifierValue(EEmptyCells e)
1261 : CSSValue(PrimitiveClass) { 1218 : CSSValue(IdentifierClass) {
1262 init(UnitType::ValueID);
1263 switch (e) { 1219 switch (e) {
1264 case EEmptyCells::Show: 1220 case EEmptyCells::Show:
1265 m_value.valueID = CSSValueShow; 1221 m_valueID = CSSValueShow;
1266 break; 1222 break;
1267 case EEmptyCells::Hide: 1223 case EEmptyCells::Hide:
1268 m_value.valueID = CSSValueHide; 1224 m_valueID = CSSValueHide;
1269 break; 1225 break;
1270 } 1226 }
1271 } 1227 }
1272 1228
1273 template <> 1229 template <>
1274 inline EEmptyCells CSSPrimitiveValue::convertTo() const { 1230 inline EEmptyCells CSSIdentifierValue::convertTo() const {
1275 ASSERT(isValueID()); 1231 switch (m_valueID) {
1276 switch (m_value.valueID) {
1277 case CSSValueShow: 1232 case CSSValueShow:
1278 return EEmptyCells::Show; 1233 return EEmptyCells::Show;
1279 case CSSValueHide: 1234 case CSSValueHide:
1280 return EEmptyCells::Hide; 1235 return EEmptyCells::Hide;
1281 default: 1236 default:
1282 break; 1237 break;
1283 } 1238 }
1284 1239
1285 ASSERT_NOT_REACHED(); 1240 ASSERT_NOT_REACHED();
1286 return EEmptyCells::Show; 1241 return EEmptyCells::Show;
1287 } 1242 }
1288 1243
1289 template <> 1244 template <>
1290 inline CSSPrimitiveValue::CSSPrimitiveValue(EFlexDirection e) 1245 inline CSSIdentifierValue::CSSIdentifierValue(EFlexDirection e)
1291 : CSSValue(PrimitiveClass) { 1246 : CSSValue(IdentifierClass) {
1292 init(UnitType::ValueID);
1293 switch (e) { 1247 switch (e) {
1294 case FlowRow: 1248 case FlowRow:
1295 m_value.valueID = CSSValueRow; 1249 m_valueID = CSSValueRow;
1296 break; 1250 break;
1297 case FlowRowReverse: 1251 case FlowRowReverse:
1298 m_value.valueID = CSSValueRowReverse; 1252 m_valueID = CSSValueRowReverse;
1299 break; 1253 break;
1300 case FlowColumn: 1254 case FlowColumn:
1301 m_value.valueID = CSSValueColumn; 1255 m_valueID = CSSValueColumn;
1302 break; 1256 break;
1303 case FlowColumnReverse: 1257 case FlowColumnReverse:
1304 m_value.valueID = CSSValueColumnReverse; 1258 m_valueID = CSSValueColumnReverse;
1305 break; 1259 break;
1306 } 1260 }
1307 } 1261 }
1308 1262
1309 template <> 1263 template <>
1310 inline EFlexDirection CSSPrimitiveValue::convertTo() const { 1264 inline EFlexDirection CSSIdentifierValue::convertTo() const {
1311 ASSERT(isValueID()); 1265 switch (m_valueID) {
1312 switch (m_value.valueID) {
1313 case CSSValueRow: 1266 case CSSValueRow:
1314 return FlowRow; 1267 return FlowRow;
1315 case CSSValueRowReverse: 1268 case CSSValueRowReverse:
1316 return FlowRowReverse; 1269 return FlowRowReverse;
1317 case CSSValueColumn: 1270 case CSSValueColumn:
1318 return FlowColumn; 1271 return FlowColumn;
1319 case CSSValueColumnReverse: 1272 case CSSValueColumnReverse:
1320 return FlowColumnReverse; 1273 return FlowColumnReverse;
1321 default: 1274 default:
1322 break; 1275 break;
1323 } 1276 }
1324 1277
1325 ASSERT_NOT_REACHED(); 1278 ASSERT_NOT_REACHED();
1326 return FlowRow; 1279 return FlowRow;
1327 } 1280 }
1328 1281
1329 template <> 1282 template <>
1330 inline CSSPrimitiveValue::CSSPrimitiveValue(EFlexWrap e) 1283 inline CSSIdentifierValue::CSSIdentifierValue(EFlexWrap e)
1331 : CSSValue(PrimitiveClass) { 1284 : CSSValue(IdentifierClass) {
1332 init(UnitType::ValueID);
1333 switch (e) { 1285 switch (e) {
1334 case FlexNoWrap: 1286 case FlexNoWrap:
1335 m_value.valueID = CSSValueNowrap; 1287 m_valueID = CSSValueNowrap;
1336 break; 1288 break;
1337 case FlexWrap: 1289 case FlexWrap:
1338 m_value.valueID = CSSValueWrap; 1290 m_valueID = CSSValueWrap;
1339 break; 1291 break;
1340 case FlexWrapReverse: 1292 case FlexWrapReverse:
1341 m_value.valueID = CSSValueWrapReverse; 1293 m_valueID = CSSValueWrapReverse;
1342 break; 1294 break;
1343 } 1295 }
1344 } 1296 }
1345 1297
1346 template <> 1298 template <>
1347 inline EFlexWrap CSSPrimitiveValue::convertTo() const { 1299 inline EFlexWrap CSSIdentifierValue::convertTo() const {
1348 ASSERT(isValueID()); 1300 switch (m_valueID) {
1349 switch (m_value.valueID) {
1350 case CSSValueNowrap: 1301 case CSSValueNowrap:
1351 return FlexNoWrap; 1302 return FlexNoWrap;
1352 case CSSValueWrap: 1303 case CSSValueWrap:
1353 return FlexWrap; 1304 return FlexWrap;
1354 case CSSValueWrapReverse: 1305 case CSSValueWrapReverse:
1355 return FlexWrapReverse; 1306 return FlexWrapReverse;
1356 default: 1307 default:
1357 break; 1308 break;
1358 } 1309 }
1359 1310
1360 ASSERT_NOT_REACHED(); 1311 ASSERT_NOT_REACHED();
1361 return FlexNoWrap; 1312 return FlexNoWrap;
1362 } 1313 }
1363 1314
1364 template <> 1315 template <>
1365 inline CSSPrimitiveValue::CSSPrimitiveValue(EFloat e) 1316 inline CSSIdentifierValue::CSSIdentifierValue(EFloat e)
1366 : CSSValue(PrimitiveClass) { 1317 : CSSValue(IdentifierClass) {
1367 init(UnitType::ValueID);
1368 switch (e) { 1318 switch (e) {
1369 case EFloat::None: 1319 case EFloat::None:
1370 m_value.valueID = CSSValueNone; 1320 m_valueID = CSSValueNone;
1371 break; 1321 break;
1372 case EFloat::Left: 1322 case EFloat::Left:
1373 m_value.valueID = CSSValueLeft; 1323 m_valueID = CSSValueLeft;
1374 break; 1324 break;
1375 case EFloat::Right: 1325 case EFloat::Right:
1376 m_value.valueID = CSSValueRight; 1326 m_valueID = CSSValueRight;
1377 break; 1327 break;
1378 } 1328 }
1379 } 1329 }
1380 1330
1381 template <> 1331 template <>
1382 inline EFloat CSSPrimitiveValue::convertTo() const { 1332 inline EFloat CSSIdentifierValue::convertTo() const {
1383 ASSERT(isValueID()); 1333 switch (m_valueID) {
1384 switch (m_value.valueID) {
1385 case CSSValueLeft: 1334 case CSSValueLeft:
1386 return EFloat::Left; 1335 return EFloat::Left;
1387 case CSSValueRight: 1336 case CSSValueRight:
1388 return EFloat::Right; 1337 return EFloat::Right;
1389 case CSSValueNone: 1338 case CSSValueNone:
1390 return EFloat::None; 1339 return EFloat::None;
1391 default: 1340 default:
1392 break; 1341 break;
1393 } 1342 }
1394 1343
1395 ASSERT_NOT_REACHED(); 1344 ASSERT_NOT_REACHED();
1396 return EFloat::None; 1345 return EFloat::None;
1397 } 1346 }
1398 1347
1399 template <> 1348 template <>
1400 inline CSSPrimitiveValue::CSSPrimitiveValue(Hyphens e) 1349 inline CSSIdentifierValue::CSSIdentifierValue(Hyphens e)
1401 : CSSValue(PrimitiveClass) { 1350 : CSSValue(IdentifierClass) {
1402 init(UnitType::ValueID);
1403 switch (e) { 1351 switch (e) {
1404 case HyphensAuto: 1352 case HyphensAuto:
1405 m_value.valueID = CSSValueAuto; 1353 m_valueID = CSSValueAuto;
1406 break; 1354 break;
1407 case HyphensManual: 1355 case HyphensManual:
1408 m_value.valueID = CSSValueManual; 1356 m_valueID = CSSValueManual;
1409 break; 1357 break;
1410 case HyphensNone: 1358 case HyphensNone:
1411 m_value.valueID = CSSValueNone; 1359 m_valueID = CSSValueNone;
1412 break; 1360 break;
1413 } 1361 }
1414 } 1362 }
1415 1363
1416 template <> 1364 template <>
1417 inline Hyphens CSSPrimitiveValue::convertTo() const { 1365 inline Hyphens CSSIdentifierValue::convertTo() const {
1418 DCHECK(isValueID()); 1366 switch (m_valueID) {
1419 switch (m_value.valueID) {
1420 case CSSValueAuto: 1367 case CSSValueAuto:
1421 return HyphensAuto; 1368 return HyphensAuto;
1422 case CSSValueManual: 1369 case CSSValueManual:
1423 return HyphensManual; 1370 return HyphensManual;
1424 case CSSValueNone: 1371 case CSSValueNone:
1425 return HyphensNone; 1372 return HyphensNone;
1426 default: 1373 default:
1427 break; 1374 break;
1428 } 1375 }
1429 1376
1430 NOTREACHED(); 1377 NOTREACHED();
1431 return HyphensManual; 1378 return HyphensManual;
1432 } 1379 }
1433 1380
1434 template <> 1381 template <>
1435 inline CSSPrimitiveValue::CSSPrimitiveValue(LineBreak e) 1382 inline CSSIdentifierValue::CSSIdentifierValue(LineBreak e)
1436 : CSSValue(PrimitiveClass) { 1383 : CSSValue(IdentifierClass) {
1437 init(UnitType::ValueID);
1438 switch (e) { 1384 switch (e) {
1439 case LineBreakAuto: 1385 case LineBreakAuto:
1440 m_value.valueID = CSSValueAuto; 1386 m_valueID = CSSValueAuto;
1441 break; 1387 break;
1442 case LineBreakLoose: 1388 case LineBreakLoose:
1443 m_value.valueID = CSSValueLoose; 1389 m_valueID = CSSValueLoose;
1444 break; 1390 break;
1445 case LineBreakNormal: 1391 case LineBreakNormal:
1446 m_value.valueID = CSSValueNormal; 1392 m_valueID = CSSValueNormal;
1447 break; 1393 break;
1448 case LineBreakStrict: 1394 case LineBreakStrict:
1449 m_value.valueID = CSSValueStrict; 1395 m_valueID = CSSValueStrict;
1450 break; 1396 break;
1451 case LineBreakAfterWhiteSpace: 1397 case LineBreakAfterWhiteSpace:
1452 m_value.valueID = CSSValueAfterWhiteSpace; 1398 m_valueID = CSSValueAfterWhiteSpace;
1453 break; 1399 break;
1454 } 1400 }
1455 } 1401 }
1456 1402
1457 template <> 1403 template <>
1458 inline LineBreak CSSPrimitiveValue::convertTo() const { 1404 inline LineBreak CSSIdentifierValue::convertTo() const {
1459 ASSERT(isValueID()); 1405 switch (m_valueID) {
1460 switch (m_value.valueID) {
1461 case CSSValueAuto: 1406 case CSSValueAuto:
1462 return LineBreakAuto; 1407 return LineBreakAuto;
1463 case CSSValueLoose: 1408 case CSSValueLoose:
1464 return LineBreakLoose; 1409 return LineBreakLoose;
1465 case CSSValueNormal: 1410 case CSSValueNormal:
1466 return LineBreakNormal; 1411 return LineBreakNormal;
1467 case CSSValueStrict: 1412 case CSSValueStrict:
1468 return LineBreakStrict; 1413 return LineBreakStrict;
1469 case CSSValueAfterWhiteSpace: 1414 case CSSValueAfterWhiteSpace:
1470 return LineBreakAfterWhiteSpace; 1415 return LineBreakAfterWhiteSpace;
1471 default: 1416 default:
1472 break; 1417 break;
1473 } 1418 }
1474 1419
1475 ASSERT_NOT_REACHED(); 1420 ASSERT_NOT_REACHED();
1476 return LineBreakAuto; 1421 return LineBreakAuto;
1477 } 1422 }
1478 1423
1479 template <> 1424 template <>
1480 inline CSSPrimitiveValue::CSSPrimitiveValue(EListStylePosition e) 1425 inline CSSIdentifierValue::CSSIdentifierValue(EListStylePosition e)
1481 : CSSValue(PrimitiveClass) { 1426 : CSSValue(IdentifierClass) {
1482 init(UnitType::ValueID);
1483 switch (e) { 1427 switch (e) {
1484 case ListStylePositionOutside: 1428 case ListStylePositionOutside:
1485 m_value.valueID = CSSValueOutside; 1429 m_valueID = CSSValueOutside;
1486 break; 1430 break;
1487 case ListStylePositionInside: 1431 case ListStylePositionInside:
1488 m_value.valueID = CSSValueInside; 1432 m_valueID = CSSValueInside;
1489 break; 1433 break;
1490 } 1434 }
1491 } 1435 }
1492 1436
1493 template <> 1437 template <>
1494 inline EListStylePosition CSSPrimitiveValue::convertTo() const { 1438 inline EListStylePosition CSSIdentifierValue::convertTo() const {
1495 ASSERT(isValueID()); 1439 switch (m_valueID) {
1496 switch (m_value.valueID) {
1497 case CSSValueOutside: 1440 case CSSValueOutside:
1498 return ListStylePositionOutside; 1441 return ListStylePositionOutside;
1499 case CSSValueInside: 1442 case CSSValueInside:
1500 return ListStylePositionInside; 1443 return ListStylePositionInside;
1501 default: 1444 default:
1502 break; 1445 break;
1503 } 1446 }
1504 1447
1505 ASSERT_NOT_REACHED(); 1448 ASSERT_NOT_REACHED();
1506 return ListStylePositionOutside; 1449 return ListStylePositionOutside;
1507 } 1450 }
1508 1451
1509 template <> 1452 template <>
1510 inline CSSPrimitiveValue::CSSPrimitiveValue(EListStyleType e) 1453 inline CSSIdentifierValue::CSSIdentifierValue(EListStyleType e)
1511 : CSSValue(PrimitiveClass) { 1454 : CSSValue(IdentifierClass) {
1512 init(UnitType::ValueID);
1513 switch (e) { 1455 switch (e) {
1514 case ArabicIndic: 1456 case ArabicIndic:
1515 m_value.valueID = CSSValueArabicIndic; 1457 m_valueID = CSSValueArabicIndic;
1516 break; 1458 break;
1517 case Armenian: 1459 case Armenian:
1518 m_value.valueID = CSSValueArmenian; 1460 m_valueID = CSSValueArmenian;
1519 break; 1461 break;
1520 case Bengali: 1462 case Bengali:
1521 m_value.valueID = CSSValueBengali; 1463 m_valueID = CSSValueBengali;
1522 break; 1464 break;
1523 case Cambodian: 1465 case Cambodian:
1524 m_value.valueID = CSSValueCambodian; 1466 m_valueID = CSSValueCambodian;
1525 break; 1467 break;
1526 case Circle: 1468 case Circle:
1527 m_value.valueID = CSSValueCircle; 1469 m_valueID = CSSValueCircle;
1528 break; 1470 break;
1529 case CjkEarthlyBranch: 1471 case CjkEarthlyBranch:
1530 m_value.valueID = CSSValueCjkEarthlyBranch; 1472 m_valueID = CSSValueCjkEarthlyBranch;
1531 break; 1473 break;
1532 case CjkHeavenlyStem: 1474 case CjkHeavenlyStem:
1533 m_value.valueID = CSSValueCjkHeavenlyStem; 1475 m_valueID = CSSValueCjkHeavenlyStem;
1534 break; 1476 break;
1535 case CJKIdeographic: 1477 case CJKIdeographic:
1536 m_value.valueID = CSSValueCjkIdeographic; 1478 m_valueID = CSSValueCjkIdeographic;
1537 break; 1479 break;
1538 case DecimalLeadingZero: 1480 case DecimalLeadingZero:
1539 m_value.valueID = CSSValueDecimalLeadingZero; 1481 m_valueID = CSSValueDecimalLeadingZero;
1540 break; 1482 break;
1541 case DecimalListStyle: 1483 case DecimalListStyle:
1542 m_value.valueID = CSSValueDecimal; 1484 m_valueID = CSSValueDecimal;
1543 break; 1485 break;
1544 case Devanagari: 1486 case Devanagari:
1545 m_value.valueID = CSSValueDevanagari; 1487 m_valueID = CSSValueDevanagari;
1546 break; 1488 break;
1547 case Disc: 1489 case Disc:
1548 m_value.valueID = CSSValueDisc; 1490 m_valueID = CSSValueDisc;
1549 break; 1491 break;
1550 case EthiopicHalehame: 1492 case EthiopicHalehame:
1551 m_value.valueID = CSSValueEthiopicHalehame; 1493 m_valueID = CSSValueEthiopicHalehame;
1552 break; 1494 break;
1553 case EthiopicHalehameAm: 1495 case EthiopicHalehameAm:
1554 m_value.valueID = CSSValueEthiopicHalehameAm; 1496 m_valueID = CSSValueEthiopicHalehameAm;
1555 break; 1497 break;
1556 case EthiopicHalehameTiEt: 1498 case EthiopicHalehameTiEt:
1557 m_value.valueID = CSSValueEthiopicHalehameTiEt; 1499 m_valueID = CSSValueEthiopicHalehameTiEt;
1558 break; 1500 break;
1559 case EthiopicHalehameTiEr: 1501 case EthiopicHalehameTiEr:
1560 m_value.valueID = CSSValueEthiopicHalehameTiEr; 1502 m_valueID = CSSValueEthiopicHalehameTiEr;
1561 break; 1503 break;
1562 case Georgian: 1504 case Georgian:
1563 m_value.valueID = CSSValueGeorgian; 1505 m_valueID = CSSValueGeorgian;
1564 break; 1506 break;
1565 case Gujarati: 1507 case Gujarati:
1566 m_value.valueID = CSSValueGujarati; 1508 m_valueID = CSSValueGujarati;
1567 break; 1509 break;
1568 case Gurmukhi: 1510 case Gurmukhi:
1569 m_value.valueID = CSSValueGurmukhi; 1511 m_valueID = CSSValueGurmukhi;
1570 break; 1512 break;
1571 case Hangul: 1513 case Hangul:
1572 m_value.valueID = CSSValueHangul; 1514 m_valueID = CSSValueHangul;
1573 break; 1515 break;
1574 case HangulConsonant: 1516 case HangulConsonant:
1575 m_value.valueID = CSSValueHangulConsonant; 1517 m_valueID = CSSValueHangulConsonant;
1576 break; 1518 break;
1577 case KoreanHangulFormal: 1519 case KoreanHangulFormal:
1578 m_value.valueID = CSSValueKoreanHangulFormal; 1520 m_valueID = CSSValueKoreanHangulFormal;
1579 break; 1521 break;
1580 case KoreanHanjaFormal: 1522 case KoreanHanjaFormal:
1581 m_value.valueID = CSSValueKoreanHanjaFormal; 1523 m_valueID = CSSValueKoreanHanjaFormal;
1582 break; 1524 break;
1583 case KoreanHanjaInformal: 1525 case KoreanHanjaInformal:
1584 m_value.valueID = CSSValueKoreanHanjaInformal; 1526 m_valueID = CSSValueKoreanHanjaInformal;
1585 break; 1527 break;
1586 case Hebrew: 1528 case Hebrew:
1587 m_value.valueID = CSSValueHebrew; 1529 m_valueID = CSSValueHebrew;
1588 break; 1530 break;
1589 case Hiragana: 1531 case Hiragana:
1590 m_value.valueID = CSSValueHiragana; 1532 m_valueID = CSSValueHiragana;
1591 break; 1533 break;
1592 case HiraganaIroha: 1534 case HiraganaIroha:
1593 m_value.valueID = CSSValueHiraganaIroha; 1535 m_valueID = CSSValueHiraganaIroha;
1594 break; 1536 break;
1595 case Kannada: 1537 case Kannada:
1596 m_value.valueID = CSSValueKannada; 1538 m_valueID = CSSValueKannada;
1597 break; 1539 break;
1598 case Katakana: 1540 case Katakana:
1599 m_value.valueID = CSSValueKatakana; 1541 m_valueID = CSSValueKatakana;
1600 break; 1542 break;
1601 case KatakanaIroha: 1543 case KatakanaIroha:
1602 m_value.valueID = CSSValueKatakanaIroha; 1544 m_valueID = CSSValueKatakanaIroha;
1603 break; 1545 break;
1604 case Khmer: 1546 case Khmer:
1605 m_value.valueID = CSSValueKhmer; 1547 m_valueID = CSSValueKhmer;
1606 break; 1548 break;
1607 case Lao: 1549 case Lao:
1608 m_value.valueID = CSSValueLao; 1550 m_valueID = CSSValueLao;
1609 break; 1551 break;
1610 case LowerAlpha: 1552 case LowerAlpha:
1611 m_value.valueID = CSSValueLowerAlpha; 1553 m_valueID = CSSValueLowerAlpha;
1612 break; 1554 break;
1613 case LowerArmenian: 1555 case LowerArmenian:
1614 m_value.valueID = CSSValueLowerArmenian; 1556 m_valueID = CSSValueLowerArmenian;
1615 break; 1557 break;
1616 case LowerGreek: 1558 case LowerGreek:
1617 m_value.valueID = CSSValueLowerGreek; 1559 m_valueID = CSSValueLowerGreek;
1618 break; 1560 break;
1619 case LowerLatin: 1561 case LowerLatin:
1620 m_value.valueID = CSSValueLowerLatin; 1562 m_valueID = CSSValueLowerLatin;
1621 break; 1563 break;
1622 case LowerRoman: 1564 case LowerRoman:
1623 m_value.valueID = CSSValueLowerRoman; 1565 m_valueID = CSSValueLowerRoman;
1624 break; 1566 break;
1625 case Malayalam: 1567 case Malayalam:
1626 m_value.valueID = CSSValueMalayalam; 1568 m_valueID = CSSValueMalayalam;
1627 break; 1569 break;
1628 case Mongolian: 1570 case Mongolian:
1629 m_value.valueID = CSSValueMongolian; 1571 m_valueID = CSSValueMongolian;
1630 break; 1572 break;
1631 case Myanmar: 1573 case Myanmar:
1632 m_value.valueID = CSSValueMyanmar; 1574 m_valueID = CSSValueMyanmar;
1633 break; 1575 break;
1634 case NoneListStyle: 1576 case NoneListStyle:
1635 m_value.valueID = CSSValueNone; 1577 m_valueID = CSSValueNone;
1636 break; 1578 break;
1637 case Oriya: 1579 case Oriya:
1638 m_value.valueID = CSSValueOriya; 1580 m_valueID = CSSValueOriya;
1639 break; 1581 break;
1640 case Persian: 1582 case Persian:
1641 m_value.valueID = CSSValuePersian; 1583 m_valueID = CSSValuePersian;
1642 break; 1584 break;
1643 case SimpChineseFormal: 1585 case SimpChineseFormal:
1644 m_value.valueID = CSSValueSimpChineseFormal; 1586 m_valueID = CSSValueSimpChineseFormal;
1645 break; 1587 break;
1646 case SimpChineseInformal: 1588 case SimpChineseInformal:
1647 m_value.valueID = CSSValueSimpChineseInformal; 1589 m_valueID = CSSValueSimpChineseInformal;
1648 break; 1590 break;
1649 case Square: 1591 case Square:
1650 m_value.valueID = CSSValueSquare; 1592 m_valueID = CSSValueSquare;
1651 break; 1593 break;
1652 case Telugu: 1594 case Telugu:
1653 m_value.valueID = CSSValueTelugu; 1595 m_valueID = CSSValueTelugu;
1654 break; 1596 break;
1655 case Thai: 1597 case Thai:
1656 m_value.valueID = CSSValueThai; 1598 m_valueID = CSSValueThai;
1657 break; 1599 break;
1658 case Tibetan: 1600 case Tibetan:
1659 m_value.valueID = CSSValueTibetan; 1601 m_valueID = CSSValueTibetan;
1660 break; 1602 break;
1661 case TradChineseFormal: 1603 case TradChineseFormal:
1662 m_value.valueID = CSSValueTradChineseFormal; 1604 m_valueID = CSSValueTradChineseFormal;
1663 break; 1605 break;
1664 case TradChineseInformal: 1606 case TradChineseInformal:
1665 m_value.valueID = CSSValueTradChineseInformal; 1607 m_valueID = CSSValueTradChineseInformal;
1666 break; 1608 break;
1667 case UpperAlpha: 1609 case UpperAlpha:
1668 m_value.valueID = CSSValueUpperAlpha; 1610 m_valueID = CSSValueUpperAlpha;
1669 break; 1611 break;
1670 case UpperArmenian: 1612 case UpperArmenian:
1671 m_value.valueID = CSSValueUpperArmenian; 1613 m_valueID = CSSValueUpperArmenian;
1672 break; 1614 break;
1673 case UpperLatin: 1615 case UpperLatin:
1674 m_value.valueID = CSSValueUpperLatin; 1616 m_valueID = CSSValueUpperLatin;
1675 break; 1617 break;
1676 case UpperRoman: 1618 case UpperRoman:
1677 m_value.valueID = CSSValueUpperRoman; 1619 m_valueID = CSSValueUpperRoman;
1678 break; 1620 break;
1679 case Urdu: 1621 case Urdu:
1680 m_value.valueID = CSSValueUrdu; 1622 m_valueID = CSSValueUrdu;
1681 break; 1623 break;
1682 } 1624 }
1683 } 1625 }
1684 1626
1685 template <> 1627 template <>
1686 inline EListStyleType CSSPrimitiveValue::convertTo() const { 1628 inline EListStyleType CSSIdentifierValue::convertTo() const {
1687 ASSERT(isValueID()); 1629 switch (m_valueID) {
1688 switch (m_value.valueID) {
1689 case CSSValueNone: 1630 case CSSValueNone:
1690 return NoneListStyle; 1631 return NoneListStyle;
1691 default: 1632 default:
1692 return static_cast<EListStyleType>(m_value.valueID - CSSValueDisc); 1633 return static_cast<EListStyleType>(m_valueID - CSSValueDisc);
1693 } 1634 }
1694 } 1635 }
1695 1636
1696 template <> 1637 template <>
1697 inline CSSPrimitiveValue::CSSPrimitiveValue(EMarginCollapse e) 1638 inline CSSIdentifierValue::CSSIdentifierValue(EMarginCollapse e)
1698 : CSSValue(PrimitiveClass) { 1639 : CSSValue(IdentifierClass) {
1699 init(UnitType::ValueID);
1700 switch (e) { 1640 switch (e) {
1701 case MarginCollapseCollapse: 1641 case MarginCollapseCollapse:
1702 m_value.valueID = CSSValueCollapse; 1642 m_valueID = CSSValueCollapse;
1703 break; 1643 break;
1704 case MarginCollapseSeparate: 1644 case MarginCollapseSeparate:
1705 m_value.valueID = CSSValueSeparate; 1645 m_valueID = CSSValueSeparate;
1706 break; 1646 break;
1707 case MarginCollapseDiscard: 1647 case MarginCollapseDiscard:
1708 m_value.valueID = CSSValueDiscard; 1648 m_valueID = CSSValueDiscard;
1709 break; 1649 break;
1710 } 1650 }
1711 } 1651 }
1712 1652
1713 template <> 1653 template <>
1714 inline EMarginCollapse CSSPrimitiveValue::convertTo() const { 1654 inline EMarginCollapse CSSIdentifierValue::convertTo() const {
1715 ASSERT(isValueID()); 1655 switch (m_valueID) {
1716 switch (m_value.valueID) {
1717 case CSSValueCollapse: 1656 case CSSValueCollapse:
1718 return MarginCollapseCollapse; 1657 return MarginCollapseCollapse;
1719 case CSSValueSeparate: 1658 case CSSValueSeparate:
1720 return MarginCollapseSeparate; 1659 return MarginCollapseSeparate;
1721 case CSSValueDiscard: 1660 case CSSValueDiscard:
1722 return MarginCollapseDiscard; 1661 return MarginCollapseDiscard;
1723 default: 1662 default:
1724 break; 1663 break;
1725 } 1664 }
1726 1665
1727 ASSERT_NOT_REACHED(); 1666 ASSERT_NOT_REACHED();
1728 return MarginCollapseCollapse; 1667 return MarginCollapseCollapse;
1729 } 1668 }
1730 1669
1731 template <> 1670 template <>
1732 inline CSSPrimitiveValue::CSSPrimitiveValue(EOverflow e) 1671 inline CSSIdentifierValue::CSSIdentifierValue(EOverflow e)
1733 : CSSValue(PrimitiveClass) { 1672 : CSSValue(IdentifierClass) {
1734 init(UnitType::ValueID);
1735 switch (e) { 1673 switch (e) {
1736 case OverflowVisible: 1674 case OverflowVisible:
1737 m_value.valueID = CSSValueVisible; 1675 m_valueID = CSSValueVisible;
1738 break; 1676 break;
1739 case OverflowHidden: 1677 case OverflowHidden:
1740 m_value.valueID = CSSValueHidden; 1678 m_valueID = CSSValueHidden;
1741 break; 1679 break;
1742 case OverflowScroll: 1680 case OverflowScroll:
1743 m_value.valueID = CSSValueScroll; 1681 m_valueID = CSSValueScroll;
1744 break; 1682 break;
1745 case OverflowAuto: 1683 case OverflowAuto:
1746 m_value.valueID = CSSValueAuto; 1684 m_valueID = CSSValueAuto;
1747 break; 1685 break;
1748 case OverflowOverlay: 1686 case OverflowOverlay:
1749 m_value.valueID = CSSValueOverlay; 1687 m_valueID = CSSValueOverlay;
1750 break; 1688 break;
1751 case OverflowPagedX: 1689 case OverflowPagedX:
1752 m_value.valueID = CSSValueWebkitPagedX; 1690 m_valueID = CSSValueWebkitPagedX;
1753 break; 1691 break;
1754 case OverflowPagedY: 1692 case OverflowPagedY:
1755 m_value.valueID = CSSValueWebkitPagedY; 1693 m_valueID = CSSValueWebkitPagedY;
1756 break; 1694 break;
1757 } 1695 }
1758 } 1696 }
1759 1697
1760 template <> 1698 template <>
1761 inline EOverflow CSSPrimitiveValue::convertTo() const { 1699 inline EOverflow CSSIdentifierValue::convertTo() const {
1762 ASSERT(isValueID()); 1700 switch (m_valueID) {
1763 switch (m_value.valueID) {
1764 case CSSValueVisible: 1701 case CSSValueVisible:
1765 return OverflowVisible; 1702 return OverflowVisible;
1766 case CSSValueHidden: 1703 case CSSValueHidden:
1767 return OverflowHidden; 1704 return OverflowHidden;
1768 case CSSValueScroll: 1705 case CSSValueScroll:
1769 return OverflowScroll; 1706 return OverflowScroll;
1770 case CSSValueAuto: 1707 case CSSValueAuto:
1771 return OverflowAuto; 1708 return OverflowAuto;
1772 case CSSValueOverlay: 1709 case CSSValueOverlay:
1773 return OverflowOverlay; 1710 return OverflowOverlay;
1774 case CSSValueWebkitPagedX: 1711 case CSSValueWebkitPagedX:
1775 return OverflowPagedX; 1712 return OverflowPagedX;
1776 case CSSValueWebkitPagedY: 1713 case CSSValueWebkitPagedY:
1777 return OverflowPagedY; 1714 return OverflowPagedY;
1778 default: 1715 default:
1779 break; 1716 break;
1780 } 1717 }
1781 1718
1782 ASSERT_NOT_REACHED(); 1719 ASSERT_NOT_REACHED();
1783 return OverflowVisible; 1720 return OverflowVisible;
1784 } 1721 }
1785 1722
1786 template <> 1723 template <>
1787 inline CSSPrimitiveValue::CSSPrimitiveValue(EBreak e) 1724 inline CSSIdentifierValue::CSSIdentifierValue(EBreak e)
1788 : CSSValue(PrimitiveClass) { 1725 : CSSValue(IdentifierClass) {
1789 init(UnitType::ValueID);
1790 switch (e) { 1726 switch (e) {
1791 default: 1727 default:
1792 ASSERT_NOT_REACHED(); 1728 ASSERT_NOT_REACHED();
1793 case BreakAuto: 1729 case BreakAuto:
1794 m_value.valueID = CSSValueAuto; 1730 m_valueID = CSSValueAuto;
1795 break; 1731 break;
1796 case BreakAlways: 1732 case BreakAlways:
1797 m_value.valueID = CSSValueAlways; 1733 m_valueID = CSSValueAlways;
1798 break; 1734 break;
1799 case BreakAvoid: 1735 case BreakAvoid:
1800 m_value.valueID = CSSValueAvoid; 1736 m_valueID = CSSValueAvoid;
1801 break; 1737 break;
1802 case BreakAvoidPage: 1738 case BreakAvoidPage:
1803 m_value.valueID = CSSValueAvoidPage; 1739 m_valueID = CSSValueAvoidPage;
1804 break; 1740 break;
1805 case BreakPage: 1741 case BreakPage:
1806 m_value.valueID = CSSValuePage; 1742 m_valueID = CSSValuePage;
1807 break; 1743 break;
1808 case BreakLeft: 1744 case BreakLeft:
1809 m_value.valueID = CSSValueLeft; 1745 m_valueID = CSSValueLeft;
1810 break; 1746 break;
1811 case BreakRight: 1747 case BreakRight:
1812 m_value.valueID = CSSValueRight; 1748 m_valueID = CSSValueRight;
1813 break; 1749 break;
1814 case BreakRecto: 1750 case BreakRecto:
1815 m_value.valueID = CSSValueRecto; 1751 m_valueID = CSSValueRecto;
1816 break; 1752 break;
1817 case BreakVerso: 1753 case BreakVerso:
1818 m_value.valueID = CSSValueVerso; 1754 m_valueID = CSSValueVerso;
1819 break; 1755 break;
1820 case BreakAvoidColumn: 1756 case BreakAvoidColumn:
1821 m_value.valueID = CSSValueAvoidColumn; 1757 m_valueID = CSSValueAvoidColumn;
1822 break; 1758 break;
1823 case BreakColumn: 1759 case BreakColumn:
1824 m_value.valueID = CSSValueColumn; 1760 m_valueID = CSSValueColumn;
1825 break; 1761 break;
1826 } 1762 }
1827 } 1763 }
1828 1764
1829 template <> 1765 template <>
1830 inline EBreak CSSPrimitiveValue::convertTo() const { 1766 inline EBreak CSSIdentifierValue::convertTo() const {
1831 ASSERT(isValueID()); 1767 switch (m_valueID) {
1832 switch (m_value.valueID) {
1833 default: 1768 default:
1834 ASSERT_NOT_REACHED(); 1769 ASSERT_NOT_REACHED();
1835 case CSSValueAuto: 1770 case CSSValueAuto:
1836 return BreakAuto; 1771 return BreakAuto;
1837 case CSSValueAvoid: 1772 case CSSValueAvoid:
1838 return BreakAvoid; 1773 return BreakAvoid;
1839 case CSSValueAlways: 1774 case CSSValueAlways:
1840 return BreakAlways; 1775 return BreakAlways;
1841 case CSSValueAvoidPage: 1776 case CSSValueAvoidPage:
1842 return BreakAvoidPage; 1777 return BreakAvoidPage;
1843 case CSSValuePage: 1778 case CSSValuePage:
1844 return BreakPage; 1779 return BreakPage;
1845 case CSSValueLeft: 1780 case CSSValueLeft:
1846 return BreakLeft; 1781 return BreakLeft;
1847 case CSSValueRight: 1782 case CSSValueRight:
1848 return BreakRight; 1783 return BreakRight;
1849 case CSSValueRecto: 1784 case CSSValueRecto:
1850 return BreakRecto; 1785 return BreakRecto;
1851 case CSSValueVerso: 1786 case CSSValueVerso:
1852 return BreakVerso; 1787 return BreakVerso;
1853 case CSSValueAvoidColumn: 1788 case CSSValueAvoidColumn:
1854 return BreakAvoidColumn; 1789 return BreakAvoidColumn;
1855 case CSSValueColumn: 1790 case CSSValueColumn:
1856 return BreakColumn; 1791 return BreakColumn;
1857 } 1792 }
1858 } 1793 }
1859 1794
1860 template <> 1795 template <>
1861 inline CSSPrimitiveValue::CSSPrimitiveValue(EPosition e) 1796 inline CSSIdentifierValue::CSSIdentifierValue(EPosition e)
1862 : CSSValue(PrimitiveClass) { 1797 : CSSValue(IdentifierClass) {
1863 init(UnitType::ValueID);
1864 switch (e) { 1798 switch (e) {
1865 case StaticPosition: 1799 case StaticPosition:
1866 m_value.valueID = CSSValueStatic; 1800 m_valueID = CSSValueStatic;
1867 break; 1801 break;
1868 case RelativePosition: 1802 case RelativePosition:
1869 m_value.valueID = CSSValueRelative; 1803 m_valueID = CSSValueRelative;
1870 break; 1804 break;
1871 case AbsolutePosition: 1805 case AbsolutePosition:
1872 m_value.valueID = CSSValueAbsolute; 1806 m_valueID = CSSValueAbsolute;
1873 break; 1807 break;
1874 case FixedPosition: 1808 case FixedPosition:
1875 m_value.valueID = CSSValueFixed; 1809 m_valueID = CSSValueFixed;
1876 break; 1810 break;
1877 case StickyPosition: 1811 case StickyPosition:
1878 m_value.valueID = CSSValueSticky; 1812 m_valueID = CSSValueSticky;
1879 break; 1813 break;
1880 } 1814 }
1881 } 1815 }
1882 1816
1883 template <> 1817 template <>
1884 inline EPosition CSSPrimitiveValue::convertTo() const { 1818 inline EPosition CSSIdentifierValue::convertTo() const {
1885 ASSERT(isValueID()); 1819 switch (m_valueID) {
1886 switch (m_value.valueID) {
1887 case CSSValueStatic: 1820 case CSSValueStatic:
1888 return StaticPosition; 1821 return StaticPosition;
1889 case CSSValueRelative: 1822 case CSSValueRelative:
1890 return RelativePosition; 1823 return RelativePosition;
1891 case CSSValueAbsolute: 1824 case CSSValueAbsolute:
1892 return AbsolutePosition; 1825 return AbsolutePosition;
1893 case CSSValueFixed: 1826 case CSSValueFixed:
1894 return FixedPosition; 1827 return FixedPosition;
1895 case CSSValueSticky: 1828 case CSSValueSticky:
1896 return StickyPosition; 1829 return StickyPosition;
1897 default: 1830 default:
1898 break; 1831 break;
1899 } 1832 }
1900 1833
1901 ASSERT_NOT_REACHED(); 1834 ASSERT_NOT_REACHED();
1902 return StaticPosition; 1835 return StaticPosition;
1903 } 1836 }
1904 1837
1905 template <> 1838 template <>
1906 inline CSSPrimitiveValue::CSSPrimitiveValue(EResize e) 1839 inline CSSIdentifierValue::CSSIdentifierValue(EResize e)
1907 : CSSValue(PrimitiveClass) { 1840 : CSSValue(IdentifierClass) {
1908 init(UnitType::ValueID);
1909 switch (e) { 1841 switch (e) {
1910 case RESIZE_BOTH: 1842 case RESIZE_BOTH:
1911 m_value.valueID = CSSValueBoth; 1843 m_valueID = CSSValueBoth;
1912 break; 1844 break;
1913 case RESIZE_HORIZONTAL: 1845 case RESIZE_HORIZONTAL:
1914 m_value.valueID = CSSValueHorizontal; 1846 m_valueID = CSSValueHorizontal;
1915 break; 1847 break;
1916 case RESIZE_VERTICAL: 1848 case RESIZE_VERTICAL:
1917 m_value.valueID = CSSValueVertical; 1849 m_valueID = CSSValueVertical;
1918 break; 1850 break;
1919 case RESIZE_NONE: 1851 case RESIZE_NONE:
1920 m_value.valueID = CSSValueNone; 1852 m_valueID = CSSValueNone;
1921 break; 1853 break;
1922 } 1854 }
1923 } 1855 }
1924 1856
1925 template <> 1857 template <>
1926 inline EResize CSSPrimitiveValue::convertTo() const { 1858 inline EResize CSSIdentifierValue::convertTo() const {
1927 ASSERT(isValueID()); 1859 switch (m_valueID) {
1928 switch (m_value.valueID) {
1929 case CSSValueBoth: 1860 case CSSValueBoth:
1930 return RESIZE_BOTH; 1861 return RESIZE_BOTH;
1931 case CSSValueHorizontal: 1862 case CSSValueHorizontal:
1932 return RESIZE_HORIZONTAL; 1863 return RESIZE_HORIZONTAL;
1933 case CSSValueVertical: 1864 case CSSValueVertical:
1934 return RESIZE_VERTICAL; 1865 return RESIZE_VERTICAL;
1935 case CSSValueAuto: 1866 case CSSValueAuto:
1936 ASSERT_NOT_REACHED(); // Depends on settings, thus should be handled by t he caller. 1867 ASSERT_NOT_REACHED(); // Depends on settings, thus should be handled by t he caller.
1937 return RESIZE_NONE; 1868 return RESIZE_NONE;
1938 case CSSValueNone: 1869 case CSSValueNone:
1939 return RESIZE_NONE; 1870 return RESIZE_NONE;
1940 default: 1871 default:
1941 break; 1872 break;
1942 } 1873 }
1943 1874
1944 ASSERT_NOT_REACHED(); 1875 ASSERT_NOT_REACHED();
1945 return RESIZE_NONE; 1876 return RESIZE_NONE;
1946 } 1877 }
1947 1878
1948 template <> 1879 template <>
1949 inline CSSPrimitiveValue::CSSPrimitiveValue(ETableLayout e) 1880 inline CSSIdentifierValue::CSSIdentifierValue(ETableLayout e)
1950 : CSSValue(PrimitiveClass) { 1881 : CSSValue(IdentifierClass) {
1951 init(UnitType::ValueID);
1952 switch (e) { 1882 switch (e) {
1953 case TableLayoutAuto: 1883 case TableLayoutAuto:
1954 m_value.valueID = CSSValueAuto; 1884 m_valueID = CSSValueAuto;
1955 break; 1885 break;
1956 case TableLayoutFixed: 1886 case TableLayoutFixed:
1957 m_value.valueID = CSSValueFixed; 1887 m_valueID = CSSValueFixed;
1958 break; 1888 break;
1959 } 1889 }
1960 } 1890 }
1961 1891
1962 template <> 1892 template <>
1963 inline ETableLayout CSSPrimitiveValue::convertTo() const { 1893 inline ETableLayout CSSIdentifierValue::convertTo() const {
1964 ASSERT(isValueID()); 1894 switch (m_valueID) {
1965 switch (m_value.valueID) {
1966 case CSSValueFixed: 1895 case CSSValueFixed:
1967 return TableLayoutFixed; 1896 return TableLayoutFixed;
1968 case CSSValueAuto: 1897 case CSSValueAuto:
1969 return TableLayoutAuto; 1898 return TableLayoutAuto;
1970 default: 1899 default:
1971 break; 1900 break;
1972 } 1901 }
1973 1902
1974 ASSERT_NOT_REACHED(); 1903 ASSERT_NOT_REACHED();
1975 return TableLayoutAuto; 1904 return TableLayoutAuto;
1976 } 1905 }
1977 1906
1978 template <> 1907 template <>
1979 inline CSSPrimitiveValue::CSSPrimitiveValue(ETextAlign e) 1908 inline CSSIdentifierValue::CSSIdentifierValue(ETextAlign e)
1980 : CSSValue(PrimitiveClass) { 1909 : CSSValue(IdentifierClass) {
1981 init(UnitType::ValueID);
1982 switch (e) { 1910 switch (e) {
1983 case TASTART: 1911 case TASTART:
1984 m_value.valueID = CSSValueStart; 1912 m_valueID = CSSValueStart;
1985 break; 1913 break;
1986 case TAEND: 1914 case TAEND:
1987 m_value.valueID = CSSValueEnd; 1915 m_valueID = CSSValueEnd;
1988 break; 1916 break;
1989 case LEFT: 1917 case LEFT:
1990 m_value.valueID = CSSValueLeft; 1918 m_valueID = CSSValueLeft;
1991 break; 1919 break;
1992 case RIGHT: 1920 case RIGHT:
1993 m_value.valueID = CSSValueRight; 1921 m_valueID = CSSValueRight;
1994 break; 1922 break;
1995 case CENTER: 1923 case CENTER:
1996 m_value.valueID = CSSValueCenter; 1924 m_valueID = CSSValueCenter;
1997 break; 1925 break;
1998 case JUSTIFY: 1926 case JUSTIFY:
1999 m_value.valueID = CSSValueJustify; 1927 m_valueID = CSSValueJustify;
2000 break; 1928 break;
2001 case WEBKIT_LEFT: 1929 case WEBKIT_LEFT:
2002 m_value.valueID = CSSValueWebkitLeft; 1930 m_valueID = CSSValueWebkitLeft;
2003 break; 1931 break;
2004 case WEBKIT_RIGHT: 1932 case WEBKIT_RIGHT:
2005 m_value.valueID = CSSValueWebkitRight; 1933 m_valueID = CSSValueWebkitRight;
2006 break; 1934 break;
2007 case WEBKIT_CENTER: 1935 case WEBKIT_CENTER:
2008 m_value.valueID = CSSValueWebkitCenter; 1936 m_valueID = CSSValueWebkitCenter;
2009 break; 1937 break;
2010 } 1938 }
2011 } 1939 }
2012 1940
2013 template <> 1941 template <>
2014 inline ETextAlign CSSPrimitiveValue::convertTo() const { 1942 inline ETextAlign CSSIdentifierValue::convertTo() const {
2015 ASSERT(isValueID()); 1943 switch (m_valueID) {
2016 switch (m_value.valueID) {
2017 case CSSValueWebkitAuto: // Legacy -webkit-auto. Eqiuvalent to start. 1944 case CSSValueWebkitAuto: // Legacy -webkit-auto. Eqiuvalent to start.
2018 case CSSValueStart: 1945 case CSSValueStart:
2019 return TASTART; 1946 return TASTART;
2020 case CSSValueEnd: 1947 case CSSValueEnd:
2021 return TAEND; 1948 return TAEND;
2022 case CSSValueInternalCenter: 1949 case CSSValueInternalCenter:
2023 return CENTER; 1950 return CENTER;
2024 default: 1951 default:
2025 return static_cast<ETextAlign>(m_value.valueID - CSSValueLeft); 1952 return static_cast<ETextAlign>(m_valueID - CSSValueLeft);
2026 } 1953 }
2027 } 1954 }
2028 1955
2029 template <> 1956 template <>
2030 inline CSSPrimitiveValue::CSSPrimitiveValue(TextAlignLast e) 1957 inline CSSIdentifierValue::CSSIdentifierValue(TextAlignLast e)
2031 : CSSValue(PrimitiveClass) { 1958 : CSSValue(IdentifierClass) {
2032 init(UnitType::ValueID);
2033 switch (e) { 1959 switch (e) {
2034 case TextAlignLastStart: 1960 case TextAlignLastStart:
2035 m_value.valueID = CSSValueStart; 1961 m_valueID = CSSValueStart;
2036 break; 1962 break;
2037 case TextAlignLastEnd: 1963 case TextAlignLastEnd:
2038 m_value.valueID = CSSValueEnd; 1964 m_valueID = CSSValueEnd;
2039 break; 1965 break;
2040 case TextAlignLastLeft: 1966 case TextAlignLastLeft:
2041 m_value.valueID = CSSValueLeft; 1967 m_valueID = CSSValueLeft;
2042 break; 1968 break;
2043 case TextAlignLastRight: 1969 case TextAlignLastRight:
2044 m_value.valueID = CSSValueRight; 1970 m_valueID = CSSValueRight;
2045 break; 1971 break;
2046 case TextAlignLastCenter: 1972 case TextAlignLastCenter:
2047 m_value.valueID = CSSValueCenter; 1973 m_valueID = CSSValueCenter;
2048 break; 1974 break;
2049 case TextAlignLastJustify: 1975 case TextAlignLastJustify:
2050 m_value.valueID = CSSValueJustify; 1976 m_valueID = CSSValueJustify;
2051 break; 1977 break;
2052 case TextAlignLastAuto: 1978 case TextAlignLastAuto:
2053 m_value.valueID = CSSValueAuto; 1979 m_valueID = CSSValueAuto;
2054 break; 1980 break;
2055 } 1981 }
2056 } 1982 }
2057 1983
2058 template <> 1984 template <>
2059 inline TextAlignLast CSSPrimitiveValue::convertTo() const { 1985 inline TextAlignLast CSSIdentifierValue::convertTo() const {
2060 ASSERT(isValueID()); 1986 switch (m_valueID) {
2061 switch (m_value.valueID) {
2062 case CSSValueAuto: 1987 case CSSValueAuto:
2063 return TextAlignLastAuto; 1988 return TextAlignLastAuto;
2064 case CSSValueStart: 1989 case CSSValueStart:
2065 return TextAlignLastStart; 1990 return TextAlignLastStart;
2066 case CSSValueEnd: 1991 case CSSValueEnd:
2067 return TextAlignLastEnd; 1992 return TextAlignLastEnd;
2068 case CSSValueLeft: 1993 case CSSValueLeft:
2069 return TextAlignLastLeft; 1994 return TextAlignLastLeft;
2070 case CSSValueRight: 1995 case CSSValueRight:
2071 return TextAlignLastRight; 1996 return TextAlignLastRight;
2072 case CSSValueCenter: 1997 case CSSValueCenter:
2073 return TextAlignLastCenter; 1998 return TextAlignLastCenter;
2074 case CSSValueJustify: 1999 case CSSValueJustify:
2075 return TextAlignLastJustify; 2000 return TextAlignLastJustify;
2076 default: 2001 default:
2077 break; 2002 break;
2078 } 2003 }
2079 2004
2080 ASSERT_NOT_REACHED(); 2005 ASSERT_NOT_REACHED();
2081 return TextAlignLastAuto; 2006 return TextAlignLastAuto;
2082 } 2007 }
2083 2008
2084 template <> 2009 template <>
2085 inline CSSPrimitiveValue::CSSPrimitiveValue(TextJustify e) 2010 inline CSSIdentifierValue::CSSIdentifierValue(TextJustify e)
2086 : CSSValue(PrimitiveClass) { 2011 : CSSValue(IdentifierClass) {
2087 init(UnitType::ValueID);
2088 switch (e) { 2012 switch (e) {
2089 case TextJustifyAuto: 2013 case TextJustifyAuto:
2090 m_value.valueID = CSSValueAuto; 2014 m_valueID = CSSValueAuto;
2091 break; 2015 break;
2092 case TextJustifyNone: 2016 case TextJustifyNone:
2093 m_value.valueID = CSSValueNone; 2017 m_valueID = CSSValueNone;
2094 break; 2018 break;
2095 case TextJustifyInterWord: 2019 case TextJustifyInterWord:
2096 m_value.valueID = CSSValueInterWord; 2020 m_valueID = CSSValueInterWord;
2097 break; 2021 break;
2098 case TextJustifyDistribute: 2022 case TextJustifyDistribute:
2099 m_value.valueID = CSSValueDistribute; 2023 m_valueID = CSSValueDistribute;
2100 break; 2024 break;
2101 } 2025 }
2102 } 2026 }
2103 2027
2104 template <> 2028 template <>
2105 inline TextJustify CSSPrimitiveValue::convertTo() const { 2029 inline TextJustify CSSIdentifierValue::convertTo() const {
2106 switch (m_value.valueID) { 2030 switch (m_valueID) {
2107 case CSSValueAuto: 2031 case CSSValueAuto:
2108 return TextJustifyAuto; 2032 return TextJustifyAuto;
2109 case CSSValueNone: 2033 case CSSValueNone:
2110 return TextJustifyNone; 2034 return TextJustifyNone;
2111 case CSSValueInterWord: 2035 case CSSValueInterWord:
2112 return TextJustifyInterWord; 2036 return TextJustifyInterWord;
2113 case CSSValueDistribute: 2037 case CSSValueDistribute:
2114 return TextJustifyDistribute; 2038 return TextJustifyDistribute;
2115 default: 2039 default:
2116 break; 2040 break;
2117 } 2041 }
2118 2042
2119 ASSERT_NOT_REACHED(); 2043 ASSERT_NOT_REACHED();
2120 return TextJustifyAuto; 2044 return TextJustifyAuto;
2121 } 2045 }
2122 2046
2123 template <> 2047 template <>
2124 inline TextDecoration CSSPrimitiveValue::convertTo() const { 2048 inline TextDecoration CSSIdentifierValue::convertTo() const {
2125 ASSERT(isValueID()); 2049 switch (m_valueID) {
2126 switch (m_value.valueID) {
2127 case CSSValueNone: 2050 case CSSValueNone:
2128 return TextDecorationNone; 2051 return TextDecorationNone;
2129 case CSSValueUnderline: 2052 case CSSValueUnderline:
2130 return TextDecorationUnderline; 2053 return TextDecorationUnderline;
2131 case CSSValueOverline: 2054 case CSSValueOverline:
2132 return TextDecorationOverline; 2055 return TextDecorationOverline;
2133 case CSSValueLineThrough: 2056 case CSSValueLineThrough:
2134 return TextDecorationLineThrough; 2057 return TextDecorationLineThrough;
2135 case CSSValueBlink: 2058 case CSSValueBlink:
2136 return TextDecorationBlink; 2059 return TextDecorationBlink;
2137 default: 2060 default:
2138 break; 2061 break;
2139 } 2062 }
2140 2063
2141 ASSERT_NOT_REACHED(); 2064 ASSERT_NOT_REACHED();
2142 return TextDecorationNone; 2065 return TextDecorationNone;
2143 } 2066 }
2144 2067
2145 template <> 2068 template <>
2146 inline TextDecorationStyle CSSPrimitiveValue::convertTo() const { 2069 inline TextDecorationStyle CSSIdentifierValue::convertTo() const {
2147 ASSERT(isValueID()); 2070 switch (m_valueID) {
2148 switch (m_value.valueID) {
2149 case CSSValueSolid: 2071 case CSSValueSolid:
2150 return TextDecorationStyleSolid; 2072 return TextDecorationStyleSolid;
2151 case CSSValueDouble: 2073 case CSSValueDouble:
2152 return TextDecorationStyleDouble; 2074 return TextDecorationStyleDouble;
2153 case CSSValueDotted: 2075 case CSSValueDotted:
2154 return TextDecorationStyleDotted; 2076 return TextDecorationStyleDotted;
2155 case CSSValueDashed: 2077 case CSSValueDashed:
2156 return TextDecorationStyleDashed; 2078 return TextDecorationStyleDashed;
2157 case CSSValueWavy: 2079 case CSSValueWavy:
2158 return TextDecorationStyleWavy; 2080 return TextDecorationStyleWavy;
2159 default: 2081 default:
2160 break; 2082 break;
2161 } 2083 }
2162 2084
2163 ASSERT_NOT_REACHED(); 2085 ASSERT_NOT_REACHED();
2164 return TextDecorationStyleSolid; 2086 return TextDecorationStyleSolid;
2165 } 2087 }
2166 2088
2167 template <> 2089 template <>
2168 inline CSSPrimitiveValue::CSSPrimitiveValue(TextUnderlinePosition e) 2090 inline CSSIdentifierValue::CSSIdentifierValue(TextUnderlinePosition e)
2169 : CSSValue(PrimitiveClass) { 2091 : CSSValue(IdentifierClass) {
2170 init(UnitType::ValueID);
2171 switch (e) { 2092 switch (e) {
2172 case TextUnderlinePositionAuto: 2093 case TextUnderlinePositionAuto:
2173 m_value.valueID = CSSValueAuto; 2094 m_valueID = CSSValueAuto;
2174 break; 2095 break;
2175 case TextUnderlinePositionUnder: 2096 case TextUnderlinePositionUnder:
2176 m_value.valueID = CSSValueUnder; 2097 m_valueID = CSSValueUnder;
2177 break; 2098 break;
2178 } 2099 }
2179 2100
2180 // FIXME: Implement support for 'under left' and 'under right' values. 2101 // FIXME: Implement support for 'under left' and 'under right' values.
2181 } 2102 }
2182 2103
2183 template <> 2104 template <>
2184 inline TextUnderlinePosition CSSPrimitiveValue::convertTo() const { 2105 inline TextUnderlinePosition CSSIdentifierValue::convertTo() const {
2185 ASSERT(isValueID()); 2106 switch (m_valueID) {
2186 switch (m_value.valueID) {
2187 case CSSValueAuto: 2107 case CSSValueAuto:
2188 return TextUnderlinePositionAuto; 2108 return TextUnderlinePositionAuto;
2189 case CSSValueUnder: 2109 case CSSValueUnder:
2190 return TextUnderlinePositionUnder; 2110 return TextUnderlinePositionUnder;
2191 default: 2111 default:
2192 break; 2112 break;
2193 } 2113 }
2194 2114
2195 // FIXME: Implement support for 'under left' and 'under right' values. 2115 // FIXME: Implement support for 'under left' and 'under right' values.
2196 2116
2197 ASSERT_NOT_REACHED(); 2117 ASSERT_NOT_REACHED();
2198 return TextUnderlinePositionAuto; 2118 return TextUnderlinePositionAuto;
2199 } 2119 }
2200 2120
2201 template <> 2121 template <>
2202 inline CSSPrimitiveValue::CSSPrimitiveValue(ETextSecurity e) 2122 inline CSSIdentifierValue::CSSIdentifierValue(ETextSecurity e)
2203 : CSSValue(PrimitiveClass) { 2123 : CSSValue(IdentifierClass) {
2204 init(UnitType::ValueID);
2205 switch (e) { 2124 switch (e) {
2206 case TSNONE: 2125 case TSNONE:
2207 m_value.valueID = CSSValueNone; 2126 m_valueID = CSSValueNone;
2208 break; 2127 break;
2209 case TSDISC: 2128 case TSDISC:
2210 m_value.valueID = CSSValueDisc; 2129 m_valueID = CSSValueDisc;
2211 break; 2130 break;
2212 case TSCIRCLE: 2131 case TSCIRCLE:
2213 m_value.valueID = CSSValueCircle; 2132 m_valueID = CSSValueCircle;
2214 break; 2133 break;
2215 case TSSQUARE: 2134 case TSSQUARE:
2216 m_value.valueID = CSSValueSquare; 2135 m_valueID = CSSValueSquare;
2217 break; 2136 break;
2218 } 2137 }
2219 } 2138 }
2220 2139
2221 template <> 2140 template <>
2222 inline ETextSecurity CSSPrimitiveValue::convertTo() const { 2141 inline ETextSecurity CSSIdentifierValue::convertTo() const {
2223 ASSERT(isValueID()); 2142 switch (m_valueID) {
2224 switch (m_value.valueID) {
2225 case CSSValueNone: 2143 case CSSValueNone:
2226 return TSNONE; 2144 return TSNONE;
2227 case CSSValueDisc: 2145 case CSSValueDisc:
2228 return TSDISC; 2146 return TSDISC;
2229 case CSSValueCircle: 2147 case CSSValueCircle:
2230 return TSCIRCLE; 2148 return TSCIRCLE;
2231 case CSSValueSquare: 2149 case CSSValueSquare:
2232 return TSSQUARE; 2150 return TSSQUARE;
2233 default: 2151 default:
2234 break; 2152 break;
2235 } 2153 }
2236 2154
2237 ASSERT_NOT_REACHED(); 2155 ASSERT_NOT_REACHED();
2238 return TSNONE; 2156 return TSNONE;
2239 } 2157 }
2240 2158
2241 template <> 2159 template <>
2242 inline CSSPrimitiveValue::CSSPrimitiveValue(ETextTransform e) 2160 inline CSSIdentifierValue::CSSIdentifierValue(ETextTransform e)
2243 : CSSValue(PrimitiveClass) { 2161 : CSSValue(IdentifierClass) {
2244 init(UnitType::ValueID);
2245 switch (e) { 2162 switch (e) {
2246 case CAPITALIZE: 2163 case CAPITALIZE:
2247 m_value.valueID = CSSValueCapitalize; 2164 m_valueID = CSSValueCapitalize;
2248 break; 2165 break;
2249 case UPPERCASE: 2166 case UPPERCASE:
2250 m_value.valueID = CSSValueUppercase; 2167 m_valueID = CSSValueUppercase;
2251 break; 2168 break;
2252 case LOWERCASE: 2169 case LOWERCASE:
2253 m_value.valueID = CSSValueLowercase; 2170 m_valueID = CSSValueLowercase;
2254 break; 2171 break;
2255 case TTNONE: 2172 case TTNONE:
2256 m_value.valueID = CSSValueNone; 2173 m_valueID = CSSValueNone;
2257 break; 2174 break;
2258 } 2175 }
2259 } 2176 }
2260 2177
2261 template <> 2178 template <>
2262 inline ETextTransform CSSPrimitiveValue::convertTo() const { 2179 inline ETextTransform CSSIdentifierValue::convertTo() const {
2263 ASSERT(isValueID()); 2180 switch (m_valueID) {
2264 switch (m_value.valueID) {
2265 case CSSValueCapitalize: 2181 case CSSValueCapitalize:
2266 return CAPITALIZE; 2182 return CAPITALIZE;
2267 case CSSValueUppercase: 2183 case CSSValueUppercase:
2268 return UPPERCASE; 2184 return UPPERCASE;
2269 case CSSValueLowercase: 2185 case CSSValueLowercase:
2270 return LOWERCASE; 2186 return LOWERCASE;
2271 case CSSValueNone: 2187 case CSSValueNone:
2272 return TTNONE; 2188 return TTNONE;
2273 default: 2189 default:
2274 break; 2190 break;
2275 } 2191 }
2276 2192
2277 ASSERT_NOT_REACHED(); 2193 ASSERT_NOT_REACHED();
2278 return TTNONE; 2194 return TTNONE;
2279 } 2195 }
2280 2196
2281 template <> 2197 template <>
2282 inline CSSPrimitiveValue::CSSPrimitiveValue(EUnicodeBidi e) 2198 inline CSSIdentifierValue::CSSIdentifierValue(EUnicodeBidi e)
2283 : CSSValue(PrimitiveClass) { 2199 : CSSValue(IdentifierClass) {
2284 init(UnitType::ValueID);
2285 switch (e) { 2200 switch (e) {
2286 case UBNormal: 2201 case UBNormal:
2287 m_value.valueID = CSSValueNormal; 2202 m_valueID = CSSValueNormal;
2288 break; 2203 break;
2289 case Embed: 2204 case Embed:
2290 m_value.valueID = CSSValueEmbed; 2205 m_valueID = CSSValueEmbed;
2291 break; 2206 break;
2292 case Override: 2207 case Override:
2293 m_value.valueID = CSSValueBidiOverride; 2208 m_valueID = CSSValueBidiOverride;
2294 break; 2209 break;
2295 case Isolate: 2210 case Isolate:
2296 m_value.valueID = CSSValueIsolate; 2211 m_valueID = CSSValueIsolate;
2297 break; 2212 break;
2298 case IsolateOverride: 2213 case IsolateOverride:
2299 m_value.valueID = CSSValueIsolateOverride; 2214 m_valueID = CSSValueIsolateOverride;
2300 break; 2215 break;
2301 case Plaintext: 2216 case Plaintext:
2302 m_value.valueID = CSSValuePlaintext; 2217 m_valueID = CSSValuePlaintext;
2303 break; 2218 break;
2304 } 2219 }
2305 } 2220 }
2306 2221
2307 template <> 2222 template <>
2308 inline EUnicodeBidi CSSPrimitiveValue::convertTo() const { 2223 inline EUnicodeBidi CSSIdentifierValue::convertTo() const {
2309 ASSERT(isValueID()); 2224 switch (m_valueID) {
2310 switch (m_value.valueID) {
2311 case CSSValueNormal: 2225 case CSSValueNormal:
2312 return UBNormal; 2226 return UBNormal;
2313 case CSSValueEmbed: 2227 case CSSValueEmbed:
2314 return Embed; 2228 return Embed;
2315 case CSSValueBidiOverride: 2229 case CSSValueBidiOverride:
2316 return Override; 2230 return Override;
2317 case CSSValueIsolate: 2231 case CSSValueIsolate:
2318 case CSSValueWebkitIsolate: 2232 case CSSValueWebkitIsolate:
2319 return Isolate; 2233 return Isolate;
2320 case CSSValueIsolateOverride: 2234 case CSSValueIsolateOverride:
2321 case CSSValueWebkitIsolateOverride: 2235 case CSSValueWebkitIsolateOverride:
2322 return IsolateOverride; 2236 return IsolateOverride;
2323 case CSSValuePlaintext: 2237 case CSSValuePlaintext:
2324 case CSSValueWebkitPlaintext: 2238 case CSSValueWebkitPlaintext:
2325 return Plaintext; 2239 return Plaintext;
2326 default: 2240 default:
2327 break; 2241 break;
2328 } 2242 }
2329 2243
2330 ASSERT_NOT_REACHED(); 2244 ASSERT_NOT_REACHED();
2331 return UBNormal; 2245 return UBNormal;
2332 } 2246 }
2333 2247
2334 template <> 2248 template <>
2335 inline CSSPrimitiveValue::CSSPrimitiveValue(EUserDrag e) 2249 inline CSSIdentifierValue::CSSIdentifierValue(EUserDrag e)
2336 : CSSValue(PrimitiveClass) { 2250 : CSSValue(IdentifierClass) {
2337 init(UnitType::ValueID);
2338 switch (e) { 2251 switch (e) {
2339 case DRAG_AUTO: 2252 case DRAG_AUTO:
2340 m_value.valueID = CSSValueAuto; 2253 m_valueID = CSSValueAuto;
2341 break; 2254 break;
2342 case DRAG_NONE: 2255 case DRAG_NONE:
2343 m_value.valueID = CSSValueNone; 2256 m_valueID = CSSValueNone;
2344 break; 2257 break;
2345 case DRAG_ELEMENT: 2258 case DRAG_ELEMENT:
2346 m_value.valueID = CSSValueElement; 2259 m_valueID = CSSValueElement;
2347 break; 2260 break;
2348 default: 2261 default:
2349 break; 2262 break;
2350 } 2263 }
2351 } 2264 }
2352 2265
2353 template <> 2266 template <>
2354 inline EUserDrag CSSPrimitiveValue::convertTo() const { 2267 inline EUserDrag CSSIdentifierValue::convertTo() const {
2355 ASSERT(isValueID()); 2268 switch (m_valueID) {
2356 switch (m_value.valueID) {
2357 case CSSValueAuto: 2269 case CSSValueAuto:
2358 return DRAG_AUTO; 2270 return DRAG_AUTO;
2359 case CSSValueNone: 2271 case CSSValueNone:
2360 return DRAG_NONE; 2272 return DRAG_NONE;
2361 case CSSValueElement: 2273 case CSSValueElement:
2362 return DRAG_ELEMENT; 2274 return DRAG_ELEMENT;
2363 default: 2275 default:
2364 break; 2276 break;
2365 } 2277 }
2366 2278
2367 ASSERT_NOT_REACHED(); 2279 ASSERT_NOT_REACHED();
2368 return DRAG_AUTO; 2280 return DRAG_AUTO;
2369 } 2281 }
2370 2282
2371 template <> 2283 template <>
2372 inline CSSPrimitiveValue::CSSPrimitiveValue(EUserModify e) 2284 inline CSSIdentifierValue::CSSIdentifierValue(EUserModify e)
2373 : CSSValue(PrimitiveClass) { 2285 : CSSValue(IdentifierClass) {
2374 init(UnitType::ValueID);
2375 switch (e) { 2286 switch (e) {
2376 case READ_ONLY: 2287 case READ_ONLY:
2377 m_value.valueID = CSSValueReadOnly; 2288 m_valueID = CSSValueReadOnly;
2378 break; 2289 break;
2379 case READ_WRITE: 2290 case READ_WRITE:
2380 m_value.valueID = CSSValueReadWrite; 2291 m_valueID = CSSValueReadWrite;
2381 break; 2292 break;
2382 case READ_WRITE_PLAINTEXT_ONLY: 2293 case READ_WRITE_PLAINTEXT_ONLY:
2383 m_value.valueID = CSSValueReadWritePlaintextOnly; 2294 m_valueID = CSSValueReadWritePlaintextOnly;
2384 break; 2295 break;
2385 } 2296 }
2386 } 2297 }
2387 2298
2388 template <> 2299 template <>
2389 inline EUserModify CSSPrimitiveValue::convertTo() const { 2300 inline EUserModify CSSIdentifierValue::convertTo() const {
2390 ASSERT(isValueID()); 2301 switch (m_valueID) {
2391 switch (m_value.valueID) {
2392 case CSSValueReadOnly: 2302 case CSSValueReadOnly:
2393 return READ_ONLY; 2303 return READ_ONLY;
2394 case CSSValueReadWrite: 2304 case CSSValueReadWrite:
2395 return READ_WRITE; 2305 return READ_WRITE;
2396 case CSSValueReadWritePlaintextOnly: 2306 case CSSValueReadWritePlaintextOnly:
2397 return READ_WRITE_PLAINTEXT_ONLY; 2307 return READ_WRITE_PLAINTEXT_ONLY;
2398 default: 2308 default:
2399 break; 2309 break;
2400 } 2310 }
2401 2311
2402 ASSERT_NOT_REACHED(); 2312 ASSERT_NOT_REACHED();
2403 return READ_ONLY; 2313 return READ_ONLY;
2404 } 2314 }
2405 2315
2406 template <> 2316 template <>
2407 inline CSSPrimitiveValue::CSSPrimitiveValue(EUserSelect e) 2317 inline CSSIdentifierValue::CSSIdentifierValue(EUserSelect e)
2408 : CSSValue(PrimitiveClass) { 2318 : CSSValue(IdentifierClass) {
2409 init(UnitType::ValueID);
2410 switch (e) { 2319 switch (e) {
2411 case SELECT_NONE: 2320 case SELECT_NONE:
2412 m_value.valueID = CSSValueNone; 2321 m_valueID = CSSValueNone;
2413 break; 2322 break;
2414 case SELECT_TEXT: 2323 case SELECT_TEXT:
2415 m_value.valueID = CSSValueText; 2324 m_valueID = CSSValueText;
2416 break; 2325 break;
2417 case SELECT_ALL: 2326 case SELECT_ALL:
2418 m_value.valueID = CSSValueAll; 2327 m_valueID = CSSValueAll;
2419 break; 2328 break;
2420 } 2329 }
2421 } 2330 }
2422 2331
2423 template <> 2332 template <>
2424 inline EUserSelect CSSPrimitiveValue::convertTo() const { 2333 inline EUserSelect CSSIdentifierValue::convertTo() const {
2425 ASSERT(isValueID()); 2334 switch (m_valueID) {
2426 switch (m_value.valueID) {
2427 case CSSValueAuto: 2335 case CSSValueAuto:
2428 return SELECT_TEXT; 2336 return SELECT_TEXT;
2429 case CSSValueNone: 2337 case CSSValueNone:
2430 return SELECT_NONE; 2338 return SELECT_NONE;
2431 case CSSValueText: 2339 case CSSValueText:
2432 return SELECT_TEXT; 2340 return SELECT_TEXT;
2433 case CSSValueAll: 2341 case CSSValueAll:
2434 return SELECT_ALL; 2342 return SELECT_ALL;
2435 default: 2343 default:
2436 break; 2344 break;
2437 } 2345 }
2438 2346
2439 ASSERT_NOT_REACHED(); 2347 ASSERT_NOT_REACHED();
2440 return SELECT_TEXT; 2348 return SELECT_TEXT;
2441 } 2349 }
2442 2350
2443 template <> 2351 template <>
2444 inline CSSPrimitiveValue::CSSPrimitiveValue(EVerticalAlign a) 2352 inline CSSIdentifierValue::CSSIdentifierValue(EVerticalAlign a)
2445 : CSSValue(PrimitiveClass) { 2353 : CSSValue(IdentifierClass) {
2446 init(UnitType::ValueID);
2447 switch (a) { 2354 switch (a) {
2448 case VerticalAlignTop: 2355 case VerticalAlignTop:
2449 m_value.valueID = CSSValueTop; 2356 m_valueID = CSSValueTop;
2450 break; 2357 break;
2451 case VerticalAlignBottom: 2358 case VerticalAlignBottom:
2452 m_value.valueID = CSSValueBottom; 2359 m_valueID = CSSValueBottom;
2453 break; 2360 break;
2454 case VerticalAlignMiddle: 2361 case VerticalAlignMiddle:
2455 m_value.valueID = CSSValueMiddle; 2362 m_valueID = CSSValueMiddle;
2456 break; 2363 break;
2457 case VerticalAlignBaseline: 2364 case VerticalAlignBaseline:
2458 m_value.valueID = CSSValueBaseline; 2365 m_valueID = CSSValueBaseline;
2459 break; 2366 break;
2460 case VerticalAlignTextBottom: 2367 case VerticalAlignTextBottom:
2461 m_value.valueID = CSSValueTextBottom; 2368 m_valueID = CSSValueTextBottom;
2462 break; 2369 break;
2463 case VerticalAlignTextTop: 2370 case VerticalAlignTextTop:
2464 m_value.valueID = CSSValueTextTop; 2371 m_valueID = CSSValueTextTop;
2465 break; 2372 break;
2466 case VerticalAlignSub: 2373 case VerticalAlignSub:
2467 m_value.valueID = CSSValueSub; 2374 m_valueID = CSSValueSub;
2468 break; 2375 break;
2469 case VerticalAlignSuper: 2376 case VerticalAlignSuper:
2470 m_value.valueID = CSSValueSuper; 2377 m_valueID = CSSValueSuper;
2471 break; 2378 break;
2472 case VerticalAlignBaselineMiddle: 2379 case VerticalAlignBaselineMiddle:
2473 m_value.valueID = CSSValueWebkitBaselineMiddle; 2380 m_valueID = CSSValueWebkitBaselineMiddle;
2474 break; 2381 break;
2475 case VerticalAlignLength: 2382 case VerticalAlignLength:
2476 m_value.valueID = CSSValueInvalid; 2383 m_valueID = CSSValueInvalid;
2477 } 2384 }
2478 } 2385 }
2479 2386
2480 template <> 2387 template <>
2481 inline EVerticalAlign CSSPrimitiveValue::convertTo() const { 2388 inline EVerticalAlign CSSIdentifierValue::convertTo() const {
2482 ASSERT(isValueID()); 2389 switch (m_valueID) {
2483 switch (m_value.valueID) {
2484 case CSSValueTop: 2390 case CSSValueTop:
2485 return VerticalAlignTop; 2391 return VerticalAlignTop;
2486 case CSSValueBottom: 2392 case CSSValueBottom:
2487 return VerticalAlignBottom; 2393 return VerticalAlignBottom;
2488 case CSSValueMiddle: 2394 case CSSValueMiddle:
2489 return VerticalAlignMiddle; 2395 return VerticalAlignMiddle;
2490 case CSSValueBaseline: 2396 case CSSValueBaseline:
2491 return VerticalAlignBaseline; 2397 return VerticalAlignBaseline;
2492 case CSSValueTextBottom: 2398 case CSSValueTextBottom:
2493 return VerticalAlignTextBottom; 2399 return VerticalAlignTextBottom;
2494 case CSSValueTextTop: 2400 case CSSValueTextTop:
2495 return VerticalAlignTextTop; 2401 return VerticalAlignTextTop;
2496 case CSSValueSub: 2402 case CSSValueSub:
2497 return VerticalAlignSub; 2403 return VerticalAlignSub;
2498 case CSSValueSuper: 2404 case CSSValueSuper:
2499 return VerticalAlignSuper; 2405 return VerticalAlignSuper;
2500 case CSSValueWebkitBaselineMiddle: 2406 case CSSValueWebkitBaselineMiddle:
2501 return VerticalAlignBaselineMiddle; 2407 return VerticalAlignBaselineMiddle;
2502 default: 2408 default:
2503 break; 2409 break;
2504 } 2410 }
2505 2411
2506 ASSERT_NOT_REACHED(); 2412 ASSERT_NOT_REACHED();
2507 return VerticalAlignTop; 2413 return VerticalAlignTop;
2508 } 2414 }
2509 2415
2510 template <> 2416 template <>
2511 inline CSSPrimitiveValue::CSSPrimitiveValue(EVisibility e) 2417 inline CSSIdentifierValue::CSSIdentifierValue(EVisibility e)
2512 : CSSValue(PrimitiveClass) { 2418 : CSSValue(IdentifierClass) {
2513 init(UnitType::ValueID);
2514 switch (e) { 2419 switch (e) {
2515 case EVisibility::Visible: 2420 case EVisibility::Visible:
2516 m_value.valueID = CSSValueVisible; 2421 m_valueID = CSSValueVisible;
2517 break; 2422 break;
2518 case EVisibility::Hidden: 2423 case EVisibility::Hidden:
2519 m_value.valueID = CSSValueHidden; 2424 m_valueID = CSSValueHidden;
2520 break; 2425 break;
2521 case EVisibility::Collapse: 2426 case EVisibility::Collapse:
2522 m_value.valueID = CSSValueCollapse; 2427 m_valueID = CSSValueCollapse;
2523 break; 2428 break;
2524 } 2429 }
2525 } 2430 }
2526 2431
2527 template <> 2432 template <>
2528 inline EVisibility CSSPrimitiveValue::convertTo() const { 2433 inline EVisibility CSSIdentifierValue::convertTo() const {
2529 ASSERT(isValueID()); 2434 switch (m_valueID) {
2530 switch (m_value.valueID) {
2531 case CSSValueHidden: 2435 case CSSValueHidden:
2532 return EVisibility::Hidden; 2436 return EVisibility::Hidden;
2533 case CSSValueVisible: 2437 case CSSValueVisible:
2534 return EVisibility::Visible; 2438 return EVisibility::Visible;
2535 case CSSValueCollapse: 2439 case CSSValueCollapse:
2536 return EVisibility::Collapse; 2440 return EVisibility::Collapse;
2537 default: 2441 default:
2538 break; 2442 break;
2539 } 2443 }
2540 2444
2541 ASSERT_NOT_REACHED(); 2445 ASSERT_NOT_REACHED();
2542 return EVisibility::Visible; 2446 return EVisibility::Visible;
2543 } 2447 }
2544 2448
2545 template <> 2449 template <>
2546 inline CSSPrimitiveValue::CSSPrimitiveValue(EWhiteSpace e) 2450 inline CSSIdentifierValue::CSSIdentifierValue(EWhiteSpace e)
2547 : CSSValue(PrimitiveClass) { 2451 : CSSValue(IdentifierClass) {
2548 init(UnitType::ValueID);
2549 switch (e) { 2452 switch (e) {
2550 case NORMAL: 2453 case NORMAL:
2551 m_value.valueID = CSSValueNormal; 2454 m_valueID = CSSValueNormal;
2552 break; 2455 break;
2553 case PRE: 2456 case PRE:
2554 m_value.valueID = CSSValuePre; 2457 m_valueID = CSSValuePre;
2555 break; 2458 break;
2556 case PRE_WRAP: 2459 case PRE_WRAP:
2557 m_value.valueID = CSSValuePreWrap; 2460 m_valueID = CSSValuePreWrap;
2558 break; 2461 break;
2559 case PRE_LINE: 2462 case PRE_LINE:
2560 m_value.valueID = CSSValuePreLine; 2463 m_valueID = CSSValuePreLine;
2561 break; 2464 break;
2562 case NOWRAP: 2465 case NOWRAP:
2563 m_value.valueID = CSSValueNowrap; 2466 m_valueID = CSSValueNowrap;
2564 break; 2467 break;
2565 case KHTML_NOWRAP: 2468 case KHTML_NOWRAP:
2566 m_value.valueID = CSSValueWebkitNowrap; 2469 m_valueID = CSSValueWebkitNowrap;
2567 break; 2470 break;
2568 } 2471 }
2569 } 2472 }
2570 2473
2571 template <> 2474 template <>
2572 inline EWhiteSpace CSSPrimitiveValue::convertTo() const { 2475 inline EWhiteSpace CSSIdentifierValue::convertTo() const {
2573 ASSERT(isValueID()); 2476 switch (m_valueID) {
2574 switch (m_value.valueID) {
2575 case CSSValueWebkitNowrap: 2477 case CSSValueWebkitNowrap:
2576 return KHTML_NOWRAP; 2478 return KHTML_NOWRAP;
2577 case CSSValueNowrap: 2479 case CSSValueNowrap:
2578 return NOWRAP; 2480 return NOWRAP;
2579 case CSSValuePre: 2481 case CSSValuePre:
2580 return PRE; 2482 return PRE;
2581 case CSSValuePreWrap: 2483 case CSSValuePreWrap:
2582 return PRE_WRAP; 2484 return PRE_WRAP;
2583 case CSSValuePreLine: 2485 case CSSValuePreLine:
2584 return PRE_LINE; 2486 return PRE_LINE;
2585 case CSSValueNormal: 2487 case CSSValueNormal:
2586 return NORMAL; 2488 return NORMAL;
2587 default: 2489 default:
2588 break; 2490 break;
2589 } 2491 }
2590 2492
2591 ASSERT_NOT_REACHED(); 2493 ASSERT_NOT_REACHED();
2592 return NORMAL; 2494 return NORMAL;
2593 } 2495 }
2594 2496
2595 template <> 2497 template <>
2596 inline CSSPrimitiveValue::CSSPrimitiveValue(EWordBreak e) 2498 inline CSSIdentifierValue::CSSIdentifierValue(EWordBreak e)
2597 : CSSValue(PrimitiveClass) { 2499 : CSSValue(IdentifierClass) {
2598 init(UnitType::ValueID);
2599 switch (e) { 2500 switch (e) {
2600 case NormalWordBreak: 2501 case NormalWordBreak:
2601 m_value.valueID = CSSValueNormal; 2502 m_valueID = CSSValueNormal;
2602 break; 2503 break;
2603 case BreakAllWordBreak: 2504 case BreakAllWordBreak:
2604 m_value.valueID = CSSValueBreakAll; 2505 m_valueID = CSSValueBreakAll;
2605 break; 2506 break;
2606 case BreakWordBreak: 2507 case BreakWordBreak:
2607 m_value.valueID = CSSValueBreakWord; 2508 m_valueID = CSSValueBreakWord;
2608 break; 2509 break;
2609 case KeepAllWordBreak: 2510 case KeepAllWordBreak:
2610 m_value.valueID = CSSValueKeepAll; 2511 m_valueID = CSSValueKeepAll;
2611 break; 2512 break;
2612 } 2513 }
2613 } 2514 }
2614 2515
2615 template <> 2516 template <>
2616 inline EWordBreak CSSPrimitiveValue::convertTo() const { 2517 inline EWordBreak CSSIdentifierValue::convertTo() const {
2617 ASSERT(isValueID()); 2518 switch (m_valueID) {
2618 switch (m_value.valueID) {
2619 case CSSValueBreakAll: 2519 case CSSValueBreakAll:
2620 return BreakAllWordBreak; 2520 return BreakAllWordBreak;
2621 case CSSValueBreakWord: 2521 case CSSValueBreakWord:
2622 return BreakWordBreak; 2522 return BreakWordBreak;
2623 case CSSValueNormal: 2523 case CSSValueNormal:
2624 return NormalWordBreak; 2524 return NormalWordBreak;
2625 case CSSValueKeepAll: 2525 case CSSValueKeepAll:
2626 return KeepAllWordBreak; 2526 return KeepAllWordBreak;
2627 default: 2527 default:
2628 break; 2528 break;
2629 } 2529 }
2630 2530
2631 ASSERT_NOT_REACHED(); 2531 ASSERT_NOT_REACHED();
2632 return NormalWordBreak; 2532 return NormalWordBreak;
2633 } 2533 }
2634 2534
2635 template <> 2535 template <>
2636 inline CSSPrimitiveValue::CSSPrimitiveValue(EOverflowAnchor e) 2536 inline CSSIdentifierValue::CSSIdentifierValue(EOverflowAnchor e)
2637 : CSSValue(PrimitiveClass) { 2537 : CSSValue(IdentifierClass) {
2638 init(UnitType::ValueID);
2639 switch (e) { 2538 switch (e) {
2640 case AnchorVisible: 2539 case AnchorVisible:
2641 m_value.valueID = CSSValueVisible; 2540 m_valueID = CSSValueVisible;
2642 break; 2541 break;
2643 case AnchorNone: 2542 case AnchorNone:
2644 m_value.valueID = CSSValueNone; 2543 m_valueID = CSSValueNone;
2645 break; 2544 break;
2646 case AnchorAuto: 2545 case AnchorAuto:
2647 m_value.valueID = CSSValueAuto; 2546 m_valueID = CSSValueAuto;
2648 break; 2547 break;
2649 } 2548 }
2650 } 2549 }
2651 2550
2652 template <> 2551 template <>
2653 inline EOverflowAnchor CSSPrimitiveValue::convertTo() const { 2552 inline EOverflowAnchor CSSIdentifierValue::convertTo() const {
2654 DCHECK(isValueID()); 2553 switch (m_valueID) {
2655 switch (m_value.valueID) {
2656 case CSSValueVisible: 2554 case CSSValueVisible:
2657 return AnchorVisible; 2555 return AnchorVisible;
2658 case CSSValueNone: 2556 case CSSValueNone:
2659 return AnchorNone; 2557 return AnchorNone;
2660 case CSSValueAuto: 2558 case CSSValueAuto:
2661 return AnchorAuto; 2559 return AnchorAuto;
2662 default: 2560 default:
2663 break; 2561 break;
2664 } 2562 }
2665 2563
2666 NOTREACHED(); 2564 NOTREACHED();
2667 return AnchorNone; 2565 return AnchorNone;
2668 } 2566 }
2669 2567
2670 template <> 2568 template <>
2671 inline CSSPrimitiveValue::CSSPrimitiveValue(EOverflowWrap e) 2569 inline CSSIdentifierValue::CSSIdentifierValue(EOverflowWrap e)
2672 : CSSValue(PrimitiveClass) { 2570 : CSSValue(IdentifierClass) {
2673 init(UnitType::ValueID);
2674 switch (e) { 2571 switch (e) {
2675 case NormalOverflowWrap: 2572 case NormalOverflowWrap:
2676 m_value.valueID = CSSValueNormal; 2573 m_valueID = CSSValueNormal;
2677 break; 2574 break;
2678 case BreakOverflowWrap: 2575 case BreakOverflowWrap:
2679 m_value.valueID = CSSValueBreakWord; 2576 m_valueID = CSSValueBreakWord;
2680 break; 2577 break;
2681 } 2578 }
2682 } 2579 }
2683 2580
2684 template <> 2581 template <>
2685 inline EOverflowWrap CSSPrimitiveValue::convertTo() const { 2582 inline EOverflowWrap CSSIdentifierValue::convertTo() const {
2686 ASSERT(isValueID()); 2583 switch (m_valueID) {
2687 switch (m_value.valueID) {
2688 case CSSValueBreakWord: 2584 case CSSValueBreakWord:
2689 return BreakOverflowWrap; 2585 return BreakOverflowWrap;
2690 case CSSValueNormal: 2586 case CSSValueNormal:
2691 return NormalOverflowWrap; 2587 return NormalOverflowWrap;
2692 default: 2588 default:
2693 break; 2589 break;
2694 } 2590 }
2695 2591
2696 ASSERT_NOT_REACHED(); 2592 ASSERT_NOT_REACHED();
2697 return NormalOverflowWrap; 2593 return NormalOverflowWrap;
2698 } 2594 }
2699 2595
2700 template <> 2596 template <>
2701 inline CSSPrimitiveValue::CSSPrimitiveValue(TextDirection e) 2597 inline CSSIdentifierValue::CSSIdentifierValue(TextDirection e)
2702 : CSSValue(PrimitiveClass) { 2598 : CSSValue(IdentifierClass) {
2703 init(UnitType::ValueID);
2704 switch (e) { 2599 switch (e) {
2705 case LTR: 2600 case LTR:
2706 m_value.valueID = CSSValueLtr; 2601 m_valueID = CSSValueLtr;
2707 break; 2602 break;
2708 case RTL: 2603 case RTL:
2709 m_value.valueID = CSSValueRtl; 2604 m_valueID = CSSValueRtl;
2710 break; 2605 break;
2711 } 2606 }
2712 } 2607 }
2713 2608
2714 template <> 2609 template <>
2715 inline TextDirection CSSPrimitiveValue::convertTo() const { 2610 inline TextDirection CSSIdentifierValue::convertTo() const {
2716 ASSERT(isValueID()); 2611 switch (m_valueID) {
2717 switch (m_value.valueID) {
2718 case CSSValueLtr: 2612 case CSSValueLtr:
2719 return LTR; 2613 return LTR;
2720 case CSSValueRtl: 2614 case CSSValueRtl:
2721 return RTL; 2615 return RTL;
2722 default: 2616 default:
2723 break; 2617 break;
2724 } 2618 }
2725 2619
2726 ASSERT_NOT_REACHED(); 2620 ASSERT_NOT_REACHED();
2727 return LTR; 2621 return LTR;
2728 } 2622 }
2729 2623
2730 template <> 2624 template <>
2731 inline CSSPrimitiveValue::CSSPrimitiveValue(WritingMode e) 2625 inline CSSIdentifierValue::CSSIdentifierValue(WritingMode e)
2732 : CSSValue(PrimitiveClass) { 2626 : CSSValue(IdentifierClass) {
2733 init(UnitType::ValueID);
2734 switch (e) { 2627 switch (e) {
2735 case TopToBottomWritingMode: 2628 case TopToBottomWritingMode:
2736 m_value.valueID = CSSValueHorizontalTb; 2629 m_valueID = CSSValueHorizontalTb;
2737 break; 2630 break;
2738 case RightToLeftWritingMode: 2631 case RightToLeftWritingMode:
2739 m_value.valueID = CSSValueVerticalRl; 2632 m_valueID = CSSValueVerticalRl;
2740 break; 2633 break;
2741 case LeftToRightWritingMode: 2634 case LeftToRightWritingMode:
2742 m_value.valueID = CSSValueVerticalLr; 2635 m_valueID = CSSValueVerticalLr;
2743 break; 2636 break;
2744 } 2637 }
2745 } 2638 }
2746 2639
2747 template <> 2640 template <>
2748 inline WritingMode CSSPrimitiveValue::convertTo() const { 2641 inline WritingMode CSSIdentifierValue::convertTo() const {
2749 ASSERT(isValueID()); 2642 switch (m_valueID) {
2750 switch (m_value.valueID) {
2751 case CSSValueHorizontalTb: 2643 case CSSValueHorizontalTb:
2752 case CSSValueLr: 2644 case CSSValueLr:
2753 case CSSValueLrTb: 2645 case CSSValueLrTb:
2754 case CSSValueRl: 2646 case CSSValueRl:
2755 case CSSValueRlTb: 2647 case CSSValueRlTb:
2756 return TopToBottomWritingMode; 2648 return TopToBottomWritingMode;
2757 case CSSValueVerticalRl: 2649 case CSSValueVerticalRl:
2758 case CSSValueTb: 2650 case CSSValueTb:
2759 case CSSValueTbRl: 2651 case CSSValueTbRl:
2760 return RightToLeftWritingMode; 2652 return RightToLeftWritingMode;
2761 case CSSValueVerticalLr: 2653 case CSSValueVerticalLr:
2762 return LeftToRightWritingMode; 2654 return LeftToRightWritingMode;
2763 default: 2655 default:
2764 break; 2656 break;
2765 } 2657 }
2766 2658
2767 ASSERT_NOT_REACHED(); 2659 ASSERT_NOT_REACHED();
2768 return TopToBottomWritingMode; 2660 return TopToBottomWritingMode;
2769 } 2661 }
2770 2662
2771 template <> 2663 template <>
2772 inline CSSPrimitiveValue::CSSPrimitiveValue(TextCombine e) 2664 inline CSSIdentifierValue::CSSIdentifierValue(TextCombine e)
2773 : CSSValue(PrimitiveClass) { 2665 : CSSValue(IdentifierClass) {
2774 init(UnitType::ValueID);
2775 switch (e) { 2666 switch (e) {
2776 case TextCombineNone: 2667 case TextCombineNone:
2777 m_value.valueID = CSSValueNone; 2668 m_valueID = CSSValueNone;
2778 break; 2669 break;
2779 case TextCombineAll: 2670 case TextCombineAll:
2780 m_value.valueID = CSSValueAll; 2671 m_valueID = CSSValueAll;
2781 break; 2672 break;
2782 } 2673 }
2783 } 2674 }
2784 2675
2785 template <> 2676 template <>
2786 inline TextCombine CSSPrimitiveValue::convertTo() const { 2677 inline TextCombine CSSIdentifierValue::convertTo() const {
2787 ASSERT(isValueID()); 2678 switch (m_valueID) {
2788 switch (m_value.valueID) {
2789 case CSSValueNone: 2679 case CSSValueNone:
2790 return TextCombineNone; 2680 return TextCombineNone;
2791 case CSSValueAll: 2681 case CSSValueAll:
2792 case CSSValueHorizontal: // -webkit-text-combine 2682 case CSSValueHorizontal: // -webkit-text-combine
2793 return TextCombineAll; 2683 return TextCombineAll;
2794 default: 2684 default:
2795 break; 2685 break;
2796 } 2686 }
2797 2687
2798 ASSERT_NOT_REACHED(); 2688 ASSERT_NOT_REACHED();
2799 return TextCombineNone; 2689 return TextCombineNone;
2800 } 2690 }
2801 2691
2802 template <> 2692 template <>
2803 inline CSSPrimitiveValue::CSSPrimitiveValue(RubyPosition position) 2693 inline CSSIdentifierValue::CSSIdentifierValue(RubyPosition position)
2804 : CSSValue(PrimitiveClass) { 2694 : CSSValue(IdentifierClass) {
2805 init(UnitType::ValueID);
2806 switch (position) { 2695 switch (position) {
2807 case RubyPositionBefore: 2696 case RubyPositionBefore:
2808 m_value.valueID = CSSValueBefore; 2697 m_valueID = CSSValueBefore;
2809 break; 2698 break;
2810 case RubyPositionAfter: 2699 case RubyPositionAfter:
2811 m_value.valueID = CSSValueAfter; 2700 m_valueID = CSSValueAfter;
2812 break; 2701 break;
2813 } 2702 }
2814 } 2703 }
2815 2704
2816 template <> 2705 template <>
2817 inline RubyPosition CSSPrimitiveValue::convertTo() const { 2706 inline RubyPosition CSSIdentifierValue::convertTo() const {
2818 ASSERT(isValueID()); 2707 switch (m_valueID) {
2819 switch (m_value.valueID) {
2820 case CSSValueBefore: 2708 case CSSValueBefore:
2821 return RubyPositionBefore; 2709 return RubyPositionBefore;
2822 case CSSValueAfter: 2710 case CSSValueAfter:
2823 return RubyPositionAfter; 2711 return RubyPositionAfter;
2824 default: 2712 default:
2825 break; 2713 break;
2826 } 2714 }
2827 2715
2828 ASSERT_NOT_REACHED(); 2716 ASSERT_NOT_REACHED();
2829 return RubyPositionBefore; 2717 return RubyPositionBefore;
2830 } 2718 }
2831 2719
2832 template <> 2720 template <>
2833 inline CSSPrimitiveValue::CSSPrimitiveValue(TextEmphasisPosition position) 2721 inline CSSIdentifierValue::CSSIdentifierValue(TextEmphasisPosition position)
2834 : CSSValue(PrimitiveClass) { 2722 : CSSValue(IdentifierClass) {
2835 init(UnitType::ValueID);
2836 switch (position) { 2723 switch (position) {
2837 case TextEmphasisPositionOver: 2724 case TextEmphasisPositionOver:
2838 m_value.valueID = CSSValueOver; 2725 m_valueID = CSSValueOver;
2839 break; 2726 break;
2840 case TextEmphasisPositionUnder: 2727 case TextEmphasisPositionUnder:
2841 m_value.valueID = CSSValueUnder; 2728 m_valueID = CSSValueUnder;
2842 break; 2729 break;
2843 } 2730 }
2844 } 2731 }
2845 2732
2846 template <> 2733 template <>
2847 inline TextEmphasisPosition CSSPrimitiveValue::convertTo() const { 2734 inline TextEmphasisPosition CSSIdentifierValue::convertTo() const {
2848 ASSERT(isValueID()); 2735 switch (m_valueID) {
2849 switch (m_value.valueID) {
2850 case CSSValueOver: 2736 case CSSValueOver:
2851 return TextEmphasisPositionOver; 2737 return TextEmphasisPositionOver;
2852 case CSSValueUnder: 2738 case CSSValueUnder:
2853 return TextEmphasisPositionUnder; 2739 return TextEmphasisPositionUnder;
2854 default: 2740 default:
2855 break; 2741 break;
2856 } 2742 }
2857 2743
2858 ASSERT_NOT_REACHED(); 2744 ASSERT_NOT_REACHED();
2859 return TextEmphasisPositionOver; 2745 return TextEmphasisPositionOver;
2860 } 2746 }
2861 2747
2862 template <> 2748 template <>
2863 inline CSSPrimitiveValue::CSSPrimitiveValue(TextOverflow overflow) 2749 inline CSSIdentifierValue::CSSIdentifierValue(TextOverflow overflow)
2864 : CSSValue(PrimitiveClass) { 2750 : CSSValue(IdentifierClass) {
2865 init(UnitType::ValueID);
2866 switch (overflow) { 2751 switch (overflow) {
2867 case TextOverflowClip: 2752 case TextOverflowClip:
2868 m_value.valueID = CSSValueClip; 2753 m_valueID = CSSValueClip;
2869 break; 2754 break;
2870 case TextOverflowEllipsis: 2755 case TextOverflowEllipsis:
2871 m_value.valueID = CSSValueEllipsis; 2756 m_valueID = CSSValueEllipsis;
2872 break; 2757 break;
2873 } 2758 }
2874 } 2759 }
2875 2760
2876 template <> 2761 template <>
2877 inline TextOverflow CSSPrimitiveValue::convertTo() const { 2762 inline TextOverflow CSSIdentifierValue::convertTo() const {
2878 ASSERT(isValueID()); 2763 switch (m_valueID) {
2879 switch (m_value.valueID) {
2880 case CSSValueClip: 2764 case CSSValueClip:
2881 return TextOverflowClip; 2765 return TextOverflowClip;
2882 case CSSValueEllipsis: 2766 case CSSValueEllipsis:
2883 return TextOverflowEllipsis; 2767 return TextOverflowEllipsis;
2884 default: 2768 default:
2885 break; 2769 break;
2886 } 2770 }
2887 2771
2888 ASSERT_NOT_REACHED(); 2772 ASSERT_NOT_REACHED();
2889 return TextOverflowClip; 2773 return TextOverflowClip;
2890 } 2774 }
2891 2775
2892 template <> 2776 template <>
2893 inline CSSPrimitiveValue::CSSPrimitiveValue(TextEmphasisFill fill) 2777 inline CSSIdentifierValue::CSSIdentifierValue(TextEmphasisFill fill)
2894 : CSSValue(PrimitiveClass) { 2778 : CSSValue(IdentifierClass) {
2895 init(UnitType::ValueID);
2896 switch (fill) { 2779 switch (fill) {
2897 case TextEmphasisFillFilled: 2780 case TextEmphasisFillFilled:
2898 m_value.valueID = CSSValueFilled; 2781 m_valueID = CSSValueFilled;
2899 break; 2782 break;
2900 case TextEmphasisFillOpen: 2783 case TextEmphasisFillOpen:
2901 m_value.valueID = CSSValueOpen; 2784 m_valueID = CSSValueOpen;
2902 break; 2785 break;
2903 } 2786 }
2904 } 2787 }
2905 2788
2906 template <> 2789 template <>
2907 inline TextEmphasisFill CSSPrimitiveValue::convertTo() const { 2790 inline TextEmphasisFill CSSIdentifierValue::convertTo() const {
2908 ASSERT(isValueID()); 2791 switch (m_valueID) {
2909 switch (m_value.valueID) {
2910 case CSSValueFilled: 2792 case CSSValueFilled:
2911 return TextEmphasisFillFilled; 2793 return TextEmphasisFillFilled;
2912 case CSSValueOpen: 2794 case CSSValueOpen:
2913 return TextEmphasisFillOpen; 2795 return TextEmphasisFillOpen;
2914 default: 2796 default:
2915 break; 2797 break;
2916 } 2798 }
2917 2799
2918 ASSERT_NOT_REACHED(); 2800 ASSERT_NOT_REACHED();
2919 return TextEmphasisFillFilled; 2801 return TextEmphasisFillFilled;
2920 } 2802 }
2921 2803
2922 template <> 2804 template <>
2923 inline CSSPrimitiveValue::CSSPrimitiveValue(TextEmphasisMark mark) 2805 inline CSSIdentifierValue::CSSIdentifierValue(TextEmphasisMark mark)
2924 : CSSValue(PrimitiveClass) { 2806 : CSSValue(IdentifierClass) {
2925 init(UnitType::ValueID);
2926 switch (mark) { 2807 switch (mark) {
2927 case TextEmphasisMarkDot: 2808 case TextEmphasisMarkDot:
2928 m_value.valueID = CSSValueDot; 2809 m_valueID = CSSValueDot;
2929 break; 2810 break;
2930 case TextEmphasisMarkCircle: 2811 case TextEmphasisMarkCircle:
2931 m_value.valueID = CSSValueCircle; 2812 m_valueID = CSSValueCircle;
2932 break; 2813 break;
2933 case TextEmphasisMarkDoubleCircle: 2814 case TextEmphasisMarkDoubleCircle:
2934 m_value.valueID = CSSValueDoubleCircle; 2815 m_valueID = CSSValueDoubleCircle;
2935 break; 2816 break;
2936 case TextEmphasisMarkTriangle: 2817 case TextEmphasisMarkTriangle:
2937 m_value.valueID = CSSValueTriangle; 2818 m_valueID = CSSValueTriangle;
2938 break; 2819 break;
2939 case TextEmphasisMarkSesame: 2820 case TextEmphasisMarkSesame:
2940 m_value.valueID = CSSValueSesame; 2821 m_valueID = CSSValueSesame;
2941 break; 2822 break;
2942 case TextEmphasisMarkNone: 2823 case TextEmphasisMarkNone:
2943 case TextEmphasisMarkAuto: 2824 case TextEmphasisMarkAuto:
2944 case TextEmphasisMarkCustom: 2825 case TextEmphasisMarkCustom:
2945 ASSERT_NOT_REACHED(); 2826 ASSERT_NOT_REACHED();
2946 m_value.valueID = CSSValueNone; 2827 m_valueID = CSSValueNone;
2947 break; 2828 break;
2948 } 2829 }
2949 } 2830 }
2950 2831
2951 template <> 2832 template <>
2952 inline TextEmphasisMark CSSPrimitiveValue::convertTo() const { 2833 inline TextEmphasisMark CSSIdentifierValue::convertTo() const {
2953 ASSERT(isValueID()); 2834 switch (m_valueID) {
2954 switch (m_value.valueID) {
2955 case CSSValueNone: 2835 case CSSValueNone:
2956 return TextEmphasisMarkNone; 2836 return TextEmphasisMarkNone;
2957 case CSSValueDot: 2837 case CSSValueDot:
2958 return TextEmphasisMarkDot; 2838 return TextEmphasisMarkDot;
2959 case CSSValueCircle: 2839 case CSSValueCircle:
2960 return TextEmphasisMarkCircle; 2840 return TextEmphasisMarkCircle;
2961 case CSSValueDoubleCircle: 2841 case CSSValueDoubleCircle:
2962 return TextEmphasisMarkDoubleCircle; 2842 return TextEmphasisMarkDoubleCircle;
2963 case CSSValueTriangle: 2843 case CSSValueTriangle:
2964 return TextEmphasisMarkTriangle; 2844 return TextEmphasisMarkTriangle;
2965 case CSSValueSesame: 2845 case CSSValueSesame:
2966 return TextEmphasisMarkSesame; 2846 return TextEmphasisMarkSesame;
2967 default: 2847 default:
2968 break; 2848 break;
2969 } 2849 }
2970 2850
2971 ASSERT_NOT_REACHED(); 2851 ASSERT_NOT_REACHED();
2972 return TextEmphasisMarkNone; 2852 return TextEmphasisMarkNone;
2973 } 2853 }
2974 2854
2975 template <> 2855 template <>
2976 inline CSSPrimitiveValue::CSSPrimitiveValue(TextOrientation e) 2856 inline CSSIdentifierValue::CSSIdentifierValue(TextOrientation e)
2977 : CSSValue(PrimitiveClass) { 2857 : CSSValue(IdentifierClass) {
2978 init(UnitType::ValueID);
2979 switch (e) { 2858 switch (e) {
2980 case TextOrientationSideways: 2859 case TextOrientationSideways:
2981 m_value.valueID = CSSValueSideways; 2860 m_valueID = CSSValueSideways;
2982 break; 2861 break;
2983 case TextOrientationMixed: 2862 case TextOrientationMixed:
2984 m_value.valueID = CSSValueMixed; 2863 m_valueID = CSSValueMixed;
2985 break; 2864 break;
2986 case TextOrientationUpright: 2865 case TextOrientationUpright:
2987 m_value.valueID = CSSValueUpright; 2866 m_valueID = CSSValueUpright;
2988 break; 2867 break;
2989 } 2868 }
2990 } 2869 }
2991 2870
2992 template <> 2871 template <>
2993 inline TextOrientation CSSPrimitiveValue::convertTo() const { 2872 inline TextOrientation CSSIdentifierValue::convertTo() const {
2994 ASSERT(isValueID()); 2873 switch (m_valueID) {
2995 switch (m_value.valueID) {
2996 case CSSValueSideways: 2874 case CSSValueSideways:
2997 case CSSValueSidewaysRight: 2875 case CSSValueSidewaysRight:
2998 return TextOrientationSideways; 2876 return TextOrientationSideways;
2999 case CSSValueMixed: 2877 case CSSValueMixed:
3000 case CSSValueVerticalRight: // -webkit-text-orientation 2878 case CSSValueVerticalRight: // -webkit-text-orientation
3001 return TextOrientationMixed; 2879 return TextOrientationMixed;
3002 case CSSValueUpright: 2880 case CSSValueUpright:
3003 return TextOrientationUpright; 2881 return TextOrientationUpright;
3004 default: 2882 default:
3005 break; 2883 break;
3006 } 2884 }
3007 2885
3008 ASSERT_NOT_REACHED(); 2886 ASSERT_NOT_REACHED();
3009 return TextOrientationMixed; 2887 return TextOrientationMixed;
3010 } 2888 }
3011 2889
3012 template <> 2890 template <>
3013 inline CSSPrimitiveValue::CSSPrimitiveValue(EPointerEvents e) 2891 inline CSSIdentifierValue::CSSIdentifierValue(EPointerEvents e)
3014 : CSSValue(PrimitiveClass) { 2892 : CSSValue(IdentifierClass) {
3015 init(UnitType::ValueID);
3016 switch (e) { 2893 switch (e) {
3017 case PE_NONE: 2894 case PE_NONE:
3018 m_value.valueID = CSSValueNone; 2895 m_valueID = CSSValueNone;
3019 break; 2896 break;
3020 case PE_STROKE: 2897 case PE_STROKE:
3021 m_value.valueID = CSSValueStroke; 2898 m_valueID = CSSValueStroke;
3022 break; 2899 break;
3023 case PE_FILL: 2900 case PE_FILL:
3024 m_value.valueID = CSSValueFill; 2901 m_valueID = CSSValueFill;
3025 break; 2902 break;
3026 case PE_PAINTED: 2903 case PE_PAINTED:
3027 m_value.valueID = CSSValuePainted; 2904 m_valueID = CSSValuePainted;
3028 break; 2905 break;
3029 case PE_VISIBLE: 2906 case PE_VISIBLE:
3030 m_value.valueID = CSSValueVisible; 2907 m_valueID = CSSValueVisible;
3031 break; 2908 break;
3032 case PE_VISIBLE_STROKE: 2909 case PE_VISIBLE_STROKE:
3033 m_value.valueID = CSSValueVisibleStroke; 2910 m_valueID = CSSValueVisibleStroke;
3034 break; 2911 break;
3035 case PE_VISIBLE_FILL: 2912 case PE_VISIBLE_FILL:
3036 m_value.valueID = CSSValueVisibleFill; 2913 m_valueID = CSSValueVisibleFill;
3037 break; 2914 break;
3038 case PE_VISIBLE_PAINTED: 2915 case PE_VISIBLE_PAINTED:
3039 m_value.valueID = CSSValueVisiblePainted; 2916 m_valueID = CSSValueVisiblePainted;
3040 break; 2917 break;
3041 case PE_AUTO: 2918 case PE_AUTO:
3042 m_value.valueID = CSSValueAuto; 2919 m_valueID = CSSValueAuto;
3043 break; 2920 break;
3044 case PE_ALL: 2921 case PE_ALL:
3045 m_value.valueID = CSSValueAll; 2922 m_valueID = CSSValueAll;
3046 break; 2923 break;
3047 case PE_BOUNDINGBOX: 2924 case PE_BOUNDINGBOX:
3048 m_value.valueID = CSSValueBoundingBox; 2925 m_valueID = CSSValueBoundingBox;
3049 break; 2926 break;
3050 } 2927 }
3051 } 2928 }
3052 2929
3053 template <> 2930 template <>
3054 inline EPointerEvents CSSPrimitiveValue::convertTo() const { 2931 inline EPointerEvents CSSIdentifierValue::convertTo() const {
3055 ASSERT(isValueID()); 2932 switch (m_valueID) {
3056 switch (m_value.valueID) {
3057 case CSSValueAll: 2933 case CSSValueAll:
3058 return PE_ALL; 2934 return PE_ALL;
3059 case CSSValueAuto: 2935 case CSSValueAuto:
3060 return PE_AUTO; 2936 return PE_AUTO;
3061 case CSSValueNone: 2937 case CSSValueNone:
3062 return PE_NONE; 2938 return PE_NONE;
3063 case CSSValueVisiblePainted: 2939 case CSSValueVisiblePainted:
3064 return PE_VISIBLE_PAINTED; 2940 return PE_VISIBLE_PAINTED;
3065 case CSSValueVisibleFill: 2941 case CSSValueVisibleFill:
3066 return PE_VISIBLE_FILL; 2942 return PE_VISIBLE_FILL;
(...skipping 11 matching lines...) Expand all
3078 return PE_BOUNDINGBOX; 2954 return PE_BOUNDINGBOX;
3079 default: 2955 default:
3080 break; 2956 break;
3081 } 2957 }
3082 2958
3083 ASSERT_NOT_REACHED(); 2959 ASSERT_NOT_REACHED();
3084 return PE_ALL; 2960 return PE_ALL;
3085 } 2961 }
3086 2962
3087 template <> 2963 template <>
3088 inline CSSPrimitiveValue::CSSPrimitiveValue(FontDescription::Kerning kerning) 2964 inline CSSIdentifierValue::CSSIdentifierValue(FontDescription::Kerning kerning)
3089 : CSSValue(PrimitiveClass) { 2965 : CSSValue(IdentifierClass) {
3090 init(UnitType::ValueID);
3091 switch (kerning) { 2966 switch (kerning) {
3092 case FontDescription::AutoKerning: 2967 case FontDescription::AutoKerning:
3093 m_value.valueID = CSSValueAuto; 2968 m_valueID = CSSValueAuto;
3094 return; 2969 return;
3095 case FontDescription::NormalKerning: 2970 case FontDescription::NormalKerning:
3096 m_value.valueID = CSSValueNormal; 2971 m_valueID = CSSValueNormal;
3097 return; 2972 return;
3098 case FontDescription::NoneKerning: 2973 case FontDescription::NoneKerning:
3099 m_value.valueID = CSSValueNone; 2974 m_valueID = CSSValueNone;
3100 return; 2975 return;
3101 } 2976 }
3102 2977
3103 ASSERT_NOT_REACHED(); 2978 ASSERT_NOT_REACHED();
3104 m_value.valueID = CSSValueAuto; 2979 m_valueID = CSSValueAuto;
3105 } 2980 }
3106 2981
3107 template <> 2982 template <>
3108 inline FontDescription::Kerning CSSPrimitiveValue::convertTo() const { 2983 inline FontDescription::Kerning CSSIdentifierValue::convertTo() const {
3109 ASSERT(isValueID()); 2984 switch (m_valueID) {
3110 switch (m_value.valueID) {
3111 case CSSValueAuto: 2985 case CSSValueAuto:
3112 return FontDescription::AutoKerning; 2986 return FontDescription::AutoKerning;
3113 case CSSValueNormal: 2987 case CSSValueNormal:
3114 return FontDescription::NormalKerning; 2988 return FontDescription::NormalKerning;
3115 case CSSValueNone: 2989 case CSSValueNone:
3116 return FontDescription::NoneKerning; 2990 return FontDescription::NoneKerning;
3117 default: 2991 default:
3118 break; 2992 break;
3119 } 2993 }
3120 2994
3121 ASSERT_NOT_REACHED(); 2995 ASSERT_NOT_REACHED();
3122 return FontDescription::AutoKerning; 2996 return FontDescription::AutoKerning;
3123 } 2997 }
3124 2998
3125 template <> 2999 template <>
3126 inline CSSPrimitiveValue::CSSPrimitiveValue(ObjectFit fit) 3000 inline CSSIdentifierValue::CSSIdentifierValue(ObjectFit fit)
3127 : CSSValue(PrimitiveClass) { 3001 : CSSValue(IdentifierClass) {
3128 init(UnitType::ValueID);
3129 switch (fit) { 3002 switch (fit) {
3130 case ObjectFitFill: 3003 case ObjectFitFill:
3131 m_value.valueID = CSSValueFill; 3004 m_valueID = CSSValueFill;
3132 break; 3005 break;
3133 case ObjectFitContain: 3006 case ObjectFitContain:
3134 m_value.valueID = CSSValueContain; 3007 m_valueID = CSSValueContain;
3135 break; 3008 break;
3136 case ObjectFitCover: 3009 case ObjectFitCover:
3137 m_value.valueID = CSSValueCover; 3010 m_valueID = CSSValueCover;
3138 break; 3011 break;
3139 case ObjectFitNone: 3012 case ObjectFitNone:
3140 m_value.valueID = CSSValueNone; 3013 m_valueID = CSSValueNone;
3141 break; 3014 break;
3142 case ObjectFitScaleDown: 3015 case ObjectFitScaleDown:
3143 m_value.valueID = CSSValueScaleDown; 3016 m_valueID = CSSValueScaleDown;
3144 break; 3017 break;
3145 } 3018 }
3146 } 3019 }
3147 3020
3148 template <> 3021 template <>
3149 inline ObjectFit CSSPrimitiveValue::convertTo() const { 3022 inline ObjectFit CSSIdentifierValue::convertTo() const {
3150 switch (m_value.valueID) { 3023 switch (m_valueID) {
3151 case CSSValueFill: 3024 case CSSValueFill:
3152 return ObjectFitFill; 3025 return ObjectFitFill;
3153 case CSSValueContain: 3026 case CSSValueContain:
3154 return ObjectFitContain; 3027 return ObjectFitContain;
3155 case CSSValueCover: 3028 case CSSValueCover:
3156 return ObjectFitCover; 3029 return ObjectFitCover;
3157 case CSSValueNone: 3030 case CSSValueNone:
3158 return ObjectFitNone; 3031 return ObjectFitNone;
3159 case CSSValueScaleDown: 3032 case CSSValueScaleDown:
3160 return ObjectFitScaleDown; 3033 return ObjectFitScaleDown;
3161 default: 3034 default:
3162 ASSERT_NOT_REACHED(); 3035 ASSERT_NOT_REACHED();
3163 return ObjectFitFill; 3036 return ObjectFitFill;
3164 } 3037 }
3165 } 3038 }
3166 3039
3167 template <> 3040 template <>
3168 inline CSSPrimitiveValue::CSSPrimitiveValue(EFillSizeType fillSize) 3041 inline CSSIdentifierValue::CSSIdentifierValue(EFillSizeType fillSize)
3169 : CSSValue(PrimitiveClass) { 3042 : CSSValue(IdentifierClass) {
3170 init(UnitType::ValueID);
3171 switch (fillSize) { 3043 switch (fillSize) {
3172 case Contain: 3044 case Contain:
3173 m_value.valueID = CSSValueContain; 3045 m_valueID = CSSValueContain;
3174 break; 3046 break;
3175 case Cover: 3047 case Cover:
3176 m_value.valueID = CSSValueCover; 3048 m_valueID = CSSValueCover;
3177 break; 3049 break;
3178 case SizeNone: 3050 case SizeNone:
3179 m_value.valueID = CSSValueNone; 3051 m_valueID = CSSValueNone;
3180 break; 3052 break;
3181 case SizeLength: 3053 case SizeLength:
3182 default: 3054 default:
3183 ASSERT_NOT_REACHED(); 3055 ASSERT_NOT_REACHED();
3184 } 3056 }
3185 } 3057 }
3186 3058
3187 template <> 3059 template <>
3188 inline CSSPrimitiveValue::CSSPrimitiveValue(FontSmoothingMode smoothing) 3060 inline CSSIdentifierValue::CSSIdentifierValue(FontSmoothingMode smoothing)
3189 : CSSValue(PrimitiveClass) { 3061 : CSSValue(IdentifierClass) {
3190 init(UnitType::ValueID);
3191 switch (smoothing) { 3062 switch (smoothing) {
3192 case AutoSmoothing: 3063 case AutoSmoothing:
3193 m_value.valueID = CSSValueAuto; 3064 m_valueID = CSSValueAuto;
3194 return; 3065 return;
3195 case NoSmoothing: 3066 case NoSmoothing:
3196 m_value.valueID = CSSValueNone; 3067 m_valueID = CSSValueNone;
3197 return; 3068 return;
3198 case Antialiased: 3069 case Antialiased:
3199 m_value.valueID = CSSValueAntialiased; 3070 m_valueID = CSSValueAntialiased;
3200 return; 3071 return;
3201 case SubpixelAntialiased: 3072 case SubpixelAntialiased:
3202 m_value.valueID = CSSValueSubpixelAntialiased; 3073 m_valueID = CSSValueSubpixelAntialiased;
3203 return; 3074 return;
3204 } 3075 }
3205 3076
3206 ASSERT_NOT_REACHED(); 3077 ASSERT_NOT_REACHED();
3207 m_value.valueID = CSSValueAuto; 3078 m_valueID = CSSValueAuto;
3208 } 3079 }
3209 3080
3210 template <> 3081 template <>
3211 inline FontSmoothingMode CSSPrimitiveValue::convertTo() const { 3082 inline FontSmoothingMode CSSIdentifierValue::convertTo() const {
3212 ASSERT(isValueID()); 3083 switch (m_valueID) {
3213 switch (m_value.valueID) {
3214 case CSSValueAuto: 3084 case CSSValueAuto:
3215 return AutoSmoothing; 3085 return AutoSmoothing;
3216 case CSSValueNone: 3086 case CSSValueNone:
3217 return NoSmoothing; 3087 return NoSmoothing;
3218 case CSSValueAntialiased: 3088 case CSSValueAntialiased:
3219 return Antialiased; 3089 return Antialiased;
3220 case CSSValueSubpixelAntialiased: 3090 case CSSValueSubpixelAntialiased:
3221 return SubpixelAntialiased; 3091 return SubpixelAntialiased;
3222 default: 3092 default:
3223 break; 3093 break;
3224 } 3094 }
3225 3095
3226 ASSERT_NOT_REACHED(); 3096 ASSERT_NOT_REACHED();
3227 return AutoSmoothing; 3097 return AutoSmoothing;
3228 } 3098 }
3229 3099
3230 template <> 3100 template <>
3231 inline CSSPrimitiveValue::CSSPrimitiveValue(FontWeight weight) 3101 inline CSSIdentifierValue::CSSIdentifierValue(FontWeight weight)
3232 : CSSValue(PrimitiveClass) { 3102 : CSSValue(IdentifierClass) {
3233 init(UnitType::ValueID);
3234 switch (weight) { 3103 switch (weight) {
3235 case FontWeight900: 3104 case FontWeight900:
3236 m_value.valueID = CSSValue900; 3105 m_valueID = CSSValue900;
3237 return; 3106 return;
3238 case FontWeight800: 3107 case FontWeight800:
3239 m_value.valueID = CSSValue800; 3108 m_valueID = CSSValue800;
3240 return; 3109 return;
3241 case FontWeight700: 3110 case FontWeight700:
3242 m_value.valueID = CSSValueBold; 3111 m_valueID = CSSValueBold;
3243 return; 3112 return;
3244 case FontWeight600: 3113 case FontWeight600:
3245 m_value.valueID = CSSValue600; 3114 m_valueID = CSSValue600;
3246 return; 3115 return;
3247 case FontWeight500: 3116 case FontWeight500:
3248 m_value.valueID = CSSValue500; 3117 m_valueID = CSSValue500;
3249 return; 3118 return;
3250 case FontWeight400: 3119 case FontWeight400:
3251 m_value.valueID = CSSValueNormal; 3120 m_valueID = CSSValueNormal;
3252 return; 3121 return;
3253 case FontWeight300: 3122 case FontWeight300:
3254 m_value.valueID = CSSValue300; 3123 m_valueID = CSSValue300;
3255 return; 3124 return;
3256 case FontWeight200: 3125 case FontWeight200:
3257 m_value.valueID = CSSValue200; 3126 m_valueID = CSSValue200;
3258 return; 3127 return;
3259 case FontWeight100: 3128 case FontWeight100:
3260 m_value.valueID = CSSValue100; 3129 m_valueID = CSSValue100;
3261 return; 3130 return;
3262 } 3131 }
3263 3132
3264 ASSERT_NOT_REACHED(); 3133 ASSERT_NOT_REACHED();
3265 m_value.valueID = CSSValueNormal; 3134 m_valueID = CSSValueNormal;
3266 } 3135 }
3267 3136
3268 template <> 3137 template <>
3269 inline FontWeight CSSPrimitiveValue::convertTo() const { 3138 inline FontWeight CSSIdentifierValue::convertTo() const {
3270 ASSERT(isValueID()); 3139 switch (m_valueID) {
3271 switch (m_value.valueID) {
3272 case CSSValueBold: 3140 case CSSValueBold:
3273 return FontWeightBold; 3141 return FontWeightBold;
3274 case CSSValueNormal: 3142 case CSSValueNormal:
3275 return FontWeightNormal; 3143 return FontWeightNormal;
3276 case CSSValue900: 3144 case CSSValue900:
3277 return FontWeight900; 3145 return FontWeight900;
3278 case CSSValue800: 3146 case CSSValue800:
3279 return FontWeight800; 3147 return FontWeight800;
3280 case CSSValue700: 3148 case CSSValue700:
3281 return FontWeight700; 3149 return FontWeight700;
(...skipping 11 matching lines...) Expand all
3293 return FontWeight100; 3161 return FontWeight100;
3294 default: 3162 default:
3295 break; 3163 break;
3296 } 3164 }
3297 3165
3298 ASSERT_NOT_REACHED(); 3166 ASSERT_NOT_REACHED();
3299 return FontWeightNormal; 3167 return FontWeightNormal;
3300 } 3168 }
3301 3169
3302 template <> 3170 template <>
3303 inline CSSPrimitiveValue::CSSPrimitiveValue(FontStyle italic) 3171 inline CSSIdentifierValue::CSSIdentifierValue(FontStyle italic)
3304 : CSSValue(PrimitiveClass) { 3172 : CSSValue(IdentifierClass) {
3305 init(UnitType::ValueID);
3306 switch (italic) { 3173 switch (italic) {
3307 case FontStyleNormal: 3174 case FontStyleNormal:
3308 m_value.valueID = CSSValueNormal; 3175 m_valueID = CSSValueNormal;
3309 return; 3176 return;
3310 case FontStyleOblique: 3177 case FontStyleOblique:
3311 m_value.valueID = CSSValueOblique; 3178 m_valueID = CSSValueOblique;
3312 return; 3179 return;
3313 case FontStyleItalic: 3180 case FontStyleItalic:
3314 m_value.valueID = CSSValueItalic; 3181 m_valueID = CSSValueItalic;
3315 return; 3182 return;
3316 } 3183 }
3317 3184
3318 ASSERT_NOT_REACHED(); 3185 ASSERT_NOT_REACHED();
3319 m_value.valueID = CSSValueNormal; 3186 m_valueID = CSSValueNormal;
3320 } 3187 }
3321 3188
3322 template <> 3189 template <>
3323 inline FontStyle CSSPrimitiveValue::convertTo() const { 3190 inline FontStyle CSSIdentifierValue::convertTo() const {
3324 ASSERT(isValueID()); 3191 switch (m_valueID) {
3325 switch (m_value.valueID) {
3326 case CSSValueOblique: 3192 case CSSValueOblique:
3327 return FontStyleOblique; 3193 return FontStyleOblique;
3328 case CSSValueItalic: 3194 case CSSValueItalic:
3329 return FontStyleItalic; 3195 return FontStyleItalic;
3330 case CSSValueNormal: 3196 case CSSValueNormal:
3331 return FontStyleNormal; 3197 return FontStyleNormal;
3332 default: 3198 default:
3333 break; 3199 break;
3334 } 3200 }
3335 ASSERT_NOT_REACHED(); 3201 ASSERT_NOT_REACHED();
3336 return FontStyleNormal; 3202 return FontStyleNormal;
3337 } 3203 }
3338 3204
3339 template <> 3205 template <>
3340 inline CSSPrimitiveValue::CSSPrimitiveValue(FontStretch stretch) 3206 inline CSSIdentifierValue::CSSIdentifierValue(FontStretch stretch)
3341 : CSSValue(PrimitiveClass) { 3207 : CSSValue(IdentifierClass) {
3342 init(UnitType::ValueID);
3343 switch (stretch) { 3208 switch (stretch) {
3344 case FontStretchUltraCondensed: 3209 case FontStretchUltraCondensed:
3345 m_value.valueID = CSSValueUltraCondensed; 3210 m_valueID = CSSValueUltraCondensed;
3346 return; 3211 return;
3347 case FontStretchExtraCondensed: 3212 case FontStretchExtraCondensed:
3348 m_value.valueID = CSSValueExtraCondensed; 3213 m_valueID = CSSValueExtraCondensed;
3349 return; 3214 return;
3350 case FontStretchCondensed: 3215 case FontStretchCondensed:
3351 m_value.valueID = CSSValueCondensed; 3216 m_valueID = CSSValueCondensed;
3352 return; 3217 return;
3353 case FontStretchSemiCondensed: 3218 case FontStretchSemiCondensed:
3354 m_value.valueID = CSSValueSemiCondensed; 3219 m_valueID = CSSValueSemiCondensed;
3355 return; 3220 return;
3356 case FontStretchNormal: 3221 case FontStretchNormal:
3357 m_value.valueID = CSSValueNormal; 3222 m_valueID = CSSValueNormal;
3358 return; 3223 return;
3359 case FontStretchSemiExpanded: 3224 case FontStretchSemiExpanded:
3360 m_value.valueID = CSSValueSemiExpanded; 3225 m_valueID = CSSValueSemiExpanded;
3361 return; 3226 return;
3362 case FontStretchExpanded: 3227 case FontStretchExpanded:
3363 m_value.valueID = CSSValueExpanded; 3228 m_valueID = CSSValueExpanded;
3364 return; 3229 return;
3365 case FontStretchExtraExpanded: 3230 case FontStretchExtraExpanded:
3366 m_value.valueID = CSSValueExtraExpanded; 3231 m_valueID = CSSValueExtraExpanded;
3367 return; 3232 return;
3368 case FontStretchUltraExpanded: 3233 case FontStretchUltraExpanded:
3369 m_value.valueID = CSSValueUltraExpanded; 3234 m_valueID = CSSValueUltraExpanded;
3370 return; 3235 return;
3371 } 3236 }
3372 3237
3373 ASSERT_NOT_REACHED(); 3238 ASSERT_NOT_REACHED();
3374 m_value.valueID = CSSValueNormal; 3239 m_valueID = CSSValueNormal;
3375 } 3240 }
3376 3241
3377 template <> 3242 template <>
3378 inline FontStretch CSSPrimitiveValue::convertTo() const { 3243 inline FontStretch CSSIdentifierValue::convertTo() const {
3379 ASSERT(isValueID()); 3244 switch (m_valueID) {
3380 switch (m_value.valueID) {
3381 case CSSValueUltraCondensed: 3245 case CSSValueUltraCondensed:
3382 return FontStretchUltraCondensed; 3246 return FontStretchUltraCondensed;
3383 case CSSValueExtraCondensed: 3247 case CSSValueExtraCondensed:
3384 return FontStretchExtraCondensed; 3248 return FontStretchExtraCondensed;
3385 case CSSValueCondensed: 3249 case CSSValueCondensed:
3386 return FontStretchCondensed; 3250 return FontStretchCondensed;
3387 case CSSValueSemiCondensed: 3251 case CSSValueSemiCondensed:
3388 return FontStretchSemiCondensed; 3252 return FontStretchSemiCondensed;
3389 case CSSValueNormal: 3253 case CSSValueNormal:
3390 return FontStretchNormal; 3254 return FontStretchNormal;
3391 case CSSValueSemiExpanded: 3255 case CSSValueSemiExpanded:
3392 return FontStretchSemiExpanded; 3256 return FontStretchSemiExpanded;
3393 case CSSValueExpanded: 3257 case CSSValueExpanded:
3394 return FontStretchExpanded; 3258 return FontStretchExpanded;
3395 case CSSValueExtraExpanded: 3259 case CSSValueExtraExpanded:
3396 return FontStretchExtraExpanded; 3260 return FontStretchExtraExpanded;
3397 case CSSValueUltraExpanded: 3261 case CSSValueUltraExpanded:
3398 return FontStretchUltraExpanded; 3262 return FontStretchUltraExpanded;
3399 default: 3263 default:
3400 break; 3264 break;
3401 } 3265 }
3402 3266
3403 ASSERT_NOT_REACHED(); 3267 ASSERT_NOT_REACHED();
3404 return FontStretchNormal; 3268 return FontStretchNormal;
3405 } 3269 }
3406 3270
3407 template <> 3271 template <>
3408 inline CSSPrimitiveValue::CSSPrimitiveValue(TextRenderingMode e) 3272 inline CSSIdentifierValue::CSSIdentifierValue(TextRenderingMode e)
3409 : CSSValue(PrimitiveClass) { 3273 : CSSValue(IdentifierClass) {
3410 init(UnitType::ValueID);
3411 switch (e) { 3274 switch (e) {
3412 case AutoTextRendering: 3275 case AutoTextRendering:
3413 m_value.valueID = CSSValueAuto; 3276 m_valueID = CSSValueAuto;
3414 break; 3277 break;
3415 case OptimizeSpeed: 3278 case OptimizeSpeed:
3416 m_value.valueID = CSSValueOptimizeSpeed; 3279 m_valueID = CSSValueOptimizeSpeed;
3417 break; 3280 break;
3418 case OptimizeLegibility: 3281 case OptimizeLegibility:
3419 m_value.valueID = CSSValueOptimizeLegibility; 3282 m_valueID = CSSValueOptimizeLegibility;
3420 break; 3283 break;
3421 case GeometricPrecision: 3284 case GeometricPrecision:
3422 m_value.valueID = CSSValueGeometricPrecision; 3285 m_valueID = CSSValueGeometricPrecision;
3423 break; 3286 break;
3424 } 3287 }
3425 } 3288 }
3426 3289
3427 template <> 3290 template <>
3428 inline TextRenderingMode CSSPrimitiveValue::convertTo() const { 3291 inline TextRenderingMode CSSIdentifierValue::convertTo() const {
3429 ASSERT(isValueID()); 3292 switch (m_valueID) {
3430 switch (m_value.valueID) {
3431 case CSSValueAuto: 3293 case CSSValueAuto:
3432 return AutoTextRendering; 3294 return AutoTextRendering;
3433 case CSSValueOptimizeSpeed: 3295 case CSSValueOptimizeSpeed:
3434 return OptimizeSpeed; 3296 return OptimizeSpeed;
3435 case CSSValueOptimizeLegibility: 3297 case CSSValueOptimizeLegibility:
3436 return OptimizeLegibility; 3298 return OptimizeLegibility;
3437 case CSSValueGeometricPrecision: 3299 case CSSValueGeometricPrecision:
3438 return GeometricPrecision; 3300 return GeometricPrecision;
3439 default: 3301 default:
3440 break; 3302 break;
3441 } 3303 }
3442 3304
3443 ASSERT_NOT_REACHED(); 3305 ASSERT_NOT_REACHED();
3444 return AutoTextRendering; 3306 return AutoTextRendering;
3445 } 3307 }
3446 3308
3447 template <> 3309 template <>
3448 inline CSSPrimitiveValue::CSSPrimitiveValue(ESpeak e) 3310 inline CSSIdentifierValue::CSSIdentifierValue(ESpeak e)
3449 : CSSValue(PrimitiveClass) { 3311 : CSSValue(IdentifierClass) {
3450 init(UnitType::ValueID);
3451 switch (e) { 3312 switch (e) {
3452 case SpeakNone: 3313 case SpeakNone:
3453 m_value.valueID = CSSValueNone; 3314 m_valueID = CSSValueNone;
3454 break; 3315 break;
3455 case SpeakNormal: 3316 case SpeakNormal:
3456 m_value.valueID = CSSValueNormal; 3317 m_valueID = CSSValueNormal;
3457 break; 3318 break;
3458 case SpeakSpellOut: 3319 case SpeakSpellOut:
3459 m_value.valueID = CSSValueSpellOut; 3320 m_valueID = CSSValueSpellOut;
3460 break; 3321 break;
3461 case SpeakDigits: 3322 case SpeakDigits:
3462 m_value.valueID = CSSValueDigits; 3323 m_valueID = CSSValueDigits;
3463 break; 3324 break;
3464 case SpeakLiteralPunctuation: 3325 case SpeakLiteralPunctuation:
3465 m_value.valueID = CSSValueLiteralPunctuation; 3326 m_valueID = CSSValueLiteralPunctuation;
3466 break; 3327 break;
3467 case SpeakNoPunctuation: 3328 case SpeakNoPunctuation:
3468 m_value.valueID = CSSValueNoPunctuation; 3329 m_valueID = CSSValueNoPunctuation;
3469 break; 3330 break;
3470 } 3331 }
3471 } 3332 }
3472 3333
3473 template <> 3334 template <>
3474 inline Order CSSPrimitiveValue::convertTo() const { 3335 inline Order CSSIdentifierValue::convertTo() const {
3475 ASSERT(isValueID()); 3336 switch (m_valueID) {
3476 switch (m_value.valueID) {
3477 case CSSValueLogical: 3337 case CSSValueLogical:
3478 return LogicalOrder; 3338 return LogicalOrder;
3479 case CSSValueVisual: 3339 case CSSValueVisual:
3480 return VisualOrder; 3340 return VisualOrder;
3481 default: 3341 default:
3482 break; 3342 break;
3483 } 3343 }
3484 3344
3485 ASSERT_NOT_REACHED(); 3345 ASSERT_NOT_REACHED();
3486 return LogicalOrder; 3346 return LogicalOrder;
3487 } 3347 }
3488 3348
3489 template <> 3349 template <>
3490 inline CSSPrimitiveValue::CSSPrimitiveValue(Order e) 3350 inline CSSIdentifierValue::CSSIdentifierValue(Order e)
3491 : CSSValue(PrimitiveClass) { 3351 : CSSValue(IdentifierClass) {
3492 init(UnitType::ValueID);
3493 switch (e) { 3352 switch (e) {
3494 case LogicalOrder: 3353 case LogicalOrder:
3495 m_value.valueID = CSSValueLogical; 3354 m_valueID = CSSValueLogical;
3496 break; 3355 break;
3497 case VisualOrder: 3356 case VisualOrder:
3498 m_value.valueID = CSSValueVisual; 3357 m_valueID = CSSValueVisual;
3499 break; 3358 break;
3500 } 3359 }
3501 } 3360 }
3502 3361
3503 template <> 3362 template <>
3504 inline ESpeak CSSPrimitiveValue::convertTo() const { 3363 inline ESpeak CSSIdentifierValue::convertTo() const {
3505 ASSERT(isValueID()); 3364 switch (m_valueID) {
3506 switch (m_value.valueID) {
3507 case CSSValueNone: 3365 case CSSValueNone:
3508 return SpeakNone; 3366 return SpeakNone;
3509 case CSSValueNormal: 3367 case CSSValueNormal:
3510 return SpeakNormal; 3368 return SpeakNormal;
3511 case CSSValueSpellOut: 3369 case CSSValueSpellOut:
3512 return SpeakSpellOut; 3370 return SpeakSpellOut;
3513 case CSSValueDigits: 3371 case CSSValueDigits:
3514 return SpeakDigits; 3372 return SpeakDigits;
3515 case CSSValueLiteralPunctuation: 3373 case CSSValueLiteralPunctuation:
3516 return SpeakLiteralPunctuation; 3374 return SpeakLiteralPunctuation;
3517 case CSSValueNoPunctuation: 3375 case CSSValueNoPunctuation:
3518 return SpeakNoPunctuation; 3376 return SpeakNoPunctuation;
3519 default: 3377 default:
3520 break; 3378 break;
3521 } 3379 }
3522 3380
3523 ASSERT_NOT_REACHED(); 3381 ASSERT_NOT_REACHED();
3524 return SpeakNormal; 3382 return SpeakNormal;
3525 } 3383 }
3526 3384
3527 template <> 3385 template <>
3528 inline CSSPrimitiveValue::CSSPrimitiveValue(WebBlendMode blendMode) 3386 inline CSSIdentifierValue::CSSIdentifierValue(WebBlendMode blendMode)
3529 : CSSValue(PrimitiveClass) { 3387 : CSSValue(IdentifierClass) {
3530 init(UnitType::ValueID);
3531 switch (blendMode) { 3388 switch (blendMode) {
3532 case WebBlendModeNormal: 3389 case WebBlendModeNormal:
3533 m_value.valueID = CSSValueNormal; 3390 m_valueID = CSSValueNormal;
3534 break; 3391 break;
3535 case WebBlendModeMultiply: 3392 case WebBlendModeMultiply:
3536 m_value.valueID = CSSValueMultiply; 3393 m_valueID = CSSValueMultiply;
3537 break; 3394 break;
3538 case WebBlendModeScreen: 3395 case WebBlendModeScreen:
3539 m_value.valueID = CSSValueScreen; 3396 m_valueID = CSSValueScreen;
3540 break; 3397 break;
3541 case WebBlendModeOverlay: 3398 case WebBlendModeOverlay:
3542 m_value.valueID = CSSValueOverlay; 3399 m_valueID = CSSValueOverlay;
3543 break; 3400 break;
3544 case WebBlendModeDarken: 3401 case WebBlendModeDarken:
3545 m_value.valueID = CSSValueDarken; 3402 m_valueID = CSSValueDarken;
3546 break; 3403 break;
3547 case WebBlendModeLighten: 3404 case WebBlendModeLighten:
3548 m_value.valueID = CSSValueLighten; 3405 m_valueID = CSSValueLighten;
3549 break; 3406 break;
3550 case WebBlendModeColorDodge: 3407 case WebBlendModeColorDodge:
3551 m_value.valueID = CSSValueColorDodge; 3408 m_valueID = CSSValueColorDodge;
3552 break; 3409 break;
3553 case WebBlendModeColorBurn: 3410 case WebBlendModeColorBurn:
3554 m_value.valueID = CSSValueColorBurn; 3411 m_valueID = CSSValueColorBurn;
3555 break; 3412 break;
3556 case WebBlendModeHardLight: 3413 case WebBlendModeHardLight:
3557 m_value.valueID = CSSValueHardLight; 3414 m_valueID = CSSValueHardLight;
3558 break; 3415 break;
3559 case WebBlendModeSoftLight: 3416 case WebBlendModeSoftLight:
3560 m_value.valueID = CSSValueSoftLight; 3417 m_valueID = CSSValueSoftLight;
3561 break; 3418 break;
3562 case WebBlendModeDifference: 3419 case WebBlendModeDifference:
3563 m_value.valueID = CSSValueDifference; 3420 m_valueID = CSSValueDifference;
3564 break; 3421 break;
3565 case WebBlendModeExclusion: 3422 case WebBlendModeExclusion:
3566 m_value.valueID = CSSValueExclusion; 3423 m_valueID = CSSValueExclusion;
3567 break; 3424 break;
3568 case WebBlendModeHue: 3425 case WebBlendModeHue:
3569 m_value.valueID = CSSValueHue; 3426 m_valueID = CSSValueHue;
3570 break; 3427 break;
3571 case WebBlendModeSaturation: 3428 case WebBlendModeSaturation:
3572 m_value.valueID = CSSValueSaturation; 3429 m_valueID = CSSValueSaturation;
3573 break; 3430 break;
3574 case WebBlendModeColor: 3431 case WebBlendModeColor:
3575 m_value.valueID = CSSValueColor; 3432 m_valueID = CSSValueColor;
3576 break; 3433 break;
3577 case WebBlendModeLuminosity: 3434 case WebBlendModeLuminosity:
3578 m_value.valueID = CSSValueLuminosity; 3435 m_valueID = CSSValueLuminosity;
3579 break; 3436 break;
3580 } 3437 }
3581 } 3438 }
3582 3439
3583 template <> 3440 template <>
3584 inline WebBlendMode CSSPrimitiveValue::convertTo() const { 3441 inline WebBlendMode CSSIdentifierValue::convertTo() const {
3585 ASSERT(isValueID()); 3442 switch (m_valueID) {
3586 switch (m_value.valueID) {
3587 case CSSValueNormal: 3443 case CSSValueNormal:
3588 return WebBlendModeNormal; 3444 return WebBlendModeNormal;
3589 case CSSValueMultiply: 3445 case CSSValueMultiply:
3590 return WebBlendModeMultiply; 3446 return WebBlendModeMultiply;
3591 case CSSValueScreen: 3447 case CSSValueScreen:
3592 return WebBlendModeScreen; 3448 return WebBlendModeScreen;
3593 case CSSValueOverlay: 3449 case CSSValueOverlay:
3594 return WebBlendModeOverlay; 3450 return WebBlendModeOverlay;
3595 case CSSValueDarken: 3451 case CSSValueDarken:
3596 return WebBlendModeDarken; 3452 return WebBlendModeDarken;
(...skipping 21 matching lines...) Expand all
3618 return WebBlendModeLuminosity; 3474 return WebBlendModeLuminosity;
3619 default: 3475 default:
3620 break; 3476 break;
3621 } 3477 }
3622 3478
3623 ASSERT_NOT_REACHED(); 3479 ASSERT_NOT_REACHED();
3624 return WebBlendModeNormal; 3480 return WebBlendModeNormal;
3625 } 3481 }
3626 3482
3627 template <> 3483 template <>
3628 inline CSSPrimitiveValue::CSSPrimitiveValue(LineCap e) 3484 inline CSSIdentifierValue::CSSIdentifierValue(LineCap e)
3629 : CSSValue(PrimitiveClass) { 3485 : CSSValue(IdentifierClass) {
3630 init(UnitType::ValueID);
3631 switch (e) { 3486 switch (e) {
3632 case ButtCap: 3487 case ButtCap:
3633 m_value.valueID = CSSValueButt; 3488 m_valueID = CSSValueButt;
3634 break; 3489 break;
3635 case RoundCap: 3490 case RoundCap:
3636 m_value.valueID = CSSValueRound; 3491 m_valueID = CSSValueRound;
3637 break; 3492 break;
3638 case SquareCap: 3493 case SquareCap:
3639 m_value.valueID = CSSValueSquare; 3494 m_valueID = CSSValueSquare;
3640 break; 3495 break;
3641 } 3496 }
3642 } 3497 }
3643 3498
3644 template <> 3499 template <>
3645 inline LineCap CSSPrimitiveValue::convertTo() const { 3500 inline LineCap CSSIdentifierValue::convertTo() const {
3646 ASSERT(isValueID()); 3501 switch (m_valueID) {
3647 switch (m_value.valueID) {
3648 case CSSValueButt: 3502 case CSSValueButt:
3649 return ButtCap; 3503 return ButtCap;
3650 case CSSValueRound: 3504 case CSSValueRound:
3651 return RoundCap; 3505 return RoundCap;
3652 case CSSValueSquare: 3506 case CSSValueSquare:
3653 return SquareCap; 3507 return SquareCap;
3654 default: 3508 default:
3655 break; 3509 break;
3656 } 3510 }
3657 3511
3658 ASSERT_NOT_REACHED(); 3512 ASSERT_NOT_REACHED();
3659 return ButtCap; 3513 return ButtCap;
3660 } 3514 }
3661 3515
3662 template <> 3516 template <>
3663 inline CSSPrimitiveValue::CSSPrimitiveValue(LineJoin e) 3517 inline CSSIdentifierValue::CSSIdentifierValue(LineJoin e)
3664 : CSSValue(PrimitiveClass) { 3518 : CSSValue(IdentifierClass) {
3665 init(UnitType::ValueID);
3666 switch (e) { 3519 switch (e) {
3667 case MiterJoin: 3520 case MiterJoin:
3668 m_value.valueID = CSSValueMiter; 3521 m_valueID = CSSValueMiter;
3669 break; 3522 break;
3670 case RoundJoin: 3523 case RoundJoin:
3671 m_value.valueID = CSSValueRound; 3524 m_valueID = CSSValueRound;
3672 break; 3525 break;
3673 case BevelJoin: 3526 case BevelJoin:
3674 m_value.valueID = CSSValueBevel; 3527 m_valueID = CSSValueBevel;
3675 break; 3528 break;
3676 } 3529 }
3677 } 3530 }
3678 3531
3679 template <> 3532 template <>
3680 inline LineJoin CSSPrimitiveValue::convertTo() const { 3533 inline LineJoin CSSIdentifierValue::convertTo() const {
3681 ASSERT(isValueID()); 3534 switch (m_valueID) {
3682 switch (m_value.valueID) {
3683 case CSSValueMiter: 3535 case CSSValueMiter:
3684 return MiterJoin; 3536 return MiterJoin;
3685 case CSSValueRound: 3537 case CSSValueRound:
3686 return RoundJoin; 3538 return RoundJoin;
3687 case CSSValueBevel: 3539 case CSSValueBevel:
3688 return BevelJoin; 3540 return BevelJoin;
3689 default: 3541 default:
3690 break; 3542 break;
3691 } 3543 }
3692 3544
3693 ASSERT_NOT_REACHED(); 3545 ASSERT_NOT_REACHED();
3694 return MiterJoin; 3546 return MiterJoin;
3695 } 3547 }
3696 3548
3697 template <> 3549 template <>
3698 inline CSSPrimitiveValue::CSSPrimitiveValue(WindRule e) 3550 inline CSSIdentifierValue::CSSIdentifierValue(WindRule e)
3699 : CSSValue(PrimitiveClass) { 3551 : CSSValue(IdentifierClass) {
3700 init(UnitType::ValueID);
3701 switch (e) { 3552 switch (e) {
3702 case RULE_NONZERO: 3553 case RULE_NONZERO:
3703 m_value.valueID = CSSValueNonzero; 3554 m_valueID = CSSValueNonzero;
3704 break; 3555 break;
3705 case RULE_EVENODD: 3556 case RULE_EVENODD:
3706 m_value.valueID = CSSValueEvenodd; 3557 m_valueID = CSSValueEvenodd;
3707 break; 3558 break;
3708 } 3559 }
3709 } 3560 }
3710 3561
3711 template <> 3562 template <>
3712 inline WindRule CSSPrimitiveValue::convertTo() const { 3563 inline WindRule CSSIdentifierValue::convertTo() const {
3713 ASSERT(isValueID()); 3564 switch (m_valueID) {
3714 switch (m_value.valueID) {
3715 case CSSValueNonzero: 3565 case CSSValueNonzero:
3716 return RULE_NONZERO; 3566 return RULE_NONZERO;
3717 case CSSValueEvenodd: 3567 case CSSValueEvenodd:
3718 return RULE_EVENODD; 3568 return RULE_EVENODD;
3719 default: 3569 default:
3720 break; 3570 break;
3721 } 3571 }
3722 3572
3723 ASSERT_NOT_REACHED(); 3573 ASSERT_NOT_REACHED();
3724 return RULE_NONZERO; 3574 return RULE_NONZERO;
3725 } 3575 }
3726 3576
3727 template <> 3577 template <>
3728 inline CSSPrimitiveValue::CSSPrimitiveValue(EAlignmentBaseline e) 3578 inline CSSIdentifierValue::CSSIdentifierValue(EAlignmentBaseline e)
3729 : CSSValue(PrimitiveClass) { 3579 : CSSValue(IdentifierClass) {
3730 init(UnitType::ValueID);
3731 switch (e) { 3580 switch (e) {
3732 case AB_AUTO: 3581 case AB_AUTO:
3733 m_value.valueID = CSSValueAuto; 3582 m_valueID = CSSValueAuto;
3734 break; 3583 break;
3735 case AB_BASELINE: 3584 case AB_BASELINE:
3736 m_value.valueID = CSSValueBaseline; 3585 m_valueID = CSSValueBaseline;
3737 break; 3586 break;
3738 case AB_BEFORE_EDGE: 3587 case AB_BEFORE_EDGE:
3739 m_value.valueID = CSSValueBeforeEdge; 3588 m_valueID = CSSValueBeforeEdge;
3740 break; 3589 break;
3741 case AB_TEXT_BEFORE_EDGE: 3590 case AB_TEXT_BEFORE_EDGE:
3742 m_value.valueID = CSSValueTextBeforeEdge; 3591 m_valueID = CSSValueTextBeforeEdge;
3743 break; 3592 break;
3744 case AB_MIDDLE: 3593 case AB_MIDDLE:
3745 m_value.valueID = CSSValueMiddle; 3594 m_valueID = CSSValueMiddle;
3746 break; 3595 break;
3747 case AB_CENTRAL: 3596 case AB_CENTRAL:
3748 m_value.valueID = CSSValueCentral; 3597 m_valueID = CSSValueCentral;
3749 break; 3598 break;
3750 case AB_AFTER_EDGE: 3599 case AB_AFTER_EDGE:
3751 m_value.valueID = CSSValueAfterEdge; 3600 m_valueID = CSSValueAfterEdge;
3752 break; 3601 break;
3753 case AB_TEXT_AFTER_EDGE: 3602 case AB_TEXT_AFTER_EDGE:
3754 m_value.valueID = CSSValueTextAfterEdge; 3603 m_valueID = CSSValueTextAfterEdge;
3755 break; 3604 break;
3756 case AB_IDEOGRAPHIC: 3605 case AB_IDEOGRAPHIC:
3757 m_value.valueID = CSSValueIdeographic; 3606 m_valueID = CSSValueIdeographic;
3758 break; 3607 break;
3759 case AB_ALPHABETIC: 3608 case AB_ALPHABETIC:
3760 m_value.valueID = CSSValueAlphabetic; 3609 m_valueID = CSSValueAlphabetic;
3761 break; 3610 break;
3762 case AB_HANGING: 3611 case AB_HANGING:
3763 m_value.valueID = CSSValueHanging; 3612 m_valueID = CSSValueHanging;
3764 break; 3613 break;
3765 case AB_MATHEMATICAL: 3614 case AB_MATHEMATICAL:
3766 m_value.valueID = CSSValueMathematical; 3615 m_valueID = CSSValueMathematical;
3767 break; 3616 break;
3768 } 3617 }
3769 } 3618 }
3770 3619
3771 template <> 3620 template <>
3772 inline EAlignmentBaseline CSSPrimitiveValue::convertTo() const { 3621 inline EAlignmentBaseline CSSIdentifierValue::convertTo() const {
3773 ASSERT(isValueID()); 3622 switch (m_valueID) {
3774 switch (m_value.valueID) {
3775 case CSSValueAuto: 3623 case CSSValueAuto:
3776 return AB_AUTO; 3624 return AB_AUTO;
3777 case CSSValueBaseline: 3625 case CSSValueBaseline:
3778 return AB_BASELINE; 3626 return AB_BASELINE;
3779 case CSSValueBeforeEdge: 3627 case CSSValueBeforeEdge:
3780 return AB_BEFORE_EDGE; 3628 return AB_BEFORE_EDGE;
3781 case CSSValueTextBeforeEdge: 3629 case CSSValueTextBeforeEdge:
3782 return AB_TEXT_BEFORE_EDGE; 3630 return AB_TEXT_BEFORE_EDGE;
3783 case CSSValueMiddle: 3631 case CSSValueMiddle:
3784 return AB_MIDDLE; 3632 return AB_MIDDLE;
(...skipping 13 matching lines...) Expand all
3798 return AB_MATHEMATICAL; 3646 return AB_MATHEMATICAL;
3799 default: 3647 default:
3800 break; 3648 break;
3801 } 3649 }
3802 3650
3803 ASSERT_NOT_REACHED(); 3651 ASSERT_NOT_REACHED();
3804 return AB_AUTO; 3652 return AB_AUTO;
3805 } 3653 }
3806 3654
3807 template <> 3655 template <>
3808 inline CSSPrimitiveValue::CSSPrimitiveValue(EBorderCollapse e) 3656 inline CSSIdentifierValue::CSSIdentifierValue(EBorderCollapse e)
3809 : CSSValue(PrimitiveClass) { 3657 : CSSValue(IdentifierClass) {
3810 init(UnitType::ValueID);
3811 switch (e) { 3658 switch (e) {
3812 case BorderCollapseSeparate: 3659 case BorderCollapseSeparate:
3813 m_value.valueID = CSSValueSeparate; 3660 m_valueID = CSSValueSeparate;
3814 break; 3661 break;
3815 case BorderCollapseCollapse: 3662 case BorderCollapseCollapse:
3816 m_value.valueID = CSSValueCollapse; 3663 m_valueID = CSSValueCollapse;
3817 break; 3664 break;
3818 } 3665 }
3819 } 3666 }
3820 3667
3821 template <> 3668 template <>
3822 inline EBorderCollapse CSSPrimitiveValue::convertTo() const { 3669 inline EBorderCollapse CSSIdentifierValue::convertTo() const {
3823 ASSERT(isValueID()); 3670 switch (m_valueID) {
3824 switch (m_value.valueID) {
3825 case CSSValueSeparate: 3671 case CSSValueSeparate:
3826 return BorderCollapseSeparate; 3672 return BorderCollapseSeparate;
3827 case CSSValueCollapse: 3673 case CSSValueCollapse:
3828 return BorderCollapseCollapse; 3674 return BorderCollapseCollapse;
3829 default: 3675 default:
3830 break; 3676 break;
3831 } 3677 }
3832 3678
3833 ASSERT_NOT_REACHED(); 3679 ASSERT_NOT_REACHED();
3834 return BorderCollapseSeparate; 3680 return BorderCollapseSeparate;
3835 } 3681 }
3836 3682
3837 template <> 3683 template <>
3838 inline CSSPrimitiveValue::CSSPrimitiveValue(EImageRendering e) 3684 inline CSSIdentifierValue::CSSIdentifierValue(EImageRendering e)
3839 : CSSValue(PrimitiveClass) { 3685 : CSSValue(IdentifierClass) {
3840 init(UnitType::ValueID);
3841 switch (e) { 3686 switch (e) {
3842 case ImageRenderingAuto: 3687 case ImageRenderingAuto:
3843 m_value.valueID = CSSValueAuto; 3688 m_valueID = CSSValueAuto;
3844 break; 3689 break;
3845 case ImageRenderingOptimizeSpeed: 3690 case ImageRenderingOptimizeSpeed:
3846 m_value.valueID = CSSValueOptimizeSpeed; 3691 m_valueID = CSSValueOptimizeSpeed;
3847 break; 3692 break;
3848 case ImageRenderingOptimizeQuality: 3693 case ImageRenderingOptimizeQuality:
3849 m_value.valueID = CSSValueOptimizeQuality; 3694 m_valueID = CSSValueOptimizeQuality;
3850 break; 3695 break;
3851 case ImageRenderingPixelated: 3696 case ImageRenderingPixelated:
3852 m_value.valueID = CSSValuePixelated; 3697 m_valueID = CSSValuePixelated;
3853 break; 3698 break;
3854 case ImageRenderingOptimizeContrast: 3699 case ImageRenderingOptimizeContrast:
3855 m_value.valueID = CSSValueWebkitOptimizeContrast; 3700 m_valueID = CSSValueWebkitOptimizeContrast;
3856 break; 3701 break;
3857 } 3702 }
3858 } 3703 }
3859 3704
3860 template <> 3705 template <>
3861 inline EImageRendering CSSPrimitiveValue::convertTo() const { 3706 inline EImageRendering CSSIdentifierValue::convertTo() const {
3862 ASSERT(isValueID()); 3707 switch (m_valueID) {
3863 switch (m_value.valueID) {
3864 case CSSValueAuto: 3708 case CSSValueAuto:
3865 return ImageRenderingAuto; 3709 return ImageRenderingAuto;
3866 case CSSValueOptimizeSpeed: 3710 case CSSValueOptimizeSpeed:
3867 return ImageRenderingOptimizeSpeed; 3711 return ImageRenderingOptimizeSpeed;
3868 case CSSValueOptimizeQuality: 3712 case CSSValueOptimizeQuality:
3869 return ImageRenderingOptimizeQuality; 3713 return ImageRenderingOptimizeQuality;
3870 case CSSValuePixelated: 3714 case CSSValuePixelated:
3871 return ImageRenderingPixelated; 3715 return ImageRenderingPixelated;
3872 case CSSValueWebkitOptimizeContrast: 3716 case CSSValueWebkitOptimizeContrast:
3873 return ImageRenderingOptimizeContrast; 3717 return ImageRenderingOptimizeContrast;
3874 default: 3718 default:
3875 break; 3719 break;
3876 } 3720 }
3877 3721
3878 ASSERT_NOT_REACHED(); 3722 ASSERT_NOT_REACHED();
3879 return ImageRenderingAuto; 3723 return ImageRenderingAuto;
3880 } 3724 }
3881 3725
3882 template <> 3726 template <>
3883 inline CSSPrimitiveValue::CSSPrimitiveValue(ETransformStyle3D e) 3727 inline CSSIdentifierValue::CSSIdentifierValue(ETransformStyle3D e)
3884 : CSSValue(PrimitiveClass) { 3728 : CSSValue(IdentifierClass) {
3885 init(UnitType::ValueID);
3886 switch (e) { 3729 switch (e) {
3887 case TransformStyle3DFlat: 3730 case TransformStyle3DFlat:
3888 m_value.valueID = CSSValueFlat; 3731 m_valueID = CSSValueFlat;
3889 break; 3732 break;
3890 case TransformStyle3DPreserve3D: 3733 case TransformStyle3DPreserve3D:
3891 m_value.valueID = CSSValuePreserve3d; 3734 m_valueID = CSSValuePreserve3d;
3892 break; 3735 break;
3893 } 3736 }
3894 } 3737 }
3895 3738
3896 template <> 3739 template <>
3897 inline ETransformStyle3D CSSPrimitiveValue::convertTo() const { 3740 inline ETransformStyle3D CSSIdentifierValue::convertTo() const {
3898 ASSERT(isValueID()); 3741 switch (m_valueID) {
3899 switch (m_value.valueID) {
3900 case CSSValueFlat: 3742 case CSSValueFlat:
3901 return TransformStyle3DFlat; 3743 return TransformStyle3DFlat;
3902 case CSSValuePreserve3d: 3744 case CSSValuePreserve3d:
3903 return TransformStyle3DPreserve3D; 3745 return TransformStyle3DPreserve3D;
3904 default: 3746 default:
3905 break; 3747 break;
3906 } 3748 }
3907 3749
3908 ASSERT_NOT_REACHED(); 3750 ASSERT_NOT_REACHED();
3909 return TransformStyle3DFlat; 3751 return TransformStyle3DFlat;
3910 } 3752 }
3911 3753
3912 template <> 3754 template <>
3913 inline CSSPrimitiveValue::CSSPrimitiveValue(EBufferedRendering e) 3755 inline CSSIdentifierValue::CSSIdentifierValue(EBufferedRendering e)
3914 : CSSValue(PrimitiveClass) { 3756 : CSSValue(IdentifierClass) {
3915 init(UnitType::ValueID);
3916 switch (e) { 3757 switch (e) {
3917 case BR_AUTO: 3758 case BR_AUTO:
3918 m_value.valueID = CSSValueAuto; 3759 m_valueID = CSSValueAuto;
3919 break; 3760 break;
3920 case BR_DYNAMIC: 3761 case BR_DYNAMIC:
3921 m_value.valueID = CSSValueDynamic; 3762 m_valueID = CSSValueDynamic;
3922 break; 3763 break;
3923 case BR_STATIC: 3764 case BR_STATIC:
3924 m_value.valueID = CSSValueStatic; 3765 m_valueID = CSSValueStatic;
3925 break; 3766 break;
3926 } 3767 }
3927 } 3768 }
3928 3769
3929 template <> 3770 template <>
3930 inline EBufferedRendering CSSPrimitiveValue::convertTo() const { 3771 inline EBufferedRendering CSSIdentifierValue::convertTo() const {
3931 ASSERT(isValueID()); 3772 switch (m_valueID) {
3932 switch (m_value.valueID) {
3933 case CSSValueAuto: 3773 case CSSValueAuto:
3934 return BR_AUTO; 3774 return BR_AUTO;
3935 case CSSValueDynamic: 3775 case CSSValueDynamic:
3936 return BR_DYNAMIC; 3776 return BR_DYNAMIC;
3937 case CSSValueStatic: 3777 case CSSValueStatic:
3938 return BR_STATIC; 3778 return BR_STATIC;
3939 default: 3779 default:
3940 break; 3780 break;
3941 } 3781 }
3942 3782
3943 ASSERT_NOT_REACHED(); 3783 ASSERT_NOT_REACHED();
3944 return BR_AUTO; 3784 return BR_AUTO;
3945 } 3785 }
3946 3786
3947 template <> 3787 template <>
3948 inline CSSPrimitiveValue::CSSPrimitiveValue(EColorInterpolation e) 3788 inline CSSIdentifierValue::CSSIdentifierValue(EColorInterpolation e)
3949 : CSSValue(PrimitiveClass) { 3789 : CSSValue(IdentifierClass) {
3950 init(UnitType::ValueID);
3951 switch (e) { 3790 switch (e) {
3952 case CI_AUTO: 3791 case CI_AUTO:
3953 m_value.valueID = CSSValueAuto; 3792 m_valueID = CSSValueAuto;
3954 break; 3793 break;
3955 case CI_SRGB: 3794 case CI_SRGB:
3956 m_value.valueID = CSSValueSRGB; 3795 m_valueID = CSSValueSRGB;
3957 break; 3796 break;
3958 case CI_LINEARRGB: 3797 case CI_LINEARRGB:
3959 m_value.valueID = CSSValueLinearRGB; 3798 m_valueID = CSSValueLinearRGB;
3960 break; 3799 break;
3961 } 3800 }
3962 } 3801 }
3963 3802
3964 template <> 3803 template <>
3965 inline EColorInterpolation CSSPrimitiveValue::convertTo() const { 3804 inline EColorInterpolation CSSIdentifierValue::convertTo() const {
3966 ASSERT(isValueID()); 3805 switch (m_valueID) {
3967 switch (m_value.valueID) {
3968 case CSSValueSRGB: 3806 case CSSValueSRGB:
3969 return CI_SRGB; 3807 return CI_SRGB;
3970 case CSSValueLinearRGB: 3808 case CSSValueLinearRGB:
3971 return CI_LINEARRGB; 3809 return CI_LINEARRGB;
3972 case CSSValueAuto: 3810 case CSSValueAuto:
3973 return CI_AUTO; 3811 return CI_AUTO;
3974 default: 3812 default:
3975 break; 3813 break;
3976 } 3814 }
3977 3815
3978 ASSERT_NOT_REACHED(); 3816 ASSERT_NOT_REACHED();
3979 return CI_AUTO; 3817 return CI_AUTO;
3980 } 3818 }
3981 3819
3982 template <> 3820 template <>
3983 inline CSSPrimitiveValue::CSSPrimitiveValue(EColorRendering e) 3821 inline CSSIdentifierValue::CSSIdentifierValue(EColorRendering e)
3984 : CSSValue(PrimitiveClass) { 3822 : CSSValue(IdentifierClass) {
3985 init(UnitType::ValueID);
3986 switch (e) { 3823 switch (e) {
3987 case CR_AUTO: 3824 case CR_AUTO:
3988 m_value.valueID = CSSValueAuto; 3825 m_valueID = CSSValueAuto;
3989 break; 3826 break;
3990 case CR_OPTIMIZESPEED: 3827 case CR_OPTIMIZESPEED:
3991 m_value.valueID = CSSValueOptimizeSpeed; 3828 m_valueID = CSSValueOptimizeSpeed;
3992 break; 3829 break;
3993 case CR_OPTIMIZEQUALITY: 3830 case CR_OPTIMIZEQUALITY:
3994 m_value.valueID = CSSValueOptimizeQuality; 3831 m_valueID = CSSValueOptimizeQuality;
3995 break; 3832 break;
3996 } 3833 }
3997 } 3834 }
3998 3835
3999 template <> 3836 template <>
4000 inline EColorRendering CSSPrimitiveValue::convertTo() const { 3837 inline EColorRendering CSSIdentifierValue::convertTo() const {
4001 ASSERT(isValueID()); 3838 switch (m_valueID) {
4002 switch (m_value.valueID) {
4003 case CSSValueOptimizeSpeed: 3839 case CSSValueOptimizeSpeed:
4004 return CR_OPTIMIZESPEED; 3840 return CR_OPTIMIZESPEED;
4005 case CSSValueOptimizeQuality: 3841 case CSSValueOptimizeQuality:
4006 return CR_OPTIMIZEQUALITY; 3842 return CR_OPTIMIZEQUALITY;
4007 case CSSValueAuto: 3843 case CSSValueAuto:
4008 return CR_AUTO; 3844 return CR_AUTO;
4009 default: 3845 default:
4010 break; 3846 break;
4011 } 3847 }
4012 3848
4013 ASSERT_NOT_REACHED(); 3849 ASSERT_NOT_REACHED();
4014 return CR_AUTO; 3850 return CR_AUTO;
4015 } 3851 }
4016 3852
4017 template <> 3853 template <>
4018 inline CSSPrimitiveValue::CSSPrimitiveValue(EDominantBaseline e) 3854 inline CSSIdentifierValue::CSSIdentifierValue(EDominantBaseline e)
4019 : CSSValue(PrimitiveClass) { 3855 : CSSValue(IdentifierClass) {
4020 init(UnitType::ValueID);
4021 switch (e) { 3856 switch (e) {
4022 case DB_AUTO: 3857 case DB_AUTO:
4023 m_value.valueID = CSSValueAuto; 3858 m_valueID = CSSValueAuto;
4024 break; 3859 break;
4025 case DB_USE_SCRIPT: 3860 case DB_USE_SCRIPT:
4026 m_value.valueID = CSSValueUseScript; 3861 m_valueID = CSSValueUseScript;
4027 break; 3862 break;
4028 case DB_NO_CHANGE: 3863 case DB_NO_CHANGE:
4029 m_value.valueID = CSSValueNoChange; 3864 m_valueID = CSSValueNoChange;
4030 break; 3865 break;
4031 case DB_RESET_SIZE: 3866 case DB_RESET_SIZE:
4032 m_value.valueID = CSSValueResetSize; 3867 m_valueID = CSSValueResetSize;
4033 break; 3868 break;
4034 case DB_CENTRAL: 3869 case DB_CENTRAL:
4035 m_value.valueID = CSSValueCentral; 3870 m_valueID = CSSValueCentral;
4036 break; 3871 break;
4037 case DB_MIDDLE: 3872 case DB_MIDDLE:
4038 m_value.valueID = CSSValueMiddle; 3873 m_valueID = CSSValueMiddle;
4039 break; 3874 break;
4040 case DB_TEXT_BEFORE_EDGE: 3875 case DB_TEXT_BEFORE_EDGE:
4041 m_value.valueID = CSSValueTextBeforeEdge; 3876 m_valueID = CSSValueTextBeforeEdge;
4042 break; 3877 break;
4043 case DB_TEXT_AFTER_EDGE: 3878 case DB_TEXT_AFTER_EDGE:
4044 m_value.valueID = CSSValueTextAfterEdge; 3879 m_valueID = CSSValueTextAfterEdge;
4045 break; 3880 break;
4046 case DB_IDEOGRAPHIC: 3881 case DB_IDEOGRAPHIC:
4047 m_value.valueID = CSSValueIdeographic; 3882 m_valueID = CSSValueIdeographic;
4048 break; 3883 break;
4049 case DB_ALPHABETIC: 3884 case DB_ALPHABETIC:
4050 m_value.valueID = CSSValueAlphabetic; 3885 m_valueID = CSSValueAlphabetic;
4051 break; 3886 break;
4052 case DB_HANGING: 3887 case DB_HANGING:
4053 m_value.valueID = CSSValueHanging; 3888 m_valueID = CSSValueHanging;
4054 break; 3889 break;
4055 case DB_MATHEMATICAL: 3890 case DB_MATHEMATICAL:
4056 m_value.valueID = CSSValueMathematical; 3891 m_valueID = CSSValueMathematical;
4057 break; 3892 break;
4058 } 3893 }
4059 } 3894 }
4060 3895
4061 template <> 3896 template <>
4062 inline EDominantBaseline CSSPrimitiveValue::convertTo() const { 3897 inline EDominantBaseline CSSIdentifierValue::convertTo() const {
4063 ASSERT(isValueID()); 3898 switch (m_valueID) {
4064 switch (m_value.valueID) {
4065 case CSSValueAuto: 3899 case CSSValueAuto:
4066 return DB_AUTO; 3900 return DB_AUTO;
4067 case CSSValueUseScript: 3901 case CSSValueUseScript:
4068 return DB_USE_SCRIPT; 3902 return DB_USE_SCRIPT;
4069 case CSSValueNoChange: 3903 case CSSValueNoChange:
4070 return DB_NO_CHANGE; 3904 return DB_NO_CHANGE;
4071 case CSSValueResetSize: 3905 case CSSValueResetSize:
4072 return DB_RESET_SIZE; 3906 return DB_RESET_SIZE;
4073 case CSSValueIdeographic: 3907 case CSSValueIdeographic:
4074 return DB_IDEOGRAPHIC; 3908 return DB_IDEOGRAPHIC;
(...skipping 13 matching lines...) Expand all
4088 return DB_TEXT_BEFORE_EDGE; 3922 return DB_TEXT_BEFORE_EDGE;
4089 default: 3923 default:
4090 break; 3924 break;
4091 } 3925 }
4092 3926
4093 ASSERT_NOT_REACHED(); 3927 ASSERT_NOT_REACHED();
4094 return DB_AUTO; 3928 return DB_AUTO;
4095 } 3929 }
4096 3930
4097 template <> 3931 template <>
4098 inline CSSPrimitiveValue::CSSPrimitiveValue(EShapeRendering e) 3932 inline CSSIdentifierValue::CSSIdentifierValue(EShapeRendering e)
4099 : CSSValue(PrimitiveClass) { 3933 : CSSValue(IdentifierClass) {
4100 init(UnitType::ValueID);
4101 switch (e) { 3934 switch (e) {
4102 case SR_AUTO: 3935 case SR_AUTO:
4103 m_value.valueID = CSSValueAuto; 3936 m_valueID = CSSValueAuto;
4104 break; 3937 break;
4105 case SR_OPTIMIZESPEED: 3938 case SR_OPTIMIZESPEED:
4106 m_value.valueID = CSSValueOptimizeSpeed; 3939 m_valueID = CSSValueOptimizeSpeed;
4107 break; 3940 break;
4108 case SR_CRISPEDGES: 3941 case SR_CRISPEDGES:
4109 m_value.valueID = CSSValueCrispEdges; 3942 m_valueID = CSSValueCrispEdges;
4110 break; 3943 break;
4111 case SR_GEOMETRICPRECISION: 3944 case SR_GEOMETRICPRECISION:
4112 m_value.valueID = CSSValueGeometricPrecision; 3945 m_valueID = CSSValueGeometricPrecision;
4113 break; 3946 break;
4114 } 3947 }
4115 } 3948 }
4116 3949
4117 template <> 3950 template <>
4118 inline EShapeRendering CSSPrimitiveValue::convertTo() const { 3951 inline EShapeRendering CSSIdentifierValue::convertTo() const {
4119 ASSERT(isValueID()); 3952 switch (m_valueID) {
4120 switch (m_value.valueID) {
4121 case CSSValueAuto: 3953 case CSSValueAuto:
4122 return SR_AUTO; 3954 return SR_AUTO;
4123 case CSSValueOptimizeSpeed: 3955 case CSSValueOptimizeSpeed:
4124 return SR_OPTIMIZESPEED; 3956 return SR_OPTIMIZESPEED;
4125 case CSSValueCrispEdges: 3957 case CSSValueCrispEdges:
4126 return SR_CRISPEDGES; 3958 return SR_CRISPEDGES;
4127 case CSSValueGeometricPrecision: 3959 case CSSValueGeometricPrecision:
4128 return SR_GEOMETRICPRECISION; 3960 return SR_GEOMETRICPRECISION;
4129 default: 3961 default:
4130 break; 3962 break;
4131 } 3963 }
4132 3964
4133 ASSERT_NOT_REACHED(); 3965 ASSERT_NOT_REACHED();
4134 return SR_AUTO; 3966 return SR_AUTO;
4135 } 3967 }
4136 3968
4137 template <> 3969 template <>
4138 inline CSSPrimitiveValue::CSSPrimitiveValue(ETextAnchor e) 3970 inline CSSIdentifierValue::CSSIdentifierValue(ETextAnchor e)
4139 : CSSValue(PrimitiveClass) { 3971 : CSSValue(IdentifierClass) {
4140 init(UnitType::ValueID);
4141 switch (e) { 3972 switch (e) {
4142 case TA_START: 3973 case TA_START:
4143 m_value.valueID = CSSValueStart; 3974 m_valueID = CSSValueStart;
4144 break; 3975 break;
4145 case TA_MIDDLE: 3976 case TA_MIDDLE:
4146 m_value.valueID = CSSValueMiddle; 3977 m_valueID = CSSValueMiddle;
4147 break; 3978 break;
4148 case TA_END: 3979 case TA_END:
4149 m_value.valueID = CSSValueEnd; 3980 m_valueID = CSSValueEnd;
4150 break; 3981 break;
4151 } 3982 }
4152 } 3983 }
4153 3984
4154 template <> 3985 template <>
4155 inline ETextAnchor CSSPrimitiveValue::convertTo() const { 3986 inline ETextAnchor CSSIdentifierValue::convertTo() const {
4156 ASSERT(isValueID()); 3987 switch (m_valueID) {
4157 switch (m_value.valueID) {
4158 case CSSValueStart: 3988 case CSSValueStart:
4159 return TA_START; 3989 return TA_START;
4160 case CSSValueMiddle: 3990 case CSSValueMiddle:
4161 return TA_MIDDLE; 3991 return TA_MIDDLE;
4162 case CSSValueEnd: 3992 case CSSValueEnd:
4163 return TA_END; 3993 return TA_END;
4164 default: 3994 default:
4165 break; 3995 break;
4166 } 3996 }
4167 3997
4168 ASSERT_NOT_REACHED(); 3998 ASSERT_NOT_REACHED();
4169 return TA_START; 3999 return TA_START;
4170 } 4000 }
4171 4001
4172 template <> 4002 template <>
4173 inline CSSPrimitiveValue::CSSPrimitiveValue(EVectorEffect e) 4003 inline CSSIdentifierValue::CSSIdentifierValue(EVectorEffect e)
4174 : CSSValue(PrimitiveClass) { 4004 : CSSValue(IdentifierClass) {
4175 init(UnitType::ValueID);
4176 switch (e) { 4005 switch (e) {
4177 case VE_NONE: 4006 case VE_NONE:
4178 m_value.valueID = CSSValueNone; 4007 m_valueID = CSSValueNone;
4179 break; 4008 break;
4180 case VE_NON_SCALING_STROKE: 4009 case VE_NON_SCALING_STROKE:
4181 m_value.valueID = CSSValueNonScalingStroke; 4010 m_valueID = CSSValueNonScalingStroke;
4182 break; 4011 break;
4183 } 4012 }
4184 } 4013 }
4185 4014
4186 template <> 4015 template <>
4187 inline EVectorEffect CSSPrimitiveValue::convertTo() const { 4016 inline EVectorEffect CSSIdentifierValue::convertTo() const {
4188 ASSERT(isValueID()); 4017 switch (m_valueID) {
4189 switch (m_value.valueID) {
4190 case CSSValueNone: 4018 case CSSValueNone:
4191 return VE_NONE; 4019 return VE_NONE;
4192 case CSSValueNonScalingStroke: 4020 case CSSValueNonScalingStroke:
4193 return VE_NON_SCALING_STROKE; 4021 return VE_NON_SCALING_STROKE;
4194 default: 4022 default:
4195 break; 4023 break;
4196 } 4024 }
4197 4025
4198 ASSERT_NOT_REACHED(); 4026 ASSERT_NOT_REACHED();
4199 return VE_NONE; 4027 return VE_NONE;
4200 } 4028 }
4201 4029
4202 template <> 4030 template <>
4203 inline CSSPrimitiveValue::CSSPrimitiveValue(EPaintOrderType e) 4031 inline CSSIdentifierValue::CSSIdentifierValue(EPaintOrderType e)
4204 : CSSValue(PrimitiveClass) { 4032 : CSSValue(IdentifierClass) {
4205 init(UnitType::ValueID);
4206 switch (e) { 4033 switch (e) {
4207 case PT_FILL: 4034 case PT_FILL:
4208 m_value.valueID = CSSValueFill; 4035 m_valueID = CSSValueFill;
4209 break; 4036 break;
4210 case PT_STROKE: 4037 case PT_STROKE:
4211 m_value.valueID = CSSValueStroke; 4038 m_valueID = CSSValueStroke;
4212 break; 4039 break;
4213 case PT_MARKERS: 4040 case PT_MARKERS:
4214 m_value.valueID = CSSValueMarkers; 4041 m_valueID = CSSValueMarkers;
4215 break; 4042 break;
4216 default: 4043 default:
4217 ASSERT_NOT_REACHED(); 4044 ASSERT_NOT_REACHED();
4218 m_value.valueID = CSSValueFill; 4045 m_valueID = CSSValueFill;
4219 break; 4046 break;
4220 } 4047 }
4221 } 4048 }
4222 4049
4223 template <> 4050 template <>
4224 inline EPaintOrderType CSSPrimitiveValue::convertTo() const { 4051 inline EPaintOrderType CSSIdentifierValue::convertTo() const {
4225 ASSERT(isValueID()); 4052 switch (m_valueID) {
4226 switch (m_value.valueID) {
4227 case CSSValueFill: 4053 case CSSValueFill:
4228 return PT_FILL; 4054 return PT_FILL;
4229 case CSSValueStroke: 4055 case CSSValueStroke:
4230 return PT_STROKE; 4056 return PT_STROKE;
4231 case CSSValueMarkers: 4057 case CSSValueMarkers:
4232 return PT_MARKERS; 4058 return PT_MARKERS;
4233 default: 4059 default:
4234 break; 4060 break;
4235 } 4061 }
4236 4062
4237 ASSERT_NOT_REACHED(); 4063 ASSERT_NOT_REACHED();
4238 return PT_NONE; 4064 return PT_NONE;
4239 } 4065 }
4240 4066
4241 template <> 4067 template <>
4242 inline CSSPrimitiveValue::CSSPrimitiveValue(EMaskType e) 4068 inline CSSIdentifierValue::CSSIdentifierValue(EMaskType e)
4243 : CSSValue(PrimitiveClass) { 4069 : CSSValue(IdentifierClass) {
4244 init(UnitType::ValueID);
4245 switch (e) { 4070 switch (e) {
4246 case MT_LUMINANCE: 4071 case MT_LUMINANCE:
4247 m_value.valueID = CSSValueLuminance; 4072 m_valueID = CSSValueLuminance;
4248 break; 4073 break;
4249 case MT_ALPHA: 4074 case MT_ALPHA:
4250 m_value.valueID = CSSValueAlpha; 4075 m_valueID = CSSValueAlpha;
4251 break; 4076 break;
4252 } 4077 }
4253 } 4078 }
4254 4079
4255 template <> 4080 template <>
4256 inline EMaskType CSSPrimitiveValue::convertTo() const { 4081 inline EMaskType CSSIdentifierValue::convertTo() const {
4257 ASSERT(isValueID()); 4082 switch (m_valueID) {
4258 switch (m_value.valueID) {
4259 case CSSValueLuminance: 4083 case CSSValueLuminance:
4260 return MT_LUMINANCE; 4084 return MT_LUMINANCE;
4261 case CSSValueAlpha: 4085 case CSSValueAlpha:
4262 return MT_ALPHA; 4086 return MT_ALPHA;
4263 default: 4087 default:
4264 break; 4088 break;
4265 } 4089 }
4266 4090
4267 ASSERT_NOT_REACHED(); 4091 ASSERT_NOT_REACHED();
4268 return MT_LUMINANCE; 4092 return MT_LUMINANCE;
4269 } 4093 }
4270 4094
4271 template <> 4095 template <>
4272 inline TouchAction CSSPrimitiveValue::convertTo() const { 4096 inline TouchAction CSSIdentifierValue::convertTo() const {
4273 ASSERT(isValueID()); 4097 switch (m_valueID) {
4274 switch (m_value.valueID) {
4275 case CSSValueNone: 4098 case CSSValueNone:
4276 return TouchActionNone; 4099 return TouchActionNone;
4277 case CSSValueAuto: 4100 case CSSValueAuto:
4278 return TouchActionAuto; 4101 return TouchActionAuto;
4279 case CSSValuePanLeft: 4102 case CSSValuePanLeft:
4280 return TouchActionPanLeft; 4103 return TouchActionPanLeft;
4281 case CSSValuePanRight: 4104 case CSSValuePanRight:
4282 return TouchActionPanRight; 4105 return TouchActionPanRight;
4283 case CSSValuePanX: 4106 case CSSValuePanX:
4284 return TouchActionPanX; 4107 return TouchActionPanX;
4285 case CSSValuePanUp: 4108 case CSSValuePanUp:
4286 return TouchActionPanUp; 4109 return TouchActionPanUp;
4287 case CSSValuePanDown: 4110 case CSSValuePanDown:
4288 return TouchActionPanDown; 4111 return TouchActionPanDown;
4289 case CSSValuePanY: 4112 case CSSValuePanY:
4290 return TouchActionPanY; 4113 return TouchActionPanY;
4291 case CSSValueManipulation: 4114 case CSSValueManipulation:
4292 return TouchActionManipulation; 4115 return TouchActionManipulation;
4293 case CSSValuePinchZoom: 4116 case CSSValuePinchZoom:
4294 return TouchActionPinchZoom; 4117 return TouchActionPinchZoom;
4295 default: 4118 default:
4296 break; 4119 break;
4297 } 4120 }
4298 4121
4299 ASSERT_NOT_REACHED(); 4122 ASSERT_NOT_REACHED();
4300 return TouchActionNone; 4123 return TouchActionNone;
4301 } 4124 }
4302 4125
4303 template <> 4126 template <>
4304 inline CSSPrimitiveValue::CSSPrimitiveValue(EIsolation i) 4127 inline CSSIdentifierValue::CSSIdentifierValue(EIsolation i)
4305 : CSSValue(PrimitiveClass) { 4128 : CSSValue(IdentifierClass) {
4306 init(UnitType::ValueID);
4307 switch (i) { 4129 switch (i) {
4308 case IsolationAuto: 4130 case IsolationAuto:
4309 m_value.valueID = CSSValueAuto; 4131 m_valueID = CSSValueAuto;
4310 break; 4132 break;
4311 case IsolationIsolate: 4133 case IsolationIsolate:
4312 m_value.valueID = CSSValueIsolate; 4134 m_valueID = CSSValueIsolate;
4313 break; 4135 break;
4314 } 4136 }
4315 } 4137 }
4316 4138
4317 template <> 4139 template <>
4318 inline EIsolation CSSPrimitiveValue::convertTo() const { 4140 inline EIsolation CSSIdentifierValue::convertTo() const {
4319 ASSERT(isValueID()); 4141 switch (m_valueID) {
4320 switch (m_value.valueID) {
4321 case CSSValueAuto: 4142 case CSSValueAuto:
4322 return IsolationAuto; 4143 return IsolationAuto;
4323 case CSSValueIsolate: 4144 case CSSValueIsolate:
4324 return IsolationIsolate; 4145 return IsolationIsolate;
4325 default: 4146 default:
4326 break; 4147 break;
4327 } 4148 }
4328 4149
4329 ASSERT_NOT_REACHED(); 4150 ASSERT_NOT_REACHED();
4330 return IsolationAuto; 4151 return IsolationAuto;
4331 } 4152 }
4332 4153
4333 template <> 4154 template <>
4334 inline CSSPrimitiveValue::CSSPrimitiveValue(CSSBoxType cssBox) 4155 inline CSSIdentifierValue::CSSIdentifierValue(CSSBoxType cssBox)
4335 : CSSValue(PrimitiveClass) { 4156 : CSSValue(IdentifierClass) {
4336 init(UnitType::ValueID);
4337 switch (cssBox) { 4157 switch (cssBox) {
4338 case MarginBox: 4158 case MarginBox:
4339 m_value.valueID = CSSValueMarginBox; 4159 m_valueID = CSSValueMarginBox;
4340 break; 4160 break;
4341 case BorderBox: 4161 case BorderBox:
4342 m_value.valueID = CSSValueBorderBox; 4162 m_valueID = CSSValueBorderBox;
4343 break; 4163 break;
4344 case PaddingBox: 4164 case PaddingBox:
4345 m_value.valueID = CSSValuePaddingBox; 4165 m_valueID = CSSValuePaddingBox;
4346 break; 4166 break;
4347 case ContentBox: 4167 case ContentBox:
4348 m_value.valueID = CSSValueContentBox; 4168 m_valueID = CSSValueContentBox;
4349 break; 4169 break;
4350 case BoxMissing: 4170 case BoxMissing:
4351 // The missing box should convert to a null primitive value. 4171 // The missing box should convert to a null primitive value.
4352 ASSERT_NOT_REACHED(); 4172 ASSERT_NOT_REACHED();
4353 } 4173 }
4354 } 4174 }
4355 4175
4356 template <> 4176 template <>
4357 inline CSSBoxType CSSPrimitiveValue::convertTo() const { 4177 inline CSSBoxType CSSIdentifierValue::convertTo() const {
4358 switch (getValueID()) { 4178 switch (getValueID()) {
4359 case CSSValueMarginBox: 4179 case CSSValueMarginBox:
4360 return MarginBox; 4180 return MarginBox;
4361 case CSSValueBorderBox: 4181 case CSSValueBorderBox:
4362 return BorderBox; 4182 return BorderBox;
4363 case CSSValuePaddingBox: 4183 case CSSValuePaddingBox:
4364 return PaddingBox; 4184 return PaddingBox;
4365 case CSSValueContentBox: 4185 case CSSValueContentBox:
4366 return ContentBox; 4186 return ContentBox;
4367 default: 4187 default:
4368 break; 4188 break;
4369 } 4189 }
4370 ASSERT_NOT_REACHED(); 4190 ASSERT_NOT_REACHED();
4371 return ContentBox; 4191 return ContentBox;
4372 } 4192 }
4373 4193
4374 template <> 4194 template <>
4375 inline CSSPrimitiveValue::CSSPrimitiveValue(ItemPosition itemPosition) 4195 inline CSSIdentifierValue::CSSIdentifierValue(ItemPosition itemPosition)
4376 : CSSValue(PrimitiveClass) { 4196 : CSSValue(IdentifierClass) {
4377 init(UnitType::ValueID);
4378 switch (itemPosition) { 4197 switch (itemPosition) {
4379 case ItemPositionAuto: 4198 case ItemPositionAuto:
4380 // The 'auto' values might have been already resolved. 4199 // The 'auto' values might have been already resolved.
4381 NOTREACHED(); 4200 NOTREACHED();
4382 m_value.valueID = CSSValueNormal; 4201 m_valueID = CSSValueNormal;
4383 break; 4202 break;
4384 case ItemPositionNormal: 4203 case ItemPositionNormal:
4385 m_value.valueID = CSSValueNormal; 4204 m_valueID = CSSValueNormal;
4386 break; 4205 break;
4387 case ItemPositionStretch: 4206 case ItemPositionStretch:
4388 m_value.valueID = CSSValueStretch; 4207 m_valueID = CSSValueStretch;
4389 break; 4208 break;
4390 case ItemPositionBaseline: 4209 case ItemPositionBaseline:
4391 m_value.valueID = CSSValueBaseline; 4210 m_valueID = CSSValueBaseline;
4392 break; 4211 break;
4393 case ItemPositionLastBaseline: 4212 case ItemPositionLastBaseline:
4394 m_value.valueID = CSSValueLastBaseline; 4213 m_valueID = CSSValueLastBaseline;
4395 break; 4214 break;
4396 case ItemPositionCenter: 4215 case ItemPositionCenter:
4397 m_value.valueID = CSSValueCenter; 4216 m_valueID = CSSValueCenter;
4398 break; 4217 break;
4399 case ItemPositionStart: 4218 case ItemPositionStart:
4400 m_value.valueID = CSSValueStart; 4219 m_valueID = CSSValueStart;
4401 break; 4220 break;
4402 case ItemPositionEnd: 4221 case ItemPositionEnd:
4403 m_value.valueID = CSSValueEnd; 4222 m_valueID = CSSValueEnd;
4404 break; 4223 break;
4405 case ItemPositionSelfStart: 4224 case ItemPositionSelfStart:
4406 m_value.valueID = CSSValueSelfStart; 4225 m_valueID = CSSValueSelfStart;
4407 break; 4226 break;
4408 case ItemPositionSelfEnd: 4227 case ItemPositionSelfEnd:
4409 m_value.valueID = CSSValueSelfEnd; 4228 m_valueID = CSSValueSelfEnd;
4410 break; 4229 break;
4411 case ItemPositionFlexStart: 4230 case ItemPositionFlexStart:
4412 m_value.valueID = CSSValueFlexStart; 4231 m_valueID = CSSValueFlexStart;
4413 break; 4232 break;
4414 case ItemPositionFlexEnd: 4233 case ItemPositionFlexEnd:
4415 m_value.valueID = CSSValueFlexEnd; 4234 m_valueID = CSSValueFlexEnd;
4416 break; 4235 break;
4417 case ItemPositionLeft: 4236 case ItemPositionLeft:
4418 m_value.valueID = CSSValueLeft; 4237 m_valueID = CSSValueLeft;
4419 break; 4238 break;
4420 case ItemPositionRight: 4239 case ItemPositionRight:
4421 m_value.valueID = CSSValueRight; 4240 m_valueID = CSSValueRight;
4422 break; 4241 break;
4423 } 4242 }
4424 } 4243 }
4425 4244
4426 template <> 4245 template <>
4427 inline ItemPosition CSSPrimitiveValue::convertTo() const { 4246 inline ItemPosition CSSIdentifierValue::convertTo() const {
4428 switch (m_value.valueID) { 4247 switch (m_valueID) {
4429 case CSSValueAuto: 4248 case CSSValueAuto:
4430 return ItemPositionAuto; 4249 return ItemPositionAuto;
4431 case CSSValueNormal: 4250 case CSSValueNormal:
4432 return ItemPositionNormal; 4251 return ItemPositionNormal;
4433 case CSSValueStretch: 4252 case CSSValueStretch:
4434 return ItemPositionStretch; 4253 return ItemPositionStretch;
4435 case CSSValueBaseline: 4254 case CSSValueBaseline:
4436 return ItemPositionBaseline; 4255 return ItemPositionBaseline;
4437 case CSSValueLastBaseline: 4256 case CSSValueLastBaseline:
4438 return ItemPositionLastBaseline; 4257 return ItemPositionLastBaseline;
(...skipping 16 matching lines...) Expand all
4455 case CSSValueRight: 4274 case CSSValueRight:
4456 return ItemPositionRight; 4275 return ItemPositionRight;
4457 default: 4276 default:
4458 break; 4277 break;
4459 } 4278 }
4460 ASSERT_NOT_REACHED(); 4279 ASSERT_NOT_REACHED();
4461 return ItemPositionAuto; 4280 return ItemPositionAuto;
4462 } 4281 }
4463 4282
4464 template <> 4283 template <>
4465 inline CSSPrimitiveValue::CSSPrimitiveValue(ContentPosition contentPosition) 4284 inline CSSIdentifierValue::CSSIdentifierValue(ContentPosition contentPosition)
4466 : CSSValue(PrimitiveClass) { 4285 : CSSValue(IdentifierClass) {
4467 init(UnitType::ValueID);
4468 switch (contentPosition) { 4286 switch (contentPosition) {
4469 case ContentPositionNormal: 4287 case ContentPositionNormal:
4470 m_value.valueID = CSSValueNormal; 4288 m_valueID = CSSValueNormal;
4471 break; 4289 break;
4472 case ContentPositionBaseline: 4290 case ContentPositionBaseline:
4473 m_value.valueID = CSSValueBaseline; 4291 m_valueID = CSSValueBaseline;
4474 break; 4292 break;
4475 case ContentPositionLastBaseline: 4293 case ContentPositionLastBaseline:
4476 m_value.valueID = CSSValueLastBaseline; 4294 m_valueID = CSSValueLastBaseline;
4477 break; 4295 break;
4478 case ContentPositionCenter: 4296 case ContentPositionCenter:
4479 m_value.valueID = CSSValueCenter; 4297 m_valueID = CSSValueCenter;
4480 break; 4298 break;
4481 case ContentPositionStart: 4299 case ContentPositionStart:
4482 m_value.valueID = CSSValueStart; 4300 m_valueID = CSSValueStart;
4483 break; 4301 break;
4484 case ContentPositionEnd: 4302 case ContentPositionEnd:
4485 m_value.valueID = CSSValueEnd; 4303 m_valueID = CSSValueEnd;
4486 break; 4304 break;
4487 case ContentPositionFlexStart: 4305 case ContentPositionFlexStart:
4488 m_value.valueID = CSSValueFlexStart; 4306 m_valueID = CSSValueFlexStart;
4489 break; 4307 break;
4490 case ContentPositionFlexEnd: 4308 case ContentPositionFlexEnd:
4491 m_value.valueID = CSSValueFlexEnd; 4309 m_valueID = CSSValueFlexEnd;
4492 break; 4310 break;
4493 case ContentPositionLeft: 4311 case ContentPositionLeft:
4494 m_value.valueID = CSSValueLeft; 4312 m_valueID = CSSValueLeft;
4495 break; 4313 break;
4496 case ContentPositionRight: 4314 case ContentPositionRight:
4497 m_value.valueID = CSSValueRight; 4315 m_valueID = CSSValueRight;
4498 break; 4316 break;
4499 } 4317 }
4500 } 4318 }
4501 4319
4502 template <> 4320 template <>
4503 inline ContentPosition CSSPrimitiveValue::convertTo() const { 4321 inline ContentPosition CSSIdentifierValue::convertTo() const {
4504 switch (m_value.valueID) { 4322 switch (m_valueID) {
4505 case CSSValueNormal: 4323 case CSSValueNormal:
4506 return ContentPositionNormal; 4324 return ContentPositionNormal;
4507 case CSSValueBaseline: 4325 case CSSValueBaseline:
4508 return ContentPositionBaseline; 4326 return ContentPositionBaseline;
4509 case CSSValueLastBaseline: 4327 case CSSValueLastBaseline:
4510 return ContentPositionLastBaseline; 4328 return ContentPositionLastBaseline;
4511 case CSSValueCenter: 4329 case CSSValueCenter:
4512 return ContentPositionCenter; 4330 return ContentPositionCenter;
4513 case CSSValueStart: 4331 case CSSValueStart:
4514 return ContentPositionStart; 4332 return ContentPositionStart;
4515 case CSSValueEnd: 4333 case CSSValueEnd:
4516 return ContentPositionEnd; 4334 return ContentPositionEnd;
4517 case CSSValueFlexStart: 4335 case CSSValueFlexStart:
4518 return ContentPositionFlexStart; 4336 return ContentPositionFlexStart;
4519 case CSSValueFlexEnd: 4337 case CSSValueFlexEnd:
4520 return ContentPositionFlexEnd; 4338 return ContentPositionFlexEnd;
4521 case CSSValueLeft: 4339 case CSSValueLeft:
4522 return ContentPositionLeft; 4340 return ContentPositionLeft;
4523 case CSSValueRight: 4341 case CSSValueRight:
4524 return ContentPositionRight; 4342 return ContentPositionRight;
4525 default: 4343 default:
4526 break; 4344 break;
4527 } 4345 }
4528 ASSERT_NOT_REACHED(); 4346 ASSERT_NOT_REACHED();
4529 return ContentPositionNormal; 4347 return ContentPositionNormal;
4530 } 4348 }
4531 4349
4532 template <> 4350 template <>
4533 inline CSSPrimitiveValue::CSSPrimitiveValue( 4351 inline CSSIdentifierValue::CSSIdentifierValue(
4534 ContentDistributionType contentDistribution) 4352 ContentDistributionType contentDistribution)
4535 : CSSValue(PrimitiveClass) { 4353 : CSSValue(IdentifierClass) {
4536 init(UnitType::ValueID);
4537 switch (contentDistribution) { 4354 switch (contentDistribution) {
4538 case ContentDistributionDefault: 4355 case ContentDistributionDefault:
4539 m_value.valueID = CSSValueDefault; 4356 m_valueID = CSSValueDefault;
4540 break; 4357 break;
4541 case ContentDistributionSpaceBetween: 4358 case ContentDistributionSpaceBetween:
4542 m_value.valueID = CSSValueSpaceBetween; 4359 m_valueID = CSSValueSpaceBetween;
4543 break; 4360 break;
4544 case ContentDistributionSpaceAround: 4361 case ContentDistributionSpaceAround:
4545 m_value.valueID = CSSValueSpaceAround; 4362 m_valueID = CSSValueSpaceAround;
4546 break; 4363 break;
4547 case ContentDistributionSpaceEvenly: 4364 case ContentDistributionSpaceEvenly:
4548 m_value.valueID = CSSValueSpaceEvenly; 4365 m_valueID = CSSValueSpaceEvenly;
4549 break; 4366 break;
4550 case ContentDistributionStretch: 4367 case ContentDistributionStretch:
4551 m_value.valueID = CSSValueStretch; 4368 m_valueID = CSSValueStretch;
4552 break; 4369 break;
4553 } 4370 }
4554 } 4371 }
4555 4372
4556 template <> 4373 template <>
4557 inline ContentDistributionType CSSPrimitiveValue::convertTo() const { 4374 inline ContentDistributionType CSSIdentifierValue::convertTo() const {
4558 switch (m_value.valueID) { 4375 switch (m_valueID) {
4559 case CSSValueSpaceBetween: 4376 case CSSValueSpaceBetween:
4560 return ContentDistributionSpaceBetween; 4377 return ContentDistributionSpaceBetween;
4561 case CSSValueSpaceAround: 4378 case CSSValueSpaceAround:
4562 return ContentDistributionSpaceAround; 4379 return ContentDistributionSpaceAround;
4563 case CSSValueSpaceEvenly: 4380 case CSSValueSpaceEvenly:
4564 return ContentDistributionSpaceEvenly; 4381 return ContentDistributionSpaceEvenly;
4565 case CSSValueStretch: 4382 case CSSValueStretch:
4566 return ContentDistributionStretch; 4383 return ContentDistributionStretch;
4567 default: 4384 default:
4568 break; 4385 break;
4569 } 4386 }
4570 ASSERT_NOT_REACHED(); 4387 ASSERT_NOT_REACHED();
4571 return ContentDistributionStretch; 4388 return ContentDistributionStretch;
4572 } 4389 }
4573 4390
4574 template <> 4391 template <>
4575 inline CSSPrimitiveValue::CSSPrimitiveValue(OverflowAlignment overflowAlignment) 4392 inline CSSIdentifierValue::CSSIdentifierValue(
4576 : CSSValue(PrimitiveClass) { 4393 OverflowAlignment overflowAlignment)
4577 init(UnitType::ValueID); 4394 : CSSValue(IdentifierClass) {
4578 switch (overflowAlignment) { 4395 switch (overflowAlignment) {
4579 case OverflowAlignmentDefault: 4396 case OverflowAlignmentDefault:
4580 m_value.valueID = CSSValueDefault; 4397 m_valueID = CSSValueDefault;
4581 break; 4398 break;
4582 case OverflowAlignmentUnsafe: 4399 case OverflowAlignmentUnsafe:
4583 m_value.valueID = CSSValueUnsafe; 4400 m_valueID = CSSValueUnsafe;
4584 break; 4401 break;
4585 case OverflowAlignmentSafe: 4402 case OverflowAlignmentSafe:
4586 m_value.valueID = CSSValueSafe; 4403 m_valueID = CSSValueSafe;
4587 break; 4404 break;
4588 } 4405 }
4589 } 4406 }
4590 4407
4591 template <> 4408 template <>
4592 inline OverflowAlignment CSSPrimitiveValue::convertTo() const { 4409 inline OverflowAlignment CSSIdentifierValue::convertTo() const {
4593 switch (m_value.valueID) { 4410 switch (m_valueID) {
4594 case CSSValueUnsafe: 4411 case CSSValueUnsafe:
4595 return OverflowAlignmentUnsafe; 4412 return OverflowAlignmentUnsafe;
4596 case CSSValueSafe: 4413 case CSSValueSafe:
4597 return OverflowAlignmentSafe; 4414 return OverflowAlignmentSafe;
4598 default: 4415 default:
4599 break; 4416 break;
4600 } 4417 }
4601 ASSERT_NOT_REACHED(); 4418 ASSERT_NOT_REACHED();
4602 return OverflowAlignmentUnsafe; 4419 return OverflowAlignmentUnsafe;
4603 } 4420 }
4604 4421
4605 template <> 4422 template <>
4606 inline CSSPrimitiveValue::CSSPrimitiveValue(ScrollBehavior behavior) 4423 inline CSSIdentifierValue::CSSIdentifierValue(ScrollBehavior behavior)
4607 : CSSValue(PrimitiveClass) { 4424 : CSSValue(IdentifierClass) {
4608 init(UnitType::ValueID);
4609 switch (behavior) { 4425 switch (behavior) {
4610 case ScrollBehaviorAuto: 4426 case ScrollBehaviorAuto:
4611 m_value.valueID = CSSValueAuto; 4427 m_valueID = CSSValueAuto;
4612 break; 4428 break;
4613 case ScrollBehaviorSmooth: 4429 case ScrollBehaviorSmooth:
4614 m_value.valueID = CSSValueSmooth; 4430 m_valueID = CSSValueSmooth;
4615 break; 4431 break;
4616 case ScrollBehaviorInstant: 4432 case ScrollBehaviorInstant:
4617 // Behavior 'instant' is only allowed in ScrollOptions arguments passed to 4433 // Behavior 'instant' is only allowed in ScrollOptions arguments passed to
4618 // CSSOM scroll APIs. 4434 // CSSOM scroll APIs.
4619 ASSERT_NOT_REACHED(); 4435 ASSERT_NOT_REACHED();
4620 } 4436 }
4621 } 4437 }
4622 4438
4623 template <> 4439 template <>
4624 inline ScrollBehavior CSSPrimitiveValue::convertTo() const { 4440 inline ScrollBehavior CSSIdentifierValue::convertTo() const {
4625 switch (getValueID()) { 4441 switch (getValueID()) {
4626 case CSSValueAuto: 4442 case CSSValueAuto:
4627 return ScrollBehaviorAuto; 4443 return ScrollBehaviorAuto;
4628 case CSSValueSmooth: 4444 case CSSValueSmooth:
4629 return ScrollBehaviorSmooth; 4445 return ScrollBehaviorSmooth;
4630 default: 4446 default:
4631 break; 4447 break;
4632 } 4448 }
4633 ASSERT_NOT_REACHED(); 4449 ASSERT_NOT_REACHED();
4634 return ScrollBehaviorAuto; 4450 return ScrollBehaviorAuto;
4635 } 4451 }
4636 4452
4637 template <> 4453 template <>
4638 inline CSSPrimitiveValue::CSSPrimitiveValue(ScrollSnapType snapType) 4454 inline CSSIdentifierValue::CSSIdentifierValue(ScrollSnapType snapType)
4639 : CSSValue(PrimitiveClass) { 4455 : CSSValue(IdentifierClass) {
4640 init(UnitType::ValueID);
4641 switch (snapType) { 4456 switch (snapType) {
4642 case ScrollSnapTypeNone: 4457 case ScrollSnapTypeNone:
4643 m_value.valueID = CSSValueNone; 4458 m_valueID = CSSValueNone;
4644 break; 4459 break;
4645 case ScrollSnapTypeMandatory: 4460 case ScrollSnapTypeMandatory:
4646 m_value.valueID = CSSValueMandatory; 4461 m_valueID = CSSValueMandatory;
4647 break; 4462 break;
4648 case ScrollSnapTypeProximity: 4463 case ScrollSnapTypeProximity:
4649 m_value.valueID = CSSValueProximity; 4464 m_valueID = CSSValueProximity;
4650 break; 4465 break;
4651 } 4466 }
4652 } 4467 }
4653 4468
4654 template <> 4469 template <>
4655 inline ScrollSnapType CSSPrimitiveValue::convertTo() const { 4470 inline ScrollSnapType CSSIdentifierValue::convertTo() const {
4656 switch (getValueID()) { 4471 switch (getValueID()) {
4657 case CSSValueNone: 4472 case CSSValueNone:
4658 return ScrollSnapTypeNone; 4473 return ScrollSnapTypeNone;
4659 case CSSValueMandatory: 4474 case CSSValueMandatory:
4660 return ScrollSnapTypeMandatory; 4475 return ScrollSnapTypeMandatory;
4661 case CSSValueProximity: 4476 case CSSValueProximity:
4662 return ScrollSnapTypeProximity; 4477 return ScrollSnapTypeProximity;
4663 default: 4478 default:
4664 break; 4479 break;
4665 } 4480 }
4666 ASSERT_NOT_REACHED(); 4481 ASSERT_NOT_REACHED();
4667 return ScrollSnapTypeNone; 4482 return ScrollSnapTypeNone;
4668 } 4483 }
4669 4484
4670 template <> 4485 template <>
4671 inline CSSPrimitiveValue::CSSPrimitiveValue(Containment snapType) 4486 inline CSSIdentifierValue::CSSIdentifierValue(Containment snapType)
4672 : CSSValue(PrimitiveClass) { 4487 : CSSValue(IdentifierClass) {
4673 init(UnitType::ValueID);
4674 switch (snapType) { 4488 switch (snapType) {
4675 case ContainsNone: 4489 case ContainsNone:
4676 m_value.valueID = CSSValueNone; 4490 m_valueID = CSSValueNone;
4677 break; 4491 break;
4678 case ContainsStrict: 4492 case ContainsStrict:
4679 m_value.valueID = CSSValueStrict; 4493 m_valueID = CSSValueStrict;
4680 break; 4494 break;
4681 case ContainsContent: 4495 case ContainsContent:
4682 m_value.valueID = CSSValueContent; 4496 m_valueID = CSSValueContent;
4683 break; 4497 break;
4684 case ContainsPaint: 4498 case ContainsPaint:
4685 m_value.valueID = CSSValuePaint; 4499 m_valueID = CSSValuePaint;
4686 break; 4500 break;
4687 case ContainsStyle: 4501 case ContainsStyle:
4688 m_value.valueID = CSSValueStyle; 4502 m_valueID = CSSValueStyle;
4689 break; 4503 break;
4690 case ContainsLayout: 4504 case ContainsLayout:
4691 m_value.valueID = CSSValueLayout; 4505 m_valueID = CSSValueLayout;
4692 break; 4506 break;
4693 case ContainsSize: 4507 case ContainsSize:
4694 m_value.valueID = CSSValueSize; 4508 m_valueID = CSSValueSize;
4695 break; 4509 break;
4696 } 4510 }
4697 } 4511 }
4698 4512
4699 template <> 4513 template <>
4700 inline Containment CSSPrimitiveValue::convertTo() const { 4514 inline Containment CSSIdentifierValue::convertTo() const {
4701 switch (getValueID()) { 4515 switch (getValueID()) {
4702 case CSSValueNone: 4516 case CSSValueNone:
4703 return ContainsNone; 4517 return ContainsNone;
4704 case CSSValueStrict: 4518 case CSSValueStrict:
4705 return ContainsStrict; 4519 return ContainsStrict;
4706 case CSSValueContent: 4520 case CSSValueContent:
4707 return ContainsContent; 4521 return ContainsContent;
4708 case CSSValuePaint: 4522 case CSSValuePaint:
4709 return ContainsPaint; 4523 return ContainsPaint;
4710 case CSSValueStyle: 4524 case CSSValueStyle:
4711 return ContainsStyle; 4525 return ContainsStyle;
4712 case CSSValueLayout: 4526 case CSSValueLayout:
4713 return ContainsLayout; 4527 return ContainsLayout;
4714 case CSSValueSize: 4528 case CSSValueSize:
4715 return ContainsSize; 4529 return ContainsSize;
4716 default: 4530 default:
4717 break; 4531 break;
4718 } 4532 }
4719 ASSERT_NOT_REACHED(); 4533 ASSERT_NOT_REACHED();
4720 return ContainsNone; 4534 return ContainsNone;
4721 } 4535 }
4722 4536
4723 } // namespace blink 4537 } // namespace blink
4724 4538
4725 #endif 4539 #endif
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/css/CSSPrimitiveValue.cpp ('k') | third_party/WebKit/Source/core/css/CSSQuadValue.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698