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

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

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

Powered by Google App Engine
This is Rietveld 408576698