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

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

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

Powered by Google App Engine
This is Rietveld 408576698