| Index: Source/core/css/parser/CSSPropertyParser.cpp
|
| diff --git a/Source/core/css/parser/CSSPropertyParser.cpp b/Source/core/css/parser/CSSPropertyParser.cpp
|
| index 89f31400a1c047514cc60219657d6f2a1bcab1c2..44d4a11799e1f3955d745b6643d136329b31d4bf 100644
|
| --- a/Source/core/css/parser/CSSPropertyParser.cpp
|
| +++ b/Source/core/css/parser/CSSPropertyParser.cpp
|
| @@ -4150,7 +4150,7 @@ PassRefPtrWillBeRawPtr<CSSBasicShape> CSSPropertyParser::parseBasicShapeCircle(C
|
| ASSERT(args);
|
|
|
| // circle(radius)
|
| - // circle(radius at <position>
|
| + // circle(radius at <position>)
|
| // circle(at <position>)
|
| // where position defines centerX and centerY using a CSS <position> data type.
|
| RefPtrWillBeRawPtr<CSSBasicShapeCircle> shape = CSSBasicShapeCircle::create();
|
| @@ -4171,10 +4171,9 @@ PassRefPtrWillBeRawPtr<CSSBasicShape> CSSPropertyParser::parseBasicShapeCircle(C
|
| return nullptr;
|
| }
|
|
|
| - if (argument->id == CSSValueAt) {
|
| + if (argument->id == CSSValueAt && args->next()) {
|
| RefPtrWillBeRawPtr<CSSValue> centerX;
|
| RefPtrWillBeRawPtr<CSSValue> centerY;
|
| - args->next(); // set list to start of position center
|
| parseFillPosition(args, centerX, centerY);
|
| if (centerX && centerY && !args->current()) {
|
| ASSERT(centerX->isPrimitiveValue());
|
| @@ -4247,9 +4246,9 @@ PassRefPtrWillBeRawPtr<CSSBasicShape> CSSPropertyParser::parseBasicShapeEllipse(
|
| ASSERT(args);
|
|
|
| // ellipse(radiusX)
|
| - // ellipse(radiusX at <position>
|
| + // ellipse(radiusX at <position>)
|
| // ellipse(radiusX radiusY)
|
| - // ellipse(radiusX radiusY at <position>
|
| + // ellipse(radiusX radiusY at <position>)
|
| // ellipse(at <position>)
|
| // where position defines centerX and centerY using a CSS <position> data type.
|
| RefPtrWillBeRawPtr<CSSBasicShapeEllipse> shape = CSSBasicShapeEllipse::create();
|
| @@ -4273,11 +4272,10 @@ PassRefPtrWillBeRawPtr<CSSBasicShape> CSSPropertyParser::parseBasicShapeEllipse(
|
| return nullptr;
|
| }
|
|
|
| - if (argument->id != CSSValueAt)
|
| + if (argument->id != CSSValueAt || !args->next()) // expecting ellipse(.. at <position>)
|
| return nullptr;
|
| RefPtrWillBeRawPtr<CSSValue> centerX;
|
| RefPtrWillBeRawPtr<CSSValue> centerY;
|
| - args->next(); // set list to start of position center
|
| parseFillPosition(args, centerX, centerY);
|
| if (!centerX || !centerY || args->current())
|
| return nullptr;
|
|
|