[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
commit-queue at webkit.org
commit-queue at webkit.org
Wed Dec 22 16:04:46 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit bb6480618ea0e1ffb104d49cc19bea11ab02a2de
Author: commit-queue at webkit.org <commit-queue at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Nov 18 16:36:09 2010 +0000
2010-11-18 Sheriff Bot <webkit.review.bot at gmail.com>
Unreviewed, rolling out r72288.
http://trac.webkit.org/changeset/72288
https://bugs.webkit.org/show_bug.cgi?id=49730
'krit attempted to do that, but revert got stuck' (Requested
by antonm on #webkit).
* platform/mac/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.checksum: Removed.
* platform/mac/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.png: Removed.
* platform/mac/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt: Removed.
* platform/mac/svg/custom/svg-curve-with-relative-cordinates-expected.txt:
* platform/mac/svg/dom/SVGPathSegList-appendItem-expected.checksum: Removed.
* platform/mac/svg/dom/SVGPathSegList-appendItem-expected.png: Removed.
* platform/mac/svg/dom/SVGPathSegList-clear-and-initialize-expected.checksum: Removed.
* platform/mac/svg/dom/SVGPathSegList-clear-and-initialize-expected.png: Removed.
* platform/mac/svg/dom/SVGPathSegList-cloning-expected.checksum: Removed.
* platform/mac/svg/dom/SVGPathSegList-cloning-expected.png: Removed.
* platform/mac/svg/dom/SVGPathSegList-cloning-expected.txt: Removed.
* platform/mac/svg/dom/SVGPathSegList-insertItemBefore-expected.checksum: Removed.
* platform/mac/svg/dom/SVGPathSegList-insertItemBefore-expected.png: Removed.
* platform/mac/svg/dom/SVGPathSegList-removeItem-expected.checksum: Removed.
* platform/mac/svg/dom/SVGPathSegList-removeItem-expected.png: Removed.
* platform/mac/svg/dom/SVGPathSegList-replaceItem-expected.checksum: Removed.
* platform/mac/svg/dom/SVGPathSegList-replaceItem-expected.png: Removed.
* platform/mac/svg/dom/SVGPathSegList-segment-modification-expected.checksum: Removed.
* platform/mac/svg/dom/SVGPathSegList-segment-modification-expected.png: Removed.
* platform/mac/svg/dom/SVGPathSegList-segment-modification-expected.txt: Removed.
* platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization-expected.checksum: Removed.
* platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization-expected.png: Removed.
* platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization2-expected.checksum: Removed.
* platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization2-expected.png: Removed.
* platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization2-expected.txt: Removed.
* svg/W3C-SVG-1.1-SE/paths-dom-02-f.svg: Removed.
* svg/dom/SVGPathSegList-appendItem-expected.txt: Removed.
* svg/dom/SVGPathSegList-appendItem.xhtml: Removed.
* svg/dom/SVGPathSegList-clear-and-initialize-expected.txt: Removed.
* svg/dom/SVGPathSegList-clear-and-initialize.xhtml: Removed.
* svg/dom/SVGPathSegList-cloning.html: Removed.
* svg/dom/SVGPathSegList-insertItemBefore-expected.txt: Removed.
* svg/dom/SVGPathSegList-insertItemBefore.xhtml: Removed.
* svg/dom/SVGPathSegList-removeItem-expected.txt: Removed.
* svg/dom/SVGPathSegList-removeItem.xhtml: Removed.
* svg/dom/SVGPathSegList-replaceItem-expected.txt: Removed.
* svg/dom/SVGPathSegList-replaceItem.xhtml: Removed.
* svg/dom/SVGPathSegList-segment-modification.svg: Removed.
* svg/dom/SVGPathSegList-xml-dom-synchronization-expected.txt: Removed.
* svg/dom/SVGPathSegList-xml-dom-synchronization.xhtml: Removed.
* svg/dom/SVGPathSegList-xml-dom-synchronization2.xhtml: Removed.
* svg/dom/fuzz-path-parser-expected.txt:
* svg/dom/path-parser-expected.txt:
* svg/dom/script-tests/path-parser.js:
():
* svg/dom/svglist-exception-on-out-bounds-error-expected.txt:
* svg/dom/svglist-exception-on-out-bounds-error.html:
* svg/dom/svgpath-out-of-bounds-getPathSeg-expected.txt:
2010-11-18 Sheriff Bot <webkit.review.bot at gmail.com>
Unreviewed, rolling out r72288.
http://trac.webkit.org/changeset/72288
https://bugs.webkit.org/show_bug.cgi?id=49730
'krit attempted to do that, but revert got stuck' (Requested
by antonm on #webkit).
* Android.mk:
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* WebCore.order:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSBindingsAllInOne.cpp:
* bindings/js/JSDOMBinding.cpp:
(WebCore::setDOMException):
* bindings/js/JSDOMBinding.h:
(WebCore::createDOMObjectWrapper):
(WebCore::getDOMObjectWrapper):
* bindings/js/JSSVGPathSegCustom.cpp:
(WebCore::toJS):
* bindings/js/JSSVGPathSegListCustom.cpp: Added.
(WebCore::JSSVGPathSegList::clear):
(WebCore::JSSVGPathSegList::initialize):
(WebCore::JSSVGPathSegList::getItem):
(WebCore::JSSVGPathSegList::insertItemBefore):
(WebCore::JSSVGPathSegList::replaceItem):
(WebCore::JSSVGPathSegList::removeItem):
(WebCore::JSSVGPathSegList::appendItem):
* bindings/scripts/CodeGenerator.pm:
* bindings/scripts/CodeGeneratorJS.pm:
* bindings/scripts/CodeGeneratorObjC.pm:
* bindings/scripts/CodeGeneratorV8.pm:
* rendering/SVGRenderTreeAsText.cpp:
(WebCore::operator<<):
* svg/SVGAllInOne.cpp:
* svg/SVGAnimatedPathData.cpp: Added.
* svg/SVGAnimatedPathData.h: Copied from WebCore/svg/SVGPathSegClosePath.h.
(WebCore::SVGAnimatedPathData::~SVGAnimatedPathData):
* svg/SVGAnimatedPathData.idl: Copied from WebCore/svg/SVGPathSegCurvetoQuadraticAbs.idl.
* svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::SVGPathElement):
(WebCore::SVGPathElement::getPathSegAtLength):
(WebCore::SVGPathElement::createSVGPathSegClosePath):
(WebCore::SVGPathElement::createSVGPathSegMovetoAbs):
(WebCore::SVGPathElement::createSVGPathSegMovetoRel):
(WebCore::SVGPathElement::createSVGPathSegLinetoAbs):
(WebCore::SVGPathElement::createSVGPathSegLinetoRel):
(WebCore::SVGPathElement::createSVGPathSegCurvetoCubicAbs):
(WebCore::SVGPathElement::createSVGPathSegCurvetoCubicRel):
(WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticAbs):
(WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticRel):
(WebCore::SVGPathElement::createSVGPathSegArcAbs):
(WebCore::SVGPathElement::createSVGPathSegArcRel):
(WebCore::SVGPathElement::createSVGPathSegLinetoHorizontalAbs):
(WebCore::SVGPathElement::createSVGPathSegLinetoHorizontalRel):
(WebCore::SVGPathElement::createSVGPathSegLinetoVerticalAbs):
(WebCore::SVGPathElement::createSVGPathSegLinetoVerticalRel):
(WebCore::SVGPathElement::createSVGPathSegCurvetoCubicSmoothAbs):
(WebCore::SVGPathElement::createSVGPathSegCurvetoCubicSmoothRel):
(WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothAbs):
(WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothRel):
(WebCore::SVGPathElement::parseMappedAttribute):
(WebCore::SVGPathElement::svgAttributeChanged):
(WebCore::SVGPathElement::synchronizeProperty):
(WebCore::SVGPathElement::pathSegList):
(WebCore::SVGPathElement::normalizedPathSegList):
(WebCore::SVGPathElement::animatedPathSegList):
(WebCore::SVGPathElement::animatedNormalizedPathSegList):
(WebCore::SVGPathElement::toPathData):
* svg/SVGPathElement.h:
(WebCore::SVGPathElement::isValid):
(WebCore::SVGPathElement::supportsMarkers):
* svg/SVGPathElement.idl:
* svg/SVGPathParserFactory.cpp:
(WebCore::globalSVGPathSegListBuilder):
(WebCore::SVGPathParserFactory::buildPathFromByteStream):
(WebCore::SVGPathParserFactory::buildPathFromSVGPathSegList):
(WebCore::SVGPathParserFactory::buildSVGPathSegListFromString):
(WebCore::SVGPathParserFactory::buildSVGPathSegListFromByteStream):
(WebCore::SVGPathParserFactory::buildStringFromSVGPathSegList):
(WebCore::SVGPathParserFactory::buildSVGPathByteStreamFromString):
(WebCore::SVGPathParserFactory::buildAnimatedSVGPathByteStream):
(WebCore::SVGPathParserFactory::getSVGPathSegAtLengthFromSVGPathSegList):
* svg/SVGPathParserFactory.h:
* svg/SVGPathSeg.cpp: Copied from WebCore/svg/SVGPathSegLinetoHorizontalRel.idl.
(WebCore::SVGPathSeg::associatedAttributeName):
* svg/SVGPathSeg.h:
(WebCore::SVGPathSegSingleCoord::setX):
(WebCore::SVGPathSegSingleCoord::x):
(WebCore::SVGPathSegSingleCoord::setY):
(WebCore::SVGPathSegSingleCoord::y):
(WebCore::SVGPathSegSingleCoord::SVGPathSegSingleCoord):
* svg/SVGPathSeg.idl:
* svg/SVGPathSegArc.cpp: Copied from WebCore/svg/SVGPathSegClosePath.h.
(WebCore::SVGPathSegArcAbs::SVGPathSegArcAbs):
(WebCore::SVGPathSegArcRel::SVGPathSegArcRel):
* svg/SVGPathSegArc.h:
(WebCore::SVGPathSegArc::SVGPathSegArc):
(WebCore::SVGPathSegArc::setX):
(WebCore::SVGPathSegArc::x):
(WebCore::SVGPathSegArc::setY):
(WebCore::SVGPathSegArc::y):
(WebCore::SVGPathSegArc::setR1):
(WebCore::SVGPathSegArc::r1):
(WebCore::SVGPathSegArc::setR2):
(WebCore::SVGPathSegArc::r2):
(WebCore::SVGPathSegArc::setAngle):
(WebCore::SVGPathSegArc::angle):
(WebCore::SVGPathSegArc::setLargeArcFlag):
(WebCore::SVGPathSegArc::largeArcFlag):
(WebCore::SVGPathSegArc::setSweepFlag):
(WebCore::SVGPathSegArc::sweepFlag):
(WebCore::SVGPathSegArcAbs::create):
(WebCore::SVGPathSegArcAbs::pathSegType):
(WebCore::SVGPathSegArcAbs::pathSegTypeAsLetter):
(WebCore::SVGPathSegArcRel::create):
(WebCore::SVGPathSegArcRel::pathSegType):
(WebCore::SVGPathSegArcRel::pathSegTypeAsLetter):
* svg/SVGPathSegArcAbs.idl:
* svg/SVGPathSegArcRel.idl:
* svg/SVGPathSegClosePath.cpp: Added.
* svg/SVGPathSegClosePath.h:
(WebCore::SVGPathSegClosePath::create):
(WebCore::SVGPathSegClosePath::SVGPathSegClosePath):
* svg/SVGPathSegCurvetoCubic.cpp: Copied from WebCore/svg/SVGPathSegClosePath.h.
(WebCore::SVGPathSegCurvetoCubicAbs::SVGPathSegCurvetoCubicAbs):
(WebCore::SVGPathSegCurvetoCubicRel::SVGPathSegCurvetoCubicRel):
* svg/SVGPathSegCurvetoCubic.h:
(WebCore::SVGPathSegCurvetoCubic::SVGPathSegCurvetoCubic):
(WebCore::SVGPathSegCurvetoCubic::setX):
(WebCore::SVGPathSegCurvetoCubic::x):
(WebCore::SVGPathSegCurvetoCubic::setY):
(WebCore::SVGPathSegCurvetoCubic::y):
(WebCore::SVGPathSegCurvetoCubic::setX1):
(WebCore::SVGPathSegCurvetoCubic::x1):
(WebCore::SVGPathSegCurvetoCubic::setY1):
(WebCore::SVGPathSegCurvetoCubic::y1):
(WebCore::SVGPathSegCurvetoCubic::setX2):
(WebCore::SVGPathSegCurvetoCubic::x2):
(WebCore::SVGPathSegCurvetoCubic::setY2):
(WebCore::SVGPathSegCurvetoCubic::y2):
(WebCore::SVGPathSegCurvetoCubicAbs::create):
(WebCore::SVGPathSegCurvetoCubicAbs::pathSegType):
(WebCore::SVGPathSegCurvetoCubicAbs::pathSegTypeAsLetter):
(WebCore::SVGPathSegCurvetoCubicRel::create):
(WebCore::SVGPathSegCurvetoCubicRel::pathSegType):
(WebCore::SVGPathSegCurvetoCubicRel::pathSegTypeAsLetter):
* svg/SVGPathSegCurvetoCubicAbs.idl:
* svg/SVGPathSegCurvetoCubicRel.idl:
* svg/SVGPathSegCurvetoCubicSmooth.cpp: Copied from WebCore/svg/SVGPathSegClosePath.h.
(WebCore::SVGPathSegCurvetoCubicSmoothAbs::SVGPathSegCurvetoCubicSmoothAbs):
(WebCore::SVGPathSegCurvetoCubicSmoothRel::SVGPathSegCurvetoCubicSmoothRel):
* svg/SVGPathSegCurvetoCubicSmooth.h:
(WebCore::SVGPathSegCurvetoCubicSmooth::SVGPathSegCurvetoCubicSmooth):
(WebCore::SVGPathSegCurvetoCubicSmooth::setX):
(WebCore::SVGPathSegCurvetoCubicSmooth::x):
(WebCore::SVGPathSegCurvetoCubicSmooth::setY):
(WebCore::SVGPathSegCurvetoCubicSmooth::y):
(WebCore::SVGPathSegCurvetoCubicSmooth::setX2):
(WebCore::SVGPathSegCurvetoCubicSmooth::x2):
(WebCore::SVGPathSegCurvetoCubicSmooth::setY2):
(WebCore::SVGPathSegCurvetoCubicSmooth::y2):
(WebCore::SVGPathSegCurvetoCubicSmoothAbs::create):
(WebCore::SVGPathSegCurvetoCubicSmoothAbs::pathSegType):
(WebCore::SVGPathSegCurvetoCubicSmoothAbs::pathSegTypeAsLetter):
(WebCore::SVGPathSegCurvetoCubicSmoothRel::create):
(WebCore::SVGPathSegCurvetoCubicSmoothRel::pathSegType):
(WebCore::SVGPathSegCurvetoCubicSmoothRel::pathSegTypeAsLetter):
* svg/SVGPathSegCurvetoCubicSmoothAbs.idl:
* svg/SVGPathSegCurvetoCubicSmoothRel.idl:
* svg/SVGPathSegCurvetoQuadratic.cpp: Copied from WebCore/svg/SVGPathSegClosePath.h.
(WebCore::SVGPathSegCurvetoQuadraticAbs::SVGPathSegCurvetoQuadraticAbs):
(WebCore::SVGPathSegCurvetoQuadraticRel::SVGPathSegCurvetoQuadraticRel):
* svg/SVGPathSegCurvetoQuadratic.h:
(WebCore::SVGPathSegCurvetoQuadratic::SVGPathSegCurvetoQuadratic):
(WebCore::SVGPathSegCurvetoQuadratic::setX):
(WebCore::SVGPathSegCurvetoQuadratic::x):
(WebCore::SVGPathSegCurvetoQuadratic::setY):
(WebCore::SVGPathSegCurvetoQuadratic::y):
(WebCore::SVGPathSegCurvetoQuadratic::setX1):
(WebCore::SVGPathSegCurvetoQuadratic::x1):
(WebCore::SVGPathSegCurvetoQuadratic::setY1):
(WebCore::SVGPathSegCurvetoQuadratic::y1):
(WebCore::SVGPathSegCurvetoQuadraticAbs::create):
(WebCore::SVGPathSegCurvetoQuadraticAbs::pathSegType):
(WebCore::SVGPathSegCurvetoQuadraticAbs::pathSegTypeAsLetter):
(WebCore::SVGPathSegCurvetoQuadraticRel::create):
(WebCore::SVGPathSegCurvetoQuadraticRel::pathSegType):
(WebCore::SVGPathSegCurvetoQuadraticRel::pathSegTypeAsLetter):
* svg/SVGPathSegCurvetoQuadraticAbs.idl:
* svg/SVGPathSegCurvetoQuadraticRel.idl:
* svg/SVGPathSegCurvetoQuadraticSmooth.cpp: Copied from WebCore/svg/SVGPathSegClosePath.h.
(WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::SVGPathSegCurvetoQuadraticSmoothAbs):
(WebCore::SVGPathSegCurvetoQuadraticSmoothRel::SVGPathSegCurvetoQuadraticSmoothRel):
* svg/SVGPathSegCurvetoQuadraticSmooth.h:
(WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::create):
(WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::pathSegType):
(WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::pathSegTypeAsLetter):
(WebCore::SVGPathSegCurvetoQuadraticSmoothRel::create):
(WebCore::SVGPathSegCurvetoQuadraticSmoothRel::pathSegType):
(WebCore::SVGPathSegCurvetoQuadraticSmoothRel::pathSegTypeAsLetter):
* svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl:
* svg/SVGPathSegCurvetoQuadraticSmoothRel.idl:
* svg/SVGPathSegLineto.cpp: Copied from WebCore/svg/SVGPathSegClosePath.h.
(WebCore::SVGPathSegLinetoAbs::SVGPathSegLinetoAbs):
(WebCore::SVGPathSegLinetoRel::SVGPathSegLinetoRel):
* svg/SVGPathSegLineto.h:
(WebCore::SVGPathSegLinetoAbs::create):
(WebCore::SVGPathSegLinetoAbs::pathSegType):
(WebCore::SVGPathSegLinetoAbs::pathSegTypeAsLetter):
(WebCore::SVGPathSegLinetoRel::create):
(WebCore::SVGPathSegLinetoRel::pathSegType):
(WebCore::SVGPathSegLinetoRel::pathSegTypeAsLetter):
* svg/SVGPathSegLinetoAbs.idl:
* svg/SVGPathSegLinetoHorizontal.cpp: Copied from WebCore/svg/SVGPathSegClosePath.h.
(WebCore::SVGPathSegLinetoHorizontalAbs::SVGPathSegLinetoHorizontalAbs):
(WebCore::SVGPathSegLinetoHorizontalRel::SVGPathSegLinetoHorizontalRel):
* svg/SVGPathSegLinetoHorizontal.h:
(WebCore::SVGPathSegLinetoHorizontal::SVGPathSegLinetoHorizontal):
(WebCore::SVGPathSegLinetoHorizontal::setX):
(WebCore::SVGPathSegLinetoHorizontal::x):
(WebCore::SVGPathSegLinetoHorizontalAbs::create):
(WebCore::SVGPathSegLinetoHorizontalAbs::pathSegType):
(WebCore::SVGPathSegLinetoHorizontalAbs::pathSegTypeAsLetter):
(WebCore::SVGPathSegLinetoHorizontalRel::create):
(WebCore::SVGPathSegLinetoHorizontalRel::pathSegType):
(WebCore::SVGPathSegLinetoHorizontalRel::pathSegTypeAsLetter):
* svg/SVGPathSegLinetoHorizontalAbs.idl:
* svg/SVGPathSegLinetoHorizontalRel.idl:
* svg/SVGPathSegLinetoRel.idl:
* svg/SVGPathSegLinetoVertical.cpp: Copied from WebCore/svg/SVGPathSegClosePath.h.
(WebCore::SVGPathSegLinetoVerticalAbs::SVGPathSegLinetoVerticalAbs):
(WebCore::SVGPathSegLinetoVerticalRel::SVGPathSegLinetoVerticalRel):
* svg/SVGPathSegLinetoVertical.h:
(WebCore::SVGPathSegLinetoVertical::SVGPathSegLinetoVertical):
(WebCore::SVGPathSegLinetoVertical::setY):
(WebCore::SVGPathSegLinetoVertical::y):
(WebCore::SVGPathSegLinetoVerticalAbs::create):
(WebCore::SVGPathSegLinetoVerticalAbs::pathSegType):
(WebCore::SVGPathSegLinetoVerticalAbs::pathSegTypeAsLetter):
(WebCore::SVGPathSegLinetoVerticalRel::create):
(WebCore::SVGPathSegLinetoVerticalRel::pathSegType):
(WebCore::SVGPathSegLinetoVerticalRel::pathSegTypeAsLetter):
* svg/SVGPathSegLinetoVerticalAbs.idl:
* svg/SVGPathSegLinetoVerticalRel.idl:
* svg/SVGPathSegList.cpp:
(WebCore::SVGPathSegList::SVGPathSegList):
* svg/SVGPathSegList.h:
(WebCore::SVGPathSegList::create):
* svg/SVGPathSegList.idl:
* svg/SVGPathSegListBuilder.cpp:
(WebCore::SVGPathSegListBuilder::SVGPathSegListBuilder):
(WebCore::SVGPathSegListBuilder::moveTo):
(WebCore::SVGPathSegListBuilder::lineTo):
(WebCore::SVGPathSegListBuilder::lineToHorizontal):
(WebCore::SVGPathSegListBuilder::lineToVertical):
(WebCore::SVGPathSegListBuilder::curveToCubic):
(WebCore::SVGPathSegListBuilder::curveToCubicSmooth):
(WebCore::SVGPathSegListBuilder::curveToQuadratic):
(WebCore::SVGPathSegListBuilder::curveToQuadraticSmooth):
(WebCore::SVGPathSegListBuilder::arcTo):
(WebCore::SVGPathSegListBuilder::closePath):
* svg/SVGPathSegListBuilder.h:
(WebCore::SVGPathSegListBuilder::setCurrentSVGPathSegList):
(WebCore::SVGPathSegListBuilder::cleanup):
* svg/SVGPathSegListSource.cpp:
(WebCore::SVGPathSegListSource::SVGPathSegListSource):
(WebCore::SVGPathSegListSource::parseSVGSegmentType):
(WebCore::SVGPathSegListSource::nextCommand):
(WebCore::SVGPathSegListSource::parseMoveToSegment):
(WebCore::SVGPathSegListSource::parseLineToSegment):
(WebCore::SVGPathSegListSource::parseCurveToQuadraticSmoothSegment):
* svg/SVGPathSegListSource.h:
(WebCore::SVGPathSegListSource::create):
* svg/SVGPathSegMoveto.cpp: Copied from WebCore/svg/SVGPathSegClosePath.h.
(WebCore::SVGPathSegMovetoAbs::SVGPathSegMovetoAbs):
(WebCore::SVGPathSegMovetoRel::SVGPathSegMovetoRel):
* svg/SVGPathSegMoveto.h:
(WebCore::SVGPathSegMovetoAbs::create):
(WebCore::SVGPathSegMovetoAbs::pathSegType):
(WebCore::SVGPathSegMovetoAbs::pathSegTypeAsLetter):
(WebCore::SVGPathSegMovetoRel::create):
(WebCore::SVGPathSegMovetoRel::pathSegType):
(WebCore::SVGPathSegMovetoRel::pathSegTypeAsLetter):
* svg/SVGPathSegMovetoAbs.idl:
* svg/SVGPathSegMovetoRel.idl:
* svg/SVGPathSegWithContext.h: Removed.
* svg/properties/SVGAnimatedPathSegListPropertyTearOff.h: Removed.
* svg/properties/SVGPathSegListPropertyTearOff.cpp: Removed.
* svg/properties/SVGPathSegListPropertyTearOff.h: Removed.
2010-11-18 Sheriff Bot <webkit.review.bot at gmail.com>
Unreviewed, rolling out r72288.
http://trac.webkit.org/changeset/72288
https://bugs.webkit.org/show_bug.cgi?id=49730
'krit attempted to do that, but revert got stuck' (Requested
by antonm on #webkit).
* WebView/WebRenderLayer.mm:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@72294 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index e7d2941..1b1f909 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,61 @@
+2010-11-18 Sheriff Bot <webkit.review.bot at gmail.com>
+
+ Unreviewed, rolling out r72288.
+ http://trac.webkit.org/changeset/72288
+ https://bugs.webkit.org/show_bug.cgi?id=49730
+
+ 'krit attempted to do that, but revert got stuck' (Requested
+ by antonm on #webkit).
+
+ * platform/mac/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.checksum: Removed.
+ * platform/mac/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.png: Removed.
+ * platform/mac/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt: Removed.
+ * platform/mac/svg/custom/svg-curve-with-relative-cordinates-expected.txt:
+ * platform/mac/svg/dom/SVGPathSegList-appendItem-expected.checksum: Removed.
+ * platform/mac/svg/dom/SVGPathSegList-appendItem-expected.png: Removed.
+ * platform/mac/svg/dom/SVGPathSegList-clear-and-initialize-expected.checksum: Removed.
+ * platform/mac/svg/dom/SVGPathSegList-clear-and-initialize-expected.png: Removed.
+ * platform/mac/svg/dom/SVGPathSegList-cloning-expected.checksum: Removed.
+ * platform/mac/svg/dom/SVGPathSegList-cloning-expected.png: Removed.
+ * platform/mac/svg/dom/SVGPathSegList-cloning-expected.txt: Removed.
+ * platform/mac/svg/dom/SVGPathSegList-insertItemBefore-expected.checksum: Removed.
+ * platform/mac/svg/dom/SVGPathSegList-insertItemBefore-expected.png: Removed.
+ * platform/mac/svg/dom/SVGPathSegList-removeItem-expected.checksum: Removed.
+ * platform/mac/svg/dom/SVGPathSegList-removeItem-expected.png: Removed.
+ * platform/mac/svg/dom/SVGPathSegList-replaceItem-expected.checksum: Removed.
+ * platform/mac/svg/dom/SVGPathSegList-replaceItem-expected.png: Removed.
+ * platform/mac/svg/dom/SVGPathSegList-segment-modification-expected.checksum: Removed.
+ * platform/mac/svg/dom/SVGPathSegList-segment-modification-expected.png: Removed.
+ * platform/mac/svg/dom/SVGPathSegList-segment-modification-expected.txt: Removed.
+ * platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization-expected.checksum: Removed.
+ * platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization-expected.png: Removed.
+ * platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization2-expected.checksum: Removed.
+ * platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization2-expected.png: Removed.
+ * platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization2-expected.txt: Removed.
+ * svg/W3C-SVG-1.1-SE/paths-dom-02-f.svg: Removed.
+ * svg/dom/SVGPathSegList-appendItem-expected.txt: Removed.
+ * svg/dom/SVGPathSegList-appendItem.xhtml: Removed.
+ * svg/dom/SVGPathSegList-clear-and-initialize-expected.txt: Removed.
+ * svg/dom/SVGPathSegList-clear-and-initialize.xhtml: Removed.
+ * svg/dom/SVGPathSegList-cloning.html: Removed.
+ * svg/dom/SVGPathSegList-insertItemBefore-expected.txt: Removed.
+ * svg/dom/SVGPathSegList-insertItemBefore.xhtml: Removed.
+ * svg/dom/SVGPathSegList-removeItem-expected.txt: Removed.
+ * svg/dom/SVGPathSegList-removeItem.xhtml: Removed.
+ * svg/dom/SVGPathSegList-replaceItem-expected.txt: Removed.
+ * svg/dom/SVGPathSegList-replaceItem.xhtml: Removed.
+ * svg/dom/SVGPathSegList-segment-modification.svg: Removed.
+ * svg/dom/SVGPathSegList-xml-dom-synchronization-expected.txt: Removed.
+ * svg/dom/SVGPathSegList-xml-dom-synchronization.xhtml: Removed.
+ * svg/dom/SVGPathSegList-xml-dom-synchronization2.xhtml: Removed.
+ * svg/dom/fuzz-path-parser-expected.txt:
+ * svg/dom/path-parser-expected.txt:
+ * svg/dom/script-tests/path-parser.js:
+ ():
+ * svg/dom/svglist-exception-on-out-bounds-error-expected.txt:
+ * svg/dom/svglist-exception-on-out-bounds-error.html:
+ * svg/dom/svgpath-out-of-bounds-getPathSeg-expected.txt:
+
2010-11-18 Anton Muhin <antonm at chromium.org>
Not reviewed, removing rebaselined expectation for fast/backgrounds/size/contain-and-cover.html
diff --git a/LayoutTests/platform/mac/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.checksum b/LayoutTests/platform/mac/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.checksum
deleted file mode 100644
index 856b928..0000000
--- a/LayoutTests/platform/mac/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.checksum
+++ /dev/null
@@ -1 +0,0 @@
-d0ddb1998d90b5296942f0e72b6b1061
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.png b/LayoutTests/platform/mac/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.png
deleted file mode 100644
index 252ef68..0000000
Binary files a/LayoutTests/platform/mac/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.png and /dev/null differ
diff --git a/LayoutTests/platform/mac/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt b/LayoutTests/platform/mac/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt
deleted file mode 100644
index 1feb275..0000000
--- a/LayoutTests/platform/mac/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-CONSOLE MESSAGE: line 267: Error: Problem parsing d=""
-layer at (0,0) size 480x360
- RenderView at (0,0) size 480x360
-layer at (0,0) size 480x360
- RenderSVGRoot {svg} at (0,0) size 480x360
- RenderSVGHiddenContainer {defs} at (0,0) size 0x0
- RenderSVGContainer {g} at (119,61) size 242x239
- RenderSVGPath {path} at (119,61) size 242x239 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#0000FF]}] [data="M 250.261 208.191 C 256 300 224 300 229.739 208.191 C 175.122 282.21 150.609 261.641 214.019 195 C 124.601 216.595 119.045 185.081 210.456 174.791 C 128.077 133.856 144.077 106.144 220.716 157.019 C 183.923 72.7092 213.993 61.7646 240 150 C 266.007 61.7646 296.077 72.7092 259.284 157.019 C 335.923 106.144 351.923 133.856 269.544 174.791 C 360.955 185.081 355.399 216.595 265.981 195 C 329.391 261.641 304.878 282.21 250.261 208.191 Z"]
- RenderSVGContainer {g} at (10,310) size 231x37
- RenderSVGText {text} at (10,310) size 231x37 contains 1 chunk(s)
- RenderSVGInlineText {#text} at (0,0) size 231x37
- chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 231.00: "$Revision: 1.5 $"
- RenderSVGPath {rect} at (0,0) size 480x360 [stroke={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=478.00] [height=358.00]
- RenderSVGContainer {g} at (0,0) size 480x24
- RenderSVGPath {rect} at (0,0) size 480x22 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [x=1.00] [y=1.00] [width=478.00] [height=20.00]
- RenderSVGText {text} at (207,0) size 66x23 contains 1 chunk(s)
- RenderSVGInlineText {#text} at (0,0) size 66x23
- chunk 1 (middle anchor) text run 1 at (207.00,18.00) startOffset 0 endOffset 5 width 66.00: "DRAFT"
diff --git a/LayoutTests/platform/mac/svg/custom/svg-curve-with-relative-cordinates-expected.txt b/LayoutTests/platform/mac/svg/custom/svg-curve-with-relative-cordinates-expected.txt
index 249ce92..cf5dae3 100644
--- a/LayoutTests/platform/mac/svg/custom/svg-curve-with-relative-cordinates-expected.txt
+++ b/LayoutTests/platform/mac/svg/custom/svg-curve-with-relative-cordinates-expected.txt
@@ -8,4 +8,4 @@ layer at (0,0) size 800x600
text run at (0,0) width 349: "Here is an html paragraph. And below is a svg drawing"
RenderBlock {DIV} at (0,34) size 784x400
RenderSVGRoot {svg} at (48,57) size 340x310
- RenderSVGPath {path} at (48,57) size 340x310 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [data="M 14.8649 27.5434 C 10.9361 23.4486 5.53039 20.9307 2.16163 16.2739 C 0.1954 13.4713 -0.27051 9.80295 0.40252 6.50142 C 1.50231 3.03806 4.88027 0.20151 8.61522 0.38648 C 11.4904 0.13255 14.1594 2.02987 15.543 4.44105 C 15.919 4.6728 15.9025 6.65371 16.2617 5.51432 C 17.3118 2.6047 20.1552 0.48976 23.2581 0.39544 C 27.3718 0.07861 31.5625 3.22656 31.9769 7.4138 C 32.4419 10.5606 31.9362 13.9546 29.9366 16.5144 C 27.0142 20.4478 22.515 22.6972 19.032 26.0537 C 17.9438 26.8473 16.7477 28.519 15.904 28.9961 C 15.6231 28.4687 15.2627 27.9879 14.8649 27.5434 Z"]
+ RenderSVGPath {path} at (48,57) size 340x310 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [data="M 14.8649 27.5434 C 10.9361 23.4486 5.53039 20.9307 2.16163 16.2739 C 0.1954 13.4713 -0.27051 9.80295 0.40252 6.50142 C 1.50231 3.03806 4.88027 0.20151 8.61522 0.38648 C 11.4904 0.13255 14.1594 2.02987 15.543 4.44105 c 0.37594 0.23175 0.35941 2.21266 0.71868 1.07327 C 17.3118 2.6047 20.1552 0.48976 23.2581 0.39544 C 27.3718 0.07861 31.5625 3.22656 31.9769 7.4138 c 0.46508 3.14678 -0.04068 6.54082 -2.04024 9.1006 c -2.92245 3.93336 -7.42165 6.18284 -10.9046 9.53931 c -1.0882 0.79363 -2.28426 2.46524 -3.12799 2.94243 c -0.28088 -0.52741 -0.6413 -1.00829 -1.03915 -1.45272 Z"]
diff --git a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-appendItem-expected.checksum b/LayoutTests/platform/mac/svg/dom/SVGPathSegList-appendItem-expected.checksum
deleted file mode 100644
index 7d62f77..0000000
--- a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-appendItem-expected.checksum
+++ /dev/null
@@ -1 +0,0 @@
-b0741ea3954a97f6350eade3873aec3b
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-appendItem-expected.png b/LayoutTests/platform/mac/svg/dom/SVGPathSegList-appendItem-expected.png
deleted file mode 100644
index 56b2476..0000000
Binary files a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-appendItem-expected.png and /dev/null differ
diff --git a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-clear-and-initialize-expected.checksum b/LayoutTests/platform/mac/svg/dom/SVGPathSegList-clear-and-initialize-expected.checksum
deleted file mode 100644
index 630e945..0000000
--- a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-clear-and-initialize-expected.checksum
+++ /dev/null
@@ -1 +0,0 @@
-15f1f1bee1df648b74f170a609a52c91
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-clear-and-initialize-expected.png b/LayoutTests/platform/mac/svg/dom/SVGPathSegList-clear-and-initialize-expected.png
deleted file mode 100644
index 01cec09..0000000
Binary files a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-clear-and-initialize-expected.png and /dev/null differ
diff --git a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-cloning-expected.checksum b/LayoutTests/platform/mac/svg/dom/SVGPathSegList-cloning-expected.checksum
deleted file mode 100644
index 5143299..0000000
--- a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-cloning-expected.checksum
+++ /dev/null
@@ -1 +0,0 @@
-fd7678dd8df9f12286e26baf0507cdb4
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-cloning-expected.png b/LayoutTests/platform/mac/svg/dom/SVGPathSegList-cloning-expected.png
deleted file mode 100644
index ee631a2..0000000
Binary files a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-cloning-expected.png and /dev/null differ
diff --git a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-cloning-expected.txt b/LayoutTests/platform/mac/svg/dom/SVGPathSegList-cloning-expected.txt
deleted file mode 100644
index 9eab518..0000000
--- a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-cloning-expected.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-layer at (0,0) size 800x600
- RenderView at (0,0) size 800x600
-layer at (0,0) size 800x600
- RenderBlock {HTML} at (0,0) size 800x600
- RenderBody {BODY} at (8,8) size 784x584
- RenderBlock {P} at (0,0) size 784x36
- RenderText {#text} at (0,0) size 783x36
- text run at (0,0) width 783: "Below is a JavaScript-generated svg drawing. You should see two red blobs: the left, a programmatically generated path and"
- text run at (0,18) width 116: "the right, its clone."
- RenderBlock {DIV} at (0,52) size 784x400
- RenderSVGRoot {svg} at (26,188) size 374x164
- RenderSVGPath {path} at (26,188) size 224x164 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [data="M 10 10 L 25 15 L 110 75 L 120 90 L 42 42 Z"]
- RenderSVGPath {path} at (176,188) size 224x164 [transform={m=((1.00,0.00)(0.00,1.00)) t=(75.00,0.00)}] [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [data="M 10 10 L 25 15 L 110 75 L 120 90 L 42 42 Z"]
diff --git a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-insertItemBefore-expected.checksum b/LayoutTests/platform/mac/svg/dom/SVGPathSegList-insertItemBefore-expected.checksum
deleted file mode 100644
index 9e20823..0000000
--- a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-insertItemBefore-expected.checksum
+++ /dev/null
@@ -1 +0,0 @@
-338a43f97d98410a01905b61101b04c7
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-insertItemBefore-expected.png b/LayoutTests/platform/mac/svg/dom/SVGPathSegList-insertItemBefore-expected.png
deleted file mode 100644
index c6212b9..0000000
Binary files a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-insertItemBefore-expected.png and /dev/null differ
diff --git a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-removeItem-expected.checksum b/LayoutTests/platform/mac/svg/dom/SVGPathSegList-removeItem-expected.checksum
deleted file mode 100644
index a455a56..0000000
--- a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-removeItem-expected.checksum
+++ /dev/null
@@ -1 +0,0 @@
-da5a4614bab6f5ef7fb6d021e062ca00
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-removeItem-expected.png b/LayoutTests/platform/mac/svg/dom/SVGPathSegList-removeItem-expected.png
deleted file mode 100644
index 2bda30f..0000000
Binary files a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-removeItem-expected.png and /dev/null differ
diff --git a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-replaceItem-expected.checksum b/LayoutTests/platform/mac/svg/dom/SVGPathSegList-replaceItem-expected.checksum
deleted file mode 100644
index 3cfa992..0000000
--- a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-replaceItem-expected.checksum
+++ /dev/null
@@ -1 +0,0 @@
-36a012ee1a5fd8148b27e87386ee28ca
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-replaceItem-expected.png b/LayoutTests/platform/mac/svg/dom/SVGPathSegList-replaceItem-expected.png
deleted file mode 100644
index 59785e6..0000000
Binary files a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-replaceItem-expected.png and /dev/null differ
diff --git a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-segment-modification-expected.checksum b/LayoutTests/platform/mac/svg/dom/SVGPathSegList-segment-modification-expected.checksum
deleted file mode 100644
index b579dcc..0000000
--- a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-segment-modification-expected.checksum
+++ /dev/null
@@ -1 +0,0 @@
-20619e1b0dba942a7e96c7a785e71e54
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-segment-modification-expected.png b/LayoutTests/platform/mac/svg/dom/SVGPathSegList-segment-modification-expected.png
deleted file mode 100644
index 6008841..0000000
Binary files a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-segment-modification-expected.png and /dev/null differ
diff --git a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-segment-modification-expected.txt b/LayoutTests/platform/mac/svg/dom/SVGPathSegList-segment-modification-expected.txt
deleted file mode 100644
index dd7c9c7..0000000
--- a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-segment-modification-expected.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-layer at (0,0) size 800x600
- RenderView at (0,0) size 800x600
-layer at (0,0) size 300x300
- RenderSVGRoot {svg} at (10,6) size 245x74
- RenderSVGPath {path} at (78,38) size 84x42 [stroke={[type=SOLID] [color=#000000] [stroke width=3.00]}] [data="M 80 40 C 80 40 120 80 160 40"]
- RenderSVGText {text} at (10,6) size 245x18 contains 1 chunk(s)
- RenderSVGInlineText {#text} at (0,0) size 245x18
- chunk 1 text run 1 at (10.00,20.00) startOffset 0 endOffset 36 width 245.00: "There should be a smooth curve below"
diff --git a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization-expected.checksum b/LayoutTests/platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization-expected.checksum
deleted file mode 100644
index 51b7c29..0000000
--- a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization-expected.checksum
+++ /dev/null
@@ -1 +0,0 @@
-7a1153f9a5ef269a8071df8f211603f0
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization-expected.png b/LayoutTests/platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization-expected.png
deleted file mode 100644
index 79e5108..0000000
Binary files a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization-expected.png and /dev/null differ
diff --git a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization2-expected.checksum b/LayoutTests/platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization2-expected.checksum
deleted file mode 100644
index 7afcdd7..0000000
--- a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization2-expected.checksum
+++ /dev/null
@@ -1 +0,0 @@
-d671b3c8a0ad134b052156775db6b4a7
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization2-expected.png b/LayoutTests/platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization2-expected.png
deleted file mode 100644
index c2d564d..0000000
Binary files a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization2-expected.png and /dev/null differ
diff --git a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization2-expected.txt b/LayoutTests/platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization2-expected.txt
deleted file mode 100644
index 1ac2a06..0000000
--- a/LayoutTests/platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization2-expected.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-layer at (0,0) size 800x600
- RenderView at (0,0) size 800x600
-layer at (0,0) size 600x500
- RenderSVGRoot {svg} at (10,6) size 493x219
- RenderSVGPath {path} at (46,103) size 128x122 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00]}] [fill={[type=SOLID] [color=#FF0000]}] [data="M 50 150 L 95 107 L 145 157 L 169 221 L 100 200 Z"]
- RenderSVGText {text} at (10,6) size 344x18 contains 1 chunk(s)
- RenderSVGInlineText {#text} at (0,0) size 344x18
- chunk 1 text run 1 at (10.00,20.00) startOffset 0 endOffset 52 width 344.00: "Right after loading, a segment is added to the path."
- RenderSVGText {text} at (10,26) size 493x18 contains 1 chunk(s)
- RenderSVGInlineText {#text} at (0,0) size 493x18
- chunk 1 text run 1 at (10.00,40.00) startOffset 0 endOffset 72 width 493.00: "The path and its attribute should be updated to include the new segment."
- RenderSVGText {text} at (10,56) size 65x18 contains 1 chunk(s)
- RenderSVGInlineText {#text} at (0,0) size 65x18
- chunk 1 text run 1 at (10.00,70.00) startOffset 0 endOffset 12 width 65.00: "\"d\" initial:"
- RenderSVGText {text} at (90,56) size 212x18 contains 1 chunk(s)
- RenderSVGInlineText {#text} at (0,0) size 212x18
- chunk 1 text run 1 at (90.00,70.00) startOffset 0 endOffset 32 width 212.00: "M50,150 l45,-43 l24,64 l-69,-21z"
- RenderSVGText {text} at (10,76) size 58x18 contains 1 chunk(s)
- RenderSVGInlineText {#text} at (0,0) size 58x18
- chunk 1 text run 1 at (10.00,90.00) startOffset 0 endOffset 10 width 58.00: "\"d\" after:"
- RenderSVGText {text} at (90,76) size 283x18 contains 1 chunk(s)
- RenderSVGInlineText {#text} at (0,0) size 283x18
- chunk 1 text run 1 at (90.00,90.00) startOffset 0 endOffset 45 width 283.00: "M 50 150 l 45 -43 l 50 50 l 24 64 l -69 -21 Z"
diff --git a/LayoutTests/svg/W3C-SVG-1.1-SE/paths-dom-02-f.svg b/LayoutTests/svg/W3C-SVG-1.1-SE/paths-dom-02-f.svg
deleted file mode 100644
index 209ccf1..0000000
--- a/LayoutTests/svg/W3C-SVG-1.1-SE/paths-dom-02-f.svg
+++ /dev/null
@@ -1,279 +0,0 @@
-<svg version="1.1" baseProfile="full" onload="CreatePath();setTimeout('AnimatePath();', 0);" id="svg-root"
- width="100%" height="100%" viewBox="0 0 480 360"
- xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- <!--======================================================================-->
- <!--= SVG 1.1 2nd Edition Test Case =-->
- <!--======================================================================-->
- <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
- <!--= Institute of Technology, European Research Consortium for =-->
- <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
- <!--= All Rights Reserved. =-->
- <!--= See http://www.w3.org/Consortium/Legal/. =-->
- <!--======================================================================-->
- <d:SVGTestCase xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/"
- template-version="1.4" reviewer="[reviewer]" author="ED" status="created"
- version="$Revision: 1.5 $" testname="$RCSfile: paths-dom-02-f.svg,v $">
- <d:testDescription xmlns="http://www.w3.org/1999/xhtml" href="http://www.w3.org/TR/SVG11/paths.html#DOMInterfaces">
- <p>
- This test is designed to test the PathSegList interface. At first a flower-like shape with 6 petals should be displayed.
- The roundness and number of petals are then animated using script.
- </p>
- </d:testDescription>
- <d:operatorScript xmlns="http://www.w3.org/1999/xhtml">
- <p>
- The roundness of the petals is animated from star-like sharp petals to softly rounded petals and back again, and is repeated like that until the animation stops.
- The number of petals should increase one by one until the flower has a total of 12 petals, and then go back one by one until it has 6 petals, then increase again one by one until the flower has 9 petals.
- Then the animation will stop. The rendered image should look exactly like the reference image.
- </p>
- <p>
- If the flower is clicked after the animation has finished, it will restart the animation and repeat it for some time.
- </p>
- </d:operatorScript>
- <d:passCriteria xmlns="http://www.w3.org/1999/xhtml">
- <p>
- [[Describe the pass criteria of the test here. The pass criteria is what
- should be displayed when the test is run.]]
- </p>
- </d:passCriteria>
- </d:SVGTestCase>
- <title id="test-title">$RCSfile: paths-dom-02-f.svg,v $</title>
- <defs>
- <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
- <font-face-src>
- <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
- </font-face-src>
- </font-face>
- </defs>
- <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
- <script><![CDATA[
- if (window.layoutTestController)
- layoutTestController.waitUntilDone();
- var offset_angle = 90;
- var current_shift = 0;
- var shift_inc = 1;
- var THRESHOLD = 60;
- var segments_added = 0;
- var seg_diff = 1;
- var adjust_count = 0;
- var anim_count = 0;
- var adjust_count_max = 8;
- var anim_count_max = 10;
- var stopped = false;
-
- function DegToRad(degs)
- {
- return (degs * Math.PI) / 180;
- }
-
- function CreatePath()
- {
- var pathelm = document.getElementById("mypath");
- var pathlist = pathelm.pathSegList;
-
- var move = pathelm.createSVGPathSegMovetoAbs(240 + 30 * Math.cos(DegToRad(offset_angle - 30)),
- 180 + 30 * Math.sin(DegToRad(offset_angle - 30)));
- pathlist.appendItem(move);
-
- var angle = offset_angle;
- for (var i = 0; i < 6; i++)
- {
- var x, y, xcp, ycp;
-
- x = 240 + 30 * Math.cos(DegToRad(angle + 30));
- y = 180 + 30 * Math.sin(DegToRad(angle + 30));
-
- xcp = 240 + 120 * Math.cos(DegToRad(angle));
- ycp = 180 + 120 * Math.sin(DegToRad(angle));
-
- var curve = pathelm.createSVGPathSegCurvetoCubicAbs(x, y,
- xcp, ycp,
- xcp, ycp);
-
- pathlist.appendItem(curve);
-
- angle += 60;
- }
-
- pathlist.appendItem(pathelm.createSVGPathSegClosePath());
- setTimeout('AdjustPath()', 0);
- }
-
- function AddSegment()
- {
- var pathelm = document.getElementById("mypath");
- var pathlist = pathelm.pathSegList;
-
- var segments = pathlist.numberOfItems - 2; // Not MoveTo and Close
- var angle = offset_angle;
- var inc_angle = 360/(segments+1);
- var shift_v_x, shift_v_y, xcp, ycp;
-
- var move = pathlist.getItem(0);
- move.x = 240 + 30 * Math.cos(DegToRad(offset_angle - inc_angle/2));
- move.y = 180 + 30 * Math.sin(DegToRad(offset_angle - inc_angle/2));
-
- for (var i = 0; i < segments; i++)
- {
- var curve = pathlist.getItem(1+i);
-
- shift_v_x = current_shift * Math.cos(DegToRad(angle + 90));
- shift_v_y = current_shift * Math.sin(DegToRad(angle + 90));
-
- xcp = 240 + 120 * Math.cos(DegToRad(angle));
- ycp = 180 + 120 * Math.sin(DegToRad(angle));
-
- curve.x = 240 + 30 * Math.cos(DegToRad(angle + inc_angle/2));
- curve.y = 180 + 30 * Math.sin(DegToRad(angle + inc_angle/2));
-
- curve.x1 = xcp - shift_v_x;
- curve.y1 = ycp - shift_v_y;
-
- curve.x2 = xcp + shift_v_x;
- curve.y2 = ycp + shift_v_y;
-
- angle += inc_angle;
- }
-
- shift_v_x = current_shift * Math.cos(DegToRad(angle + 90));
- shift_v_y = current_shift * Math.sin(DegToRad(angle + 90));
-
- xcp = 240 + 120 * Math.cos(DegToRad(angle));
- ycp = 180 + 120 * Math.sin(DegToRad(angle));
-
- var x = 240 + 30 * Math.cos(DegToRad(angle + inc_angle/2));
- var y = 180 + 30 * Math.sin(DegToRad(angle + inc_angle/2));
-
- var curve = pathelm.createSVGPathSegCurvetoCubicAbs(x, y,
- xcp - shift_v_x,
- ycp - shift_v_y,
- xcp + shift_v_x,
- ycp + shift_v_y);
-
- pathlist.insertItemBefore(curve, pathlist.numberOfItems-1);
- }
-
- function RemoveSegment()
- {
- var pathelm = document.getElementById("mypath");
- var pathlist = pathelm.pathSegList;
-
- var segments = pathlist.numberOfItems - 2; // Not MoveTo and Close
- var angle = offset_angle;
- var inc_angle = 360/(segments-1);
- var shift_v_x, shift_v_y, xcp, ycp;
-
- var move = pathlist.getItem(0);
- move.x = 240 + 30 * Math.cos(DegToRad(offset_angle - inc_angle/2));
- move.y = 180 + 30 * Math.sin(DegToRad(offset_angle - inc_angle/2));
-
- for (var i = 0; i < segments-1; i++)
- {
- var curve = pathlist.getItem(1+i);
-
- shift_v_x = current_shift * Math.cos(DegToRad(angle + 90));
- shift_v_y = current_shift * Math.sin(DegToRad(angle + 90));
-
- xcp = 240 + 120 * Math.cos(DegToRad(angle));
- ycp = 180 + 120 * Math.sin(DegToRad(angle));
-
- curve.x = 240 + 30 * Math.cos(DegToRad(angle + inc_angle/2));
- curve.y = 180 + 30 * Math.sin(DegToRad(angle + inc_angle/2));
-
- curve.x1 = xcp - shift_v_x;
- curve.y1 = ycp - shift_v_y;
-
- curve.x2 = xcp + shift_v_x;
- curve.y2 = ycp + shift_v_y;
-
- angle += inc_angle;
- }
-
- pathlist.removeItem(pathlist.numberOfItems-2);
- }
-
- function AdjustPath()
- {
- if (seg_diff > 0)
- {
- AddSegment();
- }
- else
- {
- RemoveSegment();
- }
-
- segments_added += seg_diff;
-
- if (segments_added > 5)
- seg_diff = -1;
- else if (segments_added <= 0)
- seg_diff = 1;
-
- if(adjust_count < adjust_count_max)
- {
- adjust_count++;
- setTimeout('AdjustPath()', 0);
- }
- }
-
- function AnimatePath()
- {
- var pathelm = document.getElementById("mypath");
- var pathlist = pathelm.pathSegList;
-
- var segments = pathlist.numberOfItems - 2; // Not MoveTo and Close
- var angle = offset_angle;
- var inc_angle = 360/segments;
- for (var i = 0; i < segments; i++)
- {
- var curve = pathlist.getItem(1+i);
-
- var shift_v_x, shift_v_y, xcp, ycp;
-
- shift_v_x = current_shift * Math.cos(DegToRad(angle + 90));
- shift_v_y = current_shift * Math.sin(DegToRad(angle + 90));
-
- xcp = 240 + 120 * Math.cos(DegToRad(angle));
- ycp = 180 + 120 * Math.sin(DegToRad(angle));
-
- curve.x1 = xcp - shift_v_x;
- curve.y1 = ycp - shift_v_y;
-
- curve.x2 = xcp + shift_v_x;
- curve.y2 = ycp + shift_v_y;
-
- angle += inc_angle;
- }
-
- current_shift += shift_inc;
- if (current_shift >= THRESHOLD || current_shift < 0)
- shift_inc = -shift_inc;
-
- if(adjust_count >= adjust_count_max)
- {
- anim_count++;
- }
-
- if(anim_count < anim_count_max)
- setTimeout('AnimatePath();', 0);
- else {
- document.getElementById("mypath").addEventListener("click", function func() { adjust_count_max=32768;anim_count_max=32768; AdjustPath(); AnimatePath(); }, false);
- if (window.layoutTestController)
- layoutTestController.notifyDone();
- }
- }
-
- ]]></script>
- <path d="" id="mypath" stroke="black" fill="blue"/>
- </g>
- <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
- <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
- </g>
- <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
- <!-- comment out this watermark once the test is approved -->
- <g id="draft-watermark">
- <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
- <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
- text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
- </g>
-</svg>
diff --git a/LayoutTests/svg/dom/SVGPathSegList-appendItem-expected.txt b/LayoutTests/svg/dom/SVGPathSegList-appendItem-expected.txt
deleted file mode 100644
index 833738d..0000000
--- a/LayoutTests/svg/dom/SVGPathSegList-appendItem-expected.txt
+++ /dev/null
@@ -1,75 +0,0 @@
-This is a test of the SVGPathSegList::appendItem() API.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-
-Check initial 'pathSegList' value of path1
-PASS path1.pathSegList.numberOfItems is 3
-PASS path1.pathSegList.getItem(0).toString() is "[object SVGPathSegMovetoAbs]"
-PASS path1.pathSegList.getItem(0).x is 0
-PASS path1.pathSegList.getItem(0).y is 0
-PASS path1.pathSegList.getItem(1).toString() is "[object SVGPathSegLinetoAbs]"
-PASS path1.pathSegList.getItem(1).x is 100
-PASS path1.pathSegList.getItem(1).y is 0
-PASS path1.pathSegList.getItem(2).toString() is "[object SVGPathSegLinetoAbs]"
-PASS path1.pathSegList.getItem(2).x is 100
-PASS path1.pathSegList.getItem(2).y is 100
-
-Check initial 'pathSegList' value of path2
-PASS path2.pathSegList.numberOfItems is 5
-PASS path2.pathSegList.getItem(0).toString() is "[object SVGPathSegMovetoAbs]"
-PASS path2.pathSegList.getItem(0).x is 0
-PASS path2.pathSegList.getItem(0).y is 0
-PASS path2.pathSegList.getItem(1).toString() is "[object SVGPathSegLinetoAbs]"
-PASS path2.pathSegList.getItem(1).x is 50
-PASS path2.pathSegList.getItem(1).y is 100
-PASS path2.pathSegList.getItem(2).toString() is "[object SVGPathSegLinetoHorizontalRel]"
-PASS path2.pathSegList.getItem(2).x is 100
-PASS path2.pathSegList.getItem(3).toString() is "[object SVGPathSegLinetoHorizontalRel]"
-PASS path2.pathSegList.getItem(3).x is 100
-PASS path2.pathSegList.getItem(4).toString() is "[object SVGPathSegLinetoVerticalRel]"
-PASS path2.pathSegList.getItem(4).y is 100
-
-Negate x value of fourth segment in path2
-PASS path2.pathSegList.getItem(3).x = -path2.pathSegList.getItem(3).x is -100
-
-Swap segment four and five of path2 - now should look like a rectangle
-PASS path2.pathSegList.appendItem(path2.pathSegList.getItem(3)).toString() is "[object SVGPathSegLinetoHorizontalRel]"
-
-Append second item from path2 to path1 list
-PASS path1.pathSegList.appendItem(path2.pathSegList.getItem(1)).toString() is "[object SVGPathSegLinetoAbs]"
-
-Change last item of path1 list, that came from path2 list, assure it's updating path1
-PASS path1.pathSegList.getItem(3).x -= 50 is 0
-
-Check final 'pathSegList' value of path1
-PASS path1.pathSegList.numberOfItems is 4
-PASS path1.pathSegList.getItem(0).toString() is "[object SVGPathSegMovetoAbs]"
-PASS path1.pathSegList.getItem(0).x is 0
-PASS path1.pathSegList.getItem(0).y is 0
-PASS path1.pathSegList.getItem(1).toString() is "[object SVGPathSegLinetoAbs]"
-PASS path1.pathSegList.getItem(1).x is 100
-PASS path1.pathSegList.getItem(1).y is 0
-PASS path1.pathSegList.getItem(2).toString() is "[object SVGPathSegLinetoAbs]"
-PASS path1.pathSegList.getItem(2).x is 100
-PASS path1.pathSegList.getItem(2).y is 100
-PASS path1.pathSegList.getItem(3).toString() is "[object SVGPathSegLinetoAbs]"
-PASS path1.pathSegList.getItem(3).x is 0
-PASS path1.pathSegList.getItem(3).y is 100
-
-Check final 'pathSegList' value of path2
-PASS path2.pathSegList.numberOfItems is 4
-PASS path2.pathSegList.getItem(0).toString() is "[object SVGPathSegMovetoAbs]"
-PASS path2.pathSegList.getItem(0).x is 0
-PASS path2.pathSegList.getItem(0).y is 0
-PASS path2.pathSegList.getItem(1).toString() is "[object SVGPathSegLinetoHorizontalRel]"
-PASS path2.pathSegList.getItem(1).x is 100
-PASS path2.pathSegList.getItem(2).toString() is "[object SVGPathSegLinetoVerticalRel]"
-PASS path2.pathSegList.getItem(2).y is 100
-PASS path2.pathSegList.getItem(3).toString() is "[object SVGPathSegLinetoHorizontalRel]"
-PASS path2.pathSegList.getItem(3).x is -100
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/svg/dom/SVGPathSegList-appendItem.xhtml b/LayoutTests/svg/dom/SVGPathSegList-appendItem.xhtml
deleted file mode 100644
index 8e487a9..0000000
--- a/LayoutTests/svg/dom/SVGPathSegList-appendItem.xhtml
+++ /dev/null
@@ -1,104 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css"/>
-<script>window.enablePixelTesting = true;</script>
-<script src="../../fast/js/resources/js-test-pre.js"></script>
-</head>
-<body>
-<svg id="svg" xmlns="http://www.w3.org/2000/svg" width="250" height="250">
- <g transform="translate(10, 10)">
- <path id="path1" d="M 0 0 L 100 0 L 100 100" fill="green"/>
- <path transform="translate(110, 0)" id="path2" d="M 0 0 L 50 100 h 100 h 100 v 100" fill="green"/>
- </g>
-</svg>
-
-<p id="description"></p>
-<div id="console"></div>
-<script type="text/javascript">
-<![CDATA[
- description("This is a test of the SVGPathSegList::appendItem() API.");
-
- var svg = document.getElementById("svg");
- var path1 = document.getElementById("path1");
- var path2 = document.getElementById("path2");
-
- debug("");
- debug("Check initial 'pathSegList' value of path1");
- shouldBe("path1.pathSegList.numberOfItems", "3");
- shouldBeEqualToString("path1.pathSegList.getItem(0).toString()", "[object SVGPathSegMovetoAbs]");
- shouldBe("path1.pathSegList.getItem(0).x", "0");
- shouldBe("path1.pathSegList.getItem(0).y", "0");
- shouldBeEqualToString("path1.pathSegList.getItem(1).toString()", "[object SVGPathSegLinetoAbs]");
- shouldBe("path1.pathSegList.getItem(1).x", "100");
- shouldBe("path1.pathSegList.getItem(1).y", "0");
- shouldBeEqualToString("path1.pathSegList.getItem(2).toString()", "[object SVGPathSegLinetoAbs]");
- shouldBe("path1.pathSegList.getItem(2).x", "100");
- shouldBe("path1.pathSegList.getItem(2).y", "100");
-
- debug("");
- debug("Check initial 'pathSegList' value of path2");
- shouldBe("path2.pathSegList.numberOfItems", "5");
- shouldBeEqualToString("path2.pathSegList.getItem(0).toString()", "[object SVGPathSegMovetoAbs]");
- shouldBe("path2.pathSegList.getItem(0).x", "0");
- shouldBe("path2.pathSegList.getItem(0).y", "0");
- shouldBeEqualToString("path2.pathSegList.getItem(1).toString()", "[object SVGPathSegLinetoAbs]");
- shouldBe("path2.pathSegList.getItem(1).x", "50");
- shouldBe("path2.pathSegList.getItem(1).y", "100");
- shouldBeEqualToString("path2.pathSegList.getItem(2).toString()", "[object SVGPathSegLinetoHorizontalRel]");
- shouldBe("path2.pathSegList.getItem(2).x", "100");
- shouldBeEqualToString("path2.pathSegList.getItem(3).toString()", "[object SVGPathSegLinetoHorizontalRel]");
- shouldBe("path2.pathSegList.getItem(3).x", "100");
- shouldBeEqualToString("path2.pathSegList.getItem(4).toString()", "[object SVGPathSegLinetoVerticalRel]");
- shouldBe("path2.pathSegList.getItem(4).y", "100");
-
- debug("");
- debug("Negate x value of fourth segment in path2");
- shouldBe("path2.pathSegList.getItem(3).x = -path2.pathSegList.getItem(3).x", "-100");
-
- debug("")
- debug("Swap segment four and five of path2 - now should look like a rectangle");
- shouldBeEqualToString("path2.pathSegList.appendItem(path2.pathSegList.getItem(3)).toString()", "[object SVGPathSegLinetoHorizontalRel]");
-
- debug("");
- debug("Append second item from path2 to path1 list");
- shouldBeEqualToString("path1.pathSegList.appendItem(path2.pathSegList.getItem(1)).toString()", "[object SVGPathSegLinetoAbs]");
-
- debug("");
- debug("Change last item of path1 list, that came from path2 list, assure it's updating path1");
- shouldBe("path1.pathSegList.getItem(3).x -= 50", "0");
-
- debug("");
- debug("Check final 'pathSegList' value of path1");
- shouldBe("path1.pathSegList.numberOfItems", "4");
- shouldBeEqualToString("path1.pathSegList.getItem(0).toString()", "[object SVGPathSegMovetoAbs]");
- shouldBe("path1.pathSegList.getItem(0).x", "0");
- shouldBe("path1.pathSegList.getItem(0).y", "0");
- shouldBeEqualToString("path1.pathSegList.getItem(1).toString()", "[object SVGPathSegLinetoAbs]");
- shouldBe("path1.pathSegList.getItem(1).x", "100");
- shouldBe("path1.pathSegList.getItem(1).y", "0");
- shouldBeEqualToString("path1.pathSegList.getItem(2).toString()", "[object SVGPathSegLinetoAbs]");
- shouldBe("path1.pathSegList.getItem(2).x", "100");
- shouldBe("path1.pathSegList.getItem(2).y", "100");
- shouldBeEqualToString("path1.pathSegList.getItem(3).toString()", "[object SVGPathSegLinetoAbs]");
- shouldBe("path1.pathSegList.getItem(3).x", "0");
- shouldBe("path1.pathSegList.getItem(3).y", "100");
-
- debug("");
- debug("Check final 'pathSegList' value of path2");
- shouldBe("path2.pathSegList.numberOfItems", "4");
- shouldBeEqualToString("path2.pathSegList.getItem(0).toString()", "[object SVGPathSegMovetoAbs]");
- shouldBe("path2.pathSegList.getItem(0).x", "0");
- shouldBe("path2.pathSegList.getItem(0).y", "0");
- shouldBeEqualToString("path2.pathSegList.getItem(1).toString()", "[object SVGPathSegLinetoHorizontalRel]");
- shouldBe("path2.pathSegList.getItem(1).x", "100");
- shouldBeEqualToString("path2.pathSegList.getItem(2).toString()", "[object SVGPathSegLinetoVerticalRel]");
- shouldBe("path2.pathSegList.getItem(2).y", "100");
- shouldBeEqualToString("path2.pathSegList.getItem(3).toString()", "[object SVGPathSegLinetoHorizontalRel]");
- shouldBe("path2.pathSegList.getItem(3).x", "-100");
-
- successfullyParsed = true;
-]]>
-</script>
-<script src="../../fast/js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/svg/dom/SVGPathSegList-clear-and-initialize-expected.txt b/LayoutTests/svg/dom/SVGPathSegList-clear-and-initialize-expected.txt
deleted file mode 100644
index aff0a50..0000000
--- a/LayoutTests/svg/dom/SVGPathSegList-clear-and-initialize-expected.txt
+++ /dev/null
@@ -1,95 +0,0 @@
-This is a test of the SVGPathSegList::appendItem() API.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-
-Check initial 'pathSegList' value of path1
-PASS path1.pathSegList.numberOfItems is 3
-PASS path1.pathSegList.getItem(0).toString() is "[object SVGPathSegMovetoAbs]"
-PASS path1.pathSegList.getItem(0).x is 100
-PASS path1.pathSegList.getItem(0).y is 100
-PASS path1.pathSegList.getItem(1).toString() is "[object SVGPathSegLinetoAbs]"
-PASS path1.pathSegList.getItem(1).x is 100
-PASS path1.pathSegList.getItem(1).y is 0
-PASS path1.pathSegList.getItem(2).toString() is "[object SVGPathSegLinetoAbs]"
-PASS path1.pathSegList.getItem(2).x is 100
-PASS path1.pathSegList.getItem(2).y is 100
-
-Check initial 'pathSegList' value of path2
-PASS path2.pathSegList.numberOfItems is 3
-PASS path2.pathSegList.getItem(0).toString() is "[object SVGPathSegMovetoAbs]"
-PASS path2.pathSegList.getItem(0).x is 50
-PASS path2.pathSegList.getItem(0).y is 50
-PASS path2.pathSegList.getItem(1).toString() is "[object SVGPathSegLinetoAbs]"
-PASS path2.pathSegList.getItem(1).x is 0
-PASS path2.pathSegList.getItem(1).y is 100
-PASS path2.pathSegList.getItem(2).toString() is "[object SVGPathSegMovetoAbs]"
-PASS path2.pathSegList.getItem(2).x is 0
-PASS path2.pathSegList.getItem(2).y is 0
-
-Cache first item of path1 in local variable 'item0'
-PASS item0.x is 100
-PASS item0.y is 100
-
-Clear path1 segment list
-PASS path1.pathSegList.clear() is undefined.
-
-Verify that item0 is still alive, and can be modified
-PASS item0.x is 100
-PASS item0.y is 100
-PASS item0.x += 50 is 150
-PASS item0.y += 50 is 150
-
-Check intermediate list state of path1
-PASS path1.pathSegList.numberOfItems is 0
-PASS path1.pathSegList.getItem(0) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
-
-Check intermediate list state of path2
-PASS path2.pathSegList.numberOfItems is 3
-PASS path2.pathSegList.getItem(0).toString() is "[object SVGPathSegMovetoAbs]"
-PASS path2.pathSegList.getItem(0).x is 50
-PASS path2.pathSegList.getItem(0).y is 50
-PASS path2.pathSegList.getItem(1).toString() is "[object SVGPathSegLinetoAbs]"
-PASS path2.pathSegList.getItem(1).x is 0
-PASS path2.pathSegList.getItem(1).y is 100
-PASS path2.pathSegList.getItem(2).toString() is "[object SVGPathSegMovetoAbs]"
-PASS path2.pathSegList.getItem(2).x is 0
-PASS path2.pathSegList.getItem(2).y is 0
-
-Initialize path1 list with first item of path2
-PASS path1.pathSegList.initialize(path2.pathSegList.getItem(0)).toString() is "[object SVGPathSegMovetoAbs]"
-
-Check intermediate list state of path1
-PASS path1.pathSegList.numberOfItems is 1
-PASS path1.pathSegList.getItem(0).toString() is "[object SVGPathSegMovetoAbs]"
-PASS path1.pathSegList.getItem(0).x is 50
-PASS path1.pathSegList.getItem(0).y is 50
-
-Check intermediate list state of path2
-PASS path2.pathSegList.numberOfItems is 2
-PASS path2.pathSegList.getItem(0).toString() is "[object SVGPathSegLinetoAbs]"
-PASS path2.pathSegList.getItem(0).x is 0
-PASS path2.pathSegList.getItem(0).y is 100
-PASS path2.pathSegList.getItem(1).toString() is "[object SVGPathSegMovetoAbs]"
-PASS path2.pathSegList.getItem(1).x is 0
-PASS path2.pathSegList.getItem(1).y is 0
-
-Initialize path2 list with item0
-PASS path2.pathSegList.initialize(item0).toString() is "[object SVGPathSegMovetoAbs]"
-
-Check final list state of path1
-PASS path1.pathSegList.numberOfItems is 1
-PASS path1.pathSegList.getItem(0).toString() is "[object SVGPathSegMovetoAbs]"
-PASS path1.pathSegList.getItem(0).x is 50
-PASS path1.pathSegList.getItem(0).y is 50
-
-Check final list state of path2
-PASS path2.pathSegList.numberOfItems is 1
-PASS path2.pathSegList.getItem(0).toString() is "[object SVGPathSegMovetoAbs]"
-PASS path2.pathSegList.getItem(0).x is 150
-PASS path2.pathSegList.getItem(0).y is 150
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/svg/dom/SVGPathSegList-clear-and-initialize.xhtml b/LayoutTests/svg/dom/SVGPathSegList-clear-and-initialize.xhtml
deleted file mode 100644
index 956d88f..0000000
--- a/LayoutTests/svg/dom/SVGPathSegList-clear-and-initialize.xhtml
+++ /dev/null
@@ -1,130 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css"/>
-<script>window.enablePixelTesting = true;</script>
-<script src="../../fast/js/resources/js-test-pre.js"></script>
-</head>
-<body>
-<svg id="svg" xmlns="http://www.w3.org/2000/svg" width="250" height="250">
- <g transform="translate(10, 10)">
- <path id="path1" d="M 100 100 L 100 0 L 100 100" fill="green"/>
- <path transform="translate(110, 0)" id="path2" d="M 50 50 L 0 100 M 0 0" fill="green"/>
- </g>
-</svg>
-
-<p id="description"></p>
-<div id="console"></div>
-<script type="text/javascript">
-<![CDATA[
- description("This is a test of the SVGPathSegList::appendItem() API.");
-
- var svg = document.getElementById("svg");
- var path1 = document.getElementById("path1");
- var path2 = document.getElementById("path2");
-
- debug("");
- debug("Check initial 'pathSegList' value of path1");
- shouldBe("path1.pathSegList.numberOfItems", "3");
- shouldBeEqualToString("path1.pathSegList.getItem(0).toString()", "[object SVGPathSegMovetoAbs]");
- shouldBe("path1.pathSegList.getItem(0).x", "100");
- shouldBe("path1.pathSegList.getItem(0).y", "100");
- shouldBeEqualToString("path1.pathSegList.getItem(1).toString()", "[object SVGPathSegLinetoAbs]");
- shouldBe("path1.pathSegList.getItem(1).x", "100");
- shouldBe("path1.pathSegList.getItem(1).y", "0");
- shouldBeEqualToString("path1.pathSegList.getItem(2).toString()", "[object SVGPathSegLinetoAbs]");
- shouldBe("path1.pathSegList.getItem(2).x", "100");
- shouldBe("path1.pathSegList.getItem(2).y", "100");
-
- debug("");
- debug("Check initial 'pathSegList' value of path2");
- shouldBe("path2.pathSegList.numberOfItems", "3");
- shouldBeEqualToString("path2.pathSegList.getItem(0).toString()", "[object SVGPathSegMovetoAbs]");
- shouldBe("path2.pathSegList.getItem(0).x", "50");
- shouldBe("path2.pathSegList.getItem(0).y", "50");
- shouldBeEqualToString("path2.pathSegList.getItem(1).toString()", "[object SVGPathSegLinetoAbs]");
- shouldBe("path2.pathSegList.getItem(1).x", "0");
- shouldBe("path2.pathSegList.getItem(1).y", "100");
- shouldBeEqualToString("path2.pathSegList.getItem(2).toString()", "[object SVGPathSegMovetoAbs]");
- shouldBe("path2.pathSegList.getItem(2).x", "0");
- shouldBe("path2.pathSegList.getItem(2).y", "0");
-
- debug("");
- debug("Cache first item of path1 in local variable 'item0'");
- var item0 = path1.pathSegList.getItem(0);
- shouldBe("item0.x", "100");
- shouldBe("item0.y", "100");
-
- debug("");
- debug("Clear path1 segment list");
- shouldBeUndefined("path1.pathSegList.clear()");
-
- debug("");
- debug("Verify that item0 is still alive, and can be modified");
- shouldBe("item0.x", "100");
- shouldBe("item0.y", "100");
- shouldBe("item0.x += 50", "150");
- shouldBe("item0.y += 50", "150");
-
- debug("");
- debug("Check intermediate list state of path1");
- shouldBe("path1.pathSegList.numberOfItems", "0");
- shouldThrow("path1.pathSegList.getItem(0)");
-
- debug("");
- debug("Check intermediate list state of path2");
- shouldBe("path2.pathSegList.numberOfItems", "3");
- shouldBeEqualToString("path2.pathSegList.getItem(0).toString()", "[object SVGPathSegMovetoAbs]");
- shouldBe("path2.pathSegList.getItem(0).x", "50");
- shouldBe("path2.pathSegList.getItem(0).y", "50");
- shouldBeEqualToString("path2.pathSegList.getItem(1).toString()", "[object SVGPathSegLinetoAbs]");
- shouldBe("path2.pathSegList.getItem(1).x", "0");
- shouldBe("path2.pathSegList.getItem(1).y", "100");
- shouldBeEqualToString("path2.pathSegList.getItem(2).toString()", "[object SVGPathSegMovetoAbs]");
- shouldBe("path2.pathSegList.getItem(2).x", "0");
- shouldBe("path2.pathSegList.getItem(2).y", "0");
-
- debug("");
- debug("Initialize path1 list with first item of path2");
- shouldBeEqualToString("path1.pathSegList.initialize(path2.pathSegList.getItem(0)).toString()", "[object SVGPathSegMovetoAbs]");
-
- debug("");
- debug("Check intermediate list state of path1");
- shouldBe("path1.pathSegList.numberOfItems", "1");
- shouldBeEqualToString("path1.pathSegList.getItem(0).toString()", "[object SVGPathSegMovetoAbs]");
- shouldBe("path1.pathSegList.getItem(0).x", "50");
- shouldBe("path1.pathSegList.getItem(0).y", "50");
-
- debug("");
- debug("Check intermediate list state of path2");
- shouldBe("path2.pathSegList.numberOfItems", "2");
- shouldBeEqualToString("path2.pathSegList.getItem(0).toString()", "[object SVGPathSegLinetoAbs]");
- shouldBe("path2.pathSegList.getItem(0).x", "0");
- shouldBe("path2.pathSegList.getItem(0).y", "100");
- shouldBeEqualToString("path2.pathSegList.getItem(1).toString()", "[object SVGPathSegMovetoAbs]");
- shouldBe("path2.pathSegList.getItem(1).x", "0");
- shouldBe("path2.pathSegList.getItem(1).y", "0");
-
- debug("");
- debug("Initialize path2 list with item0");
- shouldBeEqualToString("path2.pathSegList.initialize(item0).toString()", "[object SVGPathSegMovetoAbs]");
-
- debug("");
- debug("Check final list state of path1");
- shouldBe("path1.pathSegList.numberOfItems", "1");
- shouldBeEqualToString("path1.pathSegList.getItem(0).toString()", "[object SVGPathSegMovetoAbs]");
- shouldBe("path1.pathSegList.getItem(0).x", "50");
- shouldBe("path1.pathSegList.getItem(0).y", "50");
-
- debug("");
- debug("Check final list state of path2");
- shouldBe("path2.pathSegList.numberOfItems", "1");
- shouldBeEqualToString("path2.pathSegList.getItem(0).toString()", "[object SVGPathSegMovetoAbs]");
- shouldBe("path2.pathSegList.getItem(0).x", "150");
- shouldBe("path2.pathSegList.getItem(0).y", "150");
-
- successfullyParsed = true;
-]]>
-</script>
-<script src="../../fast/js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/svg/dom/SVGPathSegList-cloning.html b/LayoutTests/svg/dom/SVGPathSegList-cloning.html
deleted file mode 100644
index 07041ea..0000000
--- a/LayoutTests/svg/dom/SVGPathSegList-cloning.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<html>
-<head>
- <style type="text/css">
- .cls1 {
- stroke: black;
- fill: rgb(0,128,255);
- stroke-width: 1;
- }
- </style>
-
-<script type="text/javascript">
-function setup() {
- var SHOW_BUG = true;
-
- var SVGNS = 'http://www.w3.org/2000/svg';
- var svg = document.createElementNS(SVGNS, "svg");
- svg.width.baseVal.valueAsString = "400px";
- svg.height.baseVal.valueAsString = "400px";
- svg.viewBox.baseVal.x = 0;
- svg.viewBox.baseVal.y = 0;
- svg.viewBox.baseVal.width = 200;
- svg.viewBox.baseVal.height = 90;
-
- var path1 = document.createElementNS(SVGNS, "path");
- if (SHOW_BUG) {
- path1.pathSegList.appendItem(path1.createSVGPathSegMovetoAbs(10, 10));
- path1.pathSegList.appendItem(path1.createSVGPathSegLinetoAbs(25, 15));
- path1.pathSegList.appendItem(path1.createSVGPathSegLinetoAbs(110, 75));
- path1.pathSegList.appendItem(path1.createSVGPathSegLinetoAbs(120, 90));
- path1.pathSegList.appendItem(path1.createSVGPathSegLinetoAbs(42, 42));
- path1.pathSegList.appendItem(path1.createSVGPathSegClosePath());
- } else {
- path1.setAttributeNS(null, 'd', "M 10 10 L 25 15 L 110 75 L 120 90 L 42 42 Z");
- }
-
- path1.style.setProperty("stroke", "black", "");
- path1.style.setProperty("fill", "red", "");
- var path2 = path1.cloneNode(true);
- path2.setAttributeNS(null, 'transform', "translate(75, 0)");
-
- var drawing = document.getElementById("drawing");
- svg.appendChild(path1);
- svg.appendChild(path2);
- drawing.appendChild(svg);
-}
-</script>
-</head>
-<body onload="setup()">
-<p>Below is a JavaScript-generated svg drawing. You should see two red blobs: the left, a programmatically generated path and the right, its clone.</p>
-<div id="drawing"></div>
-</body>
-</html>
-
-
diff --git a/LayoutTests/svg/dom/SVGPathSegList-insertItemBefore-expected.txt b/LayoutTests/svg/dom/SVGPathSegList-insertItemBefore-expected.txt
deleted file mode 100644
index ca43b3d..0000000
--- a/LayoutTests/svg/dom/SVGPathSegList-insertItemBefore-expected.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-This is a test of the SVGPathSegList::insertItemBefore() API.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-
-Check initial 'pathSegList' value of path1
-PASS path1.pathSegList.numberOfItems is 4
-PASS path1.pathSegList.getItem(0).toString() is "[object SVGPathSegMovetoAbs]"
-PASS path1.pathSegList.getItem(0).x is 0
-PASS path1.pathSegList.getItem(0).y is 0
-PASS path1.pathSegList.getItem(1).toString() is "[object SVGPathSegLinetoAbs]"
-PASS path1.pathSegList.getItem(1).x is 100
-PASS path1.pathSegList.getItem(1).y is 0
-PASS path1.pathSegList.getItem(2).toString() is "[object SVGPathSegLinetoAbs]"
-PASS path1.pathSegList.getItem(2).x is 0
-PASS path1.pathSegList.getItem(2).y is 100
-PASS path1.pathSegList.getItem(3).toString() is "[object SVGPathSegLinetoAbs]"
-PASS path1.pathSegList.getItem(3).x is 100
-PASS path1.pathSegList.getItem(3).y is 100
-
-Insert fourth item at position three using insertItemBefore()
-PASS path1.pathSegList.insertItemBefore(path1.pathSegList.getItem(3), 2).toString() is "[object SVGPathSegLinetoAbs]"
-
-Check final 'pathSegList' value of path1
-PASS path1.pathSegList.numberOfItems is 4
-PASS path1.pathSegList.getItem(0).toString() is "[object SVGPathSegMovetoAbs]"
-PASS path1.pathSegList.getItem(0).x is 0
-PASS path1.pathSegList.getItem(0).y is 0
-PASS path1.pathSegList.getItem(1).toString() is "[object SVGPathSegLinetoAbs]"
-PASS path1.pathSegList.getItem(1).x is 100
-PASS path1.pathSegList.getItem(1).y is 0
-PASS path1.pathSegList.getItem(2).toString() is "[object SVGPathSegLinetoAbs]"
-PASS path1.pathSegList.getItem(2).x is 100
-PASS path1.pathSegList.getItem(2).y is 100
-PASS path1.pathSegList.getItem(3).toString() is "[object SVGPathSegLinetoAbs]"
-PASS path1.pathSegList.getItem(3).x is 0
-PASS path1.pathSegList.getItem(3).y is 100
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/svg/dom/SVGPathSegList-insertItemBefore.xhtml b/LayoutTests/svg/dom/SVGPathSegList-insertItemBefore.xhtml
deleted file mode 100644
index 8e536aa..0000000
--- a/LayoutTests/svg/dom/SVGPathSegList-insertItemBefore.xhtml
+++ /dev/null
@@ -1,64 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css"/>
-<script>window.enablePixelTesting = true;</script>
-<script src="../../fast/js/resources/js-test-pre.js"></script>
-</head>
-<body>
-<svg id="svg" xmlns="http://www.w3.org/2000/svg" width="250" height="250">
- <g transform="translate(10, 10)">
- <path id="path1" d="M 0 0 L 100 0 L 0 100 L 100 100" fill="green"/>
- </g>
-</svg>
-
-<p id="description"></p>
-<div id="console"></div>
-<script type="text/javascript">
-<![CDATA[
- description("This is a test of the SVGPathSegList::insertItemBefore() API.");
-
- var svg = document.getElementById("svg");
- var path1 = document.getElementById("path1");
-
- debug("");
- debug("Check initial 'pathSegList' value of path1");
- shouldBe("path1.pathSegList.numberOfItems", "4");
- shouldBeEqualToString("path1.pathSegList.getItem(0).toString()", "[object SVGPathSegMovetoAbs]");
- shouldBe("path1.pathSegList.getItem(0).x", "0");
- shouldBe("path1.pathSegList.getItem(0).y", "0");
- shouldBeEqualToString("path1.pathSegList.getItem(1).toString()", "[object SVGPathSegLinetoAbs]");
- shouldBe("path1.pathSegList.getItem(1).x", "100");
- shouldBe("path1.pathSegList.getItem(1).y", "0");
- shouldBeEqualToString("path1.pathSegList.getItem(2).toString()", "[object SVGPathSegLinetoAbs]");
- shouldBe("path1.pathSegList.getItem(2).x", "0");
- shouldBe("path1.pathSegList.getItem(2).y", "100");
- shouldBeEqualToString("path1.pathSegList.getItem(3).toString()", "[object SVGPathSegLinetoAbs]");
- shouldBe("path1.pathSegList.getItem(3).x", "100");
- shouldBe("path1.pathSegList.getItem(3).y", "100");
-
- debug("");
- debug("Insert fourth item at position three using insertItemBefore()");
- shouldBeEqualToString("path1.pathSegList.insertItemBefore(path1.pathSegList.getItem(3), 2).toString()", "[object SVGPathSegLinetoAbs]");
-
- debug("");
- debug("Check final 'pathSegList' value of path1");
- shouldBe("path1.pathSegList.numberOfItems", "4");
- shouldBeEqualToString("path1.pathSegList.getItem(0).toString()", "[object SVGPathSegMovetoAbs]");
- shouldBe("path1.pathSegList.getItem(0).x", "0");
- shouldBe("path1.pathSegList.getItem(0).y", "0");
- shouldBeEqualToString("path1.pathSegList.getItem(1).toString()", "[object SVGPathSegLinetoAbs]");
- shouldBe("path1.pathSegList.getItem(1).x", "100");
- shouldBe("path1.pathSegList.getItem(1).y", "0");
- shouldBeEqualToString("path1.pathSegList.getItem(2).toString()", "[object SVGPathSegLinetoAbs]");
- shouldBe("path1.pathSegList.getItem(2).x", "100");
- shouldBe("path1.pathSegList.getItem(2).y", "100");
- shouldBeEqualToString("path1.pathSegList.getItem(3).toString()", "[object SVGPathSegLinetoAbs]");
- shouldBe("path1.pathSegList.getItem(3).x", "0");
- shouldBe("path1.pathSegList.getItem(3).y", "100");
-
- successfullyParsed = true;
-]]>
-</script>
-<script src="../../fast/js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/svg/dom/SVGPathSegList-removeItem-expected.txt b/LayoutTests/svg/dom/SVGPathSegList-removeItem-expected.txt
deleted file mode 100644
index 1a8aed2..0000000
--- a/LayoutTests/svg/dom/SVGPathSegList-removeItem-expected.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-This is a test of the SVGPathSegList::removeItem() API.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-
-Check initial 'pathSegList' value of path1
-PASS path1.pathSegList.numberOfItems is 5
-PASS path1.pathSegList.getItem(0).toString() is "[object SVGPathSegMovetoAbs]"
-PASS path1.pathSegList.getItem(0).x is 0
-PASS path1.pathSegList.getItem(0).y is 0
-PASS path1.pathSegList.getItem(1).toString() is "[object SVGPathSegLinetoAbs]"
-PASS path1.pathSegList.getItem(1).x is 100
-PASS path1.pathSegList.getItem(1).y is 0
-PASS path1.pathSegList.getItem(2).toString() is "[object SVGPathSegLinetoAbs]"
-PASS path1.pathSegList.getItem(2).x is 100
-PASS path1.pathSegList.getItem(2).y is 100
-PASS path1.pathSegList.getItem(3).toString() is "[object SVGPathSegClosePath]"
-PASS path1.pathSegList.getItem(4).toString() is "[object SVGPathSegLinetoAbs]"
-PASS path1.pathSegList.getItem(4).x is 0
-PASS path1.pathSegList.getItem(4).y is 100
-
-Check initial 'pathSegList' value of path2
-PASS path2.pathSegList.numberOfItems is 5
-PASS path2.pathSegList.getItem(0).toString() is "[object SVGPathSegMovetoAbs]"
-PASS path2.pathSegList.getItem(0).x is 0
-PASS path2.pathSegList.getItem(0).y is 0
-PASS path2.pathSegList.getItem(1).toString() is "[object SVGPathSegLinetoHorizontalRel]"
-PASS path2.pathSegList.getItem(1).x is 100
-PASS path2.pathSegList.getItem(2).toString() is "[object SVGPathSegClosePath]"
-PASS path2.pathSegList.getItem(3).toString() is "[object SVGPathSegLinetoVerticalRel]"
-PASS path2.pathSegList.getItem(3).y is 100
-PASS path2.pathSegList.getItem(4).toString() is "[object SVGPathSegLinetoHorizontalRel]"
-PASS path2.pathSegList.getItem(4).x is -100
-
-Remove fourth item of path1
-PASS path1.pathSegList.removeItem(3).toString() is "[object SVGPathSegClosePath]"
-
-Remove third item of path2
-PASS path2.pathSegList.removeItem(2).toString() is "[object SVGPathSegClosePath]"
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/svg/dom/SVGPathSegList-removeItem.xhtml b/LayoutTests/svg/dom/SVGPathSegList-removeItem.xhtml
deleted file mode 100644
index 95b33ea..0000000
--- a/LayoutTests/svg/dom/SVGPathSegList-removeItem.xhtml
+++ /dev/null
@@ -1,69 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css"/>
-<script>window.enablePixelTesting = true;</script>
-<script src="../../fast/js/resources/js-test-pre.js"></script>
-</head>
-<body>
-<svg id="svg" xmlns="http://www.w3.org/2000/svg" width="250" height="250">
- <g transform="translate(10, 10)">
- <path id="path1" d="M 0 0 L 100 0 L 100 100 z L 0 100" fill="green"/>
- <path transform="translate(110, 0)" id="path2" d="M 0 0 h 100 z v 100 h -100" fill="green"/>
- </g>
-</svg>
-
-<p id="description"></p>
-<div id="console"></div>
-<script type="text/javascript">
-<![CDATA[
- description("This is a test of the SVGPathSegList::removeItem() API.");
-
- var svg = document.getElementById("svg");
- var path1 = document.getElementById("path1");
- var path2 = document.getElementById("path2");
-
- debug("");
- debug("Check initial 'pathSegList' value of path1");
- shouldBe("path1.pathSegList.numberOfItems", "5");
- shouldBeEqualToString("path1.pathSegList.getItem(0).toString()", "[object SVGPathSegMovetoAbs]");
- shouldBe("path1.pathSegList.getItem(0).x", "0");
- shouldBe("path1.pathSegList.getItem(0).y", "0");
- shouldBeEqualToString("path1.pathSegList.getItem(1).toString()", "[object SVGPathSegLinetoAbs]");
- shouldBe("path1.pathSegList.getItem(1).x", "100");
- shouldBe("path1.pathSegList.getItem(1).y", "0");
- shouldBeEqualToString("path1.pathSegList.getItem(2).toString()", "[object SVGPathSegLinetoAbs]");
- shouldBe("path1.pathSegList.getItem(2).x", "100");
- shouldBe("path1.pathSegList.getItem(2).y", "100");
- shouldBeEqualToString("path1.pathSegList.getItem(3).toString()", "[object SVGPathSegClosePath]");
- shouldBeEqualToString("path1.pathSegList.getItem(4).toString()", "[object SVGPathSegLinetoAbs]");
- shouldBe("path1.pathSegList.getItem(4).x", "0");
- shouldBe("path1.pathSegList.getItem(4).y", "100");
-
- debug("");
- debug("Check initial 'pathSegList' value of path2");
- shouldBe("path2.pathSegList.numberOfItems", "5");
- shouldBeEqualToString("path2.pathSegList.getItem(0).toString()", "[object SVGPathSegMovetoAbs]");
- shouldBe("path2.pathSegList.getItem(0).x", "0");
- shouldBe("path2.pathSegList.getItem(0).y", "0");
- shouldBeEqualToString("path2.pathSegList.getItem(1).toString()", "[object SVGPathSegLinetoHorizontalRel]");
- shouldBe("path2.pathSegList.getItem(1).x", "100");
- shouldBeEqualToString("path2.pathSegList.getItem(2).toString()", "[object SVGPathSegClosePath]");
- shouldBeEqualToString("path2.pathSegList.getItem(3).toString()", "[object SVGPathSegLinetoVerticalRel]");
- shouldBe("path2.pathSegList.getItem(3).y", "100");
- shouldBeEqualToString("path2.pathSegList.getItem(4).toString()", "[object SVGPathSegLinetoHorizontalRel]");
- shouldBe("path2.pathSegList.getItem(4).x", "-100");
-
- debug("");
- debug("Remove fourth item of path1");
- shouldBeEqualToString("path1.pathSegList.removeItem(3).toString()", "[object SVGPathSegClosePath]");
-
- debug("");
- debug("Remove third item of path2");
- shouldBeEqualToString("path2.pathSegList.removeItem(2).toString()", "[object SVGPathSegClosePath]");
-
- successfullyParsed = true;
-]]>
-</script>
-<script src="../../fast/js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/svg/dom/SVGPathSegList-replaceItem-expected.txt b/LayoutTests/svg/dom/SVGPathSegList-replaceItem-expected.txt
deleted file mode 100644
index 6b982aa..0000000
--- a/LayoutTests/svg/dom/SVGPathSegList-replaceItem-expected.txt
+++ /dev/null
@@ -1,75 +0,0 @@
-This is a test of the SVGPathSegList::replaceItem() API.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-
-Check initial 'pathSegList' value of path1
-PASS path1.pathSegList.numberOfItems is 6
-PASS path1.pathSegList.getItem(0).toString() is "[object SVGPathSegMovetoAbs]"
-PASS path1.pathSegList.getItem(0).x is 0
-PASS path1.pathSegList.getItem(0).y is 0
-PASS path1.pathSegList.getItem(1).toString() is "[object SVGPathSegLinetoAbs]"
-PASS path1.pathSegList.getItem(1).x is 100
-PASS path1.pathSegList.getItem(1).y is 100
-PASS path1.pathSegList.getItem(2).toString() is "[object SVGPathSegLinetoAbs]"
-PASS path1.pathSegList.getItem(2).x is 100
-PASS path1.pathSegList.getItem(2).y is 0
-PASS path1.pathSegList.getItem(3).toString() is "[object SVGPathSegLinetoAbs]"
-PASS path1.pathSegList.getItem(3).x is 100
-PASS path1.pathSegList.getItem(3).y is 100
-PASS path1.pathSegList.getItem(4).toString() is "[object SVGPathSegLinetoVerticalRel]"
-PASS path1.pathSegList.getItem(4).y is 100
-PASS path1.pathSegList.getItem(5).toString() is "[object SVGPathSegLinetoAbs]"
-PASS path1.pathSegList.getItem(5).x is 0
-PASS path1.pathSegList.getItem(5).y is 100
-
-Check initial 'pathSegList' value of path2
-PASS path2.pathSegList.numberOfItems is 4
-PASS path2.pathSegList.getItem(0).toString() is "[object SVGPathSegMovetoAbs]"
-PASS path2.pathSegList.getItem(0).x is 0
-PASS path2.pathSegList.getItem(0).y is 0
-PASS path2.pathSegList.getItem(1).toString() is "[object SVGPathSegLinetoHorizontalRel]"
-PASS path2.pathSegList.getItem(1).x is 100
-PASS path2.pathSegList.getItem(2).toString() is "[object SVGPathSegLinetoAbs]"
-PASS path2.pathSegList.getItem(2).x is 200
-PASS path2.pathSegList.getItem(2).y is 100
-PASS path2.pathSegList.getItem(3).toString() is "[object SVGPathSegLinetoHorizontalRel]"
-PASS path2.pathSegList.getItem(3).x is -100
-
-Replace second item with third item of path1
-PASS path1.pathSegList.replaceItem(path1.pathSegList.getItem(2), 1).toString() is "[object SVGPathSegLinetoAbs]"
-
-Replace third item of path2 with fourth item of path1
-PASS path2.pathSegList.replaceItem(path1.pathSegList.getItem(3), 2).toString() is "[object SVGPathSegLinetoVerticalRel]"
-
-Check final 'pathSegList' value of path1
-PASS path1.pathSegList.numberOfItems is 4
-PASS path1.pathSegList.getItem(0).toString() is "[object SVGPathSegMovetoAbs]"
-PASS path1.pathSegList.getItem(0).x is 0
-PASS path1.pathSegList.getItem(0).y is 0
-PASS path1.pathSegList.getItem(1).toString() is "[object SVGPathSegLinetoAbs]"
-PASS path1.pathSegList.getItem(1).x is 100
-PASS path1.pathSegList.getItem(1).y is 0
-PASS path1.pathSegList.getItem(2).toString() is "[object SVGPathSegLinetoAbs]"
-PASS path1.pathSegList.getItem(2).x is 100
-PASS path1.pathSegList.getItem(2).y is 100
-PASS path1.pathSegList.getItem(3).toString() is "[object SVGPathSegLinetoAbs]"
-PASS path1.pathSegList.getItem(3).x is 0
-PASS path1.pathSegList.getItem(3).y is 100
-
-Check final 'pathSegList' value of path2
-PASS path2.pathSegList.numberOfItems is 4
-PASS path2.pathSegList.getItem(0).toString() is "[object SVGPathSegMovetoAbs]"
-PASS path2.pathSegList.getItem(0).x is 0
-PASS path2.pathSegList.getItem(0).y is 0
-PASS path2.pathSegList.getItem(1).toString() is "[object SVGPathSegLinetoHorizontalRel]"
-PASS path2.pathSegList.getItem(1).x is 100
-PASS path2.pathSegList.getItem(2).toString() is "[object SVGPathSegLinetoVerticalRel]"
-PASS path2.pathSegList.getItem(2).y is 100
-PASS path2.pathSegList.getItem(3).toString() is "[object SVGPathSegLinetoHorizontalRel]"
-PASS path2.pathSegList.getItem(3).x is -100
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/svg/dom/SVGPathSegList-replaceItem.xhtml b/LayoutTests/svg/dom/SVGPathSegList-replaceItem.xhtml
deleted file mode 100644
index 848ebc9..0000000
--- a/LayoutTests/svg/dom/SVGPathSegList-replaceItem.xhtml
+++ /dev/null
@@ -1,102 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css"/>
-<script>window.enablePixelTesting = true;</script>
-<script src="../../fast/js/resources/js-test-pre.js"></script>
-</head>
-<body>
-<svg id="svg" xmlns="http://www.w3.org/2000/svg" width="250" height="250">
- <g transform="translate(10, 10)">
- <path id="path1" d="M 0 0 L 100 100 L 100 0 L 100 100 v 100 L 0 100" fill="green"/>
- <path transform="translate(110, 0)" id="path2" d="M 0 0 h 100 L 200 100 h -100" fill="green"/>
- </g>
-</svg>
-
-<p id="description"></p>
-<div id="console"></div>
-<script type="text/javascript">
-<![CDATA[
- description("This is a test of the SVGPathSegList::replaceItem() API.");
-
- var svg = document.getElementById("svg");
- var path1 = document.getElementById("path1");
- var path2 = document.getElementById("path2");
-
- debug("");
- debug("Check initial 'pathSegList' value of path1");
- shouldBe("path1.pathSegList.numberOfItems", "6");
- shouldBeEqualToString("path1.pathSegList.getItem(0).toString()", "[object SVGPathSegMovetoAbs]");
- shouldBe("path1.pathSegList.getItem(0).x", "0");
- shouldBe("path1.pathSegList.getItem(0).y", "0");
- shouldBeEqualToString("path1.pathSegList.getItem(1).toString()", "[object SVGPathSegLinetoAbs]");
- shouldBe("path1.pathSegList.getItem(1).x", "100");
- shouldBe("path1.pathSegList.getItem(1).y", "100");
- shouldBeEqualToString("path1.pathSegList.getItem(2).toString()", "[object SVGPathSegLinetoAbs]");
- shouldBe("path1.pathSegList.getItem(2).x", "100");
- shouldBe("path1.pathSegList.getItem(2).y", "0");
- shouldBeEqualToString("path1.pathSegList.getItem(3).toString()", "[object SVGPathSegLinetoAbs]");
- shouldBe("path1.pathSegList.getItem(3).x", "100");
- shouldBe("path1.pathSegList.getItem(3).y", "100");
- shouldBeEqualToString("path1.pathSegList.getItem(4).toString()", "[object SVGPathSegLinetoVerticalRel]");
- shouldBe("path1.pathSegList.getItem(4).y", "100");
- shouldBeEqualToString("path1.pathSegList.getItem(5).toString()", "[object SVGPathSegLinetoAbs]");
- shouldBe("path1.pathSegList.getItem(5).x", "0");
- shouldBe("path1.pathSegList.getItem(5).y", "100");
-
- debug("");
- debug("Check initial 'pathSegList' value of path2");
- shouldBe("path2.pathSegList.numberOfItems", "4");
- shouldBeEqualToString("path2.pathSegList.getItem(0).toString()", "[object SVGPathSegMovetoAbs]");
- shouldBe("path2.pathSegList.getItem(0).x", "0");
- shouldBe("path2.pathSegList.getItem(0).y", "0");
- shouldBeEqualToString("path2.pathSegList.getItem(1).toString()", "[object SVGPathSegLinetoHorizontalRel]");
- shouldBe("path2.pathSegList.getItem(1).x", "100");
- shouldBeEqualToString("path2.pathSegList.getItem(2).toString()", "[object SVGPathSegLinetoAbs]");
- shouldBe("path2.pathSegList.getItem(2).x", "200");
- shouldBe("path2.pathSegList.getItem(2).y", "100");
- shouldBeEqualToString("path2.pathSegList.getItem(3).toString()", "[object SVGPathSegLinetoHorizontalRel]");
- shouldBe("path2.pathSegList.getItem(3).x", "-100");
-
- debug("");
- debug("Replace second item with third item of path1");
- shouldBeEqualToString("path1.pathSegList.replaceItem(path1.pathSegList.getItem(2), 1).toString()", "[object SVGPathSegLinetoAbs]");
-
- debug("");
- debug("Replace third item of path2 with fourth item of path1");
- shouldBeEqualToString("path2.pathSegList.replaceItem(path1.pathSegList.getItem(3), 2).toString()", "[object SVGPathSegLinetoVerticalRel]");
-
- debug("");
- debug("Check final 'pathSegList' value of path1");
- shouldBe("path1.pathSegList.numberOfItems", "4");
- shouldBeEqualToString("path1.pathSegList.getItem(0).toString()", "[object SVGPathSegMovetoAbs]");
- shouldBe("path1.pathSegList.getItem(0).x", "0");
- shouldBe("path1.pathSegList.getItem(0).y", "0");
- shouldBeEqualToString("path1.pathSegList.getItem(1).toString()", "[object SVGPathSegLinetoAbs]");
- shouldBe("path1.pathSegList.getItem(1).x", "100");
- shouldBe("path1.pathSegList.getItem(1).y", "0");
- shouldBeEqualToString("path1.pathSegList.getItem(2).toString()", "[object SVGPathSegLinetoAbs]");
- shouldBe("path1.pathSegList.getItem(2).x", "100");
- shouldBe("path1.pathSegList.getItem(2).y", "100");
- shouldBeEqualToString("path1.pathSegList.getItem(3).toString()", "[object SVGPathSegLinetoAbs]");
- shouldBe("path1.pathSegList.getItem(3).x", "0");
- shouldBe("path1.pathSegList.getItem(3).y", "100");
-
- debug("");
- debug("Check final 'pathSegList' value of path2");
- shouldBe("path2.pathSegList.numberOfItems", "4");
- shouldBeEqualToString("path2.pathSegList.getItem(0).toString()", "[object SVGPathSegMovetoAbs]");
- shouldBe("path2.pathSegList.getItem(0).x", "0");
- shouldBe("path2.pathSegList.getItem(0).y", "0");
- shouldBeEqualToString("path2.pathSegList.getItem(1).toString()", "[object SVGPathSegLinetoHorizontalRel]");
- shouldBe("path2.pathSegList.getItem(1).x", "100");
- shouldBeEqualToString("path2.pathSegList.getItem(2).toString()", "[object SVGPathSegLinetoVerticalRel]");
- shouldBe("path2.pathSegList.getItem(2).y", "100");
- shouldBeEqualToString("path2.pathSegList.getItem(3).toString()", "[object SVGPathSegLinetoHorizontalRel]");
- shouldBe("path2.pathSegList.getItem(3).x", "-100");
-
- successfullyParsed = true;
-]]>
-</script>
-<script src="../../fast/js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/svg/dom/SVGPathSegList-segment-modification.svg b/LayoutTests/svg/dom/SVGPathSegList-segment-modification.svg
deleted file mode 100644
index 19fc427..0000000
--- a/LayoutTests/svg/dom/SVGPathSegList-segment-modification.svg
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink='http://www.w3.org/1999/xlink' width="300px" height="300px" viewBox="0 0 300 300" onload="test()">
- <script type="text/ecmascript"><![CDATA[
- if (window.layoutTestController)
- layoutTestController.notifyDone();
-
- function test() {
- var smile = document.getElementById('smile');
- var segList = smile.pathSegList;
- var moveSeg = segList.getItem(0); // This represents the M 80 40 segment (Move to)
- var smoothCurveSeg = segList.getItem(1); // This represents the S 20 80 80 40 segment (Smooth Curveto)
- setTimeout(function() {
- moveSeg.x = 50;
- moveSeg.y = 50;
-
- if (window.layoutTestController)
- layoutTestController.notifyDone();
- }, 0);
- }
- ]]></script>
- <path id="smile" d="M 80 40 S 120 80 160 40" stroke="black" stroke-width="3" fill="none"/>
- <text x="10" y="20">There should be a smooth curve below</text>
-</svg>
diff --git a/LayoutTests/svg/dom/SVGPathSegList-xml-dom-synchronization-expected.txt b/LayoutTests/svg/dom/SVGPathSegList-xml-dom-synchronization-expected.txt
deleted file mode 100644
index 9c672da..0000000
--- a/LayoutTests/svg/dom/SVGPathSegList-xml-dom-synchronization-expected.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-This is a test how SVGLengthList reacts to XML DOM modifications.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-PASS path.pathSegList.numberOfItems is 3
-PASS path.getAttribute('d').formatDAttribute() is "M 200 0 L 100 0 L 100 100"
-PASS path.getAttribute('d').formatDAttribute() is "M 200 0 L 100 0 L 100 100 L 0 100"
-PASS path.getAttribute('d').formatDAttribute() is "M 100 0 L 100 0 L 100 100 L 0 100"
-PASS path.getAttribute('d').formatDAttribute() is "M 0 0 L 100 0 L 100 100 L 0 100"
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/svg/dom/SVGPathSegList-xml-dom-synchronization.xhtml b/LayoutTests/svg/dom/SVGPathSegList-xml-dom-synchronization.xhtml
deleted file mode 100644
index 2c25f83..0000000
--- a/LayoutTests/svg/dom/SVGPathSegList-xml-dom-synchronization.xhtml
+++ /dev/null
@@ -1,49 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css"/>
-<script>window.enablePixelTesting = true;</script>
-<script src="../../fast/js/resources/js-test-pre.js"></script>
-</head>
-<body>
-<svg id="svg" xmlns="http://www.w3.org/2000/svg" width="200" height="200">
- <path id="path" fill="green" transform="translate(10 10)" d="M 200 0 L 100 0 L 100 100"/>
-</svg>
-
-<p id="description"></p>
-<div id="console"></div>
-<script type="text/javascript">
-<![CDATA[
- description("This is a test how SVGLengthList reacts to XML DOM modifications.");
-
- // Extend String prototype, to offer a function, that formas the d attribute in the same way across browsers
- String.prototype.formatDAttribute = function() {
- return this.replace(/,/g, " ") // Remove Firefox commas
- .replace(/([A-Z])/g, " $1 ") // "M 100 0L 50 0" -> " M 100 0 L 50 0"
- .replace(/^\s/, "") // " M 100 0" -> "M 100 0"
- .replace(/\s\s/g, " "); // If there was already whitespace between coordinates & commands, fix it up again.
- }
-
- var path = document.getElementById("path");
- shouldBe("path.pathSegList.numberOfItems", "3");
-
- // Check initial 'd' attribute value.
- shouldBeEqualToString("path.getAttribute('d').formatDAttribute()", "M 200 0 L 100 0 L 100 100");
-
- // Append one item, check 'd' attribute changed.
- path.pathSegList.appendItem(path.createSVGPathSegLinetoAbs(0, 100));
- shouldBeEqualToString("path.getAttribute('d').formatDAttribute()", "M 200 0 L 100 0 L 100 100 L 0 100");
-
- // Modify first item, check 'd' attribute changed.
- path.pathSegList.getItem(0).x -= 100;
- shouldBeEqualToString("path.getAttribute('d').formatDAttribute()", "M 100 0 L 100 0 L 100 100 L 0 100");
-
- // Modify first item, check 'd' attribute changed, now a green rectangle should be visible.
- path.pathSegList.getItem(0).x -= 100;
- shouldBeEqualToString("path.getAttribute('d').formatDAttribute()", "M 0 0 L 100 0 L 100 100 L 0 100");
-
- successfullyParsed = true;
-]]>
-</script>
-<script src="../../fast/js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/svg/dom/SVGPathSegList-xml-dom-synchronization2.xhtml b/LayoutTests/svg/dom/SVGPathSegList-xml-dom-synchronization2.xhtml
deleted file mode 100644
index 52d72d3..0000000
--- a/LayoutTests/svg/dom/SVGPathSegList-xml-dom-synchronization2.xhtml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg width="600" height="500" xmlns="http://www.w3.org/2000/svg">
- <script type="text/javascript">
- <![CDATA[
- if (window.layoutTestController)
- layoutTestController.waitUntilDone();
-
- window.onload = function() {
- var path = document.getElementsByTagName('path')[0];
- var start = document.getElementById('d_start');
- var end = document.getElementById('d_end');
-
- var start_d = path.getAttribute('d');
- start.textContent = start_d;
- var list = path.pathSegList;
- var seg = path.createSVGPathSegLinetoRel(50, 50);
-
- setTimeout(function() {
- list.insertItemBefore(seg, 2);
- var end_d = path.getAttribute('d');
- end.textContent = end_d;
- if(start_d == end_d) {
- end.textContent += ' (failed)';
- }
-
- if (window.layoutTestController)
- layoutTestController.notifyDone();
- }, 0);
- }
-]]>
-</script>
- <path d="M50,150 l45,-43 l24,64 l-69,-21z" fill="#FF0000" stroke="#000000" stroke-width="5"/>
- <text x="10" y="20" style="font-weight:bold">Right after loading, a segment is added to the path.</text>
- <text x="10" y="40" style="font-weight:bold">The path and its attribute should be updated to include the new segment.</text>
-
- <text x="10" y="70">"d" initial: </text>
- <text id="d_start" x="90" y="70"></text>
-
- <text x="10" y="90">"d" after: </text>
- <text id="d_end" x="90" y="90"></text>
-</svg>
diff --git a/LayoutTests/svg/dom/fuzz-path-parser-expected.txt b/LayoutTests/svg/dom/fuzz-path-parser-expected.txt
index be07cdc..3e81df0 100644
--- a/LayoutTests/svg/dom/fuzz-path-parser-expected.txt
+++ b/LayoutTests/svg/dom/fuzz-path-parser-expected.txt
@@ -207,255 +207,255 @@ This test fuzzes the path parser with semi-random attribute values and dumps the
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-Parsed as 4 command(s) [MTZl]: M1,1T4,1,zl5 3 a0,5,1,4,0,3 2,m6,C7,2,3,8,6,7,zt2,8
-Parsed as 5 command(s) [MQQhq]: M1,1Q8,5 5 1 Q4,8,4,3,h4,q8 4,9,2,1 L4,0 l7 4 L1,0,q1,9,9,2 c5 5 2,8,1 1,q0,3 6,5,
-Parsed as 2 command(s) [Mh]: M1,1h0 A6 5,5 4,1,5,3 H5 a8 8,0 0,9,8 3 a6,1,6,3 5,6,3,S1 9 5 1 7,
+Parsed as 4 command(s) [MCZL]: M1,1T4,1,zl5 3 a0,5,1,4,0,3 2,m6,C7,2,3,8,6,7,zt2,8
+Parsed as 5 command(s) [MCCLC]: M1,1Q8,5 5 1 Q4,8,4,3,h4,q8 4,9,2,1 L4,0 l7 4 L1,0,q1,9,9,2 c5 5 2,8,1 1,q0,3 6,5,
+Parsed as 2 command(s) [ML]: M1,1h0 A6 5,5 4,1,5,3 H5 a8 8,0 0,9,8 3 a6,1,6,3 5,6,3,S1 9 5 1 7,
Parsed as 1 command(s) [M]: M1,1s6 3,8,h9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,s6,3,1,
-Parsed as 6 command(s) [MtlaQH]: M1,1t4 4 l6 6 a4 2,3,0,1,2 1,Q1,1,0,3,H8 C7,9 8 4,0 t5,2,H9,zHq1 5,9,T6 8,
+Parsed as 6 command(s) [MCLCCL]: M1,1t4 4 l6 6 a4 2,3,0,1,2 1,Q1,1,0,3,H8 C7,9 8 4,0 t5,2,H9,zHq1 5,9,T6 8,
Parsed as 1 command(s) [M]: M1,1
-Parsed as 12 command(s) [MtZcZZQHvvCq]: M1,1t1 0 Zc3,8,8 7 3,4 zzQ5,3 4,4 H0 v8,v1,C0,1,6,2,5,4 q2 7 5 3 a7,4 7 9,7,2 9,ZL6 6,
-Parsed as 7 command(s) [MLtQTss]: M1,1L5,9,t3 7 Q6 1 1,1 T3,0 s4 6 8 1,s8 3,8 9,a5 4 3 2,4,2 3,6
-Parsed as 6 command(s) [MtllsT]: M1,1t8 9,l3 5 l9,5 s6,9,2 9,T1 9
+Parsed as 12 command(s) [MCZCZZCLLLCC]: M1,1t1 0 Zc3,8,8 7 3,4 zzQ5,3 4,4 H0 v8,v1,C0,1,6,2,5,4 q2 7 5 3 a7,4 7 9,7,2 9,ZL6 6,
+Parsed as 7 command(s) [MLCCCCC]: M1,1L5,9,t3 7 Q6 1 1,1 T3,0 s4 6 8 1,s8 3,8 9,a5 4 3 2,4,2 3,6
+Parsed as 6 command(s) [MCLLCC]: M1,1t8 9,l3 5 l9,5 s6,9,2 9,T1 9
Parsed as 1 command(s) [M]: M1,1a9,2 6 1 2 2 2,za9 0 2 8,2,3,3 s5,8,8 1,HC5 8 5,8,4 2 c8 4 5 2 5 9,l3 9,H7 s6 2,0 0 a4 9,1 6,3,7,0,M6,
-Parsed as 2 command(s) [MT]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
-Parsed as 8 command(s) [MMqstQsV]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
-Parsed as 7 command(s) [MtlZhMs]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
+Parsed as 2 command(s) [MC]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
+Parsed as 8 command(s) [MMCCCCCL]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
+Parsed as 7 command(s) [MCLZLMC]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
Parsed as 1 command(s) [M]: M1,1
Parsed as 1 command(s) [M]: M1,1a4 5,7 3,5 9 8 7 S8 8 6 7 c2 8 4,1,4,1,c3 9,0,5,1,4,m3 2,0,S5,7,2,3,8,s7,4,8 2,T5,6,q0,3 2,6 A5 5 7 7 7,8,2 6,A8 0 3 5 2 3,3 v5 a6,3 7,7,9 4,3,H2
-Parsed as 4 command(s) [MTqv]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
+Parsed as 4 command(s) [MCCL]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
Parsed as 1 command(s) [M]: M1,1A8 5 5,8 4 4 1 s6 9 4 2,v0,l2 L7,1,L0,3,H8 C7,9 8 4,0 t5,2,H9,zH
Parsed as 1 command(s) [M]: M1,1A3,6,9,7,2,7 7,c1 1 1,0 7,7,l1 6 zH0,Zs0 5 0 0 zL8 4 7,zA8,8 5,9 2,6 4,l2 2,L9 4,V
-Parsed as 4 command(s) [MQss]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
+Parsed as 4 command(s) [MCCC]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
Parsed as 1 command(s) [M]: M1,1a9,2 6 1 2 2 2,za9 0 2 8,2,3,3 s5,8,8 1,HC5 8 5,8,4 2 c8 4 5 2 5 9,l3 9,H7 s6 2,0 0 a4 9,1 6,3,7,0,M6,
-Parsed as 2 command(s) [MT]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
-Parsed as 8 command(s) [MMqstQsV]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
-Parsed as 7 command(s) [MtlZhMs]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
+Parsed as 2 command(s) [MC]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
+Parsed as 8 command(s) [MMCCCCCL]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
+Parsed as 7 command(s) [MCLZLMC]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
Parsed as 1 command(s) [M]: M1,1
Parsed as 1 command(s) [M]: M1,1a4 5,7 3,5 9 8 7 S8 8 6 7 c2 8 4,1,4,1,c3 9,0,5,1,4,m3 2,0,S5,7,2,3,8,s7,4,8 2,T5,6,q0,3 2,6 A5 5 7 7 7,8,2 6,A8 0 3 5 2 3,3 v5 a6,3 7,7,9 4,3,H2
-Parsed as 4 command(s) [MTqv]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
+Parsed as 4 command(s) [MCCL]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
Parsed as 1 command(s) [M]: M1,1A8 5 5,8 4 4 1 s6 9 4 2,v0,l2 L7,1,L0,3,H8 C7,9 8 4,0 t5,2,H9,zH
Parsed as 1 command(s) [M]: M1,1A3,6,9,7,2,7 7,c1 1 1,0 7,7,l1 6 zH0,Zs0 5 0 0 zL8 4 7,zA8,8 5,9 2,6 4,l2 2,L9 4,V
-Parsed as 4 command(s) [MQss]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
+Parsed as 4 command(s) [MCCC]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
Parsed as 1 command(s) [M]: M1,1a9,2 6 1 2 2 2,za9 0 2 8,2,3,3 s5,8,8 1,HC5 8 5,8,4 2 c8 4 5 2 5 9,l3 9,H7 s6 2,0 0 a4 9,1 6,3,7,0,M6,
-Parsed as 2 command(s) [MT]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
-Parsed as 8 command(s) [MMqstQsV]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
-Parsed as 7 command(s) [MtlZhMs]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
+Parsed as 2 command(s) [MC]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
+Parsed as 8 command(s) [MMCCCCCL]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
+Parsed as 7 command(s) [MCLZLMC]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
Parsed as 1 command(s) [M]: M1,1
Parsed as 1 command(s) [M]: M1,1a4 5,7 3,5 9 8 7 S8 8 6 7 c2 8 4,1,4,1,c3 9,0,5,1,4,m3 2,0,S5,7,2,3,8,s7,4,8 2,T5,6,q0,3 2,6 A5 5 7 7 7,8,2 6,A8 0 3 5 2 3,3 v5 a6,3 7,7,9 4,3,H2
-Parsed as 4 command(s) [MTqv]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
+Parsed as 4 command(s) [MCCL]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
Parsed as 1 command(s) [M]: M1,1A8 5 5,8 4 4 1 s6 9 4 2,v0,l2 L7,1,L0,3,H8 C7,9 8 4,0 t5,2,H9,zH
Parsed as 1 command(s) [M]: M1,1A3,6,9,7,2,7 7,c1 1 1,0 7,7,l1 6 zH0,Zs0 5 0 0 zL8 4 7,zA8,8 5,9 2,6 4,l2 2,L9 4,V
-Parsed as 4 command(s) [MQss]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
+Parsed as 4 command(s) [MCCC]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
Parsed as 1 command(s) [M]: M1,1a9,2 6 1 2 2 2,za9 0 2 8,2,3,3 s5,8,8 1,HC5 8 5,8,4 2 c8 4 5 2 5 9,l3 9,H7 s6 2,0 0 a4 9,1 6,3,7,0,M6,
-Parsed as 2 command(s) [MT]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
-Parsed as 8 command(s) [MMqstQsV]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
-Parsed as 7 command(s) [MtlZhMs]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
+Parsed as 2 command(s) [MC]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
+Parsed as 8 command(s) [MMCCCCCL]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
+Parsed as 7 command(s) [MCLZLMC]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
Parsed as 1 command(s) [M]: M1,1
Parsed as 1 command(s) [M]: M1,1a4 5,7 3,5 9 8 7 S8 8 6 7 c2 8 4,1,4,1,c3 9,0,5,1,4,m3 2,0,S5,7,2,3,8,s7,4,8 2,T5,6,q0,3 2,6 A5 5 7 7 7,8,2 6,A8 0 3 5 2 3,3 v5 a6,3 7,7,9 4,3,H2
-Parsed as 4 command(s) [MTqv]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
+Parsed as 4 command(s) [MCCL]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
Parsed as 1 command(s) [M]: M1,1A8 5 5,8 4 4 1 s6 9 4 2,v0,l2 L7,1,L0,3,H8 C7,9 8 4,0 t5,2,H9,zH
Parsed as 1 command(s) [M]: M1,1A3,6,9,7,2,7 7,c1 1 1,0 7,7,l1 6 zH0,Zs0 5 0 0 zL8 4 7,zA8,8 5,9 2,6 4,l2 2,L9 4,V
-Parsed as 4 command(s) [MQss]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
+Parsed as 4 command(s) [MCCC]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
Parsed as 1 command(s) [M]: M1,1a9,2 6 1 2 2 2,za9 0 2 8,2,3,3 s5,8,8 1,HC5 8 5,8,4 2 c8 4 5 2 5 9,l3 9,H7 s6 2,0 0 a4 9,1 6,3,7,0,M6,
-Parsed as 2 command(s) [MT]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
-Parsed as 8 command(s) [MMqstQsV]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
-Parsed as 7 command(s) [MtlZhMs]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
+Parsed as 2 command(s) [MC]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
+Parsed as 8 command(s) [MMCCCCCL]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
+Parsed as 7 command(s) [MCLZLMC]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
Parsed as 1 command(s) [M]: M1,1
Parsed as 1 command(s) [M]: M1,1a4 5,7 3,5 9 8 7 S8 8 6 7 c2 8 4,1,4,1,c3 9,0,5,1,4,m3 2,0,S5,7,2,3,8,s7,4,8 2,T5,6,q0,3 2,6 A5 5 7 7 7,8,2 6,A8 0 3 5 2 3,3 v5 a6,3 7,7,9 4,3,H2
-Parsed as 4 command(s) [MTqv]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
+Parsed as 4 command(s) [MCCL]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
Parsed as 1 command(s) [M]: M1,1A8 5 5,8 4 4 1 s6 9 4 2,v0,l2 L7,1,L0,3,H8 C7,9 8 4,0 t5,2,H9,zH
Parsed as 1 command(s) [M]: M1,1A3,6,9,7,2,7 7,c1 1 1,0 7,7,l1 6 zH0,Zs0 5 0 0 zL8 4 7,zA8,8 5,9 2,6 4,l2 2,L9 4,V
-Parsed as 4 command(s) [MQss]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
+Parsed as 4 command(s) [MCCC]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
Parsed as 1 command(s) [M]: M1,1a9,2 6 1 2 2 2,za9 0 2 8,2,3,3 s5,8,8 1,HC5 8 5,8,4 2 c8 4 5 2 5 9,l3 9,H7 s6 2,0 0 a4 9,1 6,3,7,0,M6,
-Parsed as 2 command(s) [MT]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
-Parsed as 8 command(s) [MMqstQsV]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
-Parsed as 7 command(s) [MtlZhMs]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
+Parsed as 2 command(s) [MC]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
+Parsed as 8 command(s) [MMCCCCCL]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
+Parsed as 7 command(s) [MCLZLMC]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
Parsed as 1 command(s) [M]: M1,1
Parsed as 1 command(s) [M]: M1,1a4 5,7 3,5 9 8 7 S8 8 6 7 c2 8 4,1,4,1,c3 9,0,5,1,4,m3 2,0,S5,7,2,3,8,s7,4,8 2,T5,6,q0,3 2,6 A5 5 7 7 7,8,2 6,A8 0 3 5 2 3,3 v5 a6,3 7,7,9 4,3,H2
-Parsed as 4 command(s) [MTqv]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
+Parsed as 4 command(s) [MCCL]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
Parsed as 1 command(s) [M]: M1,1A8 5 5,8 4 4 1 s6 9 4 2,v0,l2 L7,1,L0,3,H8 C7,9 8 4,0 t5,2,H9,zH
Parsed as 1 command(s) [M]: M1,1A3,6,9,7,2,7 7,c1 1 1,0 7,7,l1 6 zH0,Zs0 5 0 0 zL8 4 7,zA8,8 5,9 2,6 4,l2 2,L9 4,V
-Parsed as 4 command(s) [MQss]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
+Parsed as 4 command(s) [MCCC]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
Parsed as 1 command(s) [M]: M1,1a9,2 6 1 2 2 2,za9 0 2 8,2,3,3 s5,8,8 1,HC5 8 5,8,4 2 c8 4 5 2 5 9,l3 9,H7 s6 2,0 0 a4 9,1 6,3,7,0,M6,
-Parsed as 2 command(s) [MT]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
-Parsed as 8 command(s) [MMqstQsV]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
-Parsed as 7 command(s) [MtlZhMs]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
+Parsed as 2 command(s) [MC]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
+Parsed as 8 command(s) [MMCCCCCL]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
+Parsed as 7 command(s) [MCLZLMC]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
Parsed as 1 command(s) [M]: M1,1
Parsed as 1 command(s) [M]: M1,1a4 5,7 3,5 9 8 7 S8 8 6 7 c2 8 4,1,4,1,c3 9,0,5,1,4,m3 2,0,S5,7,2,3,8,s7,4,8 2,T5,6,q0,3 2,6 A5 5 7 7 7,8,2 6,A8 0 3 5 2 3,3 v5 a6,3 7,7,9 4,3,H2
-Parsed as 4 command(s) [MTqv]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
+Parsed as 4 command(s) [MCCL]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
Parsed as 1 command(s) [M]: M1,1A8 5 5,8 4 4 1 s6 9 4 2,v0,l2 L7,1,L0,3,H8 C7,9 8 4,0 t5,2,H9,zH
Parsed as 1 command(s) [M]: M1,1A3,6,9,7,2,7 7,c1 1 1,0 7,7,l1 6 zH0,Zs0 5 0 0 zL8 4 7,zA8,8 5,9 2,6 4,l2 2,L9 4,V
-Parsed as 4 command(s) [MQss]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
+Parsed as 4 command(s) [MCCC]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
Parsed as 1 command(s) [M]: M1,1a9,2 6 1 2 2 2,za9 0 2 8,2,3,3 s5,8,8 1,HC5 8 5,8,4 2 c8 4 5 2 5 9,l3 9,H7 s6 2,0 0 a4 9,1 6,3,7,0,M6,
-Parsed as 2 command(s) [MT]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
-Parsed as 8 command(s) [MMqstQsV]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
-Parsed as 7 command(s) [MtlZhMs]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
+Parsed as 2 command(s) [MC]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
+Parsed as 8 command(s) [MMCCCCCL]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
+Parsed as 7 command(s) [MCLZLMC]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
Parsed as 1 command(s) [M]: M1,1
Parsed as 1 command(s) [M]: M1,1a4 5,7 3,5 9 8 7 S8 8 6 7 c2 8 4,1,4,1,c3 9,0,5,1,4,m3 2,0,S5,7,2,3,8,s7,4,8 2,T5,6,q0,3 2,6 A5 5 7 7 7,8,2 6,A8 0 3 5 2 3,3 v5 a6,3 7,7,9 4,3,H2
-Parsed as 4 command(s) [MTqv]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
+Parsed as 4 command(s) [MCCL]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
Parsed as 1 command(s) [M]: M1,1A8 5 5,8 4 4 1 s6 9 4 2,v0,l2 L7,1,L0,3,H8 C7,9 8 4,0 t5,2,H9,zH
Parsed as 1 command(s) [M]: M1,1A3,6,9,7,2,7 7,c1 1 1,0 7,7,l1 6 zH0,Zs0 5 0 0 zL8 4 7,zA8,8 5,9 2,6 4,l2 2,L9 4,V
-Parsed as 4 command(s) [MQss]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
+Parsed as 4 command(s) [MCCC]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
Parsed as 1 command(s) [M]: M1,1a9,2 6 1 2 2 2,za9 0 2 8,2,3,3 s5,8,8 1,HC5 8 5,8,4 2 c8 4 5 2 5 9,l3 9,H7 s6 2,0 0 a4 9,1 6,3,7,0,M6,
-Parsed as 2 command(s) [MT]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
-Parsed as 8 command(s) [MMqstQsV]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
-Parsed as 7 command(s) [MtlZhMs]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
+Parsed as 2 command(s) [MC]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
+Parsed as 8 command(s) [MMCCCCCL]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
+Parsed as 7 command(s) [MCLZLMC]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
Parsed as 1 command(s) [M]: M1,1
Parsed as 1 command(s) [M]: M1,1a4 5,7 3,5 9 8 7 S8 8 6 7 c2 8 4,1,4,1,c3 9,0,5,1,4,m3 2,0,S5,7,2,3,8,s7,4,8 2,T5,6,q0,3 2,6 A5 5 7 7 7,8,2 6,A8 0 3 5 2 3,3 v5 a6,3 7,7,9 4,3,H2
-Parsed as 4 command(s) [MTqv]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
+Parsed as 4 command(s) [MCCL]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
Parsed as 1 command(s) [M]: M1,1A8 5 5,8 4 4 1 s6 9 4 2,v0,l2 L7,1,L0,3,H8 C7,9 8 4,0 t5,2,H9,zH
Parsed as 1 command(s) [M]: M1,1A3,6,9,7,2,7 7,c1 1 1,0 7,7,l1 6 zH0,Zs0 5 0 0 zL8 4 7,zA8,8 5,9 2,6 4,l2 2,L9 4,V
-Parsed as 4 command(s) [MQss]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
+Parsed as 4 command(s) [MCCC]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
Parsed as 1 command(s) [M]: M1,1a9,2 6 1 2 2 2,za9 0 2 8,2,3,3 s5,8,8 1,HC5 8 5,8,4 2 c8 4 5 2 5 9,l3 9,H7 s6 2,0 0 a4 9,1 6,3,7,0,M6,
-Parsed as 2 command(s) [MT]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
-Parsed as 8 command(s) [MMqstQsV]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
-Parsed as 7 command(s) [MtlZhMs]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
+Parsed as 2 command(s) [MC]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
+Parsed as 8 command(s) [MMCCCCCL]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
+Parsed as 7 command(s) [MCLZLMC]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
Parsed as 1 command(s) [M]: M1,1
Parsed as 1 command(s) [M]: M1,1a4 5,7 3,5 9 8 7 S8 8 6 7 c2 8 4,1,4,1,c3 9,0,5,1,4,m3 2,0,S5,7,2,3,8,s7,4,8 2,T5,6,q0,3 2,6 A5 5 7 7 7,8,2 6,A8 0 3 5 2 3,3 v5 a6,3 7,7,9 4,3,H2
-Parsed as 4 command(s) [MTqv]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
+Parsed as 4 command(s) [MCCL]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
Parsed as 1 command(s) [M]: M1,1A8 5 5,8 4 4 1 s6 9 4 2,v0,l2 L7,1,L0,3,H8 C7,9 8 4,0 t5,2,H9,zH
Parsed as 1 command(s) [M]: M1,1A3,6,9,7,2,7 7,c1 1 1,0 7,7,l1 6 zH0,Zs0 5 0 0 zL8 4 7,zA8,8 5,9 2,6 4,l2 2,L9 4,V
-Parsed as 4 command(s) [MQss]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
+Parsed as 4 command(s) [MCCC]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
Parsed as 1 command(s) [M]: M1,1a9,2 6 1 2 2 2,za9 0 2 8,2,3,3 s5,8,8 1,HC5 8 5,8,4 2 c8 4 5 2 5 9,l3 9,H7 s6 2,0 0 a4 9,1 6,3,7,0,M6,
-Parsed as 2 command(s) [MT]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
-Parsed as 8 command(s) [MMqstQsV]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
-Parsed as 7 command(s) [MtlZhMs]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
+Parsed as 2 command(s) [MC]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
+Parsed as 8 command(s) [MMCCCCCL]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
+Parsed as 7 command(s) [MCLZLMC]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
Parsed as 1 command(s) [M]: M1,1
Parsed as 1 command(s) [M]: M1,1a4 5,7 3,5 9 8 7 S8 8 6 7 c2 8 4,1,4,1,c3 9,0,5,1,4,m3 2,0,S5,7,2,3,8,s7,4,8 2,T5,6,q0,3 2,6 A5 5 7 7 7,8,2 6,A8 0 3 5 2 3,3 v5 a6,3 7,7,9 4,3,H2
-Parsed as 4 command(s) [MTqv]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
+Parsed as 4 command(s) [MCCL]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
Parsed as 1 command(s) [M]: M1,1A8 5 5,8 4 4 1 s6 9 4 2,v0,l2 L7,1,L0,3,H8 C7,9 8 4,0 t5,2,H9,zH
Parsed as 1 command(s) [M]: M1,1A3,6,9,7,2,7 7,c1 1 1,0 7,7,l1 6 zH0,Zs0 5 0 0 zL8 4 7,zA8,8 5,9 2,6 4,l2 2,L9 4,V
-Parsed as 4 command(s) [MQss]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
+Parsed as 4 command(s) [MCCC]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
Parsed as 1 command(s) [M]: M1,1a9,2 6 1 2 2 2,za9 0 2 8,2,3,3 s5,8,8 1,HC5 8 5,8,4 2 c8 4 5 2 5 9,l3 9,H7 s6 2,0 0 a4 9,1 6,3,7,0,M6,
-Parsed as 2 command(s) [MT]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
-Parsed as 8 command(s) [MMqstQsV]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
-Parsed as 7 command(s) [MtlZhMs]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
+Parsed as 2 command(s) [MC]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
+Parsed as 8 command(s) [MMCCCCCL]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
+Parsed as 7 command(s) [MCLZLMC]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
Parsed as 1 command(s) [M]: M1,1
Parsed as 1 command(s) [M]: M1,1a4 5,7 3,5 9 8 7 S8 8 6 7 c2 8 4,1,4,1,c3 9,0,5,1,4,m3 2,0,S5,7,2,3,8,s7,4,8 2,T5,6,q0,3 2,6 A5 5 7 7 7,8,2 6,A8 0 3 5 2 3,3 v5 a6,3 7,7,9 4,3,H2
-Parsed as 4 command(s) [MTqv]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
+Parsed as 4 command(s) [MCCL]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
Parsed as 1 command(s) [M]: M1,1A8 5 5,8 4 4 1 s6 9 4 2,v0,l2 L7,1,L0,3,H8 C7,9 8 4,0 t5,2,H9,zH
Parsed as 1 command(s) [M]: M1,1A3,6,9,7,2,7 7,c1 1 1,0 7,7,l1 6 zH0,Zs0 5 0 0 zL8 4 7,zA8,8 5,9 2,6 4,l2 2,L9 4,V
-Parsed as 4 command(s) [MQss]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
+Parsed as 4 command(s) [MCCC]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
Parsed as 1 command(s) [M]: M1,1a9,2 6 1 2 2 2,za9 0 2 8,2,3,3 s5,8,8 1,HC5 8 5,8,4 2 c8 4 5 2 5 9,l3 9,H7 s6 2,0 0 a4 9,1 6,3,7,0,M6,
-Parsed as 2 command(s) [MT]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
-Parsed as 8 command(s) [MMqstQsV]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
-Parsed as 7 command(s) [MtlZhMs]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
+Parsed as 2 command(s) [MC]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
+Parsed as 8 command(s) [MMCCCCCL]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
+Parsed as 7 command(s) [MCLZLMC]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
Parsed as 1 command(s) [M]: M1,1
Parsed as 1 command(s) [M]: M1,1a4 5,7 3,5 9 8 7 S8 8 6 7 c2 8 4,1,4,1,c3 9,0,5,1,4,m3 2,0,S5,7,2,3,8,s7,4,8 2,T5,6,q0,3 2,6 A5 5 7 7 7,8,2 6,A8 0 3 5 2 3,3 v5 a6,3 7,7,9 4,3,H2
-Parsed as 4 command(s) [MTqv]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
+Parsed as 4 command(s) [MCCL]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
Parsed as 1 command(s) [M]: M1,1A8 5 5,8 4 4 1 s6 9 4 2,v0,l2 L7,1,L0,3,H8 C7,9 8 4,0 t5,2,H9,zH
Parsed as 1 command(s) [M]: M1,1A3,6,9,7,2,7 7,c1 1 1,0 7,7,l1 6 zH0,Zs0 5 0 0 zL8 4 7,zA8,8 5,9 2,6 4,l2 2,L9 4,V
-Parsed as 4 command(s) [MQss]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
+Parsed as 4 command(s) [MCCC]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
Parsed as 1 command(s) [M]: M1,1a9,2 6 1 2 2 2,za9 0 2 8,2,3,3 s5,8,8 1,HC5 8 5,8,4 2 c8 4 5 2 5 9,l3 9,H7 s6 2,0 0 a4 9,1 6,3,7,0,M6,
-Parsed as 2 command(s) [MT]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
-Parsed as 8 command(s) [MMqstQsV]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
-Parsed as 7 command(s) [MtlZhMs]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
+Parsed as 2 command(s) [MC]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
+Parsed as 8 command(s) [MMCCCCCL]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
+Parsed as 7 command(s) [MCLZLMC]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
Parsed as 1 command(s) [M]: M1,1
Parsed as 1 command(s) [M]: M1,1a4 5,7 3,5 9 8 7 S8 8 6 7 c2 8 4,1,4,1,c3 9,0,5,1,4,m3 2,0,S5,7,2,3,8,s7,4,8 2,T5,6,q0,3 2,6 A5 5 7 7 7,8,2 6,A8 0 3 5 2 3,3 v5 a6,3 7,7,9 4,3,H2
-Parsed as 4 command(s) [MTqv]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
+Parsed as 4 command(s) [MCCL]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
Parsed as 1 command(s) [M]: M1,1A8 5 5,8 4 4 1 s6 9 4 2,v0,l2 L7,1,L0,3,H8 C7,9 8 4,0 t5,2,H9,zH
Parsed as 1 command(s) [M]: M1,1A3,6,9,7,2,7 7,c1 1 1,0 7,7,l1 6 zH0,Zs0 5 0 0 zL8 4 7,zA8,8 5,9 2,6 4,l2 2,L9 4,V
-Parsed as 4 command(s) [MQss]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
+Parsed as 4 command(s) [MCCC]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
Parsed as 1 command(s) [M]: M1,1a9,2 6 1 2 2 2,za9 0 2 8,2,3,3 s5,8,8 1,HC5 8 5,8,4 2 c8 4 5 2 5 9,l3 9,H7 s6 2,0 0 a4 9,1 6,3,7,0,M6,
-Parsed as 2 command(s) [MT]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
-Parsed as 8 command(s) [MMqstQsV]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
-Parsed as 7 command(s) [MtlZhMs]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
+Parsed as 2 command(s) [MC]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
+Parsed as 8 command(s) [MMCCCCCL]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
+Parsed as 7 command(s) [MCLZLMC]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
Parsed as 1 command(s) [M]: M1,1
Parsed as 1 command(s) [M]: M1,1a4 5,7 3,5 9 8 7 S8 8 6 7 c2 8 4,1,4,1,c3 9,0,5,1,4,m3 2,0,S5,7,2,3,8,s7,4,8 2,T5,6,q0,3 2,6 A5 5 7 7 7,8,2 6,A8 0 3 5 2 3,3 v5 a6,3 7,7,9 4,3,H2
-Parsed as 4 command(s) [MTqv]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
+Parsed as 4 command(s) [MCCL]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
Parsed as 1 command(s) [M]: M1,1A8 5 5,8 4 4 1 s6 9 4 2,v0,l2 L7,1,L0,3,H8 C7,9 8 4,0 t5,2,H9,zH
Parsed as 1 command(s) [M]: M1,1A3,6,9,7,2,7 7,c1 1 1,0 7,7,l1 6 zH0,Zs0 5 0 0 zL8 4 7,zA8,8 5,9 2,6 4,l2 2,L9 4,V
-Parsed as 4 command(s) [MQss]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
+Parsed as 4 command(s) [MCCC]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
Parsed as 1 command(s) [M]: M1,1a9,2 6 1 2 2 2,za9 0 2 8,2,3,3 s5,8,8 1,HC5 8 5,8,4 2 c8 4 5 2 5 9,l3 9,H7 s6 2,0 0 a4 9,1 6,3,7,0,M6,
-Parsed as 2 command(s) [MT]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
-Parsed as 8 command(s) [MMqstQsV]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
-Parsed as 7 command(s) [MtlZhMs]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
+Parsed as 2 command(s) [MC]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
+Parsed as 8 command(s) [MMCCCCCL]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
+Parsed as 7 command(s) [MCLZLMC]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
Parsed as 1 command(s) [M]: M1,1
Parsed as 1 command(s) [M]: M1,1a4 5,7 3,5 9 8 7 S8 8 6 7 c2 8 4,1,4,1,c3 9,0,5,1,4,m3 2,0,S5,7,2,3,8,s7,4,8 2,T5,6,q0,3 2,6 A5 5 7 7 7,8,2 6,A8 0 3 5 2 3,3 v5 a6,3 7,7,9 4,3,H2
-Parsed as 4 command(s) [MTqv]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
+Parsed as 4 command(s) [MCCL]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
Parsed as 1 command(s) [M]: M1,1A8 5 5,8 4 4 1 s6 9 4 2,v0,l2 L7,1,L0,3,H8 C7,9 8 4,0 t5,2,H9,zH
Parsed as 1 command(s) [M]: M1,1A3,6,9,7,2,7 7,c1 1 1,0 7,7,l1 6 zH0,Zs0 5 0 0 zL8 4 7,zA8,8 5,9 2,6 4,l2 2,L9 4,V
-Parsed as 4 command(s) [MQss]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
+Parsed as 4 command(s) [MCCC]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
Parsed as 1 command(s) [M]: M1,1a9,2 6 1 2 2 2,za9 0 2 8,2,3,3 s5,8,8 1,HC5 8 5,8,4 2 c8 4 5 2 5 9,l3 9,H7 s6 2,0 0 a4 9,1 6,3,7,0,M6,
-Parsed as 2 command(s) [MT]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
-Parsed as 8 command(s) [MMqstQsV]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
-Parsed as 7 command(s) [MtlZhMs]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
+Parsed as 2 command(s) [MC]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
+Parsed as 8 command(s) [MMCCCCCL]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
+Parsed as 7 command(s) [MCLZLMC]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
Parsed as 1 command(s) [M]: M1,1
Parsed as 1 command(s) [M]: M1,1a4 5,7 3,5 9 8 7 S8 8 6 7 c2 8 4,1,4,1,c3 9,0,5,1,4,m3 2,0,S5,7,2,3,8,s7,4,8 2,T5,6,q0,3 2,6 A5 5 7 7 7,8,2 6,A8 0 3 5 2 3,3 v5 a6,3 7,7,9 4,3,H2
-Parsed as 4 command(s) [MTqv]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
+Parsed as 4 command(s) [MCCL]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
Parsed as 1 command(s) [M]: M1,1A8 5 5,8 4 4 1 s6 9 4 2,v0,l2 L7,1,L0,3,H8 C7,9 8 4,0 t5,2,H9,zH
Parsed as 1 command(s) [M]: M1,1A3,6,9,7,2,7 7,c1 1 1,0 7,7,l1 6 zH0,Zs0 5 0 0 zL8 4 7,zA8,8 5,9 2,6 4,l2 2,L9 4,V
-Parsed as 4 command(s) [MQss]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
+Parsed as 4 command(s) [MCCC]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
Parsed as 1 command(s) [M]: M1,1a9,2 6 1 2 2 2,za9 0 2 8,2,3,3 s5,8,8 1,HC5 8 5,8,4 2 c8 4 5 2 5 9,l3 9,H7 s6 2,0 0 a4 9,1 6,3,7,0,M6,
-Parsed as 2 command(s) [MT]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
-Parsed as 8 command(s) [MMqstQsV]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
-Parsed as 7 command(s) [MtlZhMs]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
+Parsed as 2 command(s) [MC]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
+Parsed as 8 command(s) [MMCCCCCL]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
+Parsed as 7 command(s) [MCLZLMC]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
Parsed as 1 command(s) [M]: M1,1
Parsed as 1 command(s) [M]: M1,1a4 5,7 3,5 9 8 7 S8 8 6 7 c2 8 4,1,4,1,c3 9,0,5,1,4,m3 2,0,S5,7,2,3,8,s7,4,8 2,T5,6,q0,3 2,6 A5 5 7 7 7,8,2 6,A8 0 3 5 2 3,3 v5 a6,3 7,7,9 4,3,H2
-Parsed as 4 command(s) [MTqv]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
+Parsed as 4 command(s) [MCCL]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
Parsed as 1 command(s) [M]: M1,1A8 5 5,8 4 4 1 s6 9 4 2,v0,l2 L7,1,L0,3,H8 C7,9 8 4,0 t5,2,H9,zH
Parsed as 1 command(s) [M]: M1,1A3,6,9,7,2,7 7,c1 1 1,0 7,7,l1 6 zH0,Zs0 5 0 0 zL8 4 7,zA8,8 5,9 2,6 4,l2 2,L9 4,V
-Parsed as 4 command(s) [MQss]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
+Parsed as 4 command(s) [MCCC]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
Parsed as 1 command(s) [M]: M1,1a9,2 6 1 2 2 2,za9 0 2 8,2,3,3 s5,8,8 1,HC5 8 5,8,4 2 c8 4 5 2 5 9,l3 9,H7 s6 2,0 0 a4 9,1 6,3,7,0,M6,
-Parsed as 2 command(s) [MT]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
-Parsed as 8 command(s) [MMqstQsV]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
-Parsed as 7 command(s) [MtlZhMs]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
+Parsed as 2 command(s) [MC]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
+Parsed as 8 command(s) [MMCCCCCL]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
+Parsed as 7 command(s) [MCLZLMC]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
Parsed as 1 command(s) [M]: M1,1
Parsed as 1 command(s) [M]: M1,1a4 5,7 3,5 9 8 7 S8 8 6 7 c2 8 4,1,4,1,c3 9,0,5,1,4,m3 2,0,S5,7,2,3,8,s7,4,8 2,T5,6,q0,3 2,6 A5 5 7 7 7,8,2 6,A8 0 3 5 2 3,3 v5 a6,3 7,7,9 4,3,H2
-Parsed as 4 command(s) [MTqv]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
+Parsed as 4 command(s) [MCCL]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
Parsed as 1 command(s) [M]: M1,1A8 5 5,8 4 4 1 s6 9 4 2,v0,l2 L7,1,L0,3,H8 C7,9 8 4,0 t5,2,H9,zH
Parsed as 1 command(s) [M]: M1,1A3,6,9,7,2,7 7,c1 1 1,0 7,7,l1 6 zH0,Zs0 5 0 0 zL8 4 7,zA8,8 5,9 2,6 4,l2 2,L9 4,V
-Parsed as 4 command(s) [MQss]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
+Parsed as 4 command(s) [MCCC]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
Parsed as 1 command(s) [M]: M1,1a9,2 6 1 2 2 2,za9 0 2 8,2,3,3 s5,8,8 1,HC5 8 5,8,4 2 c8 4 5 2 5 9,l3 9,H7 s6 2,0 0 a4 9,1 6,3,7,0,M6,
-Parsed as 2 command(s) [MT]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
-Parsed as 8 command(s) [MMqstQsV]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
-Parsed as 7 command(s) [MtlZhMs]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
+Parsed as 2 command(s) [MC]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
+Parsed as 8 command(s) [MMCCCCCL]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
+Parsed as 7 command(s) [MCLZLMC]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
Parsed as 1 command(s) [M]: M1,1
Parsed as 1 command(s) [M]: M1,1a4 5,7 3,5 9 8 7 S8 8 6 7 c2 8 4,1,4,1,c3 9,0,5,1,4,m3 2,0,S5,7,2,3,8,s7,4,8 2,T5,6,q0,3 2,6 A5 5 7 7 7,8,2 6,A8 0 3 5 2 3,3 v5 a6,3 7,7,9 4,3,H2
-Parsed as 4 command(s) [MTqv]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
+Parsed as 4 command(s) [MCCL]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
Parsed as 1 command(s) [M]: M1,1A8 5 5,8 4 4 1 s6 9 4 2,v0,l2 L7,1,L0,3,H8 C7,9 8 4,0 t5,2,H9,zH
Parsed as 1 command(s) [M]: M1,1A3,6,9,7,2,7 7,c1 1 1,0 7,7,l1 6 zH0,Zs0 5 0 0 zL8 4 7,zA8,8 5,9 2,6 4,l2 2,L9 4,V
-Parsed as 4 command(s) [MQss]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
+Parsed as 4 command(s) [MCCC]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
Parsed as 1 command(s) [M]: M1,1a9,2 6 1 2 2 2,za9 0 2 8,2,3,3 s5,8,8 1,HC5 8 5,8,4 2 c8 4 5 2 5 9,l3 9,H7 s6 2,0 0 a4 9,1 6,3,7,0,M6,
-Parsed as 2 command(s) [MT]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
-Parsed as 8 command(s) [MMqstQsV]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
-Parsed as 7 command(s) [MtlZhMs]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
+Parsed as 2 command(s) [MC]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
+Parsed as 8 command(s) [MMCCCCCL]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
+Parsed as 7 command(s) [MCLZLMC]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
Parsed as 1 command(s) [M]: M1,1
Parsed as 1 command(s) [M]: M1,1a4 5,7 3,5 9 8 7 S8 8 6 7 c2 8 4,1,4,1,c3 9,0,5,1,4,m3 2,0,S5,7,2,3,8,s7,4,8 2,T5,6,q0,3 2,6 A5 5 7 7 7,8,2 6,A8 0 3 5 2 3,3 v5 a6,3 7,7,9 4,3,H2
-Parsed as 4 command(s) [MTqv]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
+Parsed as 4 command(s) [MCCL]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
Parsed as 1 command(s) [M]: M1,1A8 5 5,8 4 4 1 s6 9 4 2,v0,l2 L7,1,L0,3,H8 C7,9 8 4,0 t5,2,H9,zH
Parsed as 1 command(s) [M]: M1,1A3,6,9,7,2,7 7,c1 1 1,0 7,7,l1 6 zH0,Zs0 5 0 0 zL8 4 7,zA8,8 5,9 2,6 4,l2 2,L9 4,V
-Parsed as 4 command(s) [MQss]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
+Parsed as 4 command(s) [MCCC]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
Parsed as 1 command(s) [M]: M1,1a9,2 6 1 2 2 2,za9 0 2 8,2,3,3 s5,8,8 1,HC5 8 5,8,4 2 c8 4 5 2 5 9,l3 9,H7 s6 2,0 0 a4 9,1 6,3,7,0,M6,
-Parsed as 2 command(s) [MT]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
-Parsed as 8 command(s) [MMqstQsV]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
-Parsed as 7 command(s) [MtlZhMs]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
+Parsed as 2 command(s) [MC]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
+Parsed as 8 command(s) [MMCCCCCL]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
+Parsed as 7 command(s) [MCLZLMC]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
Parsed as 1 command(s) [M]: M1,1
Parsed as 1 command(s) [M]: M1,1a4 5,7 3,5 9 8 7 S8 8 6 7 c2 8 4,1,4,1,c3 9,0,5,1,4,m3 2,0,S5,7,2,3,8,s7,4,8 2,T5,6,q0,3 2,6 A5 5 7 7 7,8,2 6,A8 0 3 5 2 3,3 v5 a6,3 7,7,9 4,3,H2
-Parsed as 4 command(s) [MTqv]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
+Parsed as 4 command(s) [MCCL]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
Parsed as 1 command(s) [M]: M1,1A8 5 5,8 4 4 1 s6 9 4 2,v0,l2 L7,1,L0,3,H8 C7,9 8 4,0 t5,2,H9,zH
Parsed as 1 command(s) [M]: M1,1A3,6,9,7,2,7 7,c1 1 1,0 7,7,l1 6 zH0,Zs0 5 0 0 zL8 4 7,zA8,8 5,9 2,6 4,l2 2,L9 4,V
-Parsed as 4 command(s) [MQss]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
+Parsed as 4 command(s) [MCCC]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
Parsed as 1 command(s) [M]: M1,1a9,2 6 1 2 2 2,za9 0 2 8,2,3,3 s5,8,8 1,HC5 8 5,8,4 2 c8 4 5 2 5 9,l3 9,H7 s6 2,0 0 a4 9,1 6,3,7,0,M6,
-Parsed as 2 command(s) [MT]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
-Parsed as 8 command(s) [MMqstQsV]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
-Parsed as 7 command(s) [MtlZhMs]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
+Parsed as 2 command(s) [MC]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
+Parsed as 8 command(s) [MMCCCCCL]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
+Parsed as 7 command(s) [MCLZLMC]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
Parsed as 1 command(s) [M]: M1,1
Parsed as 1 command(s) [M]: M1,1a4 5,7 3,5 9 8 7 S8 8 6 7 c2 8 4,1,4,1,c3 9,0,5,1,4,m3 2,0,S5,7,2,3,8,s7,4,8 2,T5,6,q0,3 2,6 A5 5 7 7 7,8,2 6,A8 0 3 5 2 3,3 v5 a6,3 7,7,9 4,3,H2
-Parsed as 4 command(s) [MTqv]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
+Parsed as 4 command(s) [MCCL]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
Parsed as 1 command(s) [M]: M1,1A8 5 5,8 4 4 1 s6 9 4 2,v0,l2 L7,1,L0,3,H8 C7,9 8 4,0 t5,2,H9,zH
Parsed as 1 command(s) [M]: M1,1A3,6,9,7,2,7 7,c1 1 1,0 7,7,l1 6 zH0,Zs0 5 0 0 zL8 4 7,zA8,8 5,9 2,6 4,l2 2,L9 4,V
-Parsed as 4 command(s) [MQss]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
+Parsed as 4 command(s) [MCCC]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
Parsed as 1 command(s) [M]: M1,1a9,2 6 1 2 2 2,za9 0 2 8,2,3,3 s5,8,8 1,HC5 8 5,8,4 2 c8 4 5 2 5 9,l3 9,H7 s6 2,0 0 a4 9,1 6,3,7,0,M6,
-Parsed as 2 command(s) [MT]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
-Parsed as 8 command(s) [MMqstQsV]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
-Parsed as 7 command(s) [MtlZhMs]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
+Parsed as 2 command(s) [MC]: M1,1T8 5,A2 7 5,7 9 6 5,7,zC8,5,8 1,6 3 v8,zM7,8,q8,6 4 7,c9,6,4,9,2 1 c0 6,9 9,0 7,
+Parsed as 8 command(s) [MMCCCCCL]: M1,1M7 7,q5,1 9 8,s4,9,0 7,t8,0,Q8 8 7,6,s0 8 5,7 V1
+Parsed as 7 command(s) [MCLZLMC]: M1,1t7,1 l1 7,zh0 M3 1,s7,5 2,6 0 a0 0,6,8,5 6 5,m3 3 8 C9 0 2,2,5 3,s6 8 8 5,T4 8,L1 4 q0 1,2,3 l8,0 S8 3 1 3,Vc5 5,3,9,0,9
Parsed as 1 command(s) [M]: M1,1
Parsed as 1 command(s) [M]: M1,1a4 5,7 3,5 9 8 7 S8 8 6 7 c2 8 4,1,4,1,c3 9,0,5,1,4,m3 2,0,S5,7,2,3,8,s7,4,8 2,T5,6,q0,3 2,6 A5 5 7 7 7,8,2 6,A8 0 3 5 2 3,3 v5 a6,3 7,7,9 4,3,H2
-Parsed as 4 command(s) [MTqv]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
+Parsed as 4 command(s) [MCCL]: M1,1T1 1,q0,3 6,5,v0 m5,M6,2 q5,5 1 6,vS1,5 4 5,5,H4,s5 6,7 2,a9 9,8 4,3,1 0,c6,6 3,8,2,9 q5,5 1 4,4,h0 T5 t3,6 s8 5 8 2 zS0 7,7,
Parsed as 1 command(s) [M]: M1,1A8 5 5,8 4 4 1 s6 9 4 2,v0,l2 L7,1,L0,3,H8 C7,9 8 4,0 t5,2,H9,zH
Parsed as 1 command(s) [M]: M1,1A3,6,9,7,2,7 7,c1 1 1,0 7,7,l1 6 zH0,Zs0 5 0 0 zL8 4 7,zA8,8 5,9 2,6 4,l2 2,L9 4,V
-Parsed as 4 command(s) [MQss]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
+Parsed as 4 command(s) [MCCC]: M1,1Q2 9,4 1,s6,3 6,9,s6 0,0,6,1 zc2,1 7 0,1 4,Z2 A3,4 5,4,6,8,2 ZV5 t2 6,v8,t9,1 V5 l9,5 s6,9,2 9,T1 9
Parsed as 1 command(s) [M]: M1,1a9,2 6 1 2 2 2,za9 0 2 8,2,3,3 s5,8,8 1,HC5 8 5,8,4 2 c8 4 5 2 5 9,l3 9,H7 s6 2,0 0 a4 9,1 6,3,7,0,M6,
Could not parse:
Could not parse: M
diff --git a/LayoutTests/svg/dom/path-parser-expected.txt b/LayoutTests/svg/dom/path-parser-expected.txt
index b27305b..8f48efc 100644
--- a/LayoutTests/svg/dom/path-parser-expected.txt
+++ b/LayoutTests/svg/dom/path-parser-expected.txt
@@ -14,41 +14,41 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
PASS parsePath('M1,2') is 'M1,2'
-PASS parsePath('m1,2') is 'm1,2'
-PASS parsePath('M100,200 m3,4') is 'M100,200 m3,4'
+PASS parsePath('m1,2') is 'M1,2'
+PASS parsePath('M100,200 m3,4') is 'M100,200 M103,204'
PASS parsePath('M100,200 L3,4') is 'M100,200 L3,4'
-PASS parsePath('M100,200 l3,4') is 'M100,200 l3,4'
-PASS parsePath('M100,200 H3') is 'M100,200 H3'
-PASS parsePath('M100,200 h3') is 'M100,200 h3'
-PASS parsePath('M100,200 V3') is 'M100,200 V3'
-PASS parsePath('M100,200 v3') is 'M100,200 v3'
+PASS parsePath('M100,200 l3,4') is 'M100,200 L103,204'
+PASS parsePath('M100,200 H3') is 'M100,200 L3,200'
+PASS parsePath('M100,200 h3') is 'M100,200 L103,200'
+PASS parsePath('M100,200 V3') is 'M100,200 L100,3'
+PASS parsePath('M100,200 v3') is 'M100,200 L100,203'
PASS parsePath('M100,200 Z') is 'M100,200 Z'
PASS parsePath('M100,200 z') is 'M100,200 Z'
PASS parsePath('M100,200 C3,4,5,6,7,8') is 'M100,200 C3,4,5,6,7,8'
-PASS parsePath('M100,200 c3,4,5,6,7,8') is 'M100,200 c3,4,5,6,7,8'
-PASS parsePath('M100,200 S3,4,5,6') is 'M100,200 S3,4,5,6'
-PASS parsePath('M100,200 s3,4,5,6') is 'M100,200 s3,4,5,6'
-PASS parsePath('M100,200 Q3,4,5,6') is 'M100,200 Q3,4,5,6'
-PASS parsePath('M100,200 q3,4,5,6') is 'M100,200 q3,4,5,6'
-PASS parsePath('M100,200 T3,4') is 'M100,200 T3,4'
-PASS parsePath('M100,200 t3,4') is 'M100,200 t3,4'
-PASS parsePath('M100,200 A3,4,5,0,0,6,7') is 'M100,200 A3,4,5,0,0,6,7'
-PASS parsePath('M100,200 A3,4,5,1,0,6,7') is 'M100,200 A3,4,5,1,0,6,7'
-PASS parsePath('M100,200 A3,4,5,0,1,6,7') is 'M100,200 A3,4,5,0,1,6,7'
-PASS parsePath('M100,200 A3,4,5,1,1,6,7') is 'M100,200 A3,4,5,1,1,6,7'
-PASS parsePath('M100,200 a3,4,5,0,0,6,7') is 'M100,200 a3,4,5,0,0,6,7'
-PASS parsePath('M100,200 a3,4,5,0,1,6,7') is 'M100,200 a3,4,5,0,1,6,7'
-PASS parsePath('M100,200 a3,4,5,1,0,6,7') is 'M100,200 a3,4,5,1,0,6,7'
-PASS parsePath('M100,200 a3,4,5,1,1,6,7') is 'M100,200 a3,4,5,1,1,6,7'
-PASS parsePath('M100,200 a3,4,5,006,7') is 'M100,200 a3,4,5,0,0,6,7'
-PASS parsePath('M100,200 a3,4,5,016,7') is 'M100,200 a3,4,5,0,1,6,7'
-PASS parsePath('M100,200 a3,4,5,106,7') is 'M100,200 a3,4,5,1,0,6,7'
-PASS parsePath('M100,200 a3,4,5,116,7') is 'M100,200 a3,4,5,1,1,6,7'
+PASS parsePath('M100,200 c3,4,5,6,7,8') is 'M100,200 C103,204,105,206,107,208'
+PASS parsePath('M100,200 S3,4,5,6') is 'M100,200 C100,200,3,4,5,6'
+PASS parsePath('M100,200 s3,4,5,6') is 'M100,200 C100,200,103,204,105,206'
+PASS parsePath('M100,200 Q3,4,5,6') is 'M100,200 C35.3,69.3,3.7,4.7,5,6'
+PASS parsePath('M100,200 q3,4,5,6') is 'M100,200 C102,202.7,103.7,204.7,105,206'
+PASS parsePath('M100,200 T3,4') is 'M100,200 C100,200,67.7,134.7,3,4'
+PASS parsePath('M100,200 t3,4') is 'M100,200 C100,200,101,201.3,103,204'
+PASS parsePath('M100,200 A3,4,5,0,0,6,7') is 'M100,200 C141.5,162.8,154.1,89.5,128.2,36.2 C102.2,-17.1,47.5,-30.2,6,7'
+PASS parsePath('M100,200 A3,4,5,1,0,6,7') is 'M100,200 C141.5,162.8,154.2,89.4,128.2,36.1 C102.2,-17.2,47.5,-30.2,6,7'
+PASS parsePath('M100,200 A3,4,5,0,1,6,7') is 'M100,200 C58.5,237.2,3.8,224.1,-22.2,170.8 C-48.1,117.5,-35.5,44.2,6,7'
+PASS parsePath('M100,200 A3,4,5,1,1,6,7') is 'M100,200 C58.5,237.2,3.8,224.2,-22.2,170.9 C-48.2,117.6,-35.5,44.2,6,7'
+PASS parsePath('M100,200 a3,4,5,0,0,6,7') is 'M100,200 C98.5,202.3,98.6,205.7,100.2,207.7 C101.9,209.6,104.5,209.3,106,207'
+PASS parsePath('M100,200 a3,4,5,0,1,6,7') is 'M100,200 C101.5,197.7,104.1,197.4,105.8,199.3 C107.4,201.3,107.5,204.7,106,207'
+PASS parsePath('M100,200 a3,4,5,1,0,6,7') is 'M100,200 C98.5,202.3,98.6,205.7,100.2,207.7 C101.9,209.6,104.5,209.3,106,207'
+PASS parsePath('M100,200 a3,4,5,1,1,6,7') is 'M100,200 C101.5,197.7,104.1,197.4,105.8,199.3 C107.4,201.3,107.5,204.7,106,207'
+PASS parsePath('M100,200 a3,4,5,006,7') is 'M100,200 C98.5,202.3,98.6,205.7,100.2,207.7 C101.9,209.6,104.5,209.3,106,207'
+PASS parsePath('M100,200 a3,4,5,016,7') is 'M100,200 C101.5,197.7,104.1,197.4,105.8,199.3 C107.4,201.3,107.5,204.7,106,207'
+PASS parsePath('M100,200 a3,4,5,106,7') is 'M100,200 C98.5,202.3,98.6,205.7,100.2,207.7 C101.9,209.6,104.5,209.3,106,207'
+PASS parsePath('M100,200 a3,4,5,116,7') is 'M100,200 C101.5,197.7,104.1,197.4,105.8,199.3 C107.4,201.3,107.5,204.7,106,207'
PASS parsePath('M100,200 a3,4,5,2,1,6,7') is 'M100,200'
PASS parsePath('M100,200 a3,4,5,1,2,6,7') is 'M100,200'
-PASS parsePath('M100,200 a0,4,5,0,0,10,0 a4,0,5,0,0,0,10 a0,0,5,0,0,-10,0 z') is 'M100,200 l10,0 l0,10 l-10,0 Z'
+PASS parsePath('M100,200 a0,4,5,0,0,10,0 a4,0,5,0,0,0,10 a0,0,5,0,0,-10,0 z') is 'M100,200 L110,200 L110,210 L100,210 Z'
PASS parsePath('M1,2,3,4') is 'M1,2 L3,4'
-PASS parsePath('m100,200,3,4') is 'm100,200 l3,4'
+PASS parsePath('m100,200,3,4') is 'M100,200 L103,204'
PASS parsePath('M 100-200') is 'M100,-200'
PASS parsePath('M 0.6.5') is 'M0.6,0.5'
PASS parsePath(' M1,2') is 'M1,2'
diff --git a/LayoutTests/svg/dom/script-tests/path-parser.js b/LayoutTests/svg/dom/script-tests/path-parser.js
index f835d9d..60b6476 100644
--- a/LayoutTests/svg/dom/script-tests/path-parser.js
+++ b/LayoutTests/svg/dom/script-tests/path-parser.js
@@ -4,31 +4,21 @@ var pathElement = document.createElementNS("http://www.w3.org/2000/svg", "path")
var pathProperties = {
"M": [ "x", "y" ],
- "m": [ "x", "y" ],
"L": [ "x", "y" ],
- "l": [ "x", "y" ],
"H": [ "x" ],
- "h": [ "x" ],
"V": [ "y" ],
- "v": [ "y" ],
"Z": [ ],
- "z": [ ],
"C": [ "x1", "y1", "x2", "y2", "x", "y" ],
- "c": [ "x1", "y1", "x2", "y2", "x", "y" ],
"S": [ "x2", "y2", "x", "y" ],
- "s": [ "x2", "y2", "x", "y" ],
"Q": [ "x1", "y1", "x", "y" ],
- "q": [ "x1", "y1", "x", "y" ],
"T": [ "x", "y" ],
- "t": [ "x", "y" ],
"A": [ "r1", "r2", "angle", "largeArcFlag", "sweepFlag", "x", "y" ],
- "a": [ "r1", "r2", "angle", "largeArcFlag", "sweepFlag", "x", "y" ]
};
function printSegment(segment)
{
var letter = segment.pathSegTypeAsLetter;
- var names = pathProperties[letter];
+ var names = pathProperties[letter.toUpperCase()];
if (!names)
return letter + "?";
var string = letter;
@@ -67,45 +57,42 @@ function parsePath(string)
}
shouldBe("parsePath('M1,2')", "'M1,2'");
-shouldBe("parsePath('m1,2')", "'m1,2'");
-shouldBe("parsePath('M100,200 m3,4')", "'M100,200 m3,4'");
+shouldBe("parsePath('m1,2')", "'M1,2'");
+shouldBe("parsePath('M100,200 m3,4')", "'M100,200 M103,204'");
shouldBe("parsePath('M100,200 L3,4')", "'M100,200 L3,4'");
-shouldBe("parsePath('M100,200 l3,4')", "'M100,200 l3,4'");
-shouldBe("parsePath('M100,200 H3')", "'M100,200 H3'");
-shouldBe("parsePath('M100,200 h3')", "'M100,200 h3'");
-shouldBe("parsePath('M100,200 V3')", "'M100,200 V3'");
-shouldBe("parsePath('M100,200 v3')", "'M100,200 v3'");
+shouldBe("parsePath('M100,200 l3,4')", "'M100,200 L103,204'");
+shouldBe("parsePath('M100,200 H3')", "'M100,200 L3,200'");
+shouldBe("parsePath('M100,200 h3')", "'M100,200 L103,200'");
+shouldBe("parsePath('M100,200 V3')", "'M100,200 L100,3'");
+shouldBe("parsePath('M100,200 v3')", "'M100,200 L100,203'");
shouldBe("parsePath('M100,200 Z')", "'M100,200 Z'");
shouldBe("parsePath('M100,200 z')", "'M100,200 Z'");
shouldBe("parsePath('M100,200 C3,4,5,6,7,8')", "'M100,200 C3,4,5,6,7,8'");
-shouldBe("parsePath('M100,200 c3,4,5,6,7,8')", "'M100,200 c3,4,5,6,7,8'");
-shouldBe("parsePath('M100,200 S3,4,5,6')", "'M100,200 S3,4,5,6'");
-shouldBe("parsePath('M100,200 s3,4,5,6')", "'M100,200 s3,4,5,6'");
-shouldBe("parsePath('M100,200 Q3,4,5,6')", "'M100,200 Q3,4,5,6'");
-shouldBe("parsePath('M100,200 q3,4,5,6')", "'M100,200 q3,4,5,6'");
-shouldBe("parsePath('M100,200 T3,4')", "'M100,200 T3,4'");
-shouldBe("parsePath('M100,200 t3,4')", "'M100,200 t3,4'");
-shouldBe("parsePath('M100,200 A3,4,5,0,0,6,7')", "'M100,200 A3,4,5,0,0,6,7'");
-shouldBe("parsePath('M100,200 A3,4,5,1,0,6,7')", "'M100,200 A3,4,5,1,0,6,7'");
-shouldBe("parsePath('M100,200 A3,4,5,0,1,6,7')", "'M100,200 A3,4,5,0,1,6,7'");
-shouldBe("parsePath('M100,200 A3,4,5,1,1,6,7')", "'M100,200 A3,4,5,1,1,6,7'");
-shouldBe("parsePath('M100,200 a3,4,5,0,0,6,7')", "'M100,200 a3,4,5,0,0,6,7'");
-shouldBe("parsePath('M100,200 a3,4,5,0,1,6,7')", "'M100,200 a3,4,5,0,1,6,7'");
-shouldBe("parsePath('M100,200 a3,4,5,1,0,6,7')", "'M100,200 a3,4,5,1,0,6,7'");
-shouldBe("parsePath('M100,200 a3,4,5,1,1,6,7')", "'M100,200 a3,4,5,1,1,6,7'");
-shouldBe("parsePath('M100,200 a3,4,5,006,7')", "'M100,200 a3,4,5,0,0,6,7'");
-shouldBe("parsePath('M100,200 a3,4,5,016,7')", "'M100,200 a3,4,5,0,1,6,7'");
-shouldBe("parsePath('M100,200 a3,4,5,106,7')", "'M100,200 a3,4,5,1,0,6,7'");
-shouldBe("parsePath('M100,200 a3,4,5,116,7')", "'M100,200 a3,4,5,1,1,6,7'");
+shouldBe("parsePath('M100,200 c3,4,5,6,7,8')", "'M100,200 C103,204,105,206,107,208'");
+shouldBe("parsePath('M100,200 S3,4,5,6')", "'M100,200 C100,200,3,4,5,6'");
+shouldBe("parsePath('M100,200 s3,4,5,6')", "'M100,200 C100,200,103,204,105,206'");
+shouldBe("parsePath('M100,200 Q3,4,5,6')", "'M100,200 C35.3,69.3,3.7,4.7,5,6'");
+shouldBe("parsePath('M100,200 q3,4,5,6')", "'M100,200 C102,202.7,103.7,204.7,105,206'");
+shouldBe("parsePath('M100,200 T3,4')", "'M100,200 C100,200,67.7,134.7,3,4'");
+shouldBe("parsePath('M100,200 t3,4')", "'M100,200 C100,200,101,201.3,103,204'");
+shouldBe("parsePath('M100,200 A3,4,5,0,0,6,7')", "'M100,200 C141.5,162.8,154.1,89.5,128.2,36.2 C102.2,-17.1,47.5,-30.2,6,7'");
+shouldBe("parsePath('M100,200 A3,4,5,1,0,6,7')", "'M100,200 C141.5,162.8,154.2,89.4,128.2,36.1 C102.2,-17.2,47.5,-30.2,6,7'");
+shouldBe("parsePath('M100,200 A3,4,5,0,1,6,7')", "'M100,200 C58.5,237.2,3.8,224.1,-22.2,170.8 C-48.1,117.5,-35.5,44.2,6,7'");
+shouldBe("parsePath('M100,200 A3,4,5,1,1,6,7')", "'M100,200 C58.5,237.2,3.8,224.2,-22.2,170.9 C-48.2,117.6,-35.5,44.2,6,7'");
+shouldBe("parsePath('M100,200 a3,4,5,0,0,6,7')", "'M100,200 C98.5,202.3,98.6,205.7,100.2,207.7 C101.9,209.6,104.5,209.3,106,207'");
+shouldBe("parsePath('M100,200 a3,4,5,0,1,6,7')", "'M100,200 C101.5,197.7,104.1,197.4,105.8,199.3 C107.4,201.3,107.5,204.7,106,207'");
+shouldBe("parsePath('M100,200 a3,4,5,1,0,6,7')", "'M100,200 C98.5,202.3,98.6,205.7,100.2,207.7 C101.9,209.6,104.5,209.3,106,207'");
+shouldBe("parsePath('M100,200 a3,4,5,1,1,6,7')", "'M100,200 C101.5,197.7,104.1,197.4,105.8,199.3 C107.4,201.3,107.5,204.7,106,207'");
+shouldBe("parsePath('M100,200 a3,4,5,006,7')", "'M100,200 C98.5,202.3,98.6,205.7,100.2,207.7 C101.9,209.6,104.5,209.3,106,207'");
+shouldBe("parsePath('M100,200 a3,4,5,016,7')", "'M100,200 C101.5,197.7,104.1,197.4,105.8,199.3 C107.4,201.3,107.5,204.7,106,207'");
+shouldBe("parsePath('M100,200 a3,4,5,106,7')", "'M100,200 C98.5,202.3,98.6,205.7,100.2,207.7 C101.9,209.6,104.5,209.3,106,207'");
+shouldBe("parsePath('M100,200 a3,4,5,116,7')", "'M100,200 C101.5,197.7,104.1,197.4,105.8,199.3 C107.4,201.3,107.5,204.7,106,207'");
shouldBe("parsePath('M100,200 a3,4,5,2,1,6,7')", "'M100,200'");
shouldBe("parsePath('M100,200 a3,4,5,1,2,6,7')", "'M100,200'");
-
-// FIXME: This uses 'If rx = 0 or ry = 0 then this arc is treated as a straight line segment (a "lineto") joining the endpoints.'
-// I think the SVG DOM should still show the arc segment, fix that!
-shouldBe("parsePath('M100,200 a0,4,5,0,0,10,0 a4,0,5,0,0,0,10 a0,0,5,0,0,-10,0 z')", "'M100,200 l10,0 l0,10 l-10,0 Z'");
+shouldBe("parsePath('M100,200 a0,4,5,0,0,10,0 a4,0,5,0,0,0,10 a0,0,5,0,0,-10,0 z')", "'M100,200 L110,200 L110,210 L100,210 Z'");
shouldBe("parsePath('M1,2,3,4')", "'M1,2 L3,4'");
-shouldBe("parsePath('m100,200,3,4')", "'m100,200 l3,4'");
+shouldBe("parsePath('m100,200,3,4')", "'M100,200 L103,204'");
shouldBe("parsePath('M 100-200')", "'M100,-200'");
shouldBe("parsePath('M 0.6.5')", "'M0.6,0.5'");
diff --git a/LayoutTests/svg/dom/svglist-exception-on-out-bounds-error-expected.txt b/LayoutTests/svg/dom/svglist-exception-on-out-bounds-error-expected.txt
index dda168c..83af6bb 100644
--- a/LayoutTests/svg/dom/svglist-exception-on-out-bounds-error-expected.txt
+++ b/LayoutTests/svg/dom/svglist-exception-on-out-bounds-error-expected.txt
@@ -3,42 +3,42 @@ Tests that out of bounds accesses of SVGList correctly throw exceptions
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-PASS svgList.getItem(index) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
-PASS svgList.insertItemBefore(null, index) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
-PASS svgList.insertItemBefore(seg, index) is seg
-PASS svgList.replaceItem(seg, index) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
-PASS svgList.replaceItem(null, index) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
-PASS svgList.removeItem(index) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
-PASS svgList.getItem(index) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
-PASS svgList.insertItemBefore(null, index) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
-PASS svgList.insertItemBefore(seg, index) is seg
-PASS svgList.replaceItem(seg, index) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
-PASS svgList.replaceItem(null, index) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
-PASS svgList.removeItem(index) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
-PASS svgList.getItem(index) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
-PASS svgList.insertItemBefore(null, index) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
-PASS svgList.insertItemBefore(seg, index) is seg
-PASS svgList.replaceItem(seg, index) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
-PASS svgList.replaceItem(null, index) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
-PASS svgList.removeItem(index) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
-PASS svgList.getItem(index) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
-PASS svgList.insertItemBefore(null, index) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
-PASS svgList.insertItemBefore(seg, index) is seg
-PASS svgList.replaceItem(seg, index) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
-PASS svgList.replaceItem(null, index) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
-PASS svgList.removeItem(index) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
-PASS svgList.getItem(index) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
-PASS svgList.insertItemBefore(null, index) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
-PASS svgList.insertItemBefore(seg, index) is seg
-PASS svgList.replaceItem(seg, index) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
-PASS svgList.replaceItem(null, index) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
-PASS svgList.removeItem(index) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
-PASS svgList.getItem(index) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
-PASS svgList.insertItemBefore(null, index) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
-PASS svgList.insertItemBefore(seg, index) is seg
-PASS svgList.replaceItem(seg, index) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
-PASS svgList.replaceItem(null, index) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
-PASS svgList.removeItem(index) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
+PASS svgList.getItem(i) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
+PASS svgList.insertItemBefore(null, i) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS svgList.insertItemBefore(seg, i) is seg
+PASS svgList.replaceItem(seg, i) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
+PASS svgList.replaceItem(null, i) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
+PASS svgList.removeItem(i) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
+PASS svgList.getItem(i) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
+PASS svgList.insertItemBefore(null, i) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS svgList.insertItemBefore(seg, i) is seg
+PASS svgList.replaceItem(seg, i) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
+PASS svgList.replaceItem(null, i) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
+PASS svgList.removeItem(i) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
+PASS svgList.getItem(i) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
+PASS svgList.insertItemBefore(null, i) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS svgList.insertItemBefore(seg, i) is seg
+PASS svgList.replaceItem(seg, i) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
+PASS svgList.replaceItem(null, i) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
+PASS svgList.removeItem(i) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
+PASS svgList.getItem(i) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
+PASS svgList.insertItemBefore(null, i) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS svgList.insertItemBefore(seg, i) is seg
+PASS svgList.replaceItem(seg, i) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
+PASS svgList.replaceItem(null, i) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
+PASS svgList.removeItem(i) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
+PASS svgList.getItem(i) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
+PASS svgList.insertItemBefore(null, i) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS svgList.insertItemBefore(seg, i) is seg
+PASS svgList.replaceItem(seg, i) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
+PASS svgList.replaceItem(null, i) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
+PASS svgList.removeItem(i) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
+PASS svgList.getItem(i) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
+PASS svgList.insertItemBefore(null, i) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
+PASS svgList.insertItemBefore(seg, i) is seg
+PASS svgList.replaceItem(seg, i) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
+PASS svgList.replaceItem(null, i) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
+PASS svgList.removeItem(i) threw exception Error: INDEX_SIZE_ERR: DOM Exception 1.
PASS successfullyParsed is true
TEST COMPLETE
diff --git a/LayoutTests/svg/dom/svglist-exception-on-out-bounds-error.html b/LayoutTests/svg/dom/svglist-exception-on-out-bounds-error.html
index f30756a..1a0d571 100644
--- a/LayoutTests/svg/dom/svglist-exception-on-out-bounds-error.html
+++ b/LayoutTests/svg/dom/svglist-exception-on-out-bounds-error.html
@@ -13,15 +13,14 @@
var svgList = path.pathSegList;
var indicesToTest = [-Infinity, NaN, -1, 0, 1, Infinity];
for (var i = 0; i < indicesToTest.length; i++) {
- var index = indicesToTest[i];
- shouldThrow("svgList.getItem(index)");
- shouldThrow("svgList.insertItemBefore(null, index)");
+ shouldThrow("svgList.getItem(i)");
+ shouldThrow("svgList.insertItemBefore(null, i)");
var seg = path.createSVGPathSegClosePath();
- shouldBe("svgList.insertItemBefore(seg, index)", "seg");
+ shouldBe("svgList.insertItemBefore(seg, i)", "seg");
svgList.removeItem(0);
- shouldThrow("svgList.replaceItem(seg, index)");
- shouldThrow("svgList.replaceItem(null, index)");
- shouldThrow("svgList.removeItem(index)");
+ shouldThrow("svgList.replaceItem(seg, i)");
+ shouldThrow("svgList.replaceItem(null, i)");
+ shouldThrow("svgList.removeItem(i)");
}
successfullyParsed = true;
</script>
diff --git a/LayoutTests/svg/dom/svgpath-out-of-bounds-getPathSeg-expected.txt b/LayoutTests/svg/dom/svgpath-out-of-bounds-getPathSeg-expected.txt
index bef59ec..f02ab55 100644
--- a/LayoutTests/svg/dom/svgpath-out-of-bounds-getPathSeg-expected.txt
+++ b/LayoutTests/svg/dom/svgpath-out-of-bounds-getPathSeg-expected.txt
@@ -3,7 +3,7 @@ Tests that an exception is thrown if we try to get a pathSeg for a length out of
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-PASS path.pathSegList.initialize(); threw exception SyntaxError: Not enough arguments.
+PASS path.pathSegList.initialize(); threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
PASS path.getPathSegAtLength(0) is 0
PASS path.insertItemBefore(null, 0) threw exception TypeError: 'undefined' is not a function (evaluating 'path.insertItemBefore(null, 0)').
PASS path.replaceItem(null, 0) threw exception TypeError: 'undefined' is not a function (evaluating 'path.replaceItem(null, 0)').
diff --git a/WebCore/Android.mk b/WebCore/Android.mk
index 23c59b4..cc490ee 100644
--- a/WebCore/Android.mk
+++ b/WebCore/Android.mk
@@ -861,6 +861,7 @@ LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
svg/SVGAnimateElement.cpp \
svg/SVGAnimateMotionElement.cpp \
svg/SVGAnimateTransformElement.cpp \
+ svg/SVGAnimatedPathData.cpp \
svg/SVGAnimationElement.cpp \
svg/SVGCircleElement.cpp \
svg/SVGClipPathElement.cpp \
@@ -939,9 +940,20 @@ LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
svg/SVGPathElement.cpp \
svg/SVGPathParser.cpp \
svg/SVGPathParserFactory.cpp \
+ svg/SVGPathSeg.cpp \
+ svg/SVGPathSegArc.cpp \
+ svg/SVGPathSegClosePath.cpp \
+ svg/SVGPathSegCurvetoCubic.cpp \
+ svg/SVGPathSegCurvetoCubicSmooth.cpp \
+ svg/SVGPathSegCurvetoQuadratic.cpp \
+ svg/SVGPathSegCurvetoQuadraticSmooth.cpp \
+ svg/SVGPathSegLineto.cpp \
+ svg/SVGPathSegLinetoHorizontal.cpp \
+ svg/SVGPathSegLinetoVertical.cpp \
svg/SVGPathSegList.cpp \
svg/SVGPathSegListBuilder.cpp \
svg/SVGPathSegListSource.cpp \
+ svg/SVGPathSegMoveto.cpp \
svg/SVGPathStringBuilder.cpp \
svg/SVGPathStringSource.cpp \
svg/SVGPathTraversalStateBuilder.cpp \
diff --git a/WebCore/CMakeLists.txt b/WebCore/CMakeLists.txt
index a30caf9..08f8809 100644
--- a/WebCore/CMakeLists.txt
+++ b/WebCore/CMakeLists.txt
@@ -99,6 +99,7 @@ SET(WebCore_IDL_INCLUDES
SET(WebCore_IDL_PURE_FILES
svg/ElementTimeControl.idl
+ svg/SVGAnimatedPathData.idl
svg/SVGExternalResourcesRequired.idl
svg/SVGFilterPrimitiveStandardAttributes.idl
svg/SVGFitToViewBox.idl
@@ -1713,6 +1714,7 @@ IF (ENABLE_SVG)
bindings/js/JSSVGElementInstanceCustom.cpp
bindings/js/JSSVGLengthCustom.cpp
bindings/js/JSSVGPathSegCustom.cpp
+ bindings/js/JSSVGPathSegListCustom.cpp
css/SVGCSSComputedStyleDeclaration.cpp
css/SVGCSSParser.cpp
css/SVGCSSStyleSelector.cpp
@@ -1776,6 +1778,7 @@ IF (ENABLE_SVG)
svg/SVGAnimateElement.cpp
svg/SVGAnimateMotionElement.cpp
svg/SVGAnimateTransformElement.cpp
+ svg/SVGAnimatedPathData.cpp
svg/SVGAnimationElement.cpp
svg/SVGCircleElement.cpp
svg/SVGClipPathElement.cpp
@@ -1855,9 +1858,20 @@ IF (ENABLE_SVG)
svg/SVGPathElement.cpp
svg/SVGPathParser.cpp
svg/SVGPathParserFactory.cpp
+ svg/SVGPathSeg.cpp
+ svg/SVGPathSegArc.cpp
+ svg/SVGPathSegClosePath.cpp
+ svg/SVGPathSegCurvetoCubic.cpp
+ svg/SVGPathSegCurvetoCubicSmooth.cpp
+ svg/SVGPathSegCurvetoQuadratic.cpp
+ svg/SVGPathSegCurvetoQuadraticSmooth.cpp
+ svg/SVGPathSegLineto.cpp
+ svg/SVGPathSegLinetoHorizontal.cpp
+ svg/SVGPathSegLinetoVertical.cpp
svg/SVGPathSegList.cpp
svg/SVGPathSegListBuilder.cpp
svg/SVGPathSegListSource.cpp
+ svg/SVGPathSegMoveto.cpp
svg/SVGPathStringBuilder.cpp
svg/SVGPathStringSource.cpp
svg/SVGPathTraversalStateBuilder.cpp
@@ -1907,7 +1921,6 @@ IF (ENABLE_SVG)
svg/graphics/filters/SVGFEImage.cpp
svg/graphics/filters/SVGFilter.cpp
svg/graphics/filters/SVGFilterBuilder.cpp
- svg/properties/SVGPathSegListPropertyTearOff.cpp
)
ENDIF()
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 55c591b..308e9a4 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,5 +1,303 @@
2010-11-18 Sheriff Bot <webkit.review.bot at gmail.com>
+ Unreviewed, rolling out r72288.
+ http://trac.webkit.org/changeset/72288
+ https://bugs.webkit.org/show_bug.cgi?id=49730
+
+ 'krit attempted to do that, but revert got stuck' (Requested
+ by antonm on #webkit).
+
+ * Android.mk:
+ * CMakeLists.txt:
+ * DerivedSources.make:
+ * GNUmakefile.am:
+ * WebCore.gyp/WebCore.gyp:
+ * WebCore.gypi:
+ * WebCore.order:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/js/JSBindingsAllInOne.cpp:
+ * bindings/js/JSDOMBinding.cpp:
+ (WebCore::setDOMException):
+ * bindings/js/JSDOMBinding.h:
+ (WebCore::createDOMObjectWrapper):
+ (WebCore::getDOMObjectWrapper):
+ * bindings/js/JSSVGPathSegCustom.cpp:
+ (WebCore::toJS):
+ * bindings/js/JSSVGPathSegListCustom.cpp: Added.
+ (WebCore::JSSVGPathSegList::clear):
+ (WebCore::JSSVGPathSegList::initialize):
+ (WebCore::JSSVGPathSegList::getItem):
+ (WebCore::JSSVGPathSegList::insertItemBefore):
+ (WebCore::JSSVGPathSegList::replaceItem):
+ (WebCore::JSSVGPathSegList::removeItem):
+ (WebCore::JSSVGPathSegList::appendItem):
+ * bindings/scripts/CodeGenerator.pm:
+ * bindings/scripts/CodeGeneratorJS.pm:
+ * bindings/scripts/CodeGeneratorObjC.pm:
+ * bindings/scripts/CodeGeneratorV8.pm:
+ * rendering/SVGRenderTreeAsText.cpp:
+ (WebCore::operator<<):
+ * svg/SVGAllInOne.cpp:
+ * svg/SVGAnimatedPathData.cpp: Added.
+ * svg/SVGAnimatedPathData.h: Copied from WebCore/svg/SVGPathSegClosePath.h.
+ (WebCore::SVGAnimatedPathData::~SVGAnimatedPathData):
+ * svg/SVGAnimatedPathData.idl: Copied from WebCore/svg/SVGPathSegCurvetoQuadraticAbs.idl.
+ * svg/SVGPathElement.cpp:
+ (WebCore::SVGPathElement::SVGPathElement):
+ (WebCore::SVGPathElement::getPathSegAtLength):
+ (WebCore::SVGPathElement::createSVGPathSegClosePath):
+ (WebCore::SVGPathElement::createSVGPathSegMovetoAbs):
+ (WebCore::SVGPathElement::createSVGPathSegMovetoRel):
+ (WebCore::SVGPathElement::createSVGPathSegLinetoAbs):
+ (WebCore::SVGPathElement::createSVGPathSegLinetoRel):
+ (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicAbs):
+ (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicRel):
+ (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticAbs):
+ (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticRel):
+ (WebCore::SVGPathElement::createSVGPathSegArcAbs):
+ (WebCore::SVGPathElement::createSVGPathSegArcRel):
+ (WebCore::SVGPathElement::createSVGPathSegLinetoHorizontalAbs):
+ (WebCore::SVGPathElement::createSVGPathSegLinetoHorizontalRel):
+ (WebCore::SVGPathElement::createSVGPathSegLinetoVerticalAbs):
+ (WebCore::SVGPathElement::createSVGPathSegLinetoVerticalRel):
+ (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicSmoothAbs):
+ (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicSmoothRel):
+ (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothAbs):
+ (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothRel):
+ (WebCore::SVGPathElement::parseMappedAttribute):
+ (WebCore::SVGPathElement::svgAttributeChanged):
+ (WebCore::SVGPathElement::synchronizeProperty):
+ (WebCore::SVGPathElement::pathSegList):
+ (WebCore::SVGPathElement::normalizedPathSegList):
+ (WebCore::SVGPathElement::animatedPathSegList):
+ (WebCore::SVGPathElement::animatedNormalizedPathSegList):
+ (WebCore::SVGPathElement::toPathData):
+ * svg/SVGPathElement.h:
+ (WebCore::SVGPathElement::isValid):
+ (WebCore::SVGPathElement::supportsMarkers):
+ * svg/SVGPathElement.idl:
+ * svg/SVGPathParserFactory.cpp:
+ (WebCore::globalSVGPathSegListBuilder):
+ (WebCore::SVGPathParserFactory::buildPathFromByteStream):
+ (WebCore::SVGPathParserFactory::buildPathFromSVGPathSegList):
+ (WebCore::SVGPathParserFactory::buildSVGPathSegListFromString):
+ (WebCore::SVGPathParserFactory::buildSVGPathSegListFromByteStream):
+ (WebCore::SVGPathParserFactory::buildStringFromSVGPathSegList):
+ (WebCore::SVGPathParserFactory::buildSVGPathByteStreamFromString):
+ (WebCore::SVGPathParserFactory::buildAnimatedSVGPathByteStream):
+ (WebCore::SVGPathParserFactory::getSVGPathSegAtLengthFromSVGPathSegList):
+ * svg/SVGPathParserFactory.h:
+ * svg/SVGPathSeg.cpp: Copied from WebCore/svg/SVGPathSegLinetoHorizontalRel.idl.
+ (WebCore::SVGPathSeg::associatedAttributeName):
+ * svg/SVGPathSeg.h:
+ (WebCore::SVGPathSegSingleCoord::setX):
+ (WebCore::SVGPathSegSingleCoord::x):
+ (WebCore::SVGPathSegSingleCoord::setY):
+ (WebCore::SVGPathSegSingleCoord::y):
+ (WebCore::SVGPathSegSingleCoord::SVGPathSegSingleCoord):
+ * svg/SVGPathSeg.idl:
+ * svg/SVGPathSegArc.cpp: Copied from WebCore/svg/SVGPathSegClosePath.h.
+ (WebCore::SVGPathSegArcAbs::SVGPathSegArcAbs):
+ (WebCore::SVGPathSegArcRel::SVGPathSegArcRel):
+ * svg/SVGPathSegArc.h:
+ (WebCore::SVGPathSegArc::SVGPathSegArc):
+ (WebCore::SVGPathSegArc::setX):
+ (WebCore::SVGPathSegArc::x):
+ (WebCore::SVGPathSegArc::setY):
+ (WebCore::SVGPathSegArc::y):
+ (WebCore::SVGPathSegArc::setR1):
+ (WebCore::SVGPathSegArc::r1):
+ (WebCore::SVGPathSegArc::setR2):
+ (WebCore::SVGPathSegArc::r2):
+ (WebCore::SVGPathSegArc::setAngle):
+ (WebCore::SVGPathSegArc::angle):
+ (WebCore::SVGPathSegArc::setLargeArcFlag):
+ (WebCore::SVGPathSegArc::largeArcFlag):
+ (WebCore::SVGPathSegArc::setSweepFlag):
+ (WebCore::SVGPathSegArc::sweepFlag):
+ (WebCore::SVGPathSegArcAbs::create):
+ (WebCore::SVGPathSegArcAbs::pathSegType):
+ (WebCore::SVGPathSegArcAbs::pathSegTypeAsLetter):
+ (WebCore::SVGPathSegArcRel::create):
+ (WebCore::SVGPathSegArcRel::pathSegType):
+ (WebCore::SVGPathSegArcRel::pathSegTypeAsLetter):
+ * svg/SVGPathSegArcAbs.idl:
+ * svg/SVGPathSegArcRel.idl:
+ * svg/SVGPathSegClosePath.cpp: Added.
+ * svg/SVGPathSegClosePath.h:
+ (WebCore::SVGPathSegClosePath::create):
+ (WebCore::SVGPathSegClosePath::SVGPathSegClosePath):
+ * svg/SVGPathSegCurvetoCubic.cpp: Copied from WebCore/svg/SVGPathSegClosePath.h.
+ (WebCore::SVGPathSegCurvetoCubicAbs::SVGPathSegCurvetoCubicAbs):
+ (WebCore::SVGPathSegCurvetoCubicRel::SVGPathSegCurvetoCubicRel):
+ * svg/SVGPathSegCurvetoCubic.h:
+ (WebCore::SVGPathSegCurvetoCubic::SVGPathSegCurvetoCubic):
+ (WebCore::SVGPathSegCurvetoCubic::setX):
+ (WebCore::SVGPathSegCurvetoCubic::x):
+ (WebCore::SVGPathSegCurvetoCubic::setY):
+ (WebCore::SVGPathSegCurvetoCubic::y):
+ (WebCore::SVGPathSegCurvetoCubic::setX1):
+ (WebCore::SVGPathSegCurvetoCubic::x1):
+ (WebCore::SVGPathSegCurvetoCubic::setY1):
+ (WebCore::SVGPathSegCurvetoCubic::y1):
+ (WebCore::SVGPathSegCurvetoCubic::setX2):
+ (WebCore::SVGPathSegCurvetoCubic::x2):
+ (WebCore::SVGPathSegCurvetoCubic::setY2):
+ (WebCore::SVGPathSegCurvetoCubic::y2):
+ (WebCore::SVGPathSegCurvetoCubicAbs::create):
+ (WebCore::SVGPathSegCurvetoCubicAbs::pathSegType):
+ (WebCore::SVGPathSegCurvetoCubicAbs::pathSegTypeAsLetter):
+ (WebCore::SVGPathSegCurvetoCubicRel::create):
+ (WebCore::SVGPathSegCurvetoCubicRel::pathSegType):
+ (WebCore::SVGPathSegCurvetoCubicRel::pathSegTypeAsLetter):
+ * svg/SVGPathSegCurvetoCubicAbs.idl:
+ * svg/SVGPathSegCurvetoCubicRel.idl:
+ * svg/SVGPathSegCurvetoCubicSmooth.cpp: Copied from WebCore/svg/SVGPathSegClosePath.h.
+ (WebCore::SVGPathSegCurvetoCubicSmoothAbs::SVGPathSegCurvetoCubicSmoothAbs):
+ (WebCore::SVGPathSegCurvetoCubicSmoothRel::SVGPathSegCurvetoCubicSmoothRel):
+ * svg/SVGPathSegCurvetoCubicSmooth.h:
+ (WebCore::SVGPathSegCurvetoCubicSmooth::SVGPathSegCurvetoCubicSmooth):
+ (WebCore::SVGPathSegCurvetoCubicSmooth::setX):
+ (WebCore::SVGPathSegCurvetoCubicSmooth::x):
+ (WebCore::SVGPathSegCurvetoCubicSmooth::setY):
+ (WebCore::SVGPathSegCurvetoCubicSmooth::y):
+ (WebCore::SVGPathSegCurvetoCubicSmooth::setX2):
+ (WebCore::SVGPathSegCurvetoCubicSmooth::x2):
+ (WebCore::SVGPathSegCurvetoCubicSmooth::setY2):
+ (WebCore::SVGPathSegCurvetoCubicSmooth::y2):
+ (WebCore::SVGPathSegCurvetoCubicSmoothAbs::create):
+ (WebCore::SVGPathSegCurvetoCubicSmoothAbs::pathSegType):
+ (WebCore::SVGPathSegCurvetoCubicSmoothAbs::pathSegTypeAsLetter):
+ (WebCore::SVGPathSegCurvetoCubicSmoothRel::create):
+ (WebCore::SVGPathSegCurvetoCubicSmoothRel::pathSegType):
+ (WebCore::SVGPathSegCurvetoCubicSmoothRel::pathSegTypeAsLetter):
+ * svg/SVGPathSegCurvetoCubicSmoothAbs.idl:
+ * svg/SVGPathSegCurvetoCubicSmoothRel.idl:
+ * svg/SVGPathSegCurvetoQuadratic.cpp: Copied from WebCore/svg/SVGPathSegClosePath.h.
+ (WebCore::SVGPathSegCurvetoQuadraticAbs::SVGPathSegCurvetoQuadraticAbs):
+ (WebCore::SVGPathSegCurvetoQuadraticRel::SVGPathSegCurvetoQuadraticRel):
+ * svg/SVGPathSegCurvetoQuadratic.h:
+ (WebCore::SVGPathSegCurvetoQuadratic::SVGPathSegCurvetoQuadratic):
+ (WebCore::SVGPathSegCurvetoQuadratic::setX):
+ (WebCore::SVGPathSegCurvetoQuadratic::x):
+ (WebCore::SVGPathSegCurvetoQuadratic::setY):
+ (WebCore::SVGPathSegCurvetoQuadratic::y):
+ (WebCore::SVGPathSegCurvetoQuadratic::setX1):
+ (WebCore::SVGPathSegCurvetoQuadratic::x1):
+ (WebCore::SVGPathSegCurvetoQuadratic::setY1):
+ (WebCore::SVGPathSegCurvetoQuadratic::y1):
+ (WebCore::SVGPathSegCurvetoQuadraticAbs::create):
+ (WebCore::SVGPathSegCurvetoQuadraticAbs::pathSegType):
+ (WebCore::SVGPathSegCurvetoQuadraticAbs::pathSegTypeAsLetter):
+ (WebCore::SVGPathSegCurvetoQuadraticRel::create):
+ (WebCore::SVGPathSegCurvetoQuadraticRel::pathSegType):
+ (WebCore::SVGPathSegCurvetoQuadraticRel::pathSegTypeAsLetter):
+ * svg/SVGPathSegCurvetoQuadraticAbs.idl:
+ * svg/SVGPathSegCurvetoQuadraticRel.idl:
+ * svg/SVGPathSegCurvetoQuadraticSmooth.cpp: Copied from WebCore/svg/SVGPathSegClosePath.h.
+ (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::SVGPathSegCurvetoQuadraticSmoothAbs):
+ (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::SVGPathSegCurvetoQuadraticSmoothRel):
+ * svg/SVGPathSegCurvetoQuadraticSmooth.h:
+ (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::create):
+ (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::pathSegType):
+ (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::pathSegTypeAsLetter):
+ (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::create):
+ (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::pathSegType):
+ (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::pathSegTypeAsLetter):
+ * svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl:
+ * svg/SVGPathSegCurvetoQuadraticSmoothRel.idl:
+ * svg/SVGPathSegLineto.cpp: Copied from WebCore/svg/SVGPathSegClosePath.h.
+ (WebCore::SVGPathSegLinetoAbs::SVGPathSegLinetoAbs):
+ (WebCore::SVGPathSegLinetoRel::SVGPathSegLinetoRel):
+ * svg/SVGPathSegLineto.h:
+ (WebCore::SVGPathSegLinetoAbs::create):
+ (WebCore::SVGPathSegLinetoAbs::pathSegType):
+ (WebCore::SVGPathSegLinetoAbs::pathSegTypeAsLetter):
+ (WebCore::SVGPathSegLinetoRel::create):
+ (WebCore::SVGPathSegLinetoRel::pathSegType):
+ (WebCore::SVGPathSegLinetoRel::pathSegTypeAsLetter):
+ * svg/SVGPathSegLinetoAbs.idl:
+ * svg/SVGPathSegLinetoHorizontal.cpp: Copied from WebCore/svg/SVGPathSegClosePath.h.
+ (WebCore::SVGPathSegLinetoHorizontalAbs::SVGPathSegLinetoHorizontalAbs):
+ (WebCore::SVGPathSegLinetoHorizontalRel::SVGPathSegLinetoHorizontalRel):
+ * svg/SVGPathSegLinetoHorizontal.h:
+ (WebCore::SVGPathSegLinetoHorizontal::SVGPathSegLinetoHorizontal):
+ (WebCore::SVGPathSegLinetoHorizontal::setX):
+ (WebCore::SVGPathSegLinetoHorizontal::x):
+ (WebCore::SVGPathSegLinetoHorizontalAbs::create):
+ (WebCore::SVGPathSegLinetoHorizontalAbs::pathSegType):
+ (WebCore::SVGPathSegLinetoHorizontalAbs::pathSegTypeAsLetter):
+ (WebCore::SVGPathSegLinetoHorizontalRel::create):
+ (WebCore::SVGPathSegLinetoHorizontalRel::pathSegType):
+ (WebCore::SVGPathSegLinetoHorizontalRel::pathSegTypeAsLetter):
+ * svg/SVGPathSegLinetoHorizontalAbs.idl:
+ * svg/SVGPathSegLinetoHorizontalRel.idl:
+ * svg/SVGPathSegLinetoRel.idl:
+ * svg/SVGPathSegLinetoVertical.cpp: Copied from WebCore/svg/SVGPathSegClosePath.h.
+ (WebCore::SVGPathSegLinetoVerticalAbs::SVGPathSegLinetoVerticalAbs):
+ (WebCore::SVGPathSegLinetoVerticalRel::SVGPathSegLinetoVerticalRel):
+ * svg/SVGPathSegLinetoVertical.h:
+ (WebCore::SVGPathSegLinetoVertical::SVGPathSegLinetoVertical):
+ (WebCore::SVGPathSegLinetoVertical::setY):
+ (WebCore::SVGPathSegLinetoVertical::y):
+ (WebCore::SVGPathSegLinetoVerticalAbs::create):
+ (WebCore::SVGPathSegLinetoVerticalAbs::pathSegType):
+ (WebCore::SVGPathSegLinetoVerticalAbs::pathSegTypeAsLetter):
+ (WebCore::SVGPathSegLinetoVerticalRel::create):
+ (WebCore::SVGPathSegLinetoVerticalRel::pathSegType):
+ (WebCore::SVGPathSegLinetoVerticalRel::pathSegTypeAsLetter):
+ * svg/SVGPathSegLinetoVerticalAbs.idl:
+ * svg/SVGPathSegLinetoVerticalRel.idl:
+ * svg/SVGPathSegList.cpp:
+ (WebCore::SVGPathSegList::SVGPathSegList):
+ * svg/SVGPathSegList.h:
+ (WebCore::SVGPathSegList::create):
+ * svg/SVGPathSegList.idl:
+ * svg/SVGPathSegListBuilder.cpp:
+ (WebCore::SVGPathSegListBuilder::SVGPathSegListBuilder):
+ (WebCore::SVGPathSegListBuilder::moveTo):
+ (WebCore::SVGPathSegListBuilder::lineTo):
+ (WebCore::SVGPathSegListBuilder::lineToHorizontal):
+ (WebCore::SVGPathSegListBuilder::lineToVertical):
+ (WebCore::SVGPathSegListBuilder::curveToCubic):
+ (WebCore::SVGPathSegListBuilder::curveToCubicSmooth):
+ (WebCore::SVGPathSegListBuilder::curveToQuadratic):
+ (WebCore::SVGPathSegListBuilder::curveToQuadraticSmooth):
+ (WebCore::SVGPathSegListBuilder::arcTo):
+ (WebCore::SVGPathSegListBuilder::closePath):
+ * svg/SVGPathSegListBuilder.h:
+ (WebCore::SVGPathSegListBuilder::setCurrentSVGPathSegList):
+ (WebCore::SVGPathSegListBuilder::cleanup):
+ * svg/SVGPathSegListSource.cpp:
+ (WebCore::SVGPathSegListSource::SVGPathSegListSource):
+ (WebCore::SVGPathSegListSource::parseSVGSegmentType):
+ (WebCore::SVGPathSegListSource::nextCommand):
+ (WebCore::SVGPathSegListSource::parseMoveToSegment):
+ (WebCore::SVGPathSegListSource::parseLineToSegment):
+ (WebCore::SVGPathSegListSource::parseCurveToQuadraticSmoothSegment):
+ * svg/SVGPathSegListSource.h:
+ (WebCore::SVGPathSegListSource::create):
+ * svg/SVGPathSegMoveto.cpp: Copied from WebCore/svg/SVGPathSegClosePath.h.
+ (WebCore::SVGPathSegMovetoAbs::SVGPathSegMovetoAbs):
+ (WebCore::SVGPathSegMovetoRel::SVGPathSegMovetoRel):
+ * svg/SVGPathSegMoveto.h:
+ (WebCore::SVGPathSegMovetoAbs::create):
+ (WebCore::SVGPathSegMovetoAbs::pathSegType):
+ (WebCore::SVGPathSegMovetoAbs::pathSegTypeAsLetter):
+ (WebCore::SVGPathSegMovetoRel::create):
+ (WebCore::SVGPathSegMovetoRel::pathSegType):
+ (WebCore::SVGPathSegMovetoRel::pathSegTypeAsLetter):
+ * svg/SVGPathSegMovetoAbs.idl:
+ * svg/SVGPathSegMovetoRel.idl:
+ * svg/SVGPathSegWithContext.h: Removed.
+ * svg/properties/SVGAnimatedPathSegListPropertyTearOff.h: Removed.
+ * svg/properties/SVGPathSegListPropertyTearOff.cpp: Removed.
+ * svg/properties/SVGPathSegListPropertyTearOff.h: Removed.
+
+2010-11-18 Sheriff Bot <webkit.review.bot at gmail.com>
+
Unreviewed, rolling out r72292.
http://trac.webkit.org/changeset/72292
https://bugs.webkit.org/show_bug.cgi?id=49732
diff --git a/WebCore/DerivedSources.make b/WebCore/DerivedSources.make
index 793e155..1b6a266 100644
--- a/WebCore/DerivedSources.make
+++ b/WebCore/DerivedSources.make
@@ -329,6 +329,7 @@ DOM_CLASSES = \
SVGAnimatedLengthList \
SVGAnimatedNumber \
SVGAnimatedNumberList \
+ SVGAnimatedPathData \
SVGAnimatedPreserveAspectRatio \
SVGAnimatedRect \
SVGAnimatedString \
diff --git a/WebCore/GNUmakefile.am b/WebCore/GNUmakefile.am
index 5dcbfc2..5dcc468 100644
--- a/WebCore/GNUmakefile.am
+++ b/WebCore/GNUmakefile.am
@@ -795,6 +795,7 @@ webcore_sources += \
WebCore/bindings/js/JSSVGElementInstanceCustom.cpp \
WebCore/bindings/js/JSSVGLengthCustom.cpp \
WebCore/bindings/js/JSSVGPathSegCustom.cpp \
+ WebCore/bindings/js/JSSVGPathSegListCustom.cpp \
WebCore/bindings/js/JSSVGPODListCustom.h \
WebCore/bindings/js/JSSVGPODTypeWrapper.h \
WebCore/bindings/js/JSTextCustom.cpp \
@@ -3046,7 +3047,6 @@ webcore_sources += \
WebCore/svg/LinearGradientAttributes.h \
WebCore/svg/PatternAttributes.h \
WebCore/svg/properties/SVGAnimatedListPropertyTearOff.h \
- WebCore/svg/properties/SVGAnimatedPathSegListPropertyTearOff.h \
WebCore/svg/properties/SVGAnimatedProperty.h \
WebCore/svg/properties/SVGAnimatedPropertyDescription.h \
WebCore/svg/properties/SVGAnimatedPropertyMacros.h \
@@ -3056,8 +3056,6 @@ webcore_sources += \
WebCore/svg/properties/SVGAnimatedTransformListPropertyTearOff.h \
WebCore/svg/properties/SVGListProperty.h \
WebCore/svg/properties/SVGListPropertyTearOff.h \
- WebCore/svg/properties/SVGPathSegListPropertyTearOff.cpp \
- WebCore/svg/properties/SVGPathSegListPropertyTearOff.h \
WebCore/svg/properties/SVGProperty.h \
WebCore/svg/properties/SVGPropertyTearOff.h \
WebCore/svg/properties/SVGPropertyTraits.h \
@@ -3082,6 +3080,8 @@ webcore_sources += \
WebCore/svg/SVGAnimatedLengthList.h \
WebCore/svg/SVGAnimatedNumber.h \
WebCore/svg/SVGAnimatedNumberList.h \
+ WebCore/svg/SVGAnimatedPathData.cpp \
+ WebCore/svg/SVGAnimatedPathData.h \
WebCore/svg/SVGAnimatedPreserveAspectRatio.h \
WebCore/svg/SVGAnimatedRect.h \
WebCore/svg/SVGAnimatedString.h \
@@ -3257,15 +3257,25 @@ webcore_sources += \
WebCore/svg/SVGPathParserFactory.cpp \
WebCore/svg/SVGPathParserFactory.h \
WebCore/svg/SVGPathParser.h \
+ WebCore/svg/SVGPathSegArc.cpp \
WebCore/svg/SVGPathSegArc.h \
+ WebCore/svg/SVGPathSegClosePath.cpp \
WebCore/svg/SVGPathSegClosePath.h \
+ WebCore/svg/SVGPathSeg.cpp \
+ WebCore/svg/SVGPathSegCurvetoCubic.cpp \
WebCore/svg/SVGPathSegCurvetoCubic.h \
+ WebCore/svg/SVGPathSegCurvetoCubicSmooth.cpp \
WebCore/svg/SVGPathSegCurvetoCubicSmooth.h \
+ WebCore/svg/SVGPathSegCurvetoQuadratic.cpp \
WebCore/svg/SVGPathSegCurvetoQuadratic.h \
+ WebCore/svg/SVGPathSegCurvetoQuadraticSmooth.cpp \
WebCore/svg/SVGPathSegCurvetoQuadraticSmooth.h \
WebCore/svg/SVGPathSeg.h \
+ WebCore/svg/SVGPathSegLineto.cpp \
WebCore/svg/SVGPathSegLineto.h \
+ WebCore/svg/SVGPathSegLinetoHorizontal.cpp \
WebCore/svg/SVGPathSegLinetoHorizontal.h \
+ WebCore/svg/SVGPathSegLinetoVertical.cpp \
WebCore/svg/SVGPathSegLinetoVertical.h \
WebCore/svg/SVGPathSegListBuilder.cpp \
WebCore/svg/SVGPathSegListBuilder.h \
@@ -3273,8 +3283,8 @@ webcore_sources += \
WebCore/svg/SVGPathSegList.h \
WebCore/svg/SVGPathSegListSource.cpp \
WebCore/svg/SVGPathSegListSource.h \
+ WebCore/svg/SVGPathSegMoveto.cpp \
WebCore/svg/SVGPathSegMoveto.h \
- WebCore/svg/SVGPathSegWithContext.h \
WebCore/svg/SVGPathSource.h \
WebCore/svg/SVGPathStringBuilder.cpp \
WebCore/svg/SVGPathStringBuilder.h \
@@ -4197,6 +4207,7 @@ webcore_built_sources += \
DerivedSources/WebCore/JSSVGAnimatedNumber.h \
DerivedSources/WebCore/JSSVGAnimatedNumberList.cpp \
DerivedSources/WebCore/JSSVGAnimatedNumberList.h \
+ DerivedSources/WebCore/JSSVGAnimatedPathData.h \
DerivedSources/WebCore/JSSVGAnimatedPreserveAspectRatio.cpp \
DerivedSources/WebCore/JSSVGAnimatedPreserveAspectRatio.h \
DerivedSources/WebCore/JSSVGAnimatedRect.cpp \
diff --git a/WebCore/WebCore.gyp/WebCore.gyp b/WebCore/WebCore.gyp/WebCore.gyp
index e8f343a..4792a2a 100644
--- a/WebCore/WebCore.gyp/WebCore.gyp
+++ b/WebCore/WebCore.gyp/WebCore.gyp
@@ -197,8 +197,10 @@
# Bindings with custom Objective-C implementations.
'../page/AbstractView.idl',
- # These bindings are excluded, as they're only used through inheritance and don't define constants that would need a constructor.
+ # FIXME: I don't know why all of these are excluded.
+ # Extra SVG bindings to exclude.
'../svg/ElementTimeControl.idl',
+ '../svg/SVGAnimatedPathData.idl',
'../svg/SVGExternalResourcesRequired.idl',
'../svg/SVGFilterPrimitiveStandardAttributes.idl',
'../svg/SVGFitToViewBox.idl',
diff --git a/WebCore/WebCore.gypi b/WebCore/WebCore.gypi
index dbf8fc4..4dfefc0 100644
--- a/WebCore/WebCore.gypi
+++ b/WebCore/WebCore.gypi
@@ -324,6 +324,7 @@
'svg/SVGAnimatedLengthList.idl',
'svg/SVGAnimatedNumber.idl',
'svg/SVGAnimatedNumberList.idl',
+ 'svg/SVGAnimatedPathData.idl',
'svg/SVGAnimatedPreserveAspectRatio.idl',
'svg/SVGAnimatedRect.idl',
'svg/SVGAnimatedString.idl',
@@ -3963,7 +3964,6 @@
'svg/graphics/SVGImage.h',
'svg/properties/SVGAnimatedPropertySynchronizer.h',
'svg/properties/SVGAnimatedListPropertyTearOff.h',
- 'svg/properties/SVGAnimatedPathSegListPropertyTearOff.h',
'svg/properties/SVGAnimatedProperty.h',
'svg/properties/SVGAnimatedPropertyDescription.h',
'svg/properties/SVGAnimatedPropertyMacros.h',
@@ -3973,8 +3973,6 @@
'svg/properties/SVGAnimatedTransformListPropertyTearOff.h',
'svg/properties/SVGListProperty.h',
'svg/properties/SVGListPropertyTearOff.h',
- 'svg/properties/SVGPathSegListPropertyTearOff.cpp',
- 'svg/properties/SVGPathSegListPropertyTearOff.h',
'svg/properties/SVGProperty.h',
'svg/properties/SVGPropertyTearOff.h',
'svg/properties/SVGPropertyTraits.h',
@@ -4015,6 +4013,8 @@
'svg/SVGAnimatedLengthList.h',
'svg/SVGAnimatedNumber.h',
'svg/SVGAnimatedNumberList.h',
+ 'svg/SVGAnimatedPathData.cpp',
+ 'svg/SVGAnimatedPathData.h',
'svg/SVGAnimatedPreserveAspectRatio.h',
'svg/SVGAnimatedRect.h',
'svg/SVGAnimatedString.h',
@@ -4184,15 +4184,25 @@
'svg/SVGPathParser.h',
'svg/SVGPathParserFactory.cpp',
'svg/SVGPathParserFactory.h',
+ 'svg/SVGPathSeg.cpp',
'svg/SVGPathSeg.h',
+ 'svg/SVGPathSegArc.cpp',
'svg/SVGPathSegArc.h',
+ 'svg/SVGPathSegClosePath.cpp',
'svg/SVGPathSegClosePath.h',
+ 'svg/SVGPathSegCurvetoCubic.cpp',
'svg/SVGPathSegCurvetoCubic.h',
+ 'svg/SVGPathSegCurvetoCubicSmooth.cpp',
'svg/SVGPathSegCurvetoCubicSmooth.h',
+ 'svg/SVGPathSegCurvetoQuadratic.cpp',
'svg/SVGPathSegCurvetoQuadratic.h',
+ 'svg/SVGPathSegCurvetoQuadraticSmooth.cpp',
'svg/SVGPathSegCurvetoQuadraticSmooth.h',
+ 'svg/SVGPathSegLineto.cpp',
'svg/SVGPathSegLineto.h',
+ 'svg/SVGPathSegLinetoHorizontal.cpp',
'svg/SVGPathSegLinetoHorizontal.h',
+ 'svg/SVGPathSegLinetoVertical.cpp',
'svg/SVGPathSegLinetoVertical.h',
'svg/SVGPathSegList.cpp',
'svg/SVGPathSegList.h',
@@ -4200,8 +4210,8 @@
'svg/SVGPathSegListBuilder.h',
'svg/SVGPathSegListSource.cpp',
'svg/SVGPathSegListSource.h',
+ 'svg/SVGPathSegMoveto.cpp',
'svg/SVGPathSegMoveto.h',
- 'svg/SVGPathSegWithContext.h',
'svg/SVGPathSource.h',
'svg/SVGPathStringBuilder.cpp',
'svg/SVGPathStringBuilder.h',
diff --git a/WebCore/WebCore.order b/WebCore/WebCore.order
index a31461c..76f3275 100644
--- a/WebCore/WebCore.order
+++ b/WebCore/WebCore.order
@@ -18669,6 +18669,7 @@ __ZN7WebCore24RenderSVGHiddenContainerC1EPNS_16SVGStyledElementE
__ZN7WebCore24RenderSVGHiddenContainerC2EPNS_16SVGStyledElementE
__ZN7WebCoreL15pathConstructorERKNS_13QualifiedNameEPNS_8DocumentEb
__ZN7WebCore14SVGPathElementC1ERKNS_13QualifiedNameEPNS_8DocumentE
+__ZN7WebCore19SVGAnimatedPathDataC2Ev
__ZN7WebCore14SVGPathElement20parseMappedAttributeEPNS_15MappedAttributeE
__ZN7WebCore14SVGPathElement19svgAttributeChangedERKNS_13QualifiedNameE
__ZNK7WebCore14SVGPathElement7isValidEv
@@ -18912,6 +18913,7 @@ __ZN7WebCore14SVGPathSegListD0Ev
__ZN7WebCore19SVGPathSegMovetoAbsD0Ev
__ZN7WebCore19SVGPathSegLinetoAbsD0Ev
__ZN7WebCore19SVGPathSegClosePathD0Ev
+__ZN7WebCore19SVGAnimatedPathDataD2Ev
__ZN3WTF6VectorINS_6RefPtrIN7WebCore14SVGPODListItemINS2_12SVGTransformEEEEELm0EE6shrinkEm
__ZN7WebCore25SVGPathSegCurvetoCubicAbsD0Ev
__ZN7WebCore15SVGTSpanElementD0Ev
diff --git a/WebCore/WebCore.pro b/WebCore/WebCore.pro
index 8f6a772..3d0626a 100644
--- a/WebCore/WebCore.pro
+++ b/WebCore/WebCore.pro
@@ -2356,7 +2356,6 @@ HEADERS += \
svg/graphics/filters/SVGFilter.h \
svg/graphics/SVGImage.h \
svg/properties/SVGAnimatedListPropertyTearOff.h \
- svg/properties/SVGAnimatedPathSegListPropertyTearOff.h \
svg/properties/SVGAnimatedProperty.h \
svg/properties/SVGAnimatedPropertyDescription.h \
svg/properties/SVGAnimatedPropertyMacros.h \
@@ -2366,7 +2365,6 @@ HEADERS += \
svg/properties/SVGAnimatedTransformListPropertyTearOff.h \
svg/properties/SVGListProperty.h \
svg/properties/SVGListPropertyTearOff.h \
- svg/properties/SVGPathSegListPropertyTearOff.h \
svg/properties/SVGProperty.h \
svg/properties/SVGPropertyTearOff.h \
svg/properties/SVGPropertyTraits.h \
@@ -2386,6 +2384,7 @@ HEADERS += \
svg/SVGAnimatedLengthList.h \
svg/SVGAnimatedNumber.h \
svg/SVGAnimatedNumberList.h \
+ svg/SVGAnimatedPathData.h \
svg/SVGAnimatedPreserveAspectRatio.h \
svg/SVGAnimatedRect.h \
svg/SVGAnimatedString.h \
@@ -3393,7 +3392,8 @@ contains(DEFINES, ENABLE_SVG=1) {
# TODO: this-one-is-not-auto-added! FIXME! tmp/SVGElementFactory.cpp \
bindings/js/JSSVGElementInstanceCustom.cpp \
bindings/js/JSSVGLengthCustom.cpp \
- bindings/js/JSSVGPathSegCustom.cpp
+ bindings/js/JSSVGPathSegCustom.cpp \
+ bindings/js/JSSVGPathSegListCustom.cpp
}
SOURCES += \
@@ -3428,6 +3428,7 @@ contains(DEFINES, ENABLE_SVG=1) {
svg/SVGAltGlyphElement.cpp \
svg/SVGAngle.cpp \
svg/SVGAnimateColorElement.cpp \
+ svg/SVGAnimatedPathData.cpp \
svg/SVGAnimateElement.cpp \
svg/SVGAnimateMotionElement.cpp \
svg/SVGAnimateTransformElement.cpp \
@@ -3508,9 +3509,20 @@ contains(DEFINES, ENABLE_SVG=1) {
svg/SVGPathElement.cpp \
svg/SVGPathParser.cpp \
svg/SVGPathParserFactory.cpp \
+ svg/SVGPathSeg.cpp \
+ svg/SVGPathSegArc.cpp \
+ svg/SVGPathSegClosePath.cpp \
+ svg/SVGPathSegCurvetoCubic.cpp \
+ svg/SVGPathSegCurvetoCubicSmooth.cpp \
+ svg/SVGPathSegCurvetoQuadratic.cpp \
+ svg/SVGPathSegCurvetoQuadraticSmooth.cpp \
+ svg/SVGPathSegLineto.cpp \
+ svg/SVGPathSegLinetoHorizontal.cpp \
+ svg/SVGPathSegLinetoVertical.cpp \
svg/SVGPathSegList.cpp \
svg/SVGPathSegListBuilder.cpp \
svg/SVGPathSegListSource.cpp \
+ svg/SVGPathSegMoveto.cpp \
svg/SVGPathStringBuilder.cpp \
svg/SVGPathStringSource.cpp \
svg/SVGPathTraversalStateBuilder.cpp \
@@ -3560,7 +3572,6 @@ contains(DEFINES, ENABLE_SVG=1) {
svg/graphics/filters/SVGFilter.cpp \
svg/graphics/filters/SVGFilterBuilder.cpp \
svg/graphics/SVGImage.cpp \
- svg/properties/SVGPathSegListPropertyTearOff.cpp \
rendering/RenderForeignObject.cpp \
rendering/RenderSVGBlock.cpp \
rendering/RenderSVGContainer.cpp \
diff --git a/WebCore/WebCore.vcproj/WebCore.vcproj b/WebCore/WebCore.vcproj/WebCore.vcproj
index f9a7758..6f85425 100644
--- a/WebCore/WebCore.vcproj/WebCore.vcproj
+++ b/WebCore/WebCore.vcproj/WebCore.vcproj
@@ -69795,6 +69795,10 @@
>
</File>
<File
+ RelativePath="..\svg\SVGAnimatedPathData.h"
+ >
+ </File>
+ <File
RelativePath="..\svg\SVGAnimatedPreserveAspectRatio.h"
>
</File>
@@ -70894,10 +70898,6 @@
>
</File>
<File
- RelativePath="..\svg\properties\SVGAnimatedPathSegListPropertyTearOff.h"
- >
- </File>
- <File
RelativePath="..\svg\properties\SVGAnimatedProperty.h"
>
</File>
@@ -70934,14 +70934,6 @@
>
</File>
<File
- RelativePath="..\svg\properties\SVGPathSegListPropertyTearOff.cpp"
- >
- </File>
- <File
- RelativePath="..\svg\properties\SVGPathSegListPropertyTearOff.h"
- >
- </File>
- <File
RelativePath="..\svg\properties\SVGProperty.h"
>
</File>
diff --git a/WebCore/WebCore.xcodeproj/project.pbxproj b/WebCore/WebCore.xcodeproj/project.pbxproj
index 3f7485c..8ac2d7e 100644
--- a/WebCore/WebCore.xcodeproj/project.pbxproj
+++ b/WebCore/WebCore.xcodeproj/project.pbxproj
@@ -97,7 +97,6 @@
082341C60FCF3A9500D75BD6 /* WMLSelectElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 082341C40FCF3A9400D75BD6 /* WMLSelectElement.h */; };
0823D159127AD6AC000EBC95 /* SVGAnimatedInteger.h in Headers */ = {isa = PBXBuildFile; fileRef = 0823D158127AD6AC000EBC95 /* SVGAnimatedInteger.h */; settings = {ATTRIBUTES = (Private, ); }; };
08250939128BD4D800E2ED8E /* SVGAnimatedTransformList.h in Headers */ = {isa = PBXBuildFile; fileRef = 08250938128BD4D800E2ED8E /* SVGAnimatedTransformList.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 082DE42D1292621600D923DF /* SVGPathSegWithContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 082DE42C1292621600D923DF /* SVGPathSegWithContext.h */; };
082FCAC4110927CE00CC4821 /* JSSVGContextCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 082FCAC3110927CE00CC4821 /* JSSVGContextCache.h */; settings = {ATTRIBUTES = (Private, ); }; };
083192AA112B43050083C3B9 /* RenderSVGResource.h in Headers */ = {isa = PBXBuildFile; fileRef = 083192A7112B43050083C3B9 /* RenderSVGResource.h */; };
083192AB112B43050083C3B9 /* RenderSVGResourceMasker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 083192A8112B43050083C3B9 /* RenderSVGResourceMasker.cpp */; };
@@ -109,7 +108,6 @@
083DAEA70F01A7FB00342754 /* RenderTextControlMultiLine.h in Headers */ = {isa = PBXBuildFile; fileRef = 083DAEA30F01A7FB00342754 /* RenderTextControlMultiLine.h */; };
083DAEA80F01A7FB00342754 /* RenderTextControlSingleLine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 083DAEA40F01A7FB00342754 /* RenderTextControlSingleLine.cpp */; };
083DAEA90F01A7FB00342754 /* RenderTextControlSingleLine.h in Headers */ = {isa = PBXBuildFile; fileRef = 083DAEA50F01A7FB00342754 /* RenderTextControlSingleLine.h */; };
- 084A0829128D7867002DB1F1 /* SVGPathSegListPropertyTearOff.h in Headers */ = {isa = PBXBuildFile; fileRef = 084A0828128D7867002DB1F1 /* SVGPathSegListPropertyTearOff.h */; };
084AEBE40FB505FA0038483E /* SelectElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 084AEBE20FB505FA0038483E /* SelectElement.cpp */; };
084AEBE50FB505FA0038483E /* SelectElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 084AEBE30FB505FA0038483E /* SelectElement.h */; };
084CE5CB0F27DADC00E6240E /* WMLOptGroupElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 084CE5C70F27DADC00E6240E /* WMLOptGroupElement.cpp */; };
@@ -220,7 +218,6 @@
0897C14D0ED2EBA500AE06DB /* WMLBRElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 0897C14B0ED2EBA400AE06DB /* WMLBRElement.h */; };
0897D97A0F007A4600411BB3 /* WMLMetaElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0897D9780F007A4600411BB3 /* WMLMetaElement.cpp */; };
0897D97B0F007A4600411BB3 /* WMLMetaElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 0897D9790F007A4600411BB3 /* WMLMetaElement.h */; };
- 089A8E07128D8B3D00E7A534 /* SVGAnimatedPathSegListPropertyTearOff.h in Headers */ = {isa = PBXBuildFile; fileRef = 089A8E06128D8B3D00E7A534 /* SVGAnimatedPathSegListPropertyTearOff.h */; };
08A484770E5272C500C3FE76 /* ScriptElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08A484750E5272C500C3FE76 /* ScriptElement.cpp */; };
08A484780E5272C500C3FE76 /* ScriptElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 08A484760E5272C500C3FE76 /* ScriptElement.h */; };
08A48A6E0E86CF6D00E225DD /* JSSVGElementInstanceCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08A48A6D0E86CF6D00E225DD /* JSSVGElementInstanceCustom.cpp */; };
@@ -268,7 +265,6 @@
08F2F0091213E61700DCEC48 /* RenderImageResource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08F2F0071213E61700DCEC48 /* RenderImageResource.cpp */; };
08F2F00A1213E61700DCEC48 /* RenderImageResource.h in Headers */ = {isa = PBXBuildFile; fileRef = 08F2F0081213E61700DCEC48 /* RenderImageResource.h */; settings = {ATTRIBUTES = (Private, ); }; };
08FE0BC5127E2AC1000C4FB5 /* SVGAnimatedPreserveAspectRatio.h in Headers */ = {isa = PBXBuildFile; fileRef = 08FE0BC4127E2AC1000C4FB5 /* SVGAnimatedPreserveAspectRatio.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 08FF102012950F5A00F00276 /* SVGPathSegListPropertyTearOff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08FF101F12950F5900F00276 /* SVGPathSegListPropertyTearOff.cpp */; };
0A4844990CA44CB200B7BD48 /* SoftLinking.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A4844980CA44CB200B7BD48 /* SoftLinking.h */; settings = {ATTRIBUTES = (Private, ); }; };
0AFDAC3D10F5448C00E1F3D2 /* PluginViewBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 0AFDAC3C10F5448C00E1F3D2 /* PluginViewBase.h */; settings = {ATTRIBUTES = (Private, ); }; };
0B8C56D40F28627F000502E1 /* HTTPHeaderMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0B8C56D30F28627F000502E1 /* HTTPHeaderMap.cpp */; };
@@ -2162,6 +2158,7 @@
85ACAA8E0A9B759C00671E90 /* DOMNodeList.mm in Sources */ = {isa = PBXBuildFile; fileRef = 85ACAA8A0A9B759C00671E90 /* DOMNodeList.mm */; };
85ACABB00A9CAF8000671E90 /* DOMDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = 85ACABAE0A9CAF8000671E90 /* DOMDocument.h */; settings = {ATTRIBUTES = (); }; };
85ACABB10A9CAF8000671E90 /* DOMDocument.mm in Sources */ = {isa = PBXBuildFile; fileRef = 85ACABAF0A9CAF8000671E90 /* DOMDocument.mm */; };
+ 85ACEF0C0ACDCCCF001214FF /* DOMSVGAnimatedPathData.h in Headers */ = {isa = PBXBuildFile; fileRef = 85ACEF060ACDCCCF001214FF /* DOMSVGAnimatedPathData.h */; };
85ACEF0E0ACDCCCF001214FF /* DOMSVGAnimatedPreserveAspectRatio.h in Headers */ = {isa = PBXBuildFile; fileRef = 85ACEF080ACDCCCF001214FF /* DOMSVGAnimatedPreserveAspectRatio.h */; };
85ACEF0F0ACDCCCF001214FF /* DOMSVGAnimatedPreserveAspectRatio.mm in Sources */ = {isa = PBXBuildFile; fileRef = 85ACEF090ACDCCCF001214FF /* DOMSVGAnimatedPreserveAspectRatio.mm */; };
85ACEF100ACDCCCF001214FF /* DOMSVGPreserveAspectRatio.h in Headers */ = {isa = PBXBuildFile; fileRef = 85ACEF0A0ACDCCCF001214FF /* DOMSVGPreserveAspectRatio.h */; };
@@ -3495,6 +3492,7 @@
A8A909AC0CBCD6B50029B807 /* RenderSVGTransformableContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = A8A909AA0CBCD6B50029B807 /* RenderSVGTransformableContainer.h */; };
A8A909AD0CBCD6B50029B807 /* RenderSVGTransformableContainer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8A909AB0CBCD6B50029B807 /* RenderSVGTransformableContainer.cpp */; };
A8BC04921214F69600B5F122 /* HTMLEntityTable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8BC04911214F69600B5F122 /* HTMLEntityTable.cpp */; };
+ A8BCFD05120A046100B5F122 /* SVGPathSeg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8BCFD04120A046100B5F122 /* SVGPathSeg.cpp */; };
A8C2280E11D4A59700D5A7D3 /* DocumentParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8C2280D11D4A59700D5A7D3 /* DocumentParser.cpp */; };
A8C228A111D5722E00D5A7D3 /* DecodedDataDocumentParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A8C2289F11D5722E00D5A7D3 /* DecodedDataDocumentParser.h */; };
A8C228A211D5722E00D5A7D3 /* DecodedDataDocumentParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8C228A011D5722E00D5A7D3 /* DecodedDataDocumentParser.cpp */; };
@@ -3717,6 +3715,7 @@
A8E545A70CA9D1C20097D09B /* DOMSVGAnimatedStringInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = A8E544A90CA9D1C20097D09B /* DOMSVGAnimatedStringInternal.h */; };
A8E545A90CA9D1C20097D09B /* DOMSVGAnimatedRectInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = A8E544AB0CA9D1C20097D09B /* DOMSVGAnimatedRectInternal.h */; };
A8E545AB0CA9D1C20097D09B /* DOMSVGAnimatedPreserveAspectRatioInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = A8E544AD0CA9D1C20097D09B /* DOMSVGAnimatedPreserveAspectRatioInternal.h */; };
+ A8E545AE0CA9D1C20097D09B /* DOMSVGAnimatedPathData.h in Headers */ = {isa = PBXBuildFile; fileRef = A8E544B00CA9D1C20097D09B /* DOMSVGAnimatedPathData.h */; };
A8E545AF0CA9D1C20097D09B /* DOMSVGAnimatedNumberListInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = A8E544B10CA9D1C20097D09B /* DOMSVGAnimatedNumberListInternal.h */; };
A8E545B10CA9D1C20097D09B /* DOMSVGAnimatedNumberInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = A8E544B30CA9D1C20097D09B /* DOMSVGAnimatedNumberInternal.h */; };
A8E545B30CA9D1C20097D09B /* DOMSVGAnimatedLengthListInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = A8E544B50CA9D1C20097D09B /* DOMSVGAnimatedLengthListInternal.h */; };
@@ -3788,6 +3787,7 @@
A8F46A890CB20A9D003A9670 /* DOMSVGAnimateColorElement.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 850361280ACE007B001F3D9E /* DOMSVGAnimateColorElement.h */; };
A8F46A8C0CB20A9D003A9670 /* DOMSVGSetElement.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 859D627F0AD888EE00012995 /* DOMSVGSetElement.h */; };
A8F46A8E0CB20A9D003A9670 /* DOMSVGCircleElement.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 8503612A0ACE007B001F3D9E /* DOMSVGCircleElement.h */; };
+ A8F46A900CB20A9D003A9670 /* DOMSVGAnimatedPathData.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 85ACEF060ACDCCCF001214FF /* DOMSVGAnimatedPathData.h */; };
A8F46A910CB20A9D003A9670 /* DOMSVGViewElement.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 859D62970AD888EF00012995 /* DOMSVGViewElement.h */; };
A8F46A920CB20A9D003A9670 /* DOMSVGPathSegLinetoRel.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 85CE1A330ADAC473003BBDEA /* DOMSVGPathSegLinetoRel.h */; };
A8F46A930CB20A9D003A9670 /* DOMSVGZoomEvent.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 859D629A0AD888EF00012995 /* DOMSVGZoomEvent.h */; };
@@ -3980,6 +3980,8 @@
B22279770D00BF220071B782 /* SVGAngle.h in Headers */ = {isa = PBXBuildFile; fileRef = B22277E10D00BF1F0071B782 /* SVGAngle.h */; settings = {ATTRIBUTES = (Private, ); }; };
B22279790D00BF220071B782 /* SVGAnimateColorElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B22277E30D00BF1F0071B782 /* SVGAnimateColorElement.cpp */; };
B222797A0D00BF220071B782 /* SVGAnimateColorElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B22277E40D00BF1F0071B782 /* SVGAnimateColorElement.h */; };
+ B22279840D00BF220071B782 /* SVGAnimatedPathData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B22277EE0D00BF1F0071B782 /* SVGAnimatedPathData.cpp */; };
+ B22279850D00BF220071B782 /* SVGAnimatedPathData.h in Headers */ = {isa = PBXBuildFile; fileRef = B22277EF0D00BF1F0071B782 /* SVGAnimatedPathData.h */; };
B222798F0D00BF220071B782 /* SVGAnimateElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B22277F90D00BF1F0071B782 /* SVGAnimateElement.cpp */; };
B22279900D00BF220071B782 /* SVGAnimateElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B22277FA0D00BF1F0071B782 /* SVGAnimateElement.h */; };
B22279920D00BF220071B782 /* SVGAnimateMotionElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B22277FC0D00BF1F0071B782 /* SVGAnimateMotionElement.cpp */; };
@@ -4116,17 +4118,27 @@
B2227A580D00BF220071B782 /* SVGPathElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B22278C20D00BF200071B782 /* SVGPathElement.cpp */; };
B2227A590D00BF220071B782 /* SVGPathElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B22278C30D00BF200071B782 /* SVGPathElement.h */; };
B2227A5B0D00BF220071B782 /* SVGPathSeg.h in Headers */ = {isa = PBXBuildFile; fileRef = B22278C50D00BF200071B782 /* SVGPathSeg.h */; };
+ B2227A5D0D00BF220071B782 /* SVGPathSegArc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B22278C70D00BF200071B782 /* SVGPathSegArc.cpp */; };
B2227A5E0D00BF220071B782 /* SVGPathSegArc.h in Headers */ = {isa = PBXBuildFile; fileRef = B22278C80D00BF200071B782 /* SVGPathSegArc.h */; };
+ B2227A610D00BF220071B782 /* SVGPathSegClosePath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B22278CB0D00BF200071B782 /* SVGPathSegClosePath.cpp */; };
B2227A620D00BF220071B782 /* SVGPathSegClosePath.h in Headers */ = {isa = PBXBuildFile; fileRef = B22278CC0D00BF200071B782 /* SVGPathSegClosePath.h */; };
+ B2227A640D00BF220071B782 /* SVGPathSegCurvetoCubic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B22278CE0D00BF200071B782 /* SVGPathSegCurvetoCubic.cpp */; };
B2227A650D00BF220071B782 /* SVGPathSegCurvetoCubic.h in Headers */ = {isa = PBXBuildFile; fileRef = B22278CF0D00BF200071B782 /* SVGPathSegCurvetoCubic.h */; };
+ B2227A680D00BF220071B782 /* SVGPathSegCurvetoCubicSmooth.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B22278D20D00BF200071B782 /* SVGPathSegCurvetoCubicSmooth.cpp */; };
B2227A690D00BF220071B782 /* SVGPathSegCurvetoCubicSmooth.h in Headers */ = {isa = PBXBuildFile; fileRef = B22278D30D00BF200071B782 /* SVGPathSegCurvetoCubicSmooth.h */; };
+ B2227A6C0D00BF220071B782 /* SVGPathSegCurvetoQuadratic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B22278D60D00BF200071B782 /* SVGPathSegCurvetoQuadratic.cpp */; };
B2227A6D0D00BF220071B782 /* SVGPathSegCurvetoQuadratic.h in Headers */ = {isa = PBXBuildFile; fileRef = B22278D70D00BF200071B782 /* SVGPathSegCurvetoQuadratic.h */; };
+ B2227A700D00BF220071B782 /* SVGPathSegCurvetoQuadraticSmooth.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B22278DA0D00BF200071B782 /* SVGPathSegCurvetoQuadraticSmooth.cpp */; };
B2227A710D00BF220071B782 /* SVGPathSegCurvetoQuadraticSmooth.h in Headers */ = {isa = PBXBuildFile; fileRef = B22278DB0D00BF200071B782 /* SVGPathSegCurvetoQuadraticSmooth.h */; };
+ B2227A740D00BF220071B782 /* SVGPathSegLineto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B22278DE0D00BF200071B782 /* SVGPathSegLineto.cpp */; };
B2227A750D00BF220071B782 /* SVGPathSegLineto.h in Headers */ = {isa = PBXBuildFile; fileRef = B22278DF0D00BF200071B782 /* SVGPathSegLineto.h */; };
+ B2227A770D00BF220071B782 /* SVGPathSegLinetoHorizontal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B22278E10D00BF200071B782 /* SVGPathSegLinetoHorizontal.cpp */; };
B2227A780D00BF220071B782 /* SVGPathSegLinetoHorizontal.h in Headers */ = {isa = PBXBuildFile; fileRef = B22278E20D00BF200071B782 /* SVGPathSegLinetoHorizontal.h */; };
+ B2227A7C0D00BF220071B782 /* SVGPathSegLinetoVertical.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B22278E60D00BF200071B782 /* SVGPathSegLinetoVertical.cpp */; };
B2227A7D0D00BF220071B782 /* SVGPathSegLinetoVertical.h in Headers */ = {isa = PBXBuildFile; fileRef = B22278E70D00BF200071B782 /* SVGPathSegLinetoVertical.h */; };
B2227A800D00BF220071B782 /* SVGPathSegList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B22278EA0D00BF200071B782 /* SVGPathSegList.cpp */; };
B2227A810D00BF220071B782 /* SVGPathSegList.h in Headers */ = {isa = PBXBuildFile; fileRef = B22278EB0D00BF200071B782 /* SVGPathSegList.h */; };
+ B2227A830D00BF220071B782 /* SVGPathSegMoveto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B22278ED0D00BF210071B782 /* SVGPathSegMoveto.cpp */; };
B2227A840D00BF220071B782 /* SVGPathSegMoveto.h in Headers */ = {isa = PBXBuildFile; fileRef = B22278EE0D00BF210071B782 /* SVGPathSegMoveto.h */; };
B2227A870D00BF220071B782 /* SVGPatternElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B22278F10D00BF210071B782 /* SVGPatternElement.cpp */; };
B2227A880D00BF220071B782 /* SVGPatternElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B22278F20D00BF210071B782 /* SVGPatternElement.h */; };
@@ -4293,6 +4305,7 @@
B28C6A280D00C44800334AA4 /* SVGDocumentExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = B28C6A1F0D00C44800334AA4 /* SVGDocumentExtensions.h */; settings = {ATTRIBUTES = (Private, ); }; };
B28C6A290D00C44800334AA4 /* SVGImageLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B28C6A200D00C44800334AA4 /* SVGImageLoader.cpp */; };
B28C6A2A0D00C44800334AA4 /* SVGImageLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = B28C6A210D00C44800334AA4 /* SVGImageLoader.h */; };
+ B297BC700B3C14CF0045A590 /* JSSVGPathSegListCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B297BC6F0B3C14CF0045A590 /* JSSVGPathSegListCustom.cpp */; };
B2A015A80AF6CD53006BCE0E /* GraphicsContext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2A015920AF6CD53006BCE0E /* GraphicsContext.cpp */; };
B2A015A90AF6CD53006BCE0E /* GraphicsContext.h in Headers */ = {isa = PBXBuildFile; fileRef = B2A015930AF6CD53006BCE0E /* GraphicsContext.h */; settings = {ATTRIBUTES = (Private, ); }; };
B2A015AA0AF6CD53006BCE0E /* GraphicsTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2A015940AF6CD53006BCE0E /* GraphicsTypes.cpp */; };
@@ -5804,6 +5817,7 @@
A80F3B8B0CCDCE24002DD990 /* DOMSVGAnimatedNumberInternal.h in Copy Generated Headers */,
A8F46AAF0CB20A9D003A9670 /* DOMSVGAnimatedNumberList.h in Copy Generated Headers */,
A80F3B700CCDCE24002DD990 /* DOMSVGAnimatedNumberListInternal.h in Copy Generated Headers */,
+ A8F46A900CB20A9D003A9670 /* DOMSVGAnimatedPathData.h in Copy Generated Headers */,
A8F46B2E0CB20A9D003A9670 /* DOMSVGAnimatedPreserveAspectRatio.h in Copy Generated Headers */,
A80F3B7E0CCDCE24002DD990 /* DOMSVGAnimatedPreserveAspectRatioInternal.h in Copy Generated Headers */,
A8F46B1B0CB20A9D003A9670 /* DOMSVGAnimatedRect.h in Copy Generated Headers */,
@@ -6130,7 +6144,6 @@
082341C40FCF3A9400D75BD6 /* WMLSelectElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMLSelectElement.h; sourceTree = "<group>"; };
0823D158127AD6AC000EBC95 /* SVGAnimatedInteger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedInteger.h; sourceTree = "<group>"; };
08250938128BD4D800E2ED8E /* SVGAnimatedTransformList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedTransformList.h; sourceTree = "<group>"; };
- 082DE42C1292621600D923DF /* SVGPathSegWithContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathSegWithContext.h; sourceTree = "<group>"; };
082FCAC3110927CE00CC4821 /* JSSVGContextCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSSVGContextCache.h; sourceTree = "<group>"; };
083192A7112B43050083C3B9 /* RenderSVGResource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResource.h; sourceTree = "<group>"; };
083192A8112B43050083C3B9 /* RenderSVGResourceMasker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourceMasker.cpp; sourceTree = "<group>"; };
@@ -6140,7 +6153,6 @@
083DAEA30F01A7FB00342754 /* RenderTextControlMultiLine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderTextControlMultiLine.h; sourceTree = "<group>"; };
083DAEA40F01A7FB00342754 /* RenderTextControlSingleLine.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderTextControlSingleLine.cpp; sourceTree = "<group>"; };
083DAEA50F01A7FB00342754 /* RenderTextControlSingleLine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderTextControlSingleLine.h; sourceTree = "<group>"; };
- 084A0828128D7867002DB1F1 /* SVGPathSegListPropertyTearOff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathSegListPropertyTearOff.h; sourceTree = "<group>"; };
084AEBE20FB505FA0038483E /* SelectElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SelectElement.cpp; sourceTree = "<group>"; };
084AEBE30FB505FA0038483E /* SelectElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SelectElement.h; sourceTree = "<group>"; };
084CE5C70F27DADC00E6240E /* WMLOptGroupElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WMLOptGroupElement.cpp; sourceTree = "<group>"; };
@@ -6239,7 +6251,6 @@
0897C14B0ED2EBA400AE06DB /* WMLBRElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMLBRElement.h; sourceTree = "<group>"; };
0897D9780F007A4600411BB3 /* WMLMetaElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WMLMetaElement.cpp; sourceTree = "<group>"; };
0897D9790F007A4600411BB3 /* WMLMetaElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMLMetaElement.h; sourceTree = "<group>"; };
- 089A8E06128D8B3D00E7A534 /* SVGAnimatedPathSegListPropertyTearOff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedPathSegListPropertyTearOff.h; sourceTree = "<group>"; };
08A484750E5272C500C3FE76 /* ScriptElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptElement.cpp; sourceTree = "<group>"; };
08A484760E5272C500C3FE76 /* ScriptElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptElement.h; sourceTree = "<group>"; };
08A48A6D0E86CF6D00E225DD /* JSSVGElementInstanceCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGElementInstanceCustom.cpp; sourceTree = "<group>"; };
@@ -6288,7 +6299,6 @@
08FB84B00ECE373300DC064E /* WMLElementFactory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WMLElementFactory.cpp; sourceTree = "<group>"; };
08FB84B10ECE373300DC064E /* WMLElementFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMLElementFactory.h; sourceTree = "<group>"; };
08FE0BC4127E2AC1000C4FB5 /* SVGAnimatedPreserveAspectRatio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedPreserveAspectRatio.h; sourceTree = "<group>"; };
- 08FF101F12950F5900F00276 /* SVGPathSegListPropertyTearOff.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathSegListPropertyTearOff.cpp; sourceTree = "<group>"; };
0A4844980CA44CB200B7BD48 /* SoftLinking.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SoftLinking.h; sourceTree = "<group>"; };
0AFDAC3C10F5448C00E1F3D2 /* PluginViewBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PluginViewBase.h; sourceTree = "<group>"; };
0B8C56D30F28627F000502E1 /* HTTPHeaderMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTTPHeaderMap.cpp; sourceTree = "<group>"; };
@@ -8305,6 +8315,7 @@
85ACAA8A0A9B759C00671E90 /* DOMNodeList.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMNodeList.mm; sourceTree = "<group>"; };
85ACABAE0A9CAF8000671E90 /* DOMDocument.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMDocument.h; sourceTree = "<group>"; };
85ACABAF0A9CAF8000671E90 /* DOMDocument.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMDocument.mm; sourceTree = "<group>"; };
+ 85ACEF060ACDCCCF001214FF /* DOMSVGAnimatedPathData.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMSVGAnimatedPathData.h; sourceTree = "<group>"; };
85ACEF080ACDCCCF001214FF /* DOMSVGAnimatedPreserveAspectRatio.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMSVGAnimatedPreserveAspectRatio.h; sourceTree = "<group>"; };
85ACEF090ACDCCCF001214FF /* DOMSVGAnimatedPreserveAspectRatio.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMSVGAnimatedPreserveAspectRatio.mm; sourceTree = "<group>"; };
85ACEF0A0ACDCCCF001214FF /* DOMSVGPreserveAspectRatio.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMSVGPreserveAspectRatio.h; sourceTree = "<group>"; };
@@ -9459,6 +9470,7 @@
A8A909AA0CBCD6B50029B807 /* RenderSVGTransformableContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGTransformableContainer.h; sourceTree = "<group>"; };
A8A909AB0CBCD6B50029B807 /* RenderSVGTransformableContainer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGTransformableContainer.cpp; sourceTree = "<group>"; };
A8BC04911214F69600B5F122 /* HTMLEntityTable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLEntityTable.cpp; sourceTree = "<group>"; };
+ A8BCFD04120A046100B5F122 /* SVGPathSeg.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathSeg.cpp; sourceTree = "<group>"; };
A8C2280D11D4A59700D5A7D3 /* DocumentParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DocumentParser.cpp; sourceTree = "<group>"; };
A8C2289F11D5722E00D5A7D3 /* DecodedDataDocumentParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DecodedDataDocumentParser.h; sourceTree = "<group>"; };
A8C228A011D5722E00D5A7D3 /* DecodedDataDocumentParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DecodedDataDocumentParser.cpp; sourceTree = "<group>"; };
@@ -9674,6 +9686,7 @@
A8E544A90CA9D1C20097D09B /* DOMSVGAnimatedStringInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMSVGAnimatedStringInternal.h; sourceTree = "<group>"; };
A8E544AB0CA9D1C20097D09B /* DOMSVGAnimatedRectInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMSVGAnimatedRectInternal.h; sourceTree = "<group>"; };
A8E544AD0CA9D1C20097D09B /* DOMSVGAnimatedPreserveAspectRatioInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMSVGAnimatedPreserveAspectRatioInternal.h; sourceTree = "<group>"; };
+ A8E544B00CA9D1C20097D09B /* DOMSVGAnimatedPathData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMSVGAnimatedPathData.h; sourceTree = "<group>"; };
A8E544B10CA9D1C20097D09B /* DOMSVGAnimatedNumberListInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMSVGAnimatedNumberListInternal.h; sourceTree = "<group>"; };
A8E544B30CA9D1C20097D09B /* DOMSVGAnimatedNumberInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMSVGAnimatedNumberInternal.h; sourceTree = "<group>"; };
A8E544B50CA9D1C20097D09B /* DOMSVGAnimatedLengthListInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMSVGAnimatedLengthListInternal.h; sourceTree = "<group>"; };
@@ -9836,6 +9849,9 @@
B22277EB0D00BF1F0071B782 /* SVGAnimatedLengthList.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGAnimatedLengthList.idl; sourceTree = "<group>"; };
B22277EC0D00BF1F0071B782 /* SVGAnimatedNumber.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGAnimatedNumber.idl; sourceTree = "<group>"; };
B22277ED0D00BF1F0071B782 /* SVGAnimatedNumberList.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGAnimatedNumberList.idl; sourceTree = "<group>"; };
+ B22277EE0D00BF1F0071B782 /* SVGAnimatedPathData.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedPathData.cpp; sourceTree = "<group>"; };
+ B22277EF0D00BF1F0071B782 /* SVGAnimatedPathData.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedPathData.h; sourceTree = "<group>"; };
+ B22277F00D00BF1F0071B782 /* SVGAnimatedPathData.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGAnimatedPathData.idl; sourceTree = "<group>"; };
B22277F40D00BF1F0071B782 /* SVGAnimatedPreserveAspectRatio.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGAnimatedPreserveAspectRatio.idl; sourceTree = "<group>"; };
B22277F50D00BF1F0071B782 /* SVGAnimatedRect.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGAnimatedRect.idl; sourceTree = "<group>"; };
B22277F60D00BF1F0071B782 /* SVGAnimatedString.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGAnimatedString.idl; sourceTree = "<group>"; };
@@ -10043,35 +10059,45 @@
B22278C40D00BF200071B782 /* SVGPathElement.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGPathElement.idl; sourceTree = "<group>"; };
B22278C50D00BF200071B782 /* SVGPathSeg.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGPathSeg.h; sourceTree = "<group>"; };
B22278C60D00BF200071B782 /* SVGPathSeg.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGPathSeg.idl; sourceTree = "<group>"; };
+ B22278C70D00BF200071B782 /* SVGPathSegArc.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathSegArc.cpp; sourceTree = "<group>"; };
B22278C80D00BF200071B782 /* SVGPathSegArc.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGPathSegArc.h; sourceTree = "<group>"; };
B22278C90D00BF200071B782 /* SVGPathSegArcAbs.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGPathSegArcAbs.idl; sourceTree = "<group>"; };
B22278CA0D00BF200071B782 /* SVGPathSegArcRel.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGPathSegArcRel.idl; sourceTree = "<group>"; };
+ B22278CB0D00BF200071B782 /* SVGPathSegClosePath.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathSegClosePath.cpp; sourceTree = "<group>"; };
B22278CC0D00BF200071B782 /* SVGPathSegClosePath.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGPathSegClosePath.h; sourceTree = "<group>"; };
B22278CD0D00BF200071B782 /* SVGPathSegClosePath.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGPathSegClosePath.idl; sourceTree = "<group>"; };
+ B22278CE0D00BF200071B782 /* SVGPathSegCurvetoCubic.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathSegCurvetoCubic.cpp; sourceTree = "<group>"; };
B22278CF0D00BF200071B782 /* SVGPathSegCurvetoCubic.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGPathSegCurvetoCubic.h; sourceTree = "<group>"; };
B22278D00D00BF200071B782 /* SVGPathSegCurvetoCubicAbs.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGPathSegCurvetoCubicAbs.idl; sourceTree = "<group>"; };
B22278D10D00BF200071B782 /* SVGPathSegCurvetoCubicRel.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGPathSegCurvetoCubicRel.idl; sourceTree = "<group>"; };
+ B22278D20D00BF200071B782 /* SVGPathSegCurvetoCubicSmooth.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathSegCurvetoCubicSmooth.cpp; sourceTree = "<group>"; };
B22278D30D00BF200071B782 /* SVGPathSegCurvetoCubicSmooth.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGPathSegCurvetoCubicSmooth.h; sourceTree = "<group>"; };
B22278D40D00BF200071B782 /* SVGPathSegCurvetoCubicSmoothAbs.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGPathSegCurvetoCubicSmoothAbs.idl; sourceTree = "<group>"; };
B22278D50D00BF200071B782 /* SVGPathSegCurvetoCubicSmoothRel.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGPathSegCurvetoCubicSmoothRel.idl; sourceTree = "<group>"; };
+ B22278D60D00BF200071B782 /* SVGPathSegCurvetoQuadratic.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathSegCurvetoQuadratic.cpp; sourceTree = "<group>"; };
B22278D70D00BF200071B782 /* SVGPathSegCurvetoQuadratic.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGPathSegCurvetoQuadratic.h; sourceTree = "<group>"; };
B22278D80D00BF200071B782 /* SVGPathSegCurvetoQuadraticAbs.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGPathSegCurvetoQuadraticAbs.idl; sourceTree = "<group>"; };
B22278D90D00BF200071B782 /* SVGPathSegCurvetoQuadraticRel.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGPathSegCurvetoQuadraticRel.idl; sourceTree = "<group>"; };
+ B22278DA0D00BF200071B782 /* SVGPathSegCurvetoQuadraticSmooth.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathSegCurvetoQuadraticSmooth.cpp; sourceTree = "<group>"; };
B22278DB0D00BF200071B782 /* SVGPathSegCurvetoQuadraticSmooth.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGPathSegCurvetoQuadraticSmooth.h; sourceTree = "<group>"; };
B22278DC0D00BF200071B782 /* SVGPathSegCurvetoQuadraticSmoothAbs.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGPathSegCurvetoQuadraticSmoothAbs.idl; sourceTree = "<group>"; };
B22278DD0D00BF200071B782 /* SVGPathSegCurvetoQuadraticSmoothRel.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGPathSegCurvetoQuadraticSmoothRel.idl; sourceTree = "<group>"; };
+ B22278DE0D00BF200071B782 /* SVGPathSegLineto.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathSegLineto.cpp; sourceTree = "<group>"; };
B22278DF0D00BF200071B782 /* SVGPathSegLineto.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGPathSegLineto.h; sourceTree = "<group>"; };
B22278E00D00BF200071B782 /* SVGPathSegLinetoAbs.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGPathSegLinetoAbs.idl; sourceTree = "<group>"; };
+ B22278E10D00BF200071B782 /* SVGPathSegLinetoHorizontal.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathSegLinetoHorizontal.cpp; sourceTree = "<group>"; };
B22278E20D00BF200071B782 /* SVGPathSegLinetoHorizontal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGPathSegLinetoHorizontal.h; sourceTree = "<group>"; };
B22278E30D00BF200071B782 /* SVGPathSegLinetoHorizontalAbs.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGPathSegLinetoHorizontalAbs.idl; sourceTree = "<group>"; };
B22278E40D00BF200071B782 /* SVGPathSegLinetoHorizontalRel.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGPathSegLinetoHorizontalRel.idl; sourceTree = "<group>"; };
B22278E50D00BF200071B782 /* SVGPathSegLinetoRel.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGPathSegLinetoRel.idl; sourceTree = "<group>"; };
+ B22278E60D00BF200071B782 /* SVGPathSegLinetoVertical.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathSegLinetoVertical.cpp; sourceTree = "<group>"; };
B22278E70D00BF200071B782 /* SVGPathSegLinetoVertical.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGPathSegLinetoVertical.h; sourceTree = "<group>"; };
B22278E80D00BF200071B782 /* SVGPathSegLinetoVerticalAbs.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGPathSegLinetoVerticalAbs.idl; sourceTree = "<group>"; };
B22278E90D00BF200071B782 /* SVGPathSegLinetoVerticalRel.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGPathSegLinetoVerticalRel.idl; sourceTree = "<group>"; };
B22278EA0D00BF200071B782 /* SVGPathSegList.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathSegList.cpp; sourceTree = "<group>"; };
B22278EB0D00BF200071B782 /* SVGPathSegList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGPathSegList.h; sourceTree = "<group>"; };
B22278EC0D00BF210071B782 /* SVGPathSegList.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGPathSegList.idl; sourceTree = "<group>"; };
+ B22278ED0D00BF210071B782 /* SVGPathSegMoveto.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathSegMoveto.cpp; sourceTree = "<group>"; };
B22278EE0D00BF210071B782 /* SVGPathSegMoveto.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGPathSegMoveto.h; sourceTree = "<group>"; };
B22278EF0D00BF210071B782 /* SVGPathSegMovetoAbs.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGPathSegMovetoAbs.idl; sourceTree = "<group>"; };
B22278F00D00BF210071B782 /* SVGPathSegMovetoRel.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGPathSegMovetoRel.idl; sourceTree = "<group>"; };
@@ -10277,6 +10303,7 @@
B28C6A200D00C44800334AA4 /* SVGImageLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGImageLoader.cpp; sourceTree = "<group>"; };
B28C6A210D00C44800334AA4 /* SVGImageLoader.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGImageLoader.h; sourceTree = "<group>"; };
B28C6A260D00C44800334AA4 /* xlinkattrs.in */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = xlinkattrs.in; sourceTree = "<group>"; };
+ B297BC6F0B3C14CF0045A590 /* JSSVGPathSegListCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGPathSegListCustom.cpp; sourceTree = "<group>"; };
B2A015920AF6CD53006BCE0E /* GraphicsContext.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GraphicsContext.cpp; sourceTree = "<group>"; };
B2A015930AF6CD53006BCE0E /* GraphicsContext.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GraphicsContext.h; sourceTree = "<group>"; };
B2A015940AF6CD53006BCE0E /* GraphicsTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GraphicsTypes.cpp; sourceTree = "<group>"; };
@@ -11764,7 +11791,6 @@
isa = PBXGroup;
children = (
088A0DFB126EF1DB00978F7A /* SVGAnimatedListPropertyTearOff.h */,
- 089A8E06128D8B3D00E7A534 /* SVGAnimatedPathSegListPropertyTearOff.h */,
088A0DFC126EF1DB00978F7A /* SVGAnimatedProperty.h */,
088A0DFD126EF1DB00978F7A /* SVGAnimatedPropertyDescription.h */,
088A0DFE126EF1DB00978F7A /* SVGAnimatedPropertyMacros.h */,
@@ -11774,8 +11800,6 @@
085A15921289A8DD002710E3 /* SVGAnimatedTransformListPropertyTearOff.h */,
0810764312828556007C63BA /* SVGListProperty.h */,
088A0E00126EF1DB00978F7A /* SVGListPropertyTearOff.h */,
- 08FF101F12950F5900F00276 /* SVGPathSegListPropertyTearOff.cpp */,
- 084A0828128D7867002DB1F1 /* SVGPathSegListPropertyTearOff.h */,
088A0E01126EF1DB00978F7A /* SVGProperty.h */,
088A0E02126EF1DB00978F7A /* SVGPropertyTearOff.h */,
088A0E03126EF1DB00978F7A /* SVGPropertyTraits.h */,
@@ -13542,6 +13566,8 @@
8502AB6C0AD438E600378540 /* DOMSVGAnimatedNumberList.h */,
8502AB6D0AD438E600378540 /* DOMSVGAnimatedNumberList.mm */,
A8E544B10CA9D1C20097D09B /* DOMSVGAnimatedNumberListInternal.h */,
+ A8E544B00CA9D1C20097D09B /* DOMSVGAnimatedPathData.h */,
+ 85ACEF060ACDCCCF001214FF /* DOMSVGAnimatedPathData.h */,
85ACEF080ACDCCCF001214FF /* DOMSVGAnimatedPreserveAspectRatio.h */,
85ACEF090ACDCCCF001214FF /* DOMSVGAnimatedPreserveAspectRatio.mm */,
A8E544AD0CA9D1C20097D09B /* DOMSVGAnimatedPreserveAspectRatioInternal.h */,
@@ -16094,6 +16120,9 @@
B22277EC0D00BF1F0071B782 /* SVGAnimatedNumber.idl */,
08B35B16127B6A88005314DD /* SVGAnimatedNumberList.h */,
B22277ED0D00BF1F0071B782 /* SVGAnimatedNumberList.idl */,
+ B22277EE0D00BF1F0071B782 /* SVGAnimatedPathData.cpp */,
+ B22277EF0D00BF1F0071B782 /* SVGAnimatedPathData.h */,
+ B22277F00D00BF1F0071B782 /* SVGAnimatedPathData.idl */,
08FE0BC4127E2AC1000C4FB5 /* SVGAnimatedPreserveAspectRatio.h */,
B22277F40D00BF1F0071B782 /* SVGAnimatedPreserveAspectRatio.idl */,
08C859BF1274575300A5728D /* SVGAnimatedRect.h */,
@@ -16345,31 +16374,41 @@
8476C9EE11DF6A5800555B02 /* SVGPathParser.h */,
84300BD1120C9A710021954A /* SVGPathParserFactory.cpp */,
84300BD2120C9A710021954A /* SVGPathParserFactory.h */,
+ A8BCFD04120A046100B5F122 /* SVGPathSeg.cpp */,
B22278C50D00BF200071B782 /* SVGPathSeg.h */,
B22278C60D00BF200071B782 /* SVGPathSeg.idl */,
+ B22278C70D00BF200071B782 /* SVGPathSegArc.cpp */,
B22278C80D00BF200071B782 /* SVGPathSegArc.h */,
B22278C90D00BF200071B782 /* SVGPathSegArcAbs.idl */,
B22278CA0D00BF200071B782 /* SVGPathSegArcRel.idl */,
+ B22278CB0D00BF200071B782 /* SVGPathSegClosePath.cpp */,
B22278CC0D00BF200071B782 /* SVGPathSegClosePath.h */,
B22278CD0D00BF200071B782 /* SVGPathSegClosePath.idl */,
+ B22278CE0D00BF200071B782 /* SVGPathSegCurvetoCubic.cpp */,
B22278CF0D00BF200071B782 /* SVGPathSegCurvetoCubic.h */,
B22278D00D00BF200071B782 /* SVGPathSegCurvetoCubicAbs.idl */,
B22278D10D00BF200071B782 /* SVGPathSegCurvetoCubicRel.idl */,
+ B22278D20D00BF200071B782 /* SVGPathSegCurvetoCubicSmooth.cpp */,
B22278D30D00BF200071B782 /* SVGPathSegCurvetoCubicSmooth.h */,
B22278D40D00BF200071B782 /* SVGPathSegCurvetoCubicSmoothAbs.idl */,
B22278D50D00BF200071B782 /* SVGPathSegCurvetoCubicSmoothRel.idl */,
+ B22278D60D00BF200071B782 /* SVGPathSegCurvetoQuadratic.cpp */,
B22278D70D00BF200071B782 /* SVGPathSegCurvetoQuadratic.h */,
B22278D80D00BF200071B782 /* SVGPathSegCurvetoQuadraticAbs.idl */,
B22278D90D00BF200071B782 /* SVGPathSegCurvetoQuadraticRel.idl */,
+ B22278DA0D00BF200071B782 /* SVGPathSegCurvetoQuadraticSmooth.cpp */,
B22278DB0D00BF200071B782 /* SVGPathSegCurvetoQuadraticSmooth.h */,
B22278DC0D00BF200071B782 /* SVGPathSegCurvetoQuadraticSmoothAbs.idl */,
B22278DD0D00BF200071B782 /* SVGPathSegCurvetoQuadraticSmoothRel.idl */,
+ B22278DE0D00BF200071B782 /* SVGPathSegLineto.cpp */,
B22278DF0D00BF200071B782 /* SVGPathSegLineto.h */,
B22278E00D00BF200071B782 /* SVGPathSegLinetoAbs.idl */,
+ B22278E10D00BF200071B782 /* SVGPathSegLinetoHorizontal.cpp */,
B22278E20D00BF200071B782 /* SVGPathSegLinetoHorizontal.h */,
B22278E30D00BF200071B782 /* SVGPathSegLinetoHorizontalAbs.idl */,
B22278E40D00BF200071B782 /* SVGPathSegLinetoHorizontalRel.idl */,
B22278E50D00BF200071B782 /* SVGPathSegLinetoRel.idl */,
+ B22278E60D00BF200071B782 /* SVGPathSegLinetoVertical.cpp */,
B22278E70D00BF200071B782 /* SVGPathSegLinetoVertical.h */,
B22278E80D00BF200071B782 /* SVGPathSegLinetoVerticalAbs.idl */,
B22278E90D00BF200071B782 /* SVGPathSegLinetoVerticalRel.idl */,
@@ -16380,10 +16419,10 @@
8476C9E411DF6A0B00555B02 /* SVGPathSegListBuilder.h */,
84B6B975120F13E500B8EFAF /* SVGPathSegListSource.cpp */,
84B6B976120F13E500B8EFAF /* SVGPathSegListSource.h */,
+ B22278ED0D00BF210071B782 /* SVGPathSegMoveto.cpp */,
B22278EE0D00BF210071B782 /* SVGPathSegMoveto.h */,
B22278EF0D00BF210071B782 /* SVGPathSegMovetoAbs.idl */,
B22278F00D00BF210071B782 /* SVGPathSegMovetoRel.idl */,
- 082DE42C1292621600D923DF /* SVGPathSegWithContext.h */,
84300BD7120C9AD40021954A /* SVGPathSource.h */,
8419D2B7120E0C7600141F8F /* SVGPathStringBuilder.cpp */,
8419D2B8120E0C7600141F8F /* SVGPathStringBuilder.h */,
@@ -17095,6 +17134,7 @@
08A48A6D0E86CF6D00E225DD /* JSSVGElementInstanceCustom.cpp */,
08E4FE450E2BD41400F4CAE0 /* JSSVGLengthCustom.cpp */,
B2C96D8C0B3AF2B7005E80EC /* JSSVGPathSegCustom.cpp */,
+ B297BC6F0B3C14CF0045A590 /* JSSVGPathSegListCustom.cpp */,
087D97BE10FB8D7700C00874 /* JSSVGPODListCustom.h */,
1A2C40AA0DEB55AA005AF19E /* JSTextCustom.cpp */,
516BB7920CE91E6800512F79 /* JSTreeWalkerCustom.cpp */,
@@ -19041,6 +19081,8 @@
8502AB720AD438E600378540 /* DOMSVGAnimatedNumberList.h in Headers */,
8502ABA70AD4396900378540 /* DOMSVGAnimatedNumberListInternal.h in Headers */,
A8E545AF0CA9D1C20097D09B /* DOMSVGAnimatedNumberListInternal.h in Headers */,
+ 85ACEF0C0ACDCCCF001214FF /* DOMSVGAnimatedPathData.h in Headers */,
+ A8E545AE0CA9D1C20097D09B /* DOMSVGAnimatedPathData.h in Headers */,
85ACEF0E0ACDCCCF001214FF /* DOMSVGAnimatedPreserveAspectRatio.h in Headers */,
85ACEF180ACDCD1A001214FF /* DOMSVGAnimatedPreserveAspectRatioInternal.h in Headers */,
A8E545AB0CA9D1C20097D09B /* DOMSVGAnimatedPreserveAspectRatioInternal.h in Headers */,
@@ -19650,7 +19692,6 @@
A88FE3340E5EEE87008D8C0F /* GraphicsContextPrivate.h in Headers */,
0F580B0D0F12A2690051D689 /* GraphicsLayer.h in Headers */,
0F580B0E0F12A2690051D689 /* GraphicsLayerClient.h in Headers */,
- 499B3C59128C641E00E726C2 /* GraphicsLayerMac.h in Headers */,
B2A015AB0AF6CD53006BCE0E /* GraphicsTypes.h in Headers */,
C50B561712119D23008B46E0 /* GroupSettings.h in Headers */,
7693BAD2106C2DCA007B0823 /* HaltablePlugin.h in Headers */,
@@ -19848,7 +19889,6 @@
F33F053E120B0DA500E5743A /* InspectorDebuggerAgent.h in Headers */,
7A24587C1021EAF4000A00AA /* InspectorDOMAgent.h in Headers */,
41F061740F5F00AC00A07EAC /* InspectorDOMStorageResource.h in Headers */,
- 3888F6EF128C9889000CA8E0 /* InspectorFileSystemAgent.h in Headers */,
F344C7141125B82C00F26EEE /* InspectorFrontendClient.h in Headers */,
F344C75311294D9D00F26EEE /* InspectorFrontendClientLocal.h in Headers */,
7A0E770F10C00A8800A0276E /* InspectorFrontendHost.h in Headers */,
@@ -20863,7 +20903,7 @@
088A0E04126EF1DB00978F7A /* SVGAnimatedListPropertyTearOff.h in Headers */,
08B35B13127B6A7C005314DD /* SVGAnimatedNumber.h in Headers */,
08B35B17127B6A88005314DD /* SVGAnimatedNumberList.h in Headers */,
- 089A8E07128D8B3D00E7A534 /* SVGAnimatedPathSegListPropertyTearOff.h in Headers */,
+ B22279850D00BF220071B782 /* SVGAnimatedPathData.h in Headers */,
08FE0BC5127E2AC1000C4FB5 /* SVGAnimatedPreserveAspectRatio.h in Headers */,
088A0E05126EF1DB00978F7A /* SVGAnimatedProperty.h in Headers */,
088A0E06126EF1DB00978F7A /* SVGAnimatedPropertyDescription.h in Headers */,
@@ -20873,7 +20913,6 @@
08C859C01274575400A5728D /* SVGAnimatedRect.h in Headers */,
08525E631278C00100A84778 /* SVGAnimatedStaticPropertyTearOff.h in Headers */,
084DB59B128008CC002A6D64 /* SVGAnimatedString.h in Headers */,
- 08250939128BD4D800E2ED8E /* SVGAnimatedTransformList.h in Headers */,
085A15931289A8DD002710E3 /* SVGAnimatedTransformListPropertyTearOff.h in Headers */,
B22279900D00BF220071B782 /* SVGAnimateElement.h in Headers */,
B22279930D00BF220071B782 /* SVGAnimateMotionElement.h in Headers */,
@@ -20988,10 +21027,8 @@
B2227A7D0D00BF220071B782 /* SVGPathSegLinetoVertical.h in Headers */,
B2227A810D00BF220071B782 /* SVGPathSegList.h in Headers */,
8476C9E611DF6A0B00555B02 /* SVGPathSegListBuilder.h in Headers */,
- 084A0829128D7867002DB1F1 /* SVGPathSegListPropertyTearOff.h in Headers */,
84B6B978120F13E500B8EFAF /* SVGPathSegListSource.h in Headers */,
B2227A840D00BF220071B782 /* SVGPathSegMoveto.h in Headers */,
- 082DE42D1292621600D923DF /* SVGPathSegWithContext.h in Headers */,
84300BD8120C9AD40021954A /* SVGPathSource.h in Headers */,
8419D2BA120E0C7600141F8F /* SVGPathStringBuilder.h in Headers */,
84300BD6120C9AAC0021954A /* SVGPathStringSource.h in Headers */,
@@ -21298,6 +21335,9 @@
93F199ED08245E59001E9ABC /* XSLTProcessor.h in Headers */,
E1BE512E0CF6C512002EA959 /* XSLTUnicodeSort.h in Headers */,
97DD4D870FDF4D6E00ECF9A4 /* XSSAuditor.h in Headers */,
+ 499B3C59128C641E00E726C2 /* GraphicsLayerMac.h in Headers */,
+ 08250939128BD4D800E2ED8E /* SVGAnimatedTransformList.h in Headers */,
+ 3888F6EF128C9889000CA8E0 /* InspectorFileSystemAgent.h in Headers */,
BCB92D4F1293550B00C8387F /* FontBaseline.h in Headers */,
BCA257151293C010007A263D /* VerticalPositionCache.h in Headers */,
BCAE1FA712939DB7004CB026 /* ScrollAnimatorMac.h in Headers */,
@@ -22283,7 +22323,6 @@
B2ED97710B1F55CE00257D0F /* GraphicsContextCG.cpp in Sources */,
B277B4040B22F37C0004BEC6 /* GraphicsContextMac.mm in Sources */,
0F580B0C0F12A2690051D689 /* GraphicsLayer.cpp in Sources */,
- 499B3C5A128C641E00E726C2 /* GraphicsLayerMac.mm in Sources */,
B2A015AA0AF6CD53006BCE0E /* GraphicsTypes.cpp in Sources */,
C50B561612119D23008B46E0 /* GroupSettings.cpp in Sources */,
F55B3DBF1251F12D003EF269 /* HiddenInputType.cpp in Sources */,
@@ -22465,7 +22504,6 @@
F33F053D120B0DA500E5743A /* InspectorDebuggerAgent.cpp in Sources */,
7A24587B1021EAF4000A00AA /* InspectorDOMAgent.cpp in Sources */,
41F061750F5F00AC00A07EAC /* InspectorDOMStorageResource.cpp in Sources */,
- 3888F6EE128C9889000CA8E0 /* InspectorFileSystemAgent.cpp in Sources */,
4F4F5FFB11CBD2E100A186BF /* InspectorFrontend.cpp in Sources */,
F344C75811294FF600F26EEE /* InspectorFrontendClientLocal.cpp in Sources */,
7A0E770E10C00A8800A0276E /* InspectorFrontendHost.cpp in Sources */,
@@ -22961,6 +22999,7 @@
B2FA3DD60AB75A6F000E5AC4 /* JSSVGPathSegLinetoVerticalAbs.cpp in Sources */,
B2FA3DD80AB75A6F000E5AC4 /* JSSVGPathSegLinetoVerticalRel.cpp in Sources */,
B2FA3DDA0AB75A6F000E5AC4 /* JSSVGPathSegList.cpp in Sources */,
+ B297BC700B3C14CF0045A590 /* JSSVGPathSegListCustom.cpp in Sources */,
B2FA3DDC0AB75A6F000E5AC4 /* JSSVGPathSegMovetoAbs.cpp in Sources */,
B2FA3DDE0AB75A6F000E5AC4 /* JSSVGPathSegMovetoRel.cpp in Sources */,
B2FA3DE00AB75A6F000E5AC4 /* JSSVGPatternElement.cpp in Sources */,
@@ -23498,6 +23537,7 @@
65653F2D0D9727D200CA9723 /* SVGAltGlyphElement.cpp in Sources */,
B22279760D00BF220071B782 /* SVGAngle.cpp in Sources */,
B22279790D00BF220071B782 /* SVGAnimateColorElement.cpp in Sources */,
+ B22279840D00BF220071B782 /* SVGAnimatedPathData.cpp in Sources */,
B222798F0D00BF220071B782 /* SVGAnimateElement.cpp in Sources */,
B22279920D00BF220071B782 /* SVGAnimateMotionElement.cpp in Sources */,
B22279940D00BF220071B782 /* SVGAnimateTransformElement.cpp in Sources */,
@@ -23593,9 +23633,20 @@
B2227A580D00BF220071B782 /* SVGPathElement.cpp in Sources */,
8476C9EF11DF6A5800555B02 /* SVGPathParser.cpp in Sources */,
84300BD3120C9A710021954A /* SVGPathParserFactory.cpp in Sources */,
+ A8BCFD05120A046100B5F122 /* SVGPathSeg.cpp in Sources */,
+ B2227A5D0D00BF220071B782 /* SVGPathSegArc.cpp in Sources */,
+ B2227A610D00BF220071B782 /* SVGPathSegClosePath.cpp in Sources */,
+ B2227A640D00BF220071B782 /* SVGPathSegCurvetoCubic.cpp in Sources */,
+ B2227A680D00BF220071B782 /* SVGPathSegCurvetoCubicSmooth.cpp in Sources */,
+ B2227A6C0D00BF220071B782 /* SVGPathSegCurvetoQuadratic.cpp in Sources */,
+ B2227A700D00BF220071B782 /* SVGPathSegCurvetoQuadraticSmooth.cpp in Sources */,
+ B2227A740D00BF220071B782 /* SVGPathSegLineto.cpp in Sources */,
+ B2227A770D00BF220071B782 /* SVGPathSegLinetoHorizontal.cpp in Sources */,
+ B2227A7C0D00BF220071B782 /* SVGPathSegLinetoVertical.cpp in Sources */,
B2227A800D00BF220071B782 /* SVGPathSegList.cpp in Sources */,
8476C9E511DF6A0B00555B02 /* SVGPathSegListBuilder.cpp in Sources */,
84B6B977120F13E500B8EFAF /* SVGPathSegListSource.cpp in Sources */,
+ B2227A830D00BF220071B782 /* SVGPathSegMoveto.cpp in Sources */,
8419D2B9120E0C7600141F8F /* SVGPathStringBuilder.cpp in Sources */,
84300BDA120C9AED0021954A /* SVGPathStringSource.cpp in Sources */,
84C5B2FA1216DC810088B53A /* SVGPathTraversalStateBuilder.cpp in Sources */,
@@ -23854,7 +23905,8 @@
93F19B0508245E59001E9ABC /* XSLTProcessorLibxslt.cpp in Sources */,
E1BE512D0CF6C512002EA959 /* XSLTUnicodeSort.cpp in Sources */,
97DD4D860FDF4D6E00ECF9A4 /* XSSAuditor.cpp in Sources */,
- 08FF102012950F5A00F00276 /* SVGPathSegListPropertyTearOff.cpp in Sources */,
+ 499B3C5A128C641E00E726C2 /* GraphicsLayerMac.mm in Sources */,
+ 3888F6EE128C9889000CA8E0 /* InspectorFileSystemAgent.cpp in Sources */,
BCAE1FA612939DB7004CB026 /* ScrollAnimatorMac.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
diff --git a/WebCore/bindings/js/JSBindingsAllInOne.cpp b/WebCore/bindings/js/JSBindingsAllInOne.cpp
index a80b70e..e46b050 100644
--- a/WebCore/bindings/js/JSBindingsAllInOne.cpp
+++ b/WebCore/bindings/js/JSBindingsAllInOne.cpp
@@ -117,6 +117,7 @@
#include "JSSVGElementInstanceCustom.cpp"
#include "JSSVGLengthCustom.cpp"
#include "JSSVGPathSegCustom.cpp"
+#include "JSSVGPathSegListCustom.cpp"
#include "JSScriptProfileNodeCustom.cpp"
#include "JSSharedWorkerCustom.cpp"
#include "JSStorageCustom.cpp"
diff --git a/WebCore/bindings/js/JSDOMBinding.cpp b/WebCore/bindings/js/JSDOMBinding.cpp
index 02daf93..e4cff4a 100644
--- a/WebCore/bindings/js/JSDOMBinding.cpp
+++ b/WebCore/bindings/js/JSDOMBinding.cpp
@@ -611,7 +611,7 @@ void setDOMException(ExecState* exec, ExceptionCode ec)
break;
#if ENABLE(SVG)
case SVGExceptionType:
- errorObject = toJS(exec, globalObject, SVGException::create(description).get());
+ errorObject = toJS(exec, globalObject, SVGException::create(description).get(), 0 /* no context on purpose */);
break;
#endif
#if ENABLE(XPATH)
diff --git a/WebCore/bindings/js/JSDOMBinding.h b/WebCore/bindings/js/JSDOMBinding.h
index 54e9cf6..64a3dad 100644
--- a/WebCore/bindings/js/JSDOMBinding.h
+++ b/WebCore/bindings/js/JSDOMBinding.h
@@ -25,6 +25,7 @@
#include "JSDOMGlobalObject.h"
#include "JSDOMWrapper.h"
#include "DOMWrapperWorld.h"
+#include "JSSVGContextCache.h"
#include "Document.h"
#include <runtime/Completion.h>
#include <runtime/Lookup.h>
@@ -49,6 +50,10 @@ namespace WebCore {
typedef int ExceptionCode;
+#if ENABLE(SVG)
+ class SVGElement;
+#endif
+
// FIXME: This class should collapse into DOMObject once all DOMObjects are
// updated to store a globalObject pointer.
class DOMObjectWithGlobalPointer : public DOMObject {
@@ -180,6 +185,28 @@ namespace WebCore {
return createDOMObjectWrapper<WrapperClass>(exec, globalObject, object);
}
+#if ENABLE(SVG)
+ #define CREATE_SVG_OBJECT_WRAPPER(exec, globalObject, className, object, context) createDOMObjectWrapper<JS##className>(exec, globalObject, static_cast<className*>(object), context)
+ template<class WrapperClass, class DOMClass> inline DOMObject* createDOMObjectWrapper(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, DOMClass* object, SVGElement* context)
+ {
+ DOMObject* wrapper = createDOMObjectWrapper<WrapperClass, DOMClass>(exec, globalObject, object);
+ ASSERT(wrapper);
+ if (context)
+ JSSVGContextCache::addWrapper(wrapper, context);
+ return wrapper;
+ }
+ template<class WrapperClass, class DOMClass> inline JSC::JSValue getDOMObjectWrapper(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, DOMClass* object, SVGElement* context)
+ {
+ if (!object)
+ return JSC::jsNull();
+ if (DOMObject* wrapper = getCachedDOMObjectWrapper(exec, object)) {
+ ASSERT(JSSVGContextCache::svgContextForDOMObject(wrapper) == context);
+ return wrapper;
+ }
+ return createDOMObjectWrapper<WrapperClass, DOMClass>(exec, globalObject, object, context);
+ }
+#endif
+
#define CREATE_DOM_NODE_WRAPPER(exec, globalObject, className, object) createDOMNodeWrapper<JS##className>(exec, globalObject, static_cast<className*>(object))
template<class WrapperClass, class DOMClass> inline JSNode* createDOMNodeWrapper(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, DOMClass* node)
{
diff --git a/WebCore/bindings/js/JSSVGPathSegCustom.cpp b/WebCore/bindings/js/JSSVGPathSegCustom.cpp
index f0aa86b..eac2c4b 100644
--- a/WebCore/bindings/js/JSSVGPathSegCustom.cpp
+++ b/WebCore/bindings/js/JSSVGPathSegCustom.cpp
@@ -58,56 +58,58 @@ using namespace JSC;
namespace WebCore {
-JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, SVGPathSeg* object)
+JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, SVGPathSeg* object, SVGElement* context)
{
if (!object)
return jsNull();
- if (DOMObject* wrapper = getCachedDOMObjectWrapper(exec, object))
+ if (DOMObject* wrapper = getCachedDOMObjectWrapper(exec, object)) {
+ ASSERT(JSSVGContextCache::svgContextForDOMObject(wrapper) == context);
return wrapper;
+ }
switch (object->pathSegType()) {
case SVGPathSeg::PATHSEG_CLOSEPATH:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegClosePath, object);
+ return CREATE_SVG_OBJECT_WRAPPER(exec, globalObject, SVGPathSegClosePath, object, context);
case SVGPathSeg::PATHSEG_MOVETO_ABS:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegMovetoAbs, object);
+ return CREATE_SVG_OBJECT_WRAPPER(exec, globalObject, SVGPathSegMovetoAbs, object, context);
case SVGPathSeg::PATHSEG_MOVETO_REL:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegMovetoRel, object);
+ return CREATE_SVG_OBJECT_WRAPPER(exec, globalObject, SVGPathSegMovetoRel, object, context);
case SVGPathSeg::PATHSEG_LINETO_ABS:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegLinetoAbs, object);
+ return CREATE_SVG_OBJECT_WRAPPER(exec, globalObject, SVGPathSegLinetoAbs, object, context);
case SVGPathSeg::PATHSEG_LINETO_REL:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegLinetoRel, object);
+ return CREATE_SVG_OBJECT_WRAPPER(exec, globalObject, SVGPathSegLinetoRel, object, context);
case SVGPathSeg::PATHSEG_CURVETO_CUBIC_ABS:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegCurvetoCubicAbs, object);
+ return CREATE_SVG_OBJECT_WRAPPER(exec, globalObject, SVGPathSegCurvetoCubicAbs, object, context);
case SVGPathSeg::PATHSEG_CURVETO_CUBIC_REL:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegCurvetoCubicRel, object);
+ return CREATE_SVG_OBJECT_WRAPPER(exec, globalObject, SVGPathSegCurvetoCubicRel, object, context);
case SVGPathSeg::PATHSEG_CURVETO_QUADRATIC_ABS:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegCurvetoQuadraticAbs, object);
+ return CREATE_SVG_OBJECT_WRAPPER(exec, globalObject, SVGPathSegCurvetoQuadraticAbs, object, context);
case SVGPathSeg::PATHSEG_CURVETO_QUADRATIC_REL:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegCurvetoQuadraticRel, object);
+ return CREATE_SVG_OBJECT_WRAPPER(exec, globalObject, SVGPathSegCurvetoQuadraticRel, object, context);
case SVGPathSeg::PATHSEG_ARC_ABS:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegArcAbs, object);
+ return CREATE_SVG_OBJECT_WRAPPER(exec, globalObject, SVGPathSegArcAbs, object, context);
case SVGPathSeg::PATHSEG_ARC_REL:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegArcRel, object);
+ return CREATE_SVG_OBJECT_WRAPPER(exec, globalObject, SVGPathSegArcRel, object, context);
case SVGPathSeg::PATHSEG_LINETO_HORIZONTAL_ABS:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegLinetoHorizontalAbs, object);
+ return CREATE_SVG_OBJECT_WRAPPER(exec, globalObject, SVGPathSegLinetoHorizontalAbs, object, context);
case SVGPathSeg::PATHSEG_LINETO_HORIZONTAL_REL:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegLinetoHorizontalRel, object);
+ return CREATE_SVG_OBJECT_WRAPPER(exec, globalObject, SVGPathSegLinetoHorizontalRel, object, context);
case SVGPathSeg::PATHSEG_LINETO_VERTICAL_ABS:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegLinetoVerticalAbs, object);
+ return CREATE_SVG_OBJECT_WRAPPER(exec, globalObject, SVGPathSegLinetoVerticalAbs, object, context);
case SVGPathSeg::PATHSEG_LINETO_VERTICAL_REL:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegLinetoVerticalRel, object);
+ return CREATE_SVG_OBJECT_WRAPPER(exec, globalObject, SVGPathSegLinetoVerticalRel, object, context);
case SVGPathSeg::PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegCurvetoCubicSmoothAbs, object);
+ return CREATE_SVG_OBJECT_WRAPPER(exec, globalObject, SVGPathSegCurvetoCubicSmoothAbs, object, context);
case SVGPathSeg::PATHSEG_CURVETO_CUBIC_SMOOTH_REL:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegCurvetoCubicSmoothRel, object);
+ return CREATE_SVG_OBJECT_WRAPPER(exec, globalObject, SVGPathSegCurvetoCubicSmoothRel, object, context);
case SVGPathSeg::PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegCurvetoQuadraticSmoothAbs, object);
+ return CREATE_SVG_OBJECT_WRAPPER(exec, globalObject, SVGPathSegCurvetoQuadraticSmoothAbs, object, context);
case SVGPathSeg::PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSegCurvetoQuadraticSmoothRel, object);
+ return CREATE_SVG_OBJECT_WRAPPER(exec, globalObject, SVGPathSegCurvetoQuadraticSmoothRel, object, context);
case SVGPathSeg::PATHSEG_UNKNOWN:
default:
- return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, SVGPathSeg, object);
+ return CREATE_SVG_OBJECT_WRAPPER(exec, globalObject, SVGPathSeg, object, context);
}
}
diff --git a/WebCore/bindings/js/JSSVGPathSegListCustom.cpp b/WebCore/bindings/js/JSSVGPathSegListCustom.cpp
new file mode 100644
index 0000000..9767c1a
--- /dev/null
+++ b/WebCore/bindings/js/JSSVGPathSegListCustom.cpp
@@ -0,0 +1,173 @@
+/*
+ * Copyright (C) 2006, 2007, 2008 Nikolas Zimmermann <zimmermann at kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "config.h"
+
+#if ENABLE(SVG)
+#include "JSSVGPathSegList.h"
+
+#include "Document.h"
+#include "Frame.h"
+#include "JSSVGContextCache.h"
+#include "JSSVGPathSeg.h"
+#include "SVGDocumentExtensions.h"
+#include "SVGElement.h"
+#include "SVGPathSegList.h"
+
+#include <wtf/Assertions.h>
+
+using namespace JSC;
+
+namespace WebCore {
+
+JSValue JSSVGPathSegList::clear(ExecState* exec)
+{
+ ExceptionCode ec = 0;
+
+ SVGPathSegList* list = impl();
+ list->clear(ec);
+
+ setDOMException(exec, ec);
+
+ JSSVGContextCache::propagateSVGDOMChange(this, list->associatedAttributeName());
+ return jsUndefined();
+}
+
+JSValue JSSVGPathSegList::initialize(ExecState* exec)
+{
+ ExceptionCode ec = 0;
+ SVGPathSeg* newItem = toSVGPathSeg(exec->argument(0));
+
+ SVGPathSegList* list = impl();
+
+ SVGPathSeg* obj = WTF::getPtr(list->initialize(newItem, ec));
+ SVGElement* context = JSSVGContextCache::svgContextForDOMObject(this);
+
+ JSValue result = toJS(exec, globalObject(), obj, context);
+ setDOMException(exec, ec);
+
+ JSSVGContextCache::propagateSVGDOMChange(this, list->associatedAttributeName());
+ return result;
+}
+
+JSValue JSSVGPathSegList::getItem(ExecState* exec)
+{
+ ExceptionCode ec = 0;
+
+ bool indexOk;
+ unsigned index = finiteInt32Value(exec->argument(0), exec, indexOk);
+ if (!indexOk) {
+ setDOMException(exec, TYPE_MISMATCH_ERR);
+ return jsUndefined();
+ }
+
+ SVGPathSegList* list = impl();
+ SVGPathSeg* obj = WTF::getPtr(list->getItem(index, ec));
+ SVGElement* context = JSSVGContextCache::svgContextForDOMObject(this);
+
+ JSValue result = toJS(exec, globalObject(), obj, context);
+ setDOMException(exec, ec);
+ return result;
+}
+
+JSValue JSSVGPathSegList::insertItemBefore(ExecState* exec)
+{
+ ExceptionCode ec = 0;
+ SVGPathSeg* newItem = toSVGPathSeg(exec->argument(0));
+
+ bool indexOk;
+ unsigned index = finiteInt32Value(exec->argument(1), exec, indexOk);
+ if (!indexOk) {
+ setDOMException(exec, TYPE_MISMATCH_ERR);
+ return jsUndefined();
+ }
+
+ SVGPathSegList* list = impl();
+ SVGElement* context = JSSVGContextCache::svgContextForDOMObject(this);
+
+ JSValue result = toJS(exec, globalObject(), WTF::getPtr(list->insertItemBefore(newItem, index, ec)), context);
+ setDOMException(exec, ec);
+
+ JSSVGContextCache::propagateSVGDOMChange(this, list->associatedAttributeName());
+ return result;
+}
+
+JSValue JSSVGPathSegList::replaceItem(ExecState* exec)
+{
+ ExceptionCode ec = 0;
+ SVGPathSeg* newItem = toSVGPathSeg(exec->argument(0));
+
+ bool indexOk;
+ unsigned index = finiteInt32Value(exec->argument(1), exec, indexOk);
+ if (!indexOk) {
+ setDOMException(exec, TYPE_MISMATCH_ERR);
+ return jsUndefined();
+ }
+
+ SVGPathSegList* list = impl();
+ SVGElement* context = JSSVGContextCache::svgContextForDOMObject(this);
+
+ JSValue result = toJS(exec, globalObject(), WTF::getPtr(list->replaceItem(newItem, index, ec)), context);
+ setDOMException(exec, ec);
+
+ JSSVGContextCache::propagateSVGDOMChange(this, list->associatedAttributeName());
+ return result;
+}
+
+JSValue JSSVGPathSegList::removeItem(ExecState* exec)
+{
+ ExceptionCode ec = 0;
+
+ bool indexOk;
+ unsigned index = finiteInt32Value(exec->argument(0), exec, indexOk);
+ if (!indexOk) {
+ setDOMException(exec, TYPE_MISMATCH_ERR);
+ return jsUndefined();
+ }
+
+ SVGPathSegList* list = impl();
+
+ RefPtr<SVGPathSeg> obj(list->removeItem(index, ec));
+ SVGElement* context = JSSVGContextCache::svgContextForDOMObject(this);
+
+ JSValue result = toJS(exec, globalObject(), obj.get(), context);
+ setDOMException(exec, ec);
+
+ JSSVGContextCache::propagateSVGDOMChange(this, list->associatedAttributeName());
+ return result;
+}
+
+JSValue JSSVGPathSegList::appendItem(ExecState* exec)
+{
+ ExceptionCode ec = 0;
+ SVGPathSeg* newItem = toSVGPathSeg(exec->argument(0));
+
+ SVGPathSegList* list = impl();
+ SVGElement* context = JSSVGContextCache::svgContextForDOMObject(this);
+
+ JSValue result = toJS(exec, globalObject(), WTF::getPtr(list->appendItem(newItem, ec)), context);
+ setDOMException(exec, ec);
+
+ JSSVGContextCache::propagateSVGDOMChange(this, list->associatedAttributeName());
+ return result;
+}
+
+}
+
+#endif // ENABLE(SVG)
diff --git a/WebCore/bindings/scripts/CodeGenerator.pm b/WebCore/bindings/scripts/CodeGenerator.pm
index 42f3f1c..1e56b0c 100644
--- a/WebCore/bindings/scripts/CodeGenerator.pm
+++ b/WebCore/bindings/scripts/CodeGenerator.pm
@@ -75,7 +75,6 @@ my %svgTypeNeedingTearOff = (
"SVGMatrix" => "SVGPropertyTearOff<SVGMatrix>",
"SVGNumber" => "SVGPropertyTearOff<float>",
"SVGNumberList" => "SVGListPropertyTearOff<SVGNumberList>",
- "SVGPathSegList" => "SVGPathSegListPropertyTearOff",
"SVGPoint" => "SVGPropertyTearOff<FloatPoint>",
"SVGPointList" => "SVGListPropertyTearOff<SVGPointList>",
"SVGPreserveAspectRatio" => "SVGPropertyTearOff<SVGPreserveAspectRatio>",
diff --git a/WebCore/bindings/scripts/CodeGeneratorJS.pm b/WebCore/bindings/scripts/CodeGeneratorJS.pm
index 542b67a..ea32615 100644
--- a/WebCore/bindings/scripts/CodeGeneratorJS.pm
+++ b/WebCore/bindings/scripts/CodeGeneratorJS.pm
@@ -316,6 +316,25 @@ sub AddClassForwardIfNeeded
}
}
+# FIXME: This method will go away once all SVG animated properties are converted to the new scheme.
+sub IsSVGTypeNeedingContextParameter
+{
+ # FIXME: This function will be removed, as soon the PODType concept is gone, and all SVG datatypes use the new style JS bindings.
+
+ my $implClassName = shift;
+
+ return 0 unless $implClassName =~ /SVG/;
+ return 0 if $implClassName =~ /Element/;
+ return 0 if $codeGenerator->IsSVGAnimatedType($implClassName);
+ return 0 if $codeGenerator->IsSVGTypeNeedingTearOff($implClassName);
+
+ my @noContextNeeded = ("SVGColor", "SVGDocument", "SVGPaint", "SVGZoomEvent");
+ foreach (@noContextNeeded) {
+ return 0 if $implClassName eq $_;
+ }
+ return 1;
+}
+
sub HashValueForClassAndName
{
my $class = shift;
@@ -918,6 +937,8 @@ sub GenerateHeader
if (!$hasParent || $dataNode->extendedAttributes->{"GenerateToJS"} || $dataNode->extendedAttributes->{"CustomToJS"}) {
if ($svgPropertyType) {
push(@headerContent, "JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, $implType*);\n");
+ } elsif (IsSVGTypeNeedingContextParameter($implClassName)) {
+ push(@headerContent, "JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, $implType*, SVGElement* context);\n");
} else {
push(@headerContent, "JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, $implType*);\n");
}
@@ -1440,6 +1461,8 @@ sub GenerateImplementation
} else {
push(@implContent, " forgetDOMObject(this, impl());\n");
}
+
+ push(@implContent, " JSSVGContextCache::forgetWrapper(this);\n") if IsSVGTypeNeedingContextParameter($implClassName);
}
push(@implContent, "}\n\n");
@@ -1770,6 +1793,9 @@ sub GenerateImplementation
push(@implContent, ", ec") if @{$attribute->setterExceptions};
push(@implContent, ");\n");
push(@implContent, " setDOMException(exec, ec);\n") if @{$attribute->setterExceptions};
+ if (IsSVGTypeNeedingContextParameter($implClassName)) {
+ push(@implContent, " JSSVGContextCache::propagateSVGDOMChange(castedThis, imp->associatedAttributeName());\n");
+ }
}
}
@@ -2089,12 +2115,16 @@ sub GenerateImplementation
if ((!$hasParent or $dataNode->extendedAttributes->{"GenerateToJS"}) and !$dataNode->extendedAttributes->{"CustomToJS"}) {
if ($svgPropertyType) {
push(@implContent, "JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, $implType* object)\n");
+ } elsif ($podType or IsSVGTypeNeedingContextParameter($implClassName)) {
+ push(@implContent, "JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, $implType* object, SVGElement* context)\n");
} else {
push(@implContent, "JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, $implType* object)\n");
}
push(@implContent, "{\n");
if ($svgPropertyType) {
push(@implContent, " return getDOMObjectWrapper<$className, $implType>(exec, globalObject, object);\n");
+ } elsif (IsSVGTypeNeedingContextParameter($implClassName)) {
+ push(@implContent, " return getDOMObjectWrapper<$className>(exec, globalObject, object, context);\n");
} else {
push(@implContent, " return getDOMObjectWrapper<$className>(exec, globalObject, object);\n");
}
@@ -2395,11 +2425,6 @@ sub GetSVGPropertyTypes
$headerIncludes{"$svgWrappedNativeType.h"} = 1;
$headerIncludes{"SVGAnimatedListPropertyTearOff.h"} = 1;
$headerIncludes{"SVGTransformListPropertyTearOff.h"} = 1;
- } elsif ($svgNativeType =~ /SVGPathSegListPropertyTearOff/) {
- $svgListPropertyType = $svgWrappedNativeType;
- $headerIncludes{"$svgWrappedNativeType.h"} = 1;
- $headerIncludes{"SVGAnimatedListPropertyTearOff.h"} = 1;
- $headerIncludes{"SVGPathSegListPropertyTearOff.h"} = 1;
}
return ($svgPropertyType, $svgListPropertyType, $svgNativeType);
@@ -2528,6 +2553,11 @@ sub NativeToJSValue
return $value if $codeGenerator->IsSVGAnimatedType($type);
+ if (IsSVGTypeNeedingContextParameter($type)) {
+ my $contextPtr = IsSVGTypeNeedingContextParameter($implClassName) ? "JSSVGContextCache::svgContextForDOMObject(castedThis)" : "imp";
+ return "toJS(exec, $globalObject, WTF::getPtr($value), $contextPtr)";
+ }
+
if ($signature->extendedAttributes->{"ReturnsNew"}) {
return "toJSNewlyCreated(exec, $globalObject, WTF::getPtr($value))";
}
@@ -2564,7 +2594,7 @@ sub NativeToJSValue
} elsif ($tearOffType =~ /SVGStaticListPropertyTearOff/) {
my $extraImp = "GetOwnerElementForType<$implClassName, IsDerivedFromSVGElement<$implClassName>::value>::ownerElement(imp), ";
$value = "${tearOffType}::create($extraImp$value)";
- } elsif (not $tearOffType =~ /SVG(Point|PathSeg)List/) {
+ } elsif (not $tearOffType =~ /SVGPointList/) {
$value = "${tearOffType}::create($value)";
}
}
diff --git a/WebCore/bindings/scripts/CodeGeneratorObjC.pm b/WebCore/bindings/scripts/CodeGeneratorObjC.pm
index 979b71e..50334a2 100644
--- a/WebCore/bindings/scripts/CodeGeneratorObjC.pm
+++ b/WebCore/bindings/scripts/CodeGeneratorObjC.pm
@@ -673,9 +673,6 @@ sub GetSVGPropertyTypes
} elsif ($svgNativeType =~ /SVGTransformListPropertyTearOff/) {
$svgListPropertyType = "WebCore::$svgWrappedNativeType";
$svgListPropertyType =~ s/</\<WebCore::/;
- } elsif ($svgNativeType =~ /SVGPathSegListPropertyTearOff/) {
- $svgListPropertyType = "WebCore::$svgWrappedNativeType";
- $svgListPropertyType =~ s/</\<WebCore::/;
}
return ($svgPropertyType, $svgListPropertyType, $svgNativeType);
@@ -1007,7 +1004,6 @@ sub GenerateHeader
if ($svgListPropertyType) {
push(@internalHeaderContent, "#import <WebCore/SVGAnimatedListPropertyTearOff.h>\n\n");
push(@internalHeaderContent, "#import <WebCore/SVGTransformListPropertyTearOff.h>\n\n") if $svgListPropertyType =~ /SVGTransformList/;
- push(@internalHeaderContent, "#import <WebCore/SVGPathSegListPropertyTearOff.h>\n\n") if $svgListPropertyType =~ /SVGPathSegList/;
}
push(@internalHeaderContent, $interfaceAvailabilityVersionCheck) if length $interfaceAvailabilityVersion;
@@ -1314,13 +1310,13 @@ sub GenerateImplementation
my $updateMethod = "&${implClassNameWithNamespace}::update" . $codeGenerator->WK_ucfirst($getter);
$getterContentHead = "kit(WTF::getPtr(${idlTypeWithNamespace}::create(IMPL, $getterContentHead$getterContentTail, $updateMethod";
$getterContentTail .= "))";
- } elsif ($idlTypeWithNamespace =~ /SVG(Point|PathSeg)List/) {
- $getterContentHead = "kit(WTF::getPtr($getterContentHead";
- $getterContentTail .= "))";
} elsif ($idlTypeWithNamespace =~ /SVGStaticListPropertyTearOff/) {
my $extraImp = "WebCore::GetOwnerElementForType<$implClassNameWithNamespace, WebCore::IsDerivedFromSVGElement<$implClassNameWithNamespace>::value>::ownerElement(IMPL), ";
$getterContentHead = "kit(WTF::getPtr(${idlTypeWithNamespace}::create($extraImp$getterContentHead";
$getterContentTail .= ")))";
+ } elsif ($idlTypeWithNamespace =~ /SVGPointList/) {
+ $getterContentHead = "kit(WTF::getPtr($getterContentHead";
+ $getterContentTail .= "))";
} else {
$getterContentHead = "kit(WTF::getPtr(${idlTypeWithNamespace}::create($getterContentHead";
$getterContentTail .= ")))";
diff --git a/WebCore/bindings/scripts/CodeGeneratorV8.pm b/WebCore/bindings/scripts/CodeGeneratorV8.pm
index a86efdc..985ecd2 100644
--- a/WebCore/bindings/scripts/CodeGeneratorV8.pm
+++ b/WebCore/bindings/scripts/CodeGeneratorV8.pm
@@ -679,9 +679,18 @@ sub GenerateNormalAttrGetter
my $interfaceName = shift;
my $attrExt = $attribute->signature->extendedAttributes;
+
my $attrName = $attribute->signature->name;
+
my $attrType = GetTypeFromSignature($attribute->signature);
+
my $nativeType = GetNativeTypeFromSignature($attribute->signature, -1);
+ my $skipContext = 0;
+
+ # Special case: SVGZoomEvent's attributes are all read-only
+ if ($implClassName eq "SVGZoomEvent") {
+ $skipContext = 1;
+ }
my $getterStringUsesImp = $implClassName ne "SVGNumber";
my $svgNativeType = $codeGenerator->GetSVGTypeNeedingTearOff($implClassName);
@@ -825,6 +834,14 @@ END
return;
}
+ if (IsSVGTypeNeedingContextParameter($attrType) && !$skipContext) {
+ push(@implContentDecls, GenerateSVGContextRetrieval($implClassName, " "));
+ # The templating associated with passing withSVGContext()'s return value directly into toV8 can get compilers confused,
+ # so just manually set the return value to a PassRefPtr of the expected type.
+ push(@implContentDecls, " PassRefPtr<$attrType> resultAsPassRefPtr = V8Proxy::withSVGContext($result, context);\n");
+ $result = "resultAsPassRefPtr";
+ }
+
if ($codeGenerator->IsSVGAnimatedType($implClassName) and $codeGenerator->IsSVGTypeNeedingTearOff($attrType)) {
$implIncludes{"V8$attrType.h"} = 1;
my $svgNativeType = $codeGenerator->GetSVGTypeNeedingTearOff($attrType);
@@ -862,7 +879,7 @@ END
} elsif ($tearOffType =~ /SVGStaticListPropertyTearOff/) {
my $extraImp = "GetOwnerElementForType<$implClassName, IsDerivedFromSVGElement<$implClassName>::value>::ownerElement(imp), ";
push(@implContentDecls, " return toV8(WTF::getPtr(${tearOffType}::create($extraImp$result)));\n");
- } elsif ($tearOffType =~ /SVG(Point|PathSeg)List/) {
+ } elsif ($tearOffType =~ /SVGPointList/) {
push(@implContentDecls, " return toV8(WTF::getPtr($result));\n");
} else {
push(@implContentDecls, " return toV8(WTF::getPtr(${tearOffType}::create($result)));\n");
@@ -1019,6 +1036,10 @@ END
} else {
push(@implContentDecls, " wrapper->commitChange();\n");
}
+ } elsif (IsSVGTypeNeedingContextParameter($implClassName)) {
+ $implIncludes{"SVGElement.h"} = 1;
+ push(@implContentDecls, " if (SVGElement* context = V8Proxy::svgContext(imp))\n");
+ push(@implContentDecls, " context->svgAttributeChanged(imp->associatedAttributeName());\n");
}
push(@implContentDecls, " return;\n");
@@ -2701,6 +2722,23 @@ sub GenerateFunctionCallString()
return $result;
}
+ my $generatedSVGContextRetrieval = 0;
+ # If the return type needs an SVG context, output it
+ if (IsSVGTypeNeedingContextParameter($returnType)) {
+ $result .= GenerateSVGContextAssignment($implClassName, $return . ".get()", $indent);
+ $generatedSVGContextRetrieval = 1;
+ }
+
+ if (IsSVGTypeNeedingContextParameter($implClassName) && $implClassName =~ /List$/ && IsSVGListMutator($name)) {
+ if (!$generatedSVGContextRetrieval) {
+ $result .= GenerateSVGContextRetrieval($implClassName, $indent);
+ $generatedSVGContextRetrieval = 1;
+ }
+
+ $result .= $indent . "context->svgAttributeChanged(imp->associatedAttributeName());\n";
+ $implIncludes{"SVGElement.h"} = 1;
+ }
+
# If the implementing class is a POD type, commit changes
if ($codeGenerator->IsSVGTypeNeedingTearOff($implClassName) and not $implClassName =~ /List$/) {
$result .= $indent . "wrapper->commitChange();\n";
@@ -3170,6 +3208,64 @@ sub WriteData
}
}
+# FIXME: This method will go away once all SVG animated properties are converted to the new scheme.
+sub IsSVGTypeNeedingContextParameter
+{
+ my $implClassName = shift;
+
+ return 0 unless $implClassName =~ /SVG/;
+ return 0 if $implClassName =~ /Element/;
+ return 0 if $codeGenerator->IsSVGAnimatedType($implClassName);
+ return 0 if $codeGenerator->IsSVGTypeNeedingTearOff($implClassName);
+
+ my @noContextNeeded = ("SVGColor", "SVGDocument", "SVGPaintType", "SVGPaint", "SVGZoomEvent");
+ foreach (@noContextNeeded) {
+ return 0 if $implClassName eq $_;
+ }
+ return 1;
+}
+
+# FIXME: This method will go away once all SVG animated properties are converted to the new scheme.
+sub GenerateSVGContextAssignment
+{
+ my $srcType = shift;
+ my $value = shift;
+ my $indent = shift;
+
+ $result = GenerateSVGContextRetrieval($srcType, $indent);
+ $result .= $indent . "V8Proxy::setSVGContext($value, context);\n";
+
+ return $result;
+}
+
+# FIXME: This method will go away once all SVG animated properties are converted to the new scheme.
+sub GenerateSVGContextRetrieval
+{
+ my $srcType = shift;
+ my $indent = shift;
+
+ my $contextDecl = "imp";
+ if (IsSVGTypeNeedingContextParameter($srcType)) {
+ $contextDecl = "V8Proxy::svgContext($contextDecl)";
+ }
+
+ return $indent . "SVGElement* context = $contextDecl;\n";
+}
+
+sub IsSVGListMutator
+{
+ my $functionName = shift;
+
+ return 1 if $functionName eq "clear";
+ return 1 if $functionName eq "initialize";
+ return 1 if $functionName eq "insertItemBefore";
+ return 1 if $functionName eq "replaceItem";
+ return 1 if $functionName eq "removeItem";
+ return 1 if $functionName eq "appendItem";
+
+ return 0;
+}
+
sub GetVisibleInterfaceName
{
my $interfaceName = shift;
diff --git a/WebCore/rendering/SVGRenderTreeAsText.cpp b/WebCore/rendering/SVGRenderTreeAsText.cpp
index 4e47ec8..b9a854d 100644
--- a/WebCore/rendering/SVGRenderTreeAsText.cpp
+++ b/WebCore/rendering/SVGRenderTreeAsText.cpp
@@ -415,8 +415,7 @@ static TextStream& operator<<(TextStream& ts, const RenderSVGPath& path)
} else if (svgElement->hasTagName(SVGNames::pathTag)) {
SVGPathElement* element = static_cast<SVGPathElement*>(svgElement);
String pathString;
- // FIXME: We should switch to UnalteredParsing here - this will affect the path dumping output of dozens of tests.
- SVGPathParserFactory::self()->buildStringFromByteStream(element->pathByteStream(), pathString, NormalizedParsing);
+ SVGPathParserFactory::self()->buildStringFromSVGPathSegList(element->pathSegList(), pathString, UnalteredParsing);
writeNameAndQuotedValue(ts, "data", pathString);
} else
ASSERT_NOT_REACHED();
diff --git a/WebCore/svg/SVGAllInOne.cpp b/WebCore/svg/SVGAllInOne.cpp
index 65e0d3a..e01af2c 100644
--- a/WebCore/svg/SVGAllInOne.cpp
+++ b/WebCore/svg/SVGAllInOne.cpp
@@ -30,6 +30,7 @@
#include "SVGAltGlyphElement.cpp"
#include "SVGAngle.cpp"
#include "SVGAnimateColorElement.cpp"
+#include "SVGAnimatedPathData.cpp"
#include "SVGAnimateElement.cpp"
#include "SVGAnimateMotionElement.cpp"
#include "SVGAnimateTransformElement.cpp"
@@ -112,8 +113,20 @@
#include "SVGPathElement.cpp"
#include "SVGPathParser.cpp"
#include "SVGPathParserFactory.cpp"
+#include "SVGPathSeg.cpp"
+#include "SVGPathSegArc.cpp"
+#include "SVGPathSegClosePath.cpp"
+#include "SVGPathSegCurvetoCubic.cpp"
+#include "SVGPathSegCurvetoCubicSmooth.cpp"
+#include "SVGPathSegCurvetoQuadratic.cpp"
+#include "SVGPathSegCurvetoQuadraticSmooth.cpp"
+#include "SVGPathSegLineto.cpp"
+#include "SVGPathSegLinetoHorizontal.cpp"
+#include "SVGPathSegLinetoVertical.cpp"
+#include "SVGPathSegList.cpp"
#include "SVGPathSegListBuilder.cpp"
#include "SVGPathSegListSource.cpp"
+#include "SVGPathSegMoveto.cpp"
#include "SVGPathStringBuilder.cpp"
#include "SVGPathStringSource.cpp"
#include "SVGPathTraversalStateBuilder.cpp"
diff --git a/WebCore/svg/SVGStylable.cpp b/WebCore/svg/SVGAnimatedPathData.cpp
similarity index 100%
copy from WebCore/svg/SVGStylable.cpp
copy to WebCore/svg/SVGAnimatedPathData.cpp
diff --git a/WebCore/svg/SVGAnimatedPathData.h b/WebCore/svg/SVGAnimatedPathData.h
new file mode 100644
index 0000000..5ff66d3
--- /dev/null
+++ b/WebCore/svg/SVGAnimatedPathData.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann at kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis at kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef SVGAnimatedPathData_h
+#define SVGAnimatedPathData_h
+
+#if ENABLE(SVG)
+
+namespace WebCore {
+
+ class SVGPathSegList;
+
+ class SVGAnimatedPathData {
+ public:
+ virtual ~SVGAnimatedPathData() { }
+
+ virtual SVGPathSegList* pathSegList() const = 0;
+ virtual SVGPathSegList* normalizedPathSegList() const = 0;
+ virtual SVGPathSegList* animatedPathSegList() const = 0;
+ virtual SVGPathSegList* animatedNormalizedPathSegList() const = 0;
+ };
+
+} // namespace WebCore
+
+#endif // ENABLE(SVG)
+#endif
+
+// vim:ts=4:noet
diff --git a/WebCore/svg/SVGAnimatedPathData.idl b/WebCore/svg/SVGAnimatedPathData.idl
new file mode 100644
index 0000000..eae1340
--- /dev/null
+++ b/WebCore/svg/SVGAnimatedPathData.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+module svg {
+
+ interface [Conditional=SVG, ObjCProtocol, OmitConstructor] SVGAnimatedPathData {
+ readonly attribute SVGPathSegList pathSegList;
+ readonly attribute SVGPathSegList normalizedPathSegList;
+ readonly attribute SVGPathSegList animatedPathSegList;
+ readonly attribute SVGPathSegList animatedNormalizedPathSegList;
+ };
+
+}
diff --git a/WebCore/svg/SVGPathElement.cpp b/WebCore/svg/SVGPathElement.cpp
index f9432ce..8f8bef9 100644
--- a/WebCore/svg/SVGPathElement.cpp
+++ b/WebCore/svg/SVGPathElement.cpp
@@ -26,6 +26,7 @@
#include "Attribute.h"
#include "RenderSVGPath.h"
#include "RenderSVGResource.h"
+#include "SVGNames.h"
#include "SVGPathParserFactory.h"
#include "SVGPathSegArc.h"
#include "SVGPathSegClosePath.h"
@@ -37,7 +38,6 @@
#include "SVGPathSegLinetoHorizontal.h"
#include "SVGPathSegLinetoVertical.h"
#include "SVGPathSegList.h"
-#include "SVGPathSegListPropertyTearOff.h"
#include "SVGPathSegListBuilder.h"
#include "SVGPathSegMoveto.h"
#include "SVGSVGElement.h"
@@ -46,8 +46,6 @@ namespace WebCore {
inline SVGPathElement::SVGPathElement(const QualifiedName& tagName, Document* document)
: SVGStyledTransformableElement(tagName, document)
- , m_pathByteStream(SVGPathByteStream::create())
- , m_pathSegList(PathSegUnalteredRole)
{
}
@@ -77,110 +75,112 @@ unsigned long SVGPathElement::getPathSegAtLength(float length)
{
SVGPathParserFactory* factory = SVGPathParserFactory::self();
unsigned long pathSeg = 0;
- factory->getSVGPathSegAtLengthFromSVGPathByteStream(m_pathByteStream.get(), length, pathSeg);
+ factory->getSVGPathSegAtLengthFromSVGPathSegList(pathSegList(), length, pathSeg);
return pathSeg;
}
-PassRefPtr<SVGPathSegClosePath> SVGPathElement::createSVGPathSegClosePath(SVGPathSegRole role)
+PassRefPtr<SVGPathSegClosePath> SVGPathElement::createSVGPathSegClosePath()
{
- return SVGPathSegClosePath::create(this, role);
+ return SVGPathSegClosePath::create();
}
-PassRefPtr<SVGPathSegMovetoAbs> SVGPathElement::createSVGPathSegMovetoAbs(float x, float y, SVGPathSegRole role)
+PassRefPtr<SVGPathSegMovetoAbs> SVGPathElement::createSVGPathSegMovetoAbs(float x, float y)
{
- return SVGPathSegMovetoAbs::create(this, role, x, y);
+ return SVGPathSegMovetoAbs::create(x, y);
}
-PassRefPtr<SVGPathSegMovetoRel> SVGPathElement::createSVGPathSegMovetoRel(float x, float y, SVGPathSegRole role)
+PassRefPtr<SVGPathSegMovetoRel> SVGPathElement::createSVGPathSegMovetoRel(float x, float y)
{
- return SVGPathSegMovetoRel::create(this, role, x, y);
+ return SVGPathSegMovetoRel::create(x, y);
}
-PassRefPtr<SVGPathSegLinetoAbs> SVGPathElement::createSVGPathSegLinetoAbs(float x, float y, SVGPathSegRole role)
+PassRefPtr<SVGPathSegLinetoAbs> SVGPathElement::createSVGPathSegLinetoAbs(float x, float y)
{
- return SVGPathSegLinetoAbs::create(this, role, x, y);
+ return SVGPathSegLinetoAbs::create(x, y);
}
-PassRefPtr<SVGPathSegLinetoRel> SVGPathElement::createSVGPathSegLinetoRel(float x, float y, SVGPathSegRole role)
+PassRefPtr<SVGPathSegLinetoRel> SVGPathElement::createSVGPathSegLinetoRel(float x, float y)
{
- return SVGPathSegLinetoRel::create(this, role, x, y);
+ return SVGPathSegLinetoRel::create(x, y);
}
-PassRefPtr<SVGPathSegCurvetoCubicAbs> SVGPathElement::createSVGPathSegCurvetoCubicAbs(float x, float y, float x1, float y1, float x2, float y2, SVGPathSegRole role)
+PassRefPtr<SVGPathSegCurvetoCubicAbs> SVGPathElement::createSVGPathSegCurvetoCubicAbs(float x, float y, float x1, float y1, float x2, float y2)
{
- return SVGPathSegCurvetoCubicAbs::create(this, role, x, y, x1, y1, x2, y2);
+ return SVGPathSegCurvetoCubicAbs::create(x, y, x1, y1, x2, y2);
}
-PassRefPtr<SVGPathSegCurvetoCubicRel> SVGPathElement::createSVGPathSegCurvetoCubicRel(float x, float y, float x1, float y1, float x2, float y2, SVGPathSegRole role)
+PassRefPtr<SVGPathSegCurvetoCubicRel> SVGPathElement::createSVGPathSegCurvetoCubicRel(float x, float y, float x1, float y1, float x2, float y2)
{
- return SVGPathSegCurvetoCubicRel::create(this, role, x, y, x1, y1, x2, y2);
+ return SVGPathSegCurvetoCubicRel::create(x, y, x1, y1, x2, y2);
}
-PassRefPtr<SVGPathSegCurvetoQuadraticAbs> SVGPathElement::createSVGPathSegCurvetoQuadraticAbs(float x, float y, float x1, float y1, SVGPathSegRole role)
+PassRefPtr<SVGPathSegCurvetoQuadraticAbs> SVGPathElement::createSVGPathSegCurvetoQuadraticAbs(float x, float y, float x1, float y1)
{
- return SVGPathSegCurvetoQuadraticAbs::create(this, role, x, y, x1, y1);
+ return SVGPathSegCurvetoQuadraticAbs::create(x, y, x1, y1);
}
-PassRefPtr<SVGPathSegCurvetoQuadraticRel> SVGPathElement::createSVGPathSegCurvetoQuadraticRel(float x, float y, float x1, float y1, SVGPathSegRole role)
+PassRefPtr<SVGPathSegCurvetoQuadraticRel> SVGPathElement::createSVGPathSegCurvetoQuadraticRel(float x, float y, float x1, float y1)
{
- return SVGPathSegCurvetoQuadraticRel::create(this, role, x, y, x1, y1);
+ return SVGPathSegCurvetoQuadraticRel::create(x, y, x1, y1);
}
-PassRefPtr<SVGPathSegArcAbs> SVGPathElement::createSVGPathSegArcAbs(float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag, SVGPathSegRole role)
+PassRefPtr<SVGPathSegArcAbs> SVGPathElement::createSVGPathSegArcAbs(float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag)
{
- return SVGPathSegArcAbs::create(this, role, x, y, r1, r2, angle, largeArcFlag, sweepFlag);
+ return SVGPathSegArcAbs::create(x, y, r1, r2, angle, largeArcFlag, sweepFlag);
}
-PassRefPtr<SVGPathSegArcRel> SVGPathElement::createSVGPathSegArcRel(float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag, SVGPathSegRole role)
+PassRefPtr<SVGPathSegArcRel> SVGPathElement::createSVGPathSegArcRel(float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag)
{
- return SVGPathSegArcRel::create(this, role, x, y, r1, r2, angle, largeArcFlag, sweepFlag);
+ return SVGPathSegArcRel::create(x, y, r1, r2, angle, largeArcFlag, sweepFlag);
}
-PassRefPtr<SVGPathSegLinetoHorizontalAbs> SVGPathElement::createSVGPathSegLinetoHorizontalAbs(float x, SVGPathSegRole role)
+PassRefPtr<SVGPathSegLinetoHorizontalAbs> SVGPathElement::createSVGPathSegLinetoHorizontalAbs(float x)
{
- return SVGPathSegLinetoHorizontalAbs::create(this, role, x);
+ return SVGPathSegLinetoHorizontalAbs::create(x);
}
-PassRefPtr<SVGPathSegLinetoHorizontalRel> SVGPathElement::createSVGPathSegLinetoHorizontalRel(float x, SVGPathSegRole role)
+PassRefPtr<SVGPathSegLinetoHorizontalRel> SVGPathElement::createSVGPathSegLinetoHorizontalRel(float x)
{
- return SVGPathSegLinetoHorizontalRel::create(this, role, x);
+ return SVGPathSegLinetoHorizontalRel::create(x);
}
-PassRefPtr<SVGPathSegLinetoVerticalAbs> SVGPathElement::createSVGPathSegLinetoVerticalAbs(float y, SVGPathSegRole role)
+PassRefPtr<SVGPathSegLinetoVerticalAbs> SVGPathElement::createSVGPathSegLinetoVerticalAbs(float y)
{
- return SVGPathSegLinetoVerticalAbs::create(this, role, y);
+ return SVGPathSegLinetoVerticalAbs::create(y);
}
-PassRefPtr<SVGPathSegLinetoVerticalRel> SVGPathElement::createSVGPathSegLinetoVerticalRel(float y, SVGPathSegRole role)
+PassRefPtr<SVGPathSegLinetoVerticalRel> SVGPathElement::createSVGPathSegLinetoVerticalRel(float y)
{
- return SVGPathSegLinetoVerticalRel::create(this, role, y);
+ return SVGPathSegLinetoVerticalRel::create(y);
}
-PassRefPtr<SVGPathSegCurvetoCubicSmoothAbs> SVGPathElement::createSVGPathSegCurvetoCubicSmoothAbs(float x, float y, float x2, float y2, SVGPathSegRole role)
+PassRefPtr<SVGPathSegCurvetoCubicSmoothAbs> SVGPathElement::createSVGPathSegCurvetoCubicSmoothAbs(float x, float y, float x2, float y2)
{
- return SVGPathSegCurvetoCubicSmoothAbs::create(this, role, x, y, x2, y2);
+ return SVGPathSegCurvetoCubicSmoothAbs::create(x, y, x2, y2);
}
-PassRefPtr<SVGPathSegCurvetoCubicSmoothRel> SVGPathElement::createSVGPathSegCurvetoCubicSmoothRel(float x, float y, float x2, float y2, SVGPathSegRole role)
+PassRefPtr<SVGPathSegCurvetoCubicSmoothRel> SVGPathElement::createSVGPathSegCurvetoCubicSmoothRel(float x, float y, float x2, float y2)
{
- return SVGPathSegCurvetoCubicSmoothRel::create(this, role, x, y, x2, y2);
+ return SVGPathSegCurvetoCubicSmoothRel::create(x, y, x2, y2);
}
-PassRefPtr<SVGPathSegCurvetoQuadraticSmoothAbs> SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothAbs(float x, float y, SVGPathSegRole role)
+PassRefPtr<SVGPathSegCurvetoQuadraticSmoothAbs> SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothAbs(float x, float y)
{
- return SVGPathSegCurvetoQuadraticSmoothAbs::create(this, role, x, y);
+ return SVGPathSegCurvetoQuadraticSmoothAbs::create(x, y);
}
-PassRefPtr<SVGPathSegCurvetoQuadraticSmoothRel> SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothRel(float x, float y, SVGPathSegRole role)
+PassRefPtr<SVGPathSegCurvetoQuadraticSmoothRel> SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothRel(float x, float y)
{
- return SVGPathSegCurvetoQuadraticSmoothRel::create(this, role, x, y);
+ return SVGPathSegCurvetoQuadraticSmoothRel::create(x, y);
}
void SVGPathElement::parseMappedAttribute(Attribute* attr)
{
if (attr->name() == SVGNames::dAttr) {
+ ExceptionCode ec;
+ pathSegList()->clear(ec);
SVGPathParserFactory* factory = SVGPathParserFactory::self();
- if (!factory->buildSVGPathByteStreamFromString(attr->value(), m_pathByteStream, UnalteredParsing))
+ if (!factory->buildSVGPathSegListFromString(attr->value(), pathSegList(), NormalizedParsing))
document()->accessSVGExtensions()->reportError("Problem parsing d=\"" + attr->value() + "\"");
} else if (attr->name() == SVGNames::pathLengthAttr) {
setPathLengthBaseValue(attr->value().toFloat());
@@ -205,26 +205,15 @@ void SVGPathElement::svgAttributeChanged(const QualifiedName& attrName)
return;
RenderSVGPath* renderer = static_cast<RenderSVGPath*>(this->renderer());
+ if (!renderer)
+ return;
if (attrName == SVGNames::dAttr) {
- if (m_animatablePathSegList) {
- SVGPathSegList newList(PathSegUnalteredRole);
- SVGPathParserFactory* factory = SVGPathParserFactory::self();
- factory->buildSVGPathSegListFromByteStream(m_pathByteStream.get(), this, newList, UnalteredParsing);
- m_pathSegList.value = newList;
- }
-
- if (!renderer)
- return;
-
renderer->setNeedsPathUpdate();
RenderSVGResource::markForLayoutAndParentResourceInvalidation(renderer);
return;
}
- if (!renderer)
- return;
-
if (SVGStyledTransformableElement::isKnownAttribute(attrName)) {
renderer->setNeedsTransformUpdate();
RenderSVGResource::markForLayoutAndParentResourceInvalidation(renderer);
@@ -242,67 +231,40 @@ void SVGPathElement::synchronizeProperty(const QualifiedName& attrName)
SVGStyledTransformableElement::synchronizeProperty(attrName);
if (attrName == anyQName()) {
- synchronizeD();
synchronizePathLength();
synchronizeExternalResourcesRequired();
return;
}
- if (attrName == SVGNames::dAttr)
- synchronizeD();
- else if (attrName == SVGNames::pathLengthAttr)
+ if (attrName == SVGNames::pathLengthAttr)
synchronizePathLength();
else if (SVGExternalResourcesRequired::isKnownAttribute(attrName))
synchronizeExternalResourcesRequired();
}
-void SVGPathElement::synchronizeD()
-{
- if (!m_pathSegList.shouldSynchronize)
- return;
-
- SVGAnimatedPropertySynchronizer<true>::synchronize(this, SVGNames::dAttr, m_pathSegList.value.valueAsString());
-}
-
-SVGPathSegListPropertyTearOff* SVGPathElement::pathSegList()
+SVGPathSegList* SVGPathElement::pathSegList() const
{
- if (!m_animatablePathSegList) {
- m_pathSegList.shouldSynchronize = true;
-
- SVGPathParserFactory* factory = SVGPathParserFactory::self();
- factory->buildSVGPathSegListFromByteStream(m_pathByteStream.get(), this, m_pathSegList.value, UnalteredParsing);
+ if (!m_pathSegList)
+ m_pathSegList = SVGPathSegList::create(SVGNames::dAttr);
- m_animatablePathSegList = SVGAnimatedProperty::lookupOrCreateWrapper<SVGAnimatedPathSegListPropertyTearOff, SVGPathSegList>
- (this, SVGNames::dAttr, SVGNames::dAttr.localName(), m_pathSegList.value);
- }
-
- return static_cast<SVGPathSegListPropertyTearOff*>(m_animatablePathSegList->baseVal(PathSegUnalteredRole));
+ return m_pathSegList.get();
}
-SVGPathSegListPropertyTearOff* SVGPathElement::normalizedPathSegList()
+SVGPathSegList* SVGPathElement::normalizedPathSegList() const
{
- // FIXME: https://bugs.webkit.org/show_bug.cgi?id=15412 - Implement normalized path segment lists!
+ // TODO
return 0;
}
-SVGPathSegListPropertyTearOff* SVGPathElement::animatedPathSegList()
+SVGPathSegList* SVGPathElement::animatedPathSegList() const
{
- if (!m_animatablePathSegList) {
- m_pathSegList.shouldSynchronize = true;
-
- SVGPathParserFactory* factory = SVGPathParserFactory::self();
- factory->buildSVGPathSegListFromByteStream(m_pathByteStream.get(), this, m_pathSegList.value, UnalteredParsing);
-
- m_animatablePathSegList = SVGAnimatedProperty::lookupOrCreateWrapper<SVGAnimatedPathSegListPropertyTearOff, SVGPathSegList>
- (this, SVGNames::dAttr, SVGNames::dAttr.localName(), m_pathSegList.value);
- }
-
- return static_cast<SVGPathSegListPropertyTearOff*>(m_animatablePathSegList->animVal(PathSegUnalteredRole));
+ // TODO
+ return 0;
}
-SVGPathSegListPropertyTearOff* SVGPathElement::animatedNormalizedPathSegList()
+SVGPathSegList* SVGPathElement::animatedNormalizedPathSegList() const
{
- // FIXME: https://bugs.webkit.org/show_bug.cgi?id=15412 - Implement normalized path segment lists!
+ // TODO
return 0;
}
@@ -311,33 +273,7 @@ void SVGPathElement::toPathData(Path& path) const
ASSERT(path.isEmpty());
SVGPathParserFactory* factory = SVGPathParserFactory::self();
- factory->buildPathFromByteStream(m_pathByteStream.get(), path);
-}
-
-void SVGPathElement::pathSegListChanged(SVGPathSegRole role)
-{
- SVGPathParserFactory* factory = SVGPathParserFactory::self();
-
- switch (role) {
- case PathSegNormalizedRole:
- // FIXME: https://bugs.webkit.org/show_bug.cgi?id=15412 - Implement normalized path segment lists!
- break;
- case PathSegUnalteredRole:
- m_pathByteStream->clear();
- factory->buildSVGPathByteStreamFromSVGPathSegList(m_pathSegList.value, m_pathByteStream, UnalteredParsing);
- break;
- case PathSegUndefinedRole:
- return;
- }
-
- invalidateSVGAttributes();
-
- RenderSVGPath* renderer = static_cast<RenderSVGPath*>(this->renderer());
- if (!renderer)
- return;
-
- renderer->setNeedsPathUpdate();
- RenderSVGResource::markForLayoutAndParentResourceInvalidation(renderer);
+ factory->buildPathFromSVGPathSegList(pathSegList(), path);
}
}
diff --git a/WebCore/svg/SVGPathElement.h b/WebCore/svg/SVGPathElement.h
index 0590dea..91d55b1 100644
--- a/WebCore/svg/SVGPathElement.h
+++ b/WebCore/svg/SVGPathElement.h
@@ -22,101 +22,94 @@
#define SVGPathElement_h
#if ENABLE(SVG)
-#include "SVGAnimatedPathSegListPropertyTearOff.h"
+#include "SVGAnimatedPathData.h"
#include "SVGAnimatedPropertyMacros.h"
#include "SVGExternalResourcesRequired.h"
#include "SVGLangSpace.h"
-#include "SVGPathByteStream.h"
#include "SVGStyledTransformableElement.h"
#include "SVGTests.h"
namespace WebCore {
-class SVGPathSegArcAbs;
-class SVGPathSegArcRel;
-class SVGPathSegClosePath;
-class SVGPathSegLinetoAbs;
-class SVGPathSegLinetoRel;
-class SVGPathSegMovetoAbs;
-class SVGPathSegMovetoRel;
-class SVGPathSegCurvetoCubicAbs;
-class SVGPathSegCurvetoCubicRel;
-class SVGPathSegLinetoVerticalAbs;
-class SVGPathSegLinetoVerticalRel;
-class SVGPathSegLinetoHorizontalAbs;
-class SVGPathSegLinetoHorizontalRel;
-class SVGPathSegCurvetoQuadraticAbs;
-class SVGPathSegCurvetoQuadraticRel;
-class SVGPathSegCurvetoCubicSmoothAbs;
-class SVGPathSegCurvetoCubicSmoothRel;
-class SVGPathSegCurvetoQuadraticSmoothAbs;
-class SVGPathSegCurvetoQuadraticSmoothRel;
-
-class SVGPathElement : public SVGStyledTransformableElement,
- public SVGTests,
- public SVGLangSpace,
- public SVGExternalResourcesRequired {
-public:
- static PassRefPtr<SVGPathElement> create(const QualifiedName&, Document*);
-
- float getTotalLength();
- FloatPoint getPointAtLength(float distance);
- unsigned long getPathSegAtLength(float distance);
-
- PassRefPtr<SVGPathSegClosePath> createSVGPathSegClosePath(SVGPathSegRole role = PathSegUndefinedRole);
- PassRefPtr<SVGPathSegMovetoAbs> createSVGPathSegMovetoAbs(float x, float y, SVGPathSegRole role = PathSegUndefinedRole);
- PassRefPtr<SVGPathSegMovetoRel> createSVGPathSegMovetoRel(float x, float y, SVGPathSegRole role = PathSegUndefinedRole);
- PassRefPtr<SVGPathSegLinetoAbs> createSVGPathSegLinetoAbs(float x, float y, SVGPathSegRole role = PathSegUndefinedRole);
- PassRefPtr<SVGPathSegLinetoRel> createSVGPathSegLinetoRel(float x, float y, SVGPathSegRole role = PathSegUndefinedRole);
- PassRefPtr<SVGPathSegCurvetoCubicAbs> createSVGPathSegCurvetoCubicAbs(float x, float y, float x1, float y1, float x2, float y2, SVGPathSegRole role = PathSegUndefinedRole);
- PassRefPtr<SVGPathSegCurvetoCubicRel> createSVGPathSegCurvetoCubicRel(float x, float y, float x1, float y1, float x2, float y2, SVGPathSegRole role = PathSegUndefinedRole);
- PassRefPtr<SVGPathSegCurvetoQuadraticAbs> createSVGPathSegCurvetoQuadraticAbs(float x, float y, float x1, float y1, SVGPathSegRole role = PathSegUndefinedRole);
- PassRefPtr<SVGPathSegCurvetoQuadraticRel> createSVGPathSegCurvetoQuadraticRel(float x, float y, float x1, float y1, SVGPathSegRole role = PathSegUndefinedRole);
- PassRefPtr<SVGPathSegArcAbs> createSVGPathSegArcAbs(float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag, SVGPathSegRole role = PathSegUndefinedRole);
- PassRefPtr<SVGPathSegArcRel> createSVGPathSegArcRel(float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag, SVGPathSegRole role = PathSegUndefinedRole);
- PassRefPtr<SVGPathSegLinetoHorizontalAbs> createSVGPathSegLinetoHorizontalAbs(float x, SVGPathSegRole role = PathSegUndefinedRole);
- PassRefPtr<SVGPathSegLinetoHorizontalRel> createSVGPathSegLinetoHorizontalRel(float x, SVGPathSegRole role = PathSegUndefinedRole);
- PassRefPtr<SVGPathSegLinetoVerticalAbs> createSVGPathSegLinetoVerticalAbs(float y, SVGPathSegRole role = PathSegUndefinedRole);
- PassRefPtr<SVGPathSegLinetoVerticalRel> createSVGPathSegLinetoVerticalRel(float y, SVGPathSegRole role = PathSegUndefinedRole);
- PassRefPtr<SVGPathSegCurvetoCubicSmoothAbs> createSVGPathSegCurvetoCubicSmoothAbs(float x, float y, float x2, float y2, SVGPathSegRole role = PathSegUndefinedRole);
- PassRefPtr<SVGPathSegCurvetoCubicSmoothRel> createSVGPathSegCurvetoCubicSmoothRel(float x, float y, float x2, float y2, SVGPathSegRole role = PathSegUndefinedRole);
- PassRefPtr<SVGPathSegCurvetoQuadraticSmoothAbs> createSVGPathSegCurvetoQuadraticSmoothAbs(float x, float y, SVGPathSegRole role = PathSegUndefinedRole);
- PassRefPtr<SVGPathSegCurvetoQuadraticSmoothRel> createSVGPathSegCurvetoQuadraticSmoothRel(float x, float y, SVGPathSegRole role = PathSegUndefinedRole);
-
- // Used in the bindings only.
- SVGPathSegListPropertyTearOff* pathSegList();
- SVGPathSegListPropertyTearOff* animatedPathSegList();
- SVGPathSegListPropertyTearOff* normalizedPathSegList();
- SVGPathSegListPropertyTearOff* animatedNormalizedPathSegList();
-
- SVGPathByteStream* pathByteStream() const { return m_pathByteStream.get(); }
- SVGAnimatedProperty* animatablePathSegList() const { return m_animatablePathSegList.get(); }
-
- virtual void toPathData(Path&) const;
- void pathSegListChanged(SVGPathSegRole);
-
-private:
- SVGPathElement(const QualifiedName&, Document*);
-
- virtual bool isValid() const { return SVGTests::isValid(); }
-
- virtual void parseMappedAttribute(Attribute*);
- virtual void synchronizeProperty(const QualifiedName&);
- virtual void svgAttributeChanged(const QualifiedName&);
- virtual bool supportsMarkers() const { return true; }
-
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGPathElement, SVGNames::pathLengthAttr, float, PathLength, pathLength)
-
- // SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGPathElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
-
- void synchronizeD();
-
-protected:
- OwnPtr<SVGPathByteStream> m_pathByteStream;
- mutable SVGSynchronizableAnimatedProperty<SVGPathSegList> m_pathSegList;
- RefPtr<SVGAnimatedPathSegListPropertyTearOff> m_animatablePathSegList;
-};
+ class SVGPathSeg;
+ class SVGPathSegArcAbs;
+ class SVGPathSegArcRel;
+ class SVGPathSegClosePath;
+ class SVGPathSegLinetoAbs;
+ class SVGPathSegLinetoRel;
+ class SVGPathSegMovetoAbs;
+ class SVGPathSegMovetoRel;
+ class SVGPathSegCurvetoCubicAbs;
+ class SVGPathSegCurvetoCubicRel;
+ class SVGPathSegLinetoVerticalAbs;
+ class SVGPathSegLinetoVerticalRel;
+ class SVGPathSegLinetoHorizontalAbs;
+ class SVGPathSegLinetoHorizontalRel;
+ class SVGPathSegCurvetoQuadraticAbs;
+ class SVGPathSegCurvetoQuadraticRel;
+ class SVGPathSegCurvetoCubicSmoothAbs;
+ class SVGPathSegCurvetoCubicSmoothRel;
+ class SVGPathSegCurvetoQuadraticSmoothAbs;
+ class SVGPathSegCurvetoQuadraticSmoothRel;
+
+ class SVGPathElement : public SVGStyledTransformableElement,
+ public SVGTests,
+ public SVGLangSpace,
+ public SVGExternalResourcesRequired,
+ public SVGAnimatedPathData {
+ public:
+ static PassRefPtr<SVGPathElement> create(const QualifiedName&, Document*);
+
+ float getTotalLength();
+ FloatPoint getPointAtLength(float distance);
+ unsigned long getPathSegAtLength(float distance);
+
+ static PassRefPtr<SVGPathSegClosePath> createSVGPathSegClosePath();
+ static PassRefPtr<SVGPathSegMovetoAbs> createSVGPathSegMovetoAbs(float x, float y);
+ static PassRefPtr<SVGPathSegMovetoRel> createSVGPathSegMovetoRel(float x, float y);
+ static PassRefPtr<SVGPathSegLinetoAbs> createSVGPathSegLinetoAbs(float x, float y);
+ static PassRefPtr<SVGPathSegLinetoRel> createSVGPathSegLinetoRel(float x, float y);
+ static PassRefPtr<SVGPathSegCurvetoCubicAbs> createSVGPathSegCurvetoCubicAbs(float x, float y, float x1, float y1, float x2, float y2);
+ static PassRefPtr<SVGPathSegCurvetoCubicRel> createSVGPathSegCurvetoCubicRel(float x, float y, float x1, float y1, float x2, float y2);
+ static PassRefPtr<SVGPathSegCurvetoQuadraticAbs> createSVGPathSegCurvetoQuadraticAbs(float x, float y, float x1, float y1);
+ static PassRefPtr<SVGPathSegCurvetoQuadraticRel> createSVGPathSegCurvetoQuadraticRel(float x, float y, float x1, float y1);
+ static PassRefPtr<SVGPathSegArcAbs> createSVGPathSegArcAbs(float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag);
+ static PassRefPtr<SVGPathSegArcRel> createSVGPathSegArcRel(float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag);
+ static PassRefPtr<SVGPathSegLinetoHorizontalAbs> createSVGPathSegLinetoHorizontalAbs(float x);
+ static PassRefPtr<SVGPathSegLinetoHorizontalRel> createSVGPathSegLinetoHorizontalRel(float x);
+ static PassRefPtr<SVGPathSegLinetoVerticalAbs> createSVGPathSegLinetoVerticalAbs(float y);
+ static PassRefPtr<SVGPathSegLinetoVerticalRel> createSVGPathSegLinetoVerticalRel(float y);
+ static PassRefPtr<SVGPathSegCurvetoCubicSmoothAbs> createSVGPathSegCurvetoCubicSmoothAbs(float x, float y, float x2, float y2);
+ static PassRefPtr<SVGPathSegCurvetoCubicSmoothRel> createSVGPathSegCurvetoCubicSmoothRel(float x, float y, float x2, float y2);
+ static PassRefPtr<SVGPathSegCurvetoQuadraticSmoothAbs> createSVGPathSegCurvetoQuadraticSmoothAbs(float x, float y);
+ static PassRefPtr<SVGPathSegCurvetoQuadraticSmoothRel> createSVGPathSegCurvetoQuadraticSmoothRel(float x, float y);
+
+ // Derived from: 'SVGAnimatedPathData'
+ virtual SVGPathSegList* pathSegList() const;
+ virtual SVGPathSegList* normalizedPathSegList() const;
+ virtual SVGPathSegList* animatedPathSegList() const;
+ virtual SVGPathSegList* animatedNormalizedPathSegList() const;
+
+ virtual void toPathData(Path&) const;
+
+ private:
+ SVGPathElement(const QualifiedName&, Document*);
+
+ virtual bool isValid() const { return SVGTests::isValid(); }
+
+ virtual void parseMappedAttribute(Attribute*);
+ virtual void svgAttributeChanged(const QualifiedName&);
+ virtual void synchronizeProperty(const QualifiedName&);
+
+ virtual bool supportsMarkers() const { return true; }
+
+ mutable RefPtr<SVGPathSegList> m_pathSegList;
+
+ DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGPathElement, SVGNames::pathLengthAttr, float, PathLength, pathLength)
+
+ // SVGExternalResourcesRequired
+ DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGPathElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+ };
} // namespace WebCore
diff --git a/WebCore/svg/SVGPathElement.idl b/WebCore/svg/SVGPathElement.idl
index 00a9d85..1c1dca7 100644
--- a/WebCore/svg/SVGPathElement.idl
+++ b/WebCore/svg/SVGPathElement.idl
@@ -31,7 +31,8 @@ module svg {
SVGLangSpace,
SVGExternalResourcesRequired,
SVGStylable,
- SVGTransformable {
+ SVGTransformable,
+ SVGAnimatedPathData {
readonly attribute SVGAnimatedNumber pathLength;
float getTotalLength();
@@ -106,11 +107,6 @@ module svg {
in float y);
SVGPathSegCurvetoQuadraticSmoothRel createSVGPathSegCurvetoQuadraticSmoothRel(in float x,
in float y);
-
- readonly attribute SVGPathSegList pathSegList;
- readonly attribute SVGPathSegList normalizedPathSegList;
- readonly attribute SVGPathSegList animatedPathSegList;
- readonly attribute SVGPathSegList animatedNormalizedPathSegList;
};
}
diff --git a/WebCore/svg/SVGPathParserFactory.cpp b/WebCore/svg/SVGPathParserFactory.cpp
index deb0307..e707c20 100644
--- a/WebCore/svg/SVGPathParserFactory.cpp
+++ b/WebCore/svg/SVGPathParserFactory.cpp
@@ -27,7 +27,6 @@
#include "SVGPathBuilder.h"
#include "SVGPathByteStreamBuilder.h"
#include "SVGPathByteStreamSource.h"
-#include "SVGPathElement.h"
#include "SVGPathParser.h"
#include "SVGPathSegListBuilder.h"
#include "SVGPathSegListSource.h"
@@ -47,15 +46,13 @@ static SVGPathBuilder* globalSVGPathBuilder(Path& result)
return s_builder;
}
-static SVGPathSegListBuilder* globalSVGPathSegListBuilder(SVGPathElement* element, SVGPathSegRole role, SVGPathSegList& result)
+static SVGPathSegListBuilder* globalSVGPathSegListBuilder(SVGPathSegList* result)
{
static SVGPathSegListBuilder* s_builder = 0;
if (!s_builder)
s_builder = new SVGPathSegListBuilder;
- s_builder->setCurrentSVGPathElement(element);
s_builder->setCurrentSVGPathSegList(result);
- s_builder->setCurrentSVGPathSegRole(role);
return s_builder;
}
@@ -140,43 +137,59 @@ bool SVGPathParserFactory::buildPathFromString(const String& d, Path& result)
return ok;
}
-bool SVGPathParserFactory::buildSVGPathByteStreamFromSVGPathSegList(const SVGPathSegList& list, OwnPtr<SVGPathByteStream>& result, PathParsingMode parsingMode)
+bool SVGPathParserFactory::buildPathFromByteStream(SVGPathByteStream* stream, Path& result)
{
- result = SVGPathByteStream::create();
- if (list.isEmpty())
+ ASSERT(stream);
+ if (stream->isEmpty())
return false;
- SVGPathByteStreamBuilder* builder = globalSVGPathByteStreamBuilder(result.get());
+ SVGPathBuilder* builder = globalSVGPathBuilder(result);
- OwnPtr<SVGPathSegListSource> source = SVGPathSegListSource::create(list);
+ OwnPtr<SVGPathByteStreamSource> source = SVGPathByteStreamSource::create(stream);
SVGPathParser* parser = globalSVGPathParser(source.get(), builder);
- bool ok = parser->parsePathDataFromSource(parsingMode);
+ bool ok = parser->parsePathDataFromSource(NormalizedParsing);
parser->cleanup();
return ok;
}
-bool SVGPathParserFactory::buildPathFromByteStream(SVGPathByteStream* stream, Path& result)
+bool SVGPathParserFactory::buildPathFromSVGPathSegList(SVGPathSegList* pathSegList, Path& result)
{
- ASSERT(stream);
- if (stream->isEmpty())
+ ASSERT(pathSegList);
+ if (!pathSegList->numberOfItems())
return false;
SVGPathBuilder* builder = globalSVGPathBuilder(result);
- OwnPtr<SVGPathByteStreamSource> source = SVGPathByteStreamSource::create(stream);
+ OwnPtr<SVGPathSegListSource> source = SVGPathSegListSource::create(pathSegList);
SVGPathParser* parser = globalSVGPathParser(source.get(), builder);
bool ok = parser->parsePathDataFromSource(NormalizedParsing);
parser->cleanup();
return ok;
}
-bool SVGPathParserFactory::buildSVGPathSegListFromByteStream(SVGPathByteStream* stream, SVGPathElement* element, SVGPathSegList& result, PathParsingMode parsingMode)
+bool SVGPathParserFactory::buildSVGPathSegListFromString(const String& d, SVGPathSegList* result, PathParsingMode parsingMode)
+{
+ ASSERT(result);
+ if (d.isEmpty())
+ return false;
+
+ SVGPathSegListBuilder* builder = globalSVGPathSegListBuilder(result);
+
+ OwnPtr<SVGPathStringSource> source = SVGPathStringSource::create(d);
+ SVGPathParser* parser = globalSVGPathParser(source.get(), builder);
+ bool ok = parser->parsePathDataFromSource(parsingMode);
+ parser->cleanup();
+ return ok;
+}
+
+bool SVGPathParserFactory::buildSVGPathSegListFromByteStream(SVGPathByteStream* stream, SVGPathSegList* result, PathParsingMode parsingMode)
{
ASSERT(stream);
+ ASSERT(result);
if (stream->isEmpty())
return false;
- SVGPathSegListBuilder* builder = globalSVGPathSegListBuilder(element, parsingMode == NormalizedParsing ? PathSegNormalizedRole : PathSegUnalteredRole, result);
+ SVGPathSegListBuilder* builder = globalSVGPathSegListBuilder(result);
OwnPtr<SVGPathByteStreamSource> source = SVGPathByteStreamSource::create(stream);
SVGPathParser* parser = globalSVGPathParser(source.get(), builder);
@@ -201,15 +214,15 @@ bool SVGPathParserFactory::buildStringFromByteStream(SVGPathByteStream* stream,
return ok;
}
-bool SVGPathParserFactory::buildStringFromSVGPathSegList(const SVGPathSegList& list, String& result, PathParsingMode parsingMode)
+bool SVGPathParserFactory::buildStringFromSVGPathSegList(SVGPathSegList* pathSegList, String& result, PathParsingMode parsingMode)
{
- result = String();
- if (list.isEmpty())
- return false;
+ ASSERT(pathSegList);
+ if (!pathSegList->numberOfItems())
+ return false;
SVGPathStringBuilder* builder = globalSVGPathStringBuilder();
- OwnPtr<SVGPathSegListSource> source = SVGPathSegListSource::create(list);
+ OwnPtr<SVGPathSegListSource> source = SVGPathSegListSource::create(pathSegList);
SVGPathParser* parser = globalSVGPathParser(source.get(), builder);
bool ok = parser->parsePathDataFromSource(parsingMode);
result = builder->result();
@@ -219,15 +232,16 @@ bool SVGPathParserFactory::buildStringFromSVGPathSegList(const SVGPathSegList& l
bool SVGPathParserFactory::buildSVGPathByteStreamFromString(const String& d, OwnPtr<SVGPathByteStream>& result, PathParsingMode parsingMode)
{
- result = SVGPathByteStream::create();
if (d.isEmpty())
return false;
- SVGPathByteStreamBuilder* builder = globalSVGPathByteStreamBuilder(result.get());
+ OwnPtr<SVGPathByteStream> stream = SVGPathByteStream::create();
+ SVGPathByteStreamBuilder* builder = globalSVGPathByteStreamBuilder(stream.get());
OwnPtr<SVGPathStringSource> source = SVGPathStringSource::create(d);
SVGPathParser* parser = globalSVGPathParser(source.get(), builder);
bool ok = parser->parsePathDataFromSource(parsingMode);
+ result = stream.release();
parser->cleanup();
return ok;
}
@@ -236,30 +250,31 @@ bool SVGPathParserFactory::buildAnimatedSVGPathByteStream(SVGPathByteStream* fro
{
ASSERT(fromStream);
ASSERT(toStream);
- result = SVGPathByteStream::create();
if (fromStream->isEmpty() || toStream->isEmpty())
return false;
- SVGPathByteStreamBuilder* builder = globalSVGPathByteStreamBuilder(result.get());
+ OwnPtr<SVGPathByteStream> stream = SVGPathByteStream::create();
+ SVGPathByteStreamBuilder* builder = globalSVGPathByteStreamBuilder(stream.get());
OwnPtr<SVGPathByteStreamSource> fromSource = SVGPathByteStreamSource::create(fromStream);
OwnPtr<SVGPathByteStreamSource> toSource = SVGPathByteStreamSource::create(toStream);
SVGPathBlender* blender = globalSVGPathBlender();
bool ok = blender->blendAnimatedPath(progress, fromSource.get(), toSource.get(), builder);
+ result = stream.release();
blender->cleanup();
return ok;
}
-bool SVGPathParserFactory::getSVGPathSegAtLengthFromSVGPathByteStream(SVGPathByteStream* stream, float length, unsigned long& pathSeg)
+bool SVGPathParserFactory::getSVGPathSegAtLengthFromSVGPathSegList(SVGPathSegList* pathSegList, float length, unsigned long& pathSeg)
{
- ASSERT(stream);
- if (stream->isEmpty())
- return false;
+ ASSERT(pathSegList);
+ if (!pathSegList->numberOfItems())
+ return false;
PathTraversalState traversalState(PathTraversalState::TraversalSegmentAtLength);
SVGPathTraversalStateBuilder* builder = globalSVGPathTraversalStateBuilder(traversalState, length);
- OwnPtr<SVGPathByteStreamSource> source = SVGPathByteStreamSource::create(stream);
+ OwnPtr<SVGPathSegListSource> source = SVGPathSegListSource::create(pathSegList);
SVGPathParser* parser = globalSVGPathParser(source.get(), builder);
bool ok = parser->parsePathDataFromSource(NormalizedParsing);
pathSeg = builder->pathSegmentIndex();
diff --git a/WebCore/svg/SVGPathParserFactory.h b/WebCore/svg/SVGPathParserFactory.h
index 5ae5e8a..b8a2dd5 100644
--- a/WebCore/svg/SVGPathParserFactory.h
+++ b/WebCore/svg/SVGPathParserFactory.h
@@ -30,29 +30,25 @@
namespace WebCore {
-class SVGPathElement;
-
class SVGPathParserFactory {
public:
static SVGPathParserFactory* self();
- // String/SVGPathByteStream -> Path
bool buildPathFromString(const String&, Path&);
bool buildPathFromByteStream(SVGPathByteStream*, Path&);
+ bool buildPathFromSVGPathSegList(SVGPathSegList*, Path&);
- // SVGPathSegList/String -> SVGPathByteStream
- bool buildSVGPathByteStreamFromSVGPathSegList(const SVGPathSegList&, OwnPtr<SVGPathByteStream>&, PathParsingMode);
- bool buildSVGPathByteStreamFromString(const String&, OwnPtr<SVGPathByteStream>&, PathParsingMode);
+ bool buildSVGPathSegListFromString(const String&, SVGPathSegList*, PathParsingMode);
+ bool buildSVGPathSegListFromByteStream(SVGPathByteStream*, SVGPathSegList*, PathParsingMode);
- // SVGPathByteStream/SVGPathSegList -> String
bool buildStringFromByteStream(SVGPathByteStream*, String&, PathParsingMode);
- bool buildStringFromSVGPathSegList(const SVGPathSegList&, String&, PathParsingMode);
+ bool buildStringFromSVGPathSegList(SVGPathSegList*, String&, PathParsingMode);
- // SVGPathByteStream -> SVGPathSegList
- bool buildSVGPathSegListFromByteStream(SVGPathByteStream*, SVGPathElement*, SVGPathSegList&, PathParsingMode);
+ bool buildSVGPathByteStreamFromString(const String&, OwnPtr<SVGPathByteStream>&, PathParsingMode);
bool buildAnimatedSVGPathByteStream(SVGPathByteStream*, SVGPathByteStream*, OwnPtr<SVGPathByteStream>&, float);
- bool getSVGPathSegAtLengthFromSVGPathByteStream(SVGPathByteStream*, float length, unsigned long& pathSeg);
+
+ bool getSVGPathSegAtLengthFromSVGPathSegList(SVGPathSegList*, float, unsigned long&);
private:
SVGPathParserFactory();
diff --git a/WebCore/svg/SVGPathSeg.cpp b/WebCore/svg/SVGPathSeg.cpp
new file mode 100644
index 0000000..5939976
--- /dev/null
+++ b/WebCore/svg/SVGPathSeg.cpp
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2010 Google, Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#if ENABLE(SVG)
+#include "SVGPathSeg.h"
+
+#include "SVGNames.h"
+
+namespace WebCore {
+
+const QualifiedName& SVGPathSeg::associatedAttributeName() const
+{
+ return SVGNames::dAttr;
+}
+
+} // namespace WebCore
+#endif // ENABLE(SVG)
diff --git a/WebCore/svg/SVGPathSeg.h b/WebCore/svg/SVGPathSeg.h
index 4fce0c3..a2cf261 100644
--- a/WebCore/svg/SVGPathSeg.h
+++ b/WebCore/svg/SVGPathSeg.h
@@ -22,7 +22,8 @@
#define SVGPathSeg_h
#if ENABLE(SVG)
-#include <wtf/text/WTFString.h>
+#include <wtf/Forward.h>
+#include <wtf/RefCounted.h>
namespace WebCore {
@@ -49,15 +50,10 @@ enum SVGPathSegType {
PathSegCurveToQuadraticSmoothRel = 19
};
-enum SVGPathSegRole {
- PathSegUnalteredRole = 0,
- PathSegNormalizedRole = 1,
- PathSegUndefinedRole = 2
-};
+class QualifiedName;
class SVGPathSeg : public RefCounted<SVGPathSeg> {
public:
- SVGPathSeg() { }
virtual ~SVGPathSeg() { }
// Forward declare these enums in the w3c naming scheme, for IDL generation
@@ -84,8 +80,31 @@ public:
PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = PathSegCurveToQuadraticSmoothRel
};
+
virtual unsigned short pathSegType() const = 0;
virtual String pathSegTypeAsLetter() const = 0;
+
+ const QualifiedName& associatedAttributeName() const;
+};
+
+class SVGPathSegSingleCoord : public SVGPathSeg {
+public:
+ void setX(float x) { m_x = x; }
+ float x() const { return m_x; }
+
+ void setY(float y) { m_y = y; }
+ float y() const { return m_y; }
+
+protected:
+ SVGPathSegSingleCoord(float x, float y)
+ : m_x(x)
+ , m_y(y)
+ {
+ }
+
+private:
+ float m_x;
+ float m_y;
};
} // namespace WebCore
diff --git a/WebCore/svg/SVGPathSeg.idl b/WebCore/svg/SVGPathSeg.idl
index f46518c..8641a48 100644
--- a/WebCore/svg/SVGPathSeg.idl
+++ b/WebCore/svg/SVGPathSeg.idl
@@ -28,29 +28,29 @@ module svg {
interface [Conditional=SVG, CustomToJS, Polymorphic] SVGPathSeg {
// Path Segment Types
- const unsigned short PATHSEG_UNKNOWN = 0;
- const unsigned short PATHSEG_CLOSEPATH = 1;
- const unsigned short PATHSEG_MOVETO_ABS = 2;
- const unsigned short PATHSEG_MOVETO_REL = 3;
- const unsigned short PATHSEG_LINETO_ABS = 4;
- const unsigned short PATHSEG_LINETO_REL = 5;
- const unsigned short PATHSEG_CURVETO_CUBIC_ABS = 6;
- const unsigned short PATHSEG_CURVETO_CUBIC_REL = 7;
- const unsigned short PATHSEG_CURVETO_QUADRATIC_ABS = 8;
- const unsigned short PATHSEG_CURVETO_QUADRATIC_REL = 9;
- const unsigned short PATHSEG_ARC_ABS = 10;
- const unsigned short PATHSEG_ARC_REL = 11;
- const unsigned short PATHSEG_LINETO_HORIZONTAL_ABS = 12;
- const unsigned short PATHSEG_LINETO_HORIZONTAL_REL = 13;
- const unsigned short PATHSEG_LINETO_VERTICAL_ABS = 14;
- const unsigned short PATHSEG_LINETO_VERTICAL_REL = 15;
- const unsigned short PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16;
- const unsigned short PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17;
+ const unsigned short PATHSEG_UNKNOWN = 0;
+ const unsigned short PATHSEG_CLOSEPATH = 1;
+ const unsigned short PATHSEG_MOVETO_ABS = 2;
+ const unsigned short PATHSEG_MOVETO_REL = 3;
+ const unsigned short PATHSEG_LINETO_ABS = 4;
+ const unsigned short PATHSEG_LINETO_REL = 5;
+ const unsigned short PATHSEG_CURVETO_CUBIC_ABS = 6;
+ const unsigned short PATHSEG_CURVETO_CUBIC_REL = 7;
+ const unsigned short PATHSEG_CURVETO_QUADRATIC_ABS = 8;
+ const unsigned short PATHSEG_CURVETO_QUADRATIC_REL = 9;
+ const unsigned short PATHSEG_ARC_ABS = 10;
+ const unsigned short PATHSEG_ARC_REL = 11;
+ const unsigned short PATHSEG_LINETO_HORIZONTAL_ABS = 12;
+ const unsigned short PATHSEG_LINETO_HORIZONTAL_REL = 13;
+ const unsigned short PATHSEG_LINETO_VERTICAL_ABS = 14;
+ const unsigned short PATHSEG_LINETO_VERTICAL_REL = 15;
+ const unsigned short PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16;
+ const unsigned short PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17;
const unsigned short PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18;
const unsigned short PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19;
- readonly attribute unsigned short pathSegType;
- readonly attribute DOMString pathSegTypeAsLetter;
+ readonly attribute unsigned short pathSegType;
+ readonly attribute DOMString pathSegTypeAsLetter;
};
}
diff --git a/WebCore/svg/SVGPathSegArc.cpp b/WebCore/svg/SVGPathSegArc.cpp
new file mode 100644
index 0000000..f606905
--- /dev/null
+++ b/WebCore/svg/SVGPathSegArc.cpp
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann at kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis at kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "config.h"
+
+#if ENABLE(SVG)
+#include "SVGPathSegArc.h"
+
+namespace WebCore {
+
+SVGPathSegArcAbs::SVGPathSegArcAbs(float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag)
+ : SVGPathSegArc(x, y, r1, r2, angle, largeArcFlag, sweepFlag)
+{
+}
+
+SVGPathSegArcRel::SVGPathSegArcRel(float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag)
+ : SVGPathSegArc(x, y, r1, r2, angle, largeArcFlag, sweepFlag)
+{
+}
+
+}
+
+#endif // ENABLE(SVG)
+
+// vim:ts=4:noet
diff --git a/WebCore/svg/SVGPathSegArc.h b/WebCore/svg/SVGPathSegArc.h
index e835bc3..5d5c332 100644
--- a/WebCore/svg/SVGPathSegArc.h
+++ b/WebCore/svg/SVGPathSegArc.h
@@ -22,119 +22,88 @@
#define SVGPathSegArc_h
#if ENABLE(SVG)
-#include "SVGPathSegWithContext.h"
+
+#include "PlatformString.h"
+#include "SVGPathSeg.h"
namespace WebCore {
-class SVGPathSegArc : public SVGPathSegWithContext {
-public:
- SVGPathSegArc(SVGPathElement* element, SVGPathSegRole role, float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag)
- : SVGPathSegWithContext(element, role)
- , m_x(x)
- , m_y(y)
- , m_r1(r1)
- , m_r2(r2)
- , m_angle(angle)
- , m_largeArcFlag(largeArcFlag)
- , m_sweepFlag(sweepFlag)
- {
- }
-
- float x() const { return m_x; }
- void setX(float x)
- {
- m_x = x;
- commitChange();
- }
-
- float y() const { return m_y; }
- void setY(float y)
- {
- m_y = y;
- commitChange();
- }
-
- float r1() const { return m_r1; }
- void setR1(float r1)
- {
- m_r1 = r1;
- commitChange();
- }
-
- float r2() const { return m_r2; }
- void setR2(float r2)
- {
- m_r2 = r2;
- commitChange();
- }
-
- float angle() const { return m_angle; }
- void setAngle(float angle)
- {
- m_angle = angle;
- commitChange();
- }
-
- bool largeArcFlag() const { return m_largeArcFlag; }
- void setLargeArcFlag(bool largeArcFlag)
- {
- m_largeArcFlag = largeArcFlag;
- commitChange();
- }
-
- bool sweepFlag() const { return m_sweepFlag; }
- void setSweepFlag(bool sweepFlag)
- {
- m_sweepFlag = sweepFlag;
- commitChange();
- }
-
-private:
- float m_x;
- float m_y;
- float m_r1;
- float m_r2;
- float m_angle;
-
- bool m_largeArcFlag : 1;
- bool m_sweepFlag : 1;
-};
-
-class SVGPathSegArcAbs : public SVGPathSegArc {
-public:
- static PassRefPtr<SVGPathSegArcAbs> create(SVGPathElement* element, SVGPathSegRole role, float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag)
- {
- return adoptRef(new SVGPathSegArcAbs(element, role, x, y, r1, r2, angle, largeArcFlag, sweepFlag));
- }
-
-private:
- SVGPathSegArcAbs(SVGPathElement* element, SVGPathSegRole role, float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag)
- : SVGPathSegArc(element, role, x, y, r1, r2, angle, largeArcFlag, sweepFlag)
- {
- }
-
- virtual unsigned short pathSegType() const { return PATHSEG_ARC_ABS; }
- virtual String pathSegTypeAsLetter() const { return "A"; }
-};
-
-class SVGPathSegArcRel : public SVGPathSegArc {
-public:
- static PassRefPtr<SVGPathSegArcRel> create(SVGPathElement* element, SVGPathSegRole role, float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag)
- {
- return adoptRef(new SVGPathSegArcRel(element, role, x, y, r1, r2, angle, largeArcFlag, sweepFlag));
- }
-
-private:
- SVGPathSegArcRel(SVGPathElement* element, SVGPathSegRole role, float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag)
- : SVGPathSegArc(element, role, x, y, r1, r2, angle, largeArcFlag, sweepFlag)
- {
- }
-
- virtual unsigned short pathSegType() const { return PATHSEG_ARC_REL; }
- virtual String pathSegTypeAsLetter() const { return "a"; }
-};
+ class SVGPathSegArc : public SVGPathSeg {
+ public:
+ SVGPathSegArc(float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag)
+ : m_x(x)
+ , m_y(y)
+ , m_r1(r1)
+ , m_r2(r2)
+ , m_angle(angle)
+ , m_largeArcFlag(largeArcFlag)
+ , m_sweepFlag(sweepFlag)
+ {
+ }
+
+ void setX(float x) { m_x = x; }
+ float x() const { return m_x; }
+
+ void setY(float y) { m_y = y; }
+ float y() const { return m_y; }
+
+ void setR1(float r1) { m_r1 = r1; }
+ float r1() const { return m_r1; }
+
+ void setR2(float r2) { m_r2 = r2; }
+ float r2() const { return m_r2; }
+
+ void setAngle(float angle) { m_angle = angle; }
+ float angle() const { return m_angle; }
+
+ void setLargeArcFlag(bool largeArcFlag) { m_largeArcFlag = largeArcFlag; }
+ bool largeArcFlag() const { return m_largeArcFlag; }
+
+ void setSweepFlag(bool sweepFlag) { m_sweepFlag = sweepFlag; }
+ bool sweepFlag() const { return m_sweepFlag; }
+
+ private:
+ float m_x;
+ float m_y;
+ float m_r1;
+ float m_r2;
+ float m_angle;
+
+ bool m_largeArcFlag : 1;
+ bool m_sweepFlag : 1;
+ };
+
+ class SVGPathSegArcAbs : public SVGPathSegArc {
+ public:
+ static PassRefPtr<SVGPathSegArcAbs> create(float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag)
+ {
+ return adoptRef(new SVGPathSegArcAbs(x, y, r1, r2, angle, largeArcFlag, sweepFlag));
+ }
+
+ private:
+ SVGPathSegArcAbs(float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag);
+
+ virtual unsigned short pathSegType() const { return PATHSEG_ARC_ABS; }
+ virtual String pathSegTypeAsLetter() const { return "A"; }
+ };
+
+ class SVGPathSegArcRel : public SVGPathSegArc {
+ public:
+ static PassRefPtr<SVGPathSegArcRel> create(float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag)
+ {
+ return adoptRef(new SVGPathSegArcRel(x, y, r1, r2, angle, largeArcFlag, sweepFlag));
+ }
+
+ private:
+ SVGPathSegArcRel(float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag);
+
+ virtual unsigned short pathSegType() const { return PATHSEG_ARC_REL; }
+ virtual String pathSegTypeAsLetter() const { return "a"; }
+ };
} // namespace WebCore
#endif // ENABLE(SVG)
#endif
+
+// vim:ts=4:noet
diff --git a/WebCore/svg/SVGPathSegArcAbs.idl b/WebCore/svg/SVGPathSegArcAbs.idl
index 7568155..bdc45a7 100644
--- a/WebCore/svg/SVGPathSegArcAbs.idl
+++ b/WebCore/svg/SVGPathSegArcAbs.idl
@@ -27,13 +27,20 @@
module svg {
interface [Conditional=SVG] SVGPathSegArcAbs : SVGPathSeg {
- attribute [StrictTypeChecking] float x;
- attribute [StrictTypeChecking] float y;
- attribute [StrictTypeChecking] float r1;
- attribute [StrictTypeChecking] float r2;
- attribute [StrictTypeChecking] float angle;
- attribute [StrictTypeChecking] boolean largeArcFlag;
- attribute [StrictTypeChecking] boolean sweepFlag;
+ attribute float x
+ /*setter raises(DOMException)*/;
+ attribute float y
+ /*setter raises(DOMException)*/;
+ attribute float r1
+ /*setter raises(DOMException)*/;
+ attribute float r2
+ /*setter raises(DOMException)*/;
+ attribute float angle
+ /*setter raises(DOMException)*/;
+ attribute boolean largeArcFlag
+ /*setter raises(DOMException)*/;
+ attribute boolean sweepFlag
+ /*setter raises(DOMException)*/;
};
}
diff --git a/WebCore/svg/SVGPathSegArcRel.idl b/WebCore/svg/SVGPathSegArcRel.idl
index 78852d8..8b08d68 100644
--- a/WebCore/svg/SVGPathSegArcRel.idl
+++ b/WebCore/svg/SVGPathSegArcRel.idl
@@ -27,13 +27,20 @@
module svg {
interface [Conditional=SVG] SVGPathSegArcRel : SVGPathSeg {
- attribute [StrictTypeChecking] float x;
- attribute [StrictTypeChecking] float y;
- attribute [StrictTypeChecking] float r1;
- attribute [StrictTypeChecking] float r2;
- attribute [StrictTypeChecking] float angle;
- attribute [StrictTypeChecking] boolean largeArcFlag;
- attribute [StrictTypeChecking] boolean sweepFlag;
+ attribute float x
+ /*setter raises(DOMException)*/;
+ attribute float y
+ /*setter raises(DOMException)*/;
+ attribute float r1
+ /*setter raises(DOMException)*/;
+ attribute float r2
+ /*setter raises(DOMException)*/;
+ attribute float angle
+ /*setter raises(DOMException)*/;
+ attribute boolean largeArcFlag
+ /*setter raises(DOMException)*/;
+ attribute boolean sweepFlag
+ /*setter raises(DOMException)*/;
};
}
diff --git a/WebCore/svg/SVGStylable.cpp b/WebCore/svg/SVGPathSegClosePath.cpp
similarity index 100%
copy from WebCore/svg/SVGStylable.cpp
copy to WebCore/svg/SVGPathSegClosePath.cpp
diff --git a/WebCore/svg/SVGPathSegClosePath.h b/WebCore/svg/SVGPathSegClosePath.h
index c3b2c14..8f074ed 100644
--- a/WebCore/svg/SVGPathSegClosePath.h
+++ b/WebCore/svg/SVGPathSegClosePath.h
@@ -22,22 +22,18 @@
#define SVGPathSegClosePath_h
#if ENABLE(SVG)
-#include "SVGPathSegWithContext.h"
+
+#include "PlatformString.h"
+#include "SVGPathSeg.h"
namespace WebCore {
-class SVGPathSegClosePath : public SVGPathSegWithContext {
+class SVGPathSegClosePath : public SVGPathSeg {
public:
- static PassRefPtr<SVGPathSegClosePath> create(SVGPathElement* element, SVGPathSegRole role)
- {
- return adoptRef(new SVGPathSegClosePath(element, role));
- }
+ static PassRefPtr<SVGPathSegClosePath> create() { return adoptRef(new SVGPathSegClosePath); }
private:
- SVGPathSegClosePath(SVGPathElement* element, SVGPathSegRole role)
- : SVGPathSegWithContext(element, role)
- {
- }
+ SVGPathSegClosePath() { }
virtual unsigned short pathSegType() const { return PATHSEG_CLOSEPATH; }
virtual String pathSegTypeAsLetter() const { return "Z"; }
diff --git a/WebCore/svg/SVGPathSegCurvetoCubic.cpp b/WebCore/svg/SVGPathSegCurvetoCubic.cpp
new file mode 100644
index 0000000..33f2d96
--- /dev/null
+++ b/WebCore/svg/SVGPathSegCurvetoCubic.cpp
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann at kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis at kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "config.h"
+
+#if ENABLE(SVG)
+#include "SVGPathSegCurvetoCubic.h"
+
+namespace WebCore {
+
+SVGPathSegCurvetoCubicAbs::SVGPathSegCurvetoCubicAbs(float x, float y, float x1, float y1, float x2, float y2)
+ : SVGPathSegCurvetoCubic(x, y, x1, y1, x2, y2)
+{
+}
+
+SVGPathSegCurvetoCubicRel::SVGPathSegCurvetoCubicRel(float x, float y, float x1, float y1, float x2, float y2)
+ : SVGPathSegCurvetoCubic(x, y, x1, y1, x2, y2)
+{
+}
+
+}
+
+#endif // ENABLE(SVG)
+
+// vim:ts=4:noet
diff --git a/WebCore/svg/SVGPathSegCurvetoCubic.h b/WebCore/svg/SVGPathSegCurvetoCubic.h
index 169d8f8..ae4a21d 100644
--- a/WebCore/svg/SVGPathSegCurvetoCubic.h
+++ b/WebCore/svg/SVGPathSegCurvetoCubic.h
@@ -22,109 +22,74 @@
#define SVGPathSegCurvetoCubic_h
#if ENABLE(SVG)
-#include "SVGPathSegWithContext.h"
+
+#include "PlatformString.h"
+#include "SVGPathSeg.h"
namespace WebCore {
-class SVGPathSegCurvetoCubic : public SVGPathSegWithContext {
-public:
- SVGPathSegCurvetoCubic(SVGPathElement* element, SVGPathSegRole role, float x, float y, float x1, float y1, float x2, float y2)
- : SVGPathSegWithContext(element, role)
- , m_x(x)
- , m_y(y)
- , m_x1(x1)
- , m_y1(y1)
- , m_x2(x2)
- , m_y2(y2)
- {
- }
-
- float x() const { return m_x; }
- void setX(float x)
- {
- m_x = x;
- commitChange();
- }
-
- float y() const { return m_y; }
- void setY(float y)
- {
- m_y = y;
- commitChange();
- }
-
- float x1() const { return m_x1; }
- void setX1(float x1)
- {
- m_x1 = x1;
- commitChange();
- }
-
- float y1() const { return m_y1; }
- void setY1(float y1)
- {
- m_y1 = y1;
- commitChange();
- }
-
- float x2() const { return m_x2; }
- void setX2(float x2)
- {
- m_x2 = x2;
- commitChange();
- }
-
- float y2() const { return m_y2; }
- void setY2(float y2)
- {
- m_y2 = y2;
- commitChange();
- }
-
-private:
- float m_x;
- float m_y;
- float m_x1;
- float m_y1;
- float m_x2;
- float m_y2;
-};
-
-class SVGPathSegCurvetoCubicAbs : public SVGPathSegCurvetoCubic {
-public:
- static PassRefPtr<SVGPathSegCurvetoCubicAbs> create(SVGPathElement* element, SVGPathSegRole role, float x, float y, float x1, float y1, float x2, float y2)
- {
- return adoptRef(new SVGPathSegCurvetoCubicAbs(element, role, x, y, x1, y1, x2, y2));
- }
-
-private:
- SVGPathSegCurvetoCubicAbs(SVGPathElement* element, SVGPathSegRole role, float x, float y, float x1, float y1, float x2, float y2)
- : SVGPathSegCurvetoCubic(element, role, x, y, x1, y1, x2, y2)
- {
- }
-
- virtual unsigned short pathSegType() const { return PATHSEG_CURVETO_CUBIC_ABS; }
- virtual String pathSegTypeAsLetter() const { return "C"; }
-};
-
-class SVGPathSegCurvetoCubicRel : public SVGPathSegCurvetoCubic {
-public:
- static PassRefPtr<SVGPathSegCurvetoCubicRel> create(SVGPathElement* element, SVGPathSegRole role, float x, float y, float x1, float y1, float x2, float y2)
- {
- return adoptRef(new SVGPathSegCurvetoCubicRel(element, role, x, y, x1, y1, x2, y2));
- }
-
-private:
- SVGPathSegCurvetoCubicRel(SVGPathElement* element, SVGPathSegRole role, float x, float y, float x1, float y1, float x2, float y2)
- : SVGPathSegCurvetoCubic(element, role, x, y, x1, y1, x2, y2)
- {
- }
-
- virtual unsigned short pathSegType() const { return PATHSEG_CURVETO_CUBIC_REL; }
- virtual String pathSegTypeAsLetter() const { return "c"; }
-};
+ class SVGPathSegCurvetoCubic : public SVGPathSeg {
+ public:
+ SVGPathSegCurvetoCubic(float x, float y, float x1, float y1, float x2, float y2) : m_x(x), m_y(y), m_x1(x1), m_y1(y1), m_x2(x2), m_y2(y2) { }
+
+ void setX(float x) { m_x = x; }
+ float x() const { return m_x; }
+
+ void setY(float y) { m_y = y; }
+ float y() const { return m_y; }
+
+ void setX1(float x1) { m_x1 = x1; }
+ float x1() const { return m_x1; }
+
+ void setY1(float y1) { m_y1 = y1; }
+ float y1() const { return m_y1; }
+
+ void setX2(float x2) { m_x2 = x2; }
+ float x2() const { return m_x2; }
+
+ void setY2(float y2) { m_y2 = y2; }
+ float y2() const { return m_y2; }
+
+ private:
+ float m_x;
+ float m_y;
+ float m_x1;
+ float m_y1;
+ float m_x2;
+ float m_y2;
+ };
+
+ class SVGPathSegCurvetoCubicAbs : public SVGPathSegCurvetoCubic {
+ public:
+ static PassRefPtr<SVGPathSegCurvetoCubicAbs> create(float x, float y, float x1, float y1, float x2, float y2)
+ {
+ return adoptRef(new SVGPathSegCurvetoCubicAbs(x, y, x1, y1, x2, y2));
+ }
+
+ private:
+ SVGPathSegCurvetoCubicAbs(float x, float y, float x1, float y1, float x2, float y2);
+
+ virtual unsigned short pathSegType() const { return PATHSEG_CURVETO_CUBIC_ABS; }
+ virtual String pathSegTypeAsLetter() const { return "C"; }
+ };
+
+ class SVGPathSegCurvetoCubicRel : public SVGPathSegCurvetoCubic {
+ public:
+ static PassRefPtr<SVGPathSegCurvetoCubicRel> create(float x, float y, float x1, float y1, float x2, float y2)
+ {
+ return adoptRef(new SVGPathSegCurvetoCubicRel(x, y, x1, y1, x2, y2));
+ }
+
+ private:
+ SVGPathSegCurvetoCubicRel(float x, float y, float x1, float y1, float x2, float y2);
+
+ virtual unsigned short pathSegType() const { return PATHSEG_CURVETO_CUBIC_REL; }
+ virtual String pathSegTypeAsLetter() const { return "c"; }
+ };
} // namespace WebCore
#endif // ENABLE(SVG)
#endif
+
+// vim:ts=4:noet
diff --git a/WebCore/svg/SVGPathSegCurvetoCubicAbs.idl b/WebCore/svg/SVGPathSegCurvetoCubicAbs.idl
index 4baf113..6b16809 100644
--- a/WebCore/svg/SVGPathSegCurvetoCubicAbs.idl
+++ b/WebCore/svg/SVGPathSegCurvetoCubicAbs.idl
@@ -22,17 +22,23 @@
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
+ */
module svg {
interface [Conditional=SVG] SVGPathSegCurvetoCubicAbs : SVGPathSeg {
- attribute [StrictTypeChecking] float x;
- attribute [StrictTypeChecking] float y;
- attribute [StrictTypeChecking] float x1;
- attribute [StrictTypeChecking] float y1;
- attribute [StrictTypeChecking] float x2;
- attribute [StrictTypeChecking] float y2;
+ attribute float x
+ /*setter raises(DOMException)*/;
+ attribute float y
+ /*setter raises(DOMException)*/;
+ attribute float x1
+ /*setter raises(DOMException)*/;
+ attribute float y1
+ /*setter raises(DOMException)*/;
+ attribute float x2
+ /*setter raises(DOMException)*/;
+ attribute float y2
+ /*setter raises(DOMException)*/;
};
}
diff --git a/WebCore/svg/SVGPathSegCurvetoCubicRel.idl b/WebCore/svg/SVGPathSegCurvetoCubicRel.idl
index 7e9fb7f..be6606d 100644
--- a/WebCore/svg/SVGPathSegCurvetoCubicRel.idl
+++ b/WebCore/svg/SVGPathSegCurvetoCubicRel.idl
@@ -22,17 +22,23 @@
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
+ */
module svg {
interface [Conditional=SVG] SVGPathSegCurvetoCubicRel : SVGPathSeg {
- attribute [StrictTypeChecking] float x;
- attribute [StrictTypeChecking] float y;
- attribute [StrictTypeChecking] float x1;
- attribute [StrictTypeChecking] float y1;
- attribute [StrictTypeChecking] float x2;
- attribute [StrictTypeChecking] float y2;
+ attribute float x
+ /*setter raises(DOMException)*/;
+ attribute float y
+ /*setter raises(DOMException)*/;
+ attribute float x1
+ /*setter raises(DOMException)*/;
+ attribute float y1
+ /*setter raises(DOMException)*/;
+ attribute float x2
+ /*setter raises(DOMException)*/;
+ attribute float y2
+ /*setter raises(DOMException)*/;
};
}
diff --git a/WebCore/svg/SVGPathSegCurvetoCubicSmooth.cpp b/WebCore/svg/SVGPathSegCurvetoCubicSmooth.cpp
new file mode 100644
index 0000000..a7625e3
--- /dev/null
+++ b/WebCore/svg/SVGPathSegCurvetoCubicSmooth.cpp
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann at kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis at kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "config.h"
+#if ENABLE(SVG)
+#include "SVGPathSegCurvetoCubicSmooth.h"
+
+namespace WebCore {
+
+SVGPathSegCurvetoCubicSmoothAbs::SVGPathSegCurvetoCubicSmoothAbs(float x, float y, float x2, float y2)
+ : SVGPathSegCurvetoCubicSmooth(x, y, x2, y2)
+{
+}
+
+SVGPathSegCurvetoCubicSmoothRel::SVGPathSegCurvetoCubicSmoothRel(float x, float y, float x2, float y2)
+ : SVGPathSegCurvetoCubicSmooth(x, y, x2, y2)
+{
+}
+
+}
+
+#endif // ENABLE(SVG)
+
+// vim:ts=4:noet
diff --git a/WebCore/svg/SVGPathSegCurvetoCubicSmooth.h b/WebCore/svg/SVGPathSegCurvetoCubicSmooth.h
index a654297..2227951 100644
--- a/WebCore/svg/SVGPathSegCurvetoCubicSmooth.h
+++ b/WebCore/svg/SVGPathSegCurvetoCubicSmooth.h
@@ -22,89 +22,62 @@
#define SVGPathSegCurvetoCubicSmooth_h
#if ENABLE(SVG)
-#include "SVGPathSegWithContext.h"
+
+#include "PlatformString.h"
+#include "SVGPathSeg.h"
namespace WebCore {
-class SVGPathSegCurvetoCubicSmooth : public SVGPathSegWithContext {
-public:
- SVGPathSegCurvetoCubicSmooth(SVGPathElement* element, SVGPathSegRole role, float x, float y, float x2, float y2)
- : SVGPathSegWithContext(element, role)
- , m_x(x)
- , m_y(y)
- , m_x2(x2)
- , m_y2(y2)
- {
- }
-
- float x() const { return m_x; }
- void setX(float x)
- {
- m_x = x;
- commitChange();
- }
-
- float y() const { return m_y; }
- void setY(float y)
- {
- m_y = y;
- commitChange();
- }
-
- float x2() const { return m_x2; }
- void setX2(float x2)
- {
- m_x2 = x2;
- commitChange();
- }
-
- float y2() const { return m_y2; }
- void setY2(float y2)
- {
- m_y2 = y2;
- commitChange();
- }
-
-private:
- float m_x;
- float m_y;
- float m_x2;
- float m_y2;
-};
-
-class SVGPathSegCurvetoCubicSmoothAbs : public SVGPathSegCurvetoCubicSmooth {
-public:
- static PassRefPtr<SVGPathSegCurvetoCubicSmoothAbs> create(SVGPathElement* element, SVGPathSegRole role, float x, float y, float x2, float y2)
- {
- return adoptRef(new SVGPathSegCurvetoCubicSmoothAbs(element, role, x, y, x2, y2));
- }
-
-private:
- SVGPathSegCurvetoCubicSmoothAbs(SVGPathElement* element, SVGPathSegRole role, float x, float y, float x2, float y2)
- : SVGPathSegCurvetoCubicSmooth(element, role, x, y, x2, y2)
- {
- }
-
- virtual unsigned short pathSegType() const { return PATHSEG_CURVETO_CUBIC_SMOOTH_ABS; }
- virtual String pathSegTypeAsLetter() const { return "S"; }
-};
-
-class SVGPathSegCurvetoCubicSmoothRel : public SVGPathSegCurvetoCubicSmooth {
-public:
- static PassRefPtr<SVGPathSegCurvetoCubicSmoothRel> create(SVGPathElement* element, SVGPathSegRole role, float x, float y, float x2, float y2)
- {
- return adoptRef(new SVGPathSegCurvetoCubicSmoothRel(element, role, x, y, x2, y2));
- }
-
-private:
- SVGPathSegCurvetoCubicSmoothRel(SVGPathElement* element, SVGPathSegRole role, float x, float y, float x2, float y2)
- : SVGPathSegCurvetoCubicSmooth(element, role, x, y, x2, y2)
- {
- }
-
- virtual unsigned short pathSegType() const { return PATHSEG_CURVETO_CUBIC_SMOOTH_REL; }
- virtual String pathSegTypeAsLetter() const { return "s"; }
-};
+ class SVGPathSegCurvetoCubicSmooth : public SVGPathSeg {
+ public:
+ SVGPathSegCurvetoCubicSmooth(float x, float y, float x2, float y2)
+ : m_x(x)
+ , m_y(y)
+ , m_x2(x2)
+ , m_y2(y2)
+ {
+ }
+
+ void setX(float x) { m_x = x; }
+ float x() const { return m_x; }
+
+ void setY(float y) { m_y = y; }
+ float y() const { return m_y; }
+
+ void setX2(float x2) { m_x2 = x2; }
+ float x2() const { return m_x2; }
+
+ void setY2(float y2) { m_y2 = y2; }
+ float y2() const { return m_y2; }
+
+ private:
+ float m_x;
+ float m_y;
+ float m_x2;
+ float m_y2;
+ };
+
+ class SVGPathSegCurvetoCubicSmoothAbs : public SVGPathSegCurvetoCubicSmooth {
+ public:
+ static PassRefPtr<SVGPathSegCurvetoCubicSmoothAbs> create(float x, float y, float x2, float y2) { return adoptRef(new SVGPathSegCurvetoCubicSmoothAbs(x, y, x2, y2)); }
+
+ private:
+ SVGPathSegCurvetoCubicSmoothAbs(float x, float y, float x2, float y2);
+
+ virtual unsigned short pathSegType() const { return PATHSEG_CURVETO_CUBIC_SMOOTH_ABS; }
+ virtual String pathSegTypeAsLetter() const { return "S"; }
+ };
+
+ class SVGPathSegCurvetoCubicSmoothRel : public SVGPathSegCurvetoCubicSmooth {
+ public:
+ static PassRefPtr<SVGPathSegCurvetoCubicSmoothRel> create(float x, float y, float x2, float y2) { return adoptRef(new SVGPathSegCurvetoCubicSmoothRel(x, y, x2, y2)); }
+
+ private:
+ SVGPathSegCurvetoCubicSmoothRel(float x, float y, float x2, float y2);
+
+ virtual unsigned short pathSegType() const { return PATHSEG_CURVETO_CUBIC_SMOOTH_REL; }
+ virtual String pathSegTypeAsLetter() const { return "s"; }
+ };
} // namespace WebCore
diff --git a/WebCore/svg/SVGPathSegCurvetoCubicSmoothAbs.idl b/WebCore/svg/SVGPathSegCurvetoCubicSmoothAbs.idl
index 0779c9f..d31582e 100644
--- a/WebCore/svg/SVGPathSegCurvetoCubicSmoothAbs.idl
+++ b/WebCore/svg/SVGPathSegCurvetoCubicSmoothAbs.idl
@@ -22,15 +22,19 @@
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
+ */
module svg {
interface [Conditional=SVG] SVGPathSegCurvetoCubicSmoothAbs : SVGPathSeg {
- attribute [StrictTypeChecking] float x;
- attribute [StrictTypeChecking] float y;
- attribute [StrictTypeChecking] float x2;
- attribute [StrictTypeChecking] float y2;
+ attribute float x
+ /*setter raises(DOMException)*/;
+ attribute float y
+ /*setter raises(DOMException)*/;
+ attribute float x2
+ /*setter raises(DOMException)*/;
+ attribute float y2
+ /*setter raises(DOMException)*/;
};
}
diff --git a/WebCore/svg/SVGPathSegCurvetoCubicSmoothRel.idl b/WebCore/svg/SVGPathSegCurvetoCubicSmoothRel.idl
index d4f71e4..2dd71f0 100644
--- a/WebCore/svg/SVGPathSegCurvetoCubicSmoothRel.idl
+++ b/WebCore/svg/SVGPathSegCurvetoCubicSmoothRel.idl
@@ -22,15 +22,19 @@
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
+ */
module svg {
interface [Conditional=SVG] SVGPathSegCurvetoCubicSmoothRel : SVGPathSeg {
- attribute [StrictTypeChecking] float x;
- attribute [StrictTypeChecking] float y;
- attribute [StrictTypeChecking] float x2;
- attribute [StrictTypeChecking] float y2;
+ attribute float x
+ /*setter raises(DOMException)*/;
+ attribute float y
+ /*setter raises(DOMException)*/;
+ attribute float x2
+ /*setter raises(DOMException)*/;
+ attribute float y2
+ /*setter raises(DOMException)*/;
};
}
diff --git a/WebCore/svg/SVGPathSegCurvetoQuadratic.cpp b/WebCore/svg/SVGPathSegCurvetoQuadratic.cpp
new file mode 100644
index 0000000..bf2bb4d
--- /dev/null
+++ b/WebCore/svg/SVGPathSegCurvetoQuadratic.cpp
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann at kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis at kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "config.h"
+
+#if ENABLE(SVG)
+#include "SVGPathSegCurvetoQuadratic.h"
+
+namespace WebCore {
+
+SVGPathSegCurvetoQuadraticAbs::SVGPathSegCurvetoQuadraticAbs(float x, float y, float x1, float y1)
+ : SVGPathSegCurvetoQuadratic(x, y, x1, y1)
+{
+}
+
+SVGPathSegCurvetoQuadraticRel::SVGPathSegCurvetoQuadraticRel(float x, float y, float x1, float y1)
+ : SVGPathSegCurvetoQuadratic(x, y, x1, y1)
+{
+}
+
+}
+
+#endif // ENABLE(SVG)
+
+// vim:ts=4:noet
diff --git a/WebCore/svg/SVGPathSegCurvetoQuadratic.h b/WebCore/svg/SVGPathSegCurvetoQuadratic.h
index 894f787..f84cfaa 100644
--- a/WebCore/svg/SVGPathSegCurvetoQuadratic.h
+++ b/WebCore/svg/SVGPathSegCurvetoQuadratic.h
@@ -22,91 +22,66 @@
#define SVGPathSegCurvetoQuadratic_h
#if ENABLE(SVG)
-#include "SVGPathSegWithContext.h"
+
+#include "PlatformString.h"
+#include "SVGPathSeg.h"
namespace WebCore {
-class SVGPathSegCurvetoQuadratic : public SVGPathSegWithContext {
-public:
- SVGPathSegCurvetoQuadratic(SVGPathElement* element, SVGPathSegRole role, float x, float y, float x1, float y1)
- : SVGPathSegWithContext(element, role)
- , m_x(x)
- , m_y(y)
- , m_x1(x1)
- , m_y1(y1)
- {
- }
-
- float x() const { return m_x; }
- void setX(float x)
- {
- m_x = x;
- commitChange();
- }
-
- float y() const { return m_y; }
- void setY(float y)
- {
- m_y = y;
- commitChange();
- }
-
- float x1() const { return m_x1; }
- void setX1(float x1)
- {
- m_x1 = x1;
- commitChange();
- }
-
- float y1() const { return m_y1; }
- void setY1(float y1)
- {
- m_y1 = y1;
- commitChange();
- }
-
-private:
- float m_x;
- float m_y;
- float m_x1;
- float m_y1;
-};
-
-class SVGPathSegCurvetoQuadraticAbs : public SVGPathSegCurvetoQuadratic {
-public:
- static PassRefPtr<SVGPathSegCurvetoQuadraticAbs> create(SVGPathElement* element, SVGPathSegRole role, float x, float y, float x1, float y1)
- {
- return adoptRef(new SVGPathSegCurvetoQuadraticAbs(element, role, x, y, x1, y1));
- }
-
-private:
- SVGPathSegCurvetoQuadraticAbs(SVGPathElement* element, SVGPathSegRole role, float x, float y, float x1, float y1)
- : SVGPathSegCurvetoQuadratic(element, role, x, y, x1, y1)
- {
- }
-
- virtual unsigned short pathSegType() const { return PATHSEG_CURVETO_QUADRATIC_ABS; }
- virtual String pathSegTypeAsLetter() const { return "Q"; }
-};
-
-class SVGPathSegCurvetoQuadraticRel : public SVGPathSegCurvetoQuadratic {
-public:
- static PassRefPtr<SVGPathSegCurvetoQuadraticRel> create(SVGPathElement* element, SVGPathSegRole role, float x, float y, float x1, float y1)
- {
- return adoptRef(new SVGPathSegCurvetoQuadraticRel(element, role, x, y, x1, y1));
- }
-
-private:
- SVGPathSegCurvetoQuadraticRel(SVGPathElement* element, SVGPathSegRole role, float x, float y, float x1, float y1)
- : SVGPathSegCurvetoQuadratic(element, role, x, y, x1, y1)
- {
- }
-
- virtual unsigned short pathSegType() const { return PATHSEG_CURVETO_QUADRATIC_REL; }
- virtual String pathSegTypeAsLetter() const { return "q"; }
-};
+ class SVGPathSegCurvetoQuadratic : public SVGPathSeg {
+ public:
+ SVGPathSegCurvetoQuadratic(float x, float y, float x1, float y1)
+ : m_x(x)
+ , m_y(y)
+ , m_x1(x1)
+ , m_y1(y1)
+ {
+ }
+
+ void setX(float x) { m_x = x; }
+ float x() const { return m_x; }
+
+ void setY(float y) { m_y = y; }
+ float y() const { return m_y; }
+
+ void setX1(float x1) { m_x1 = x1; }
+ float x1() const { return m_x1; }
+
+ void setY1(float y1) { m_y1 = y1; }
+ float y1() const { return m_y1; }
+
+ private:
+ float m_x;
+ float m_y;
+ float m_x1;
+ float m_y1;
+ };
+
+ class SVGPathSegCurvetoQuadraticAbs : public SVGPathSegCurvetoQuadratic {
+ public:
+ static PassRefPtr<SVGPathSegCurvetoQuadraticAbs> create(float x, float y, float x1, float y1) { return adoptRef(new SVGPathSegCurvetoQuadraticAbs(x, y, x1, y1)); }
+
+ private:
+ SVGPathSegCurvetoQuadraticAbs(float x, float y, float x1, float y1);
+
+ virtual unsigned short pathSegType() const { return PATHSEG_CURVETO_QUADRATIC_ABS; }
+ virtual String pathSegTypeAsLetter() const { return "Q"; }
+ };
+
+ class SVGPathSegCurvetoQuadraticRel : public SVGPathSegCurvetoQuadratic {
+ public:
+ static PassRefPtr<SVGPathSegCurvetoQuadraticRel> create(float x, float y, float x1, float y1) { return adoptRef(new SVGPathSegCurvetoQuadraticRel(x, y, x1, y1)); }
+
+ private:
+ SVGPathSegCurvetoQuadraticRel(float x, float y, float x1, float y1);
+
+ virtual unsigned short pathSegType() const { return PATHSEG_CURVETO_QUADRATIC_REL; }
+ virtual String pathSegTypeAsLetter() const { return "q"; }
+ };
} // namespace WebCore
#endif // ENABLE(SVG)
#endif
+
+// vim:ts=4:noet
diff --git a/WebCore/svg/SVGPathSegCurvetoQuadraticAbs.idl b/WebCore/svg/SVGPathSegCurvetoQuadraticAbs.idl
index 1fbb461..9b09222 100644
--- a/WebCore/svg/SVGPathSegCurvetoQuadraticAbs.idl
+++ b/WebCore/svg/SVGPathSegCurvetoQuadraticAbs.idl
@@ -27,10 +27,14 @@
module svg {
interface [Conditional=SVG] SVGPathSegCurvetoQuadraticAbs : SVGPathSeg {
- attribute [StrictTypeChecking] float x;
- attribute [StrictTypeChecking] float y;
- attribute [StrictTypeChecking] float x1;
- attribute [StrictTypeChecking] float y1;
+ attribute float x
+ /*setter raises(DOMException)*/;
+ attribute float y
+ /*setter raises(DOMException)*/;
+ attribute float x1
+ /*setter raises(DOMException)*/;
+ attribute float y1
+ /*setter raises(DOMException)*/;
};
}
diff --git a/WebCore/svg/SVGPathSegCurvetoQuadraticRel.idl b/WebCore/svg/SVGPathSegCurvetoQuadraticRel.idl
index 48a39fb..01e1e6d 100644
--- a/WebCore/svg/SVGPathSegCurvetoQuadraticRel.idl
+++ b/WebCore/svg/SVGPathSegCurvetoQuadraticRel.idl
@@ -27,10 +27,14 @@
module svg {
interface [Conditional=SVG] SVGPathSegCurvetoQuadraticRel : SVGPathSeg {
- attribute [StrictTypeChecking] float x;
- attribute [StrictTypeChecking] float y;
- attribute [StrictTypeChecking] float x1;
- attribute [StrictTypeChecking] float y1;
+ attribute float x
+ /*setter raises(DOMException)*/;
+ attribute float y
+ /*setter raises(DOMException)*/;
+ attribute float x1
+ /*setter raises(DOMException)*/;
+ attribute float y1
+ /*setter raises(DOMException)*/;
};
}
diff --git a/WebCore/svg/SVGPathSegCurvetoQuadraticSmooth.cpp b/WebCore/svg/SVGPathSegCurvetoQuadraticSmooth.cpp
new file mode 100644
index 0000000..6a7e9f7
--- /dev/null
+++ b/WebCore/svg/SVGPathSegCurvetoQuadraticSmooth.cpp
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann at kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis at kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "config.h"
+
+#if ENABLE(SVG)
+#include "SVGPathSegCurvetoQuadraticSmooth.h"
+
+namespace WebCore {
+
+SVGPathSegCurvetoQuadraticSmoothAbs::SVGPathSegCurvetoQuadraticSmoothAbs(float x, float y)
+ : SVGPathSegSingleCoord(x, y)
+{
+}
+
+SVGPathSegCurvetoQuadraticSmoothRel::SVGPathSegCurvetoQuadraticSmoothRel(float x, float y)
+ : SVGPathSegSingleCoord(x, y)
+{
+}
+
+}
+
+#endif // ENABLE(SVG)
+
+// vim:ts=4:noet
diff --git a/WebCore/svg/SVGPathSegCurvetoQuadraticSmooth.h b/WebCore/svg/SVGPathSegCurvetoQuadraticSmooth.h
index b66062a..109799e 100644
--- a/WebCore/svg/SVGPathSegCurvetoQuadraticSmooth.h
+++ b/WebCore/svg/SVGPathSegCurvetoQuadraticSmooth.h
@@ -22,45 +22,37 @@
#define SVGPathSegCurvetoQuadraticSmooth_h
#if ENABLE(SVG)
-#include "SVGPathSegWithContext.h"
+
+#include "PlatformString.h"
+#include "SVGPathSeg.h"
namespace WebCore {
-class SVGPathSegCurvetoQuadraticSmoothAbs : public SVGPathSegSingleCoordinate {
-public:
- static PassRefPtr<SVGPathSegCurvetoQuadraticSmoothAbs> create(SVGPathElement* element, SVGPathSegRole role, float x, float y)
- {
- return adoptRef(new SVGPathSegCurvetoQuadraticSmoothAbs(element, role, x, y));
- }
+ class SVGPathSegCurvetoQuadraticSmoothAbs : public SVGPathSegSingleCoord {
+ public:
+ static PassRefPtr<SVGPathSegCurvetoQuadraticSmoothAbs> create(float x, float y) { return adoptRef(new SVGPathSegCurvetoQuadraticSmoothAbs(x, y)); }
-private:
- SVGPathSegCurvetoQuadraticSmoothAbs(SVGPathElement* element, SVGPathSegRole role, float x, float y)
- : SVGPathSegSingleCoordinate(element, role, x, y)
- {
- }
+ private:
+ SVGPathSegCurvetoQuadraticSmoothAbs(float x, float y);
- virtual unsigned short pathSegType() const { return PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS; }
- virtual String pathSegTypeAsLetter() const { return "T"; }
-};
+ virtual unsigned short pathSegType() const { return PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS; }
+ virtual String pathSegTypeAsLetter() const { return "T"; }
+ };
-class SVGPathSegCurvetoQuadraticSmoothRel : public SVGPathSegSingleCoordinate {
-public:
- static PassRefPtr<SVGPathSegCurvetoQuadraticSmoothRel> create(SVGPathElement* element, SVGPathSegRole role, float x, float y)
- {
- return adoptRef(new SVGPathSegCurvetoQuadraticSmoothRel(element, role, x, y));
- }
+ class SVGPathSegCurvetoQuadraticSmoothRel : public SVGPathSegSingleCoord {
+ public:
+ static PassRefPtr<SVGPathSegCurvetoQuadraticSmoothRel> create(float x, float y) { return adoptRef(new SVGPathSegCurvetoQuadraticSmoothRel(x, y)); }
-private:
- SVGPathSegCurvetoQuadraticSmoothRel(SVGPathElement* element, SVGPathSegRole role, float x, float y)
- : SVGPathSegSingleCoordinate(element, role, x, y)
- {
- }
+ private:
+ SVGPathSegCurvetoQuadraticSmoothRel(float x, float y);
- virtual unsigned short pathSegType() const { return PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL; }
- virtual String pathSegTypeAsLetter() const { return "t"; }
-};
+ virtual unsigned short pathSegType() const { return PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL; }
+ virtual String pathSegTypeAsLetter() const { return "t"; }
+ };
} // namespace WebCore
#endif // ENABLE(SVG)
#endif
+
+// vim:ts=4:noet
diff --git a/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl b/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl
index ad02534..4568538 100644
--- a/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl
+++ b/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl
@@ -27,8 +27,10 @@
module svg {
interface [Conditional=SVG] SVGPathSegCurvetoQuadraticSmoothAbs : SVGPathSeg {
- attribute [StrictTypeChecking] float x;
- attribute [StrictTypeChecking] float y;
+ attribute float x
+ /*setter raises(DOMException)*/;
+ attribute float y
+ /*setter raises(DOMException)*/;
};
}
diff --git a/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl b/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl
index 6d58b8f..5ffde79 100644
--- a/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl
+++ b/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl
@@ -27,8 +27,10 @@
module svg {
interface [Conditional=SVG] SVGPathSegCurvetoQuadraticSmoothRel : SVGPathSeg {
- attribute [StrictTypeChecking] float x;
- attribute [StrictTypeChecking] float y;
+ attribute float x
+ /*setter raises(DOMException)*/;
+ attribute float y
+ /*setter raises(DOMException)*/;
};
}
diff --git a/WebCore/svg/SVGPathSegLineto.cpp b/WebCore/svg/SVGPathSegLineto.cpp
new file mode 100644
index 0000000..746f2c1
--- /dev/null
+++ b/WebCore/svg/SVGPathSegLineto.cpp
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann at kde.org>
+ * Copyright (C) 2004, 2005, 2008 Rob Buis <buis at kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "config.h"
+
+#if ENABLE(SVG)
+#include "SVGPathSegLineto.h"
+
+namespace WebCore {
+
+SVGPathSegLinetoAbs::SVGPathSegLinetoAbs(float x, float y)
+ : SVGPathSegSingleCoord(x, y)
+{
+}
+
+SVGPathSegLinetoRel::SVGPathSegLinetoRel(float x, float y)
+ : SVGPathSegSingleCoord(x, y)
+{
+}
+
+}
+
+#endif // ENABLE(SVG)
+
+// vim:ts=4:noet
diff --git a/WebCore/svg/SVGPathSegLineto.h b/WebCore/svg/SVGPathSegLineto.h
index c995c98..3cd3b7f 100644
--- a/WebCore/svg/SVGPathSegLineto.h
+++ b/WebCore/svg/SVGPathSegLineto.h
@@ -22,45 +22,37 @@
#define SVGPathSegLineto_h
#if ENABLE(SVG)
-#include "SVGPathSegWithContext.h"
+
+#include "PlatformString.h"
+#include "SVGPathSeg.h"
namespace WebCore {
-class SVGPathSegLinetoAbs : public SVGPathSegSingleCoordinate {
-public:
- static PassRefPtr<SVGPathSegLinetoAbs> create(SVGPathElement* element, SVGPathSegRole role, float x, float y)
- {
- return adoptRef(new SVGPathSegLinetoAbs(element, role, x, y));
- }
+ class SVGPathSegLinetoAbs : public SVGPathSegSingleCoord {
+ public:
+ static PassRefPtr<SVGPathSegLinetoAbs> create(float x, float y) { return adoptRef(new SVGPathSegLinetoAbs(x, y)); }
-private:
- SVGPathSegLinetoAbs(SVGPathElement* element, SVGPathSegRole role, float x, float y)
- : SVGPathSegSingleCoordinate(element, role, x, y)
- {
- }
+ private:
+ SVGPathSegLinetoAbs(float x, float y);
- virtual unsigned short pathSegType() const { return PATHSEG_LINETO_ABS; }
- virtual String pathSegTypeAsLetter() const { return "L"; }
-};
+ virtual unsigned short pathSegType() const { return PATHSEG_LINETO_ABS; }
+ virtual String pathSegTypeAsLetter() const { return "L"; }
+ };
-class SVGPathSegLinetoRel : public SVGPathSegSingleCoordinate {
-public:
- static PassRefPtr<SVGPathSegLinetoRel> create(SVGPathElement* element, SVGPathSegRole role, float x, float y)
- {
- return adoptRef(new SVGPathSegLinetoRel(element, role, x, y));
- }
+ class SVGPathSegLinetoRel : public SVGPathSegSingleCoord {
+ public:
+ static PassRefPtr<SVGPathSegLinetoRel> create(float x, float y) { return adoptRef(new SVGPathSegLinetoRel(x, y)); }
-private:
- SVGPathSegLinetoRel(SVGPathElement* element, SVGPathSegRole role, float x, float y)
- : SVGPathSegSingleCoordinate(element, role, x, y)
- {
- }
+ private:
+ SVGPathSegLinetoRel(float x, float y);
- virtual unsigned short pathSegType() const { return PATHSEG_LINETO_REL; }
- virtual String pathSegTypeAsLetter() const { return "l"; }
-};
+ virtual unsigned short pathSegType() const { return PATHSEG_LINETO_REL; }
+ virtual String pathSegTypeAsLetter() const { return "l"; }
+ };
} // namespace WebCore
#endif // ENABLE(SVG)
#endif
+
+// vim:ts=4:noet
diff --git a/WebCore/svg/SVGPathSegLinetoAbs.idl b/WebCore/svg/SVGPathSegLinetoAbs.idl
index c428a2b..85dfca5 100644
--- a/WebCore/svg/SVGPathSegLinetoAbs.idl
+++ b/WebCore/svg/SVGPathSegLinetoAbs.idl
@@ -27,8 +27,10 @@
module svg {
interface [Conditional=SVG] SVGPathSegLinetoAbs : SVGPathSeg {
- attribute [StrictTypeChecking] float x;
- attribute [StrictTypeChecking] float y;
+ attribute float x
+ /*setter raises(DOMException)*/;
+ attribute float y
+ /*setter raises(DOMException)*/;
};
}
diff --git a/WebCore/svg/SVGPathSegLinetoHorizontal.cpp b/WebCore/svg/SVGPathSegLinetoHorizontal.cpp
new file mode 100644
index 0000000..85f2896
--- /dev/null
+++ b/WebCore/svg/SVGPathSegLinetoHorizontal.cpp
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann at kde.org>
+ * Copyright (C) 2004, 2005, 2008 Rob Buis <buis at kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "config.h"
+
+#if ENABLE(SVG)
+#include "SVGPathSegLinetoHorizontal.h"
+
+namespace WebCore {
+
+SVGPathSegLinetoHorizontalAbs::SVGPathSegLinetoHorizontalAbs(float x)
+ : SVGPathSegLinetoHorizontal(x)
+{
+}
+
+SVGPathSegLinetoHorizontalRel::SVGPathSegLinetoHorizontalRel(float x)
+ : SVGPathSegLinetoHorizontal(x)
+{
+}
+
+}
+
+#endif // ENABLE(SVG)
+
+// vim:ts=4:noet
diff --git a/WebCore/svg/SVGPathSegLinetoHorizontal.h b/WebCore/svg/SVGPathSegLinetoHorizontal.h
index d175cdd..da59f05 100644
--- a/WebCore/svg/SVGPathSegLinetoHorizontal.h
+++ b/WebCore/svg/SVGPathSegLinetoHorizontal.h
@@ -22,64 +22,48 @@
#define SVGPathSegLinetoHorizontal_h
#if ENABLE(SVG)
-#include "SVGPathSegWithContext.h"
+
+#include "PlatformString.h"
+#include "SVGPathSeg.h"
namespace WebCore {
-class SVGPathSegLinetoHorizontal : public SVGPathSegWithContext {
-public:
- SVGPathSegLinetoHorizontal(SVGPathElement* element, SVGPathSegRole role, float x)
- : SVGPathSegWithContext(element, role)
- , m_x(x)
- {
- }
-
- float x() const { return m_x; }
- void setX(float x)
- {
- m_x = x;
- commitChange();
- }
-
-private:
- float m_x;
-};
-
-class SVGPathSegLinetoHorizontalAbs : public SVGPathSegLinetoHorizontal {
-public:
- static PassRefPtr<SVGPathSegLinetoHorizontalAbs> create(SVGPathElement* element, SVGPathSegRole role, float x)
- {
- return adoptRef(new SVGPathSegLinetoHorizontalAbs(element, role, x));
- }
-
-private:
- SVGPathSegLinetoHorizontalAbs(SVGPathElement* element, SVGPathSegRole role, float x)
- : SVGPathSegLinetoHorizontal(element, role, x)
- {
- }
-
- virtual unsigned short pathSegType() const { return PATHSEG_LINETO_HORIZONTAL_ABS; }
- virtual String pathSegTypeAsLetter() const { return "H"; }
-};
-
-class SVGPathSegLinetoHorizontalRel : public SVGPathSegLinetoHorizontal {
-public:
- static PassRefPtr<SVGPathSegLinetoHorizontalRel> create(SVGPathElement* element, SVGPathSegRole role, float x)
- {
- return adoptRef(new SVGPathSegLinetoHorizontalRel(element, role, x));
- }
-
-private:
- SVGPathSegLinetoHorizontalRel(SVGPathElement* element, SVGPathSegRole role, float x)
- : SVGPathSegLinetoHorizontal(element, role, x)
- {
- }
-
- virtual unsigned short pathSegType() const { return PATHSEG_LINETO_HORIZONTAL_REL; }
- virtual String pathSegTypeAsLetter() const { return "h"; }
-};
+ class SVGPathSegLinetoHorizontal : public SVGPathSeg {
+ public:
+ SVGPathSegLinetoHorizontal(float x) : SVGPathSeg(), m_x(x) {}
+
+ void setX(float x) { m_x = x; }
+ float x() const { return m_x; }
+
+ private:
+ float m_x;
+ };
+
+ class SVGPathSegLinetoHorizontalAbs : public SVGPathSegLinetoHorizontal {
+ public:
+ static PassRefPtr<SVGPathSegLinetoHorizontalAbs> create(float x) { return adoptRef(new SVGPathSegLinetoHorizontalAbs(x)); }
+
+ private:
+ SVGPathSegLinetoHorizontalAbs(float x);
+
+ virtual unsigned short pathSegType() const { return PATHSEG_LINETO_HORIZONTAL_ABS; }
+ virtual String pathSegTypeAsLetter() const { return "H"; }
+ };
+
+ class SVGPathSegLinetoHorizontalRel : public SVGPathSegLinetoHorizontal {
+ public:
+ static PassRefPtr<SVGPathSegLinetoHorizontalRel> create(float x) { return adoptRef(new SVGPathSegLinetoHorizontalRel(x)); }
+
+ private:
+ SVGPathSegLinetoHorizontalRel(float x);
+
+ virtual unsigned short pathSegType() const { return PATHSEG_LINETO_HORIZONTAL_REL; }
+ virtual String pathSegTypeAsLetter() const { return "h"; }
+ };
} // namespace WebCore
#endif // ENABLE(SVG)
#endif
+
+// vim:ts=4:noet
diff --git a/WebCore/svg/SVGPathSegLinetoHorizontalAbs.idl b/WebCore/svg/SVGPathSegLinetoHorizontalAbs.idl
index 522f997..eadb612 100644
--- a/WebCore/svg/SVGPathSegLinetoHorizontalAbs.idl
+++ b/WebCore/svg/SVGPathSegLinetoHorizontalAbs.idl
@@ -27,7 +27,8 @@
module svg {
interface [Conditional=SVG] SVGPathSegLinetoHorizontalAbs : SVGPathSeg {
- attribute [StrictTypeChecking] float x;
+ attribute float x
+ /*setter raises(DOMException)*/;
};
}
diff --git a/WebCore/svg/SVGPathSegLinetoHorizontalRel.idl b/WebCore/svg/SVGPathSegLinetoHorizontalRel.idl
index 3f9a22a..91f537c 100644
--- a/WebCore/svg/SVGPathSegLinetoHorizontalRel.idl
+++ b/WebCore/svg/SVGPathSegLinetoHorizontalRel.idl
@@ -27,7 +27,8 @@
module svg {
interface [Conditional=SVG] SVGPathSegLinetoHorizontalRel : SVGPathSeg {
- attribute [StrictTypeChecking] float x;
+ attribute float x
+ /*setter raises(DOMException)*/;
};
}
diff --git a/WebCore/svg/SVGPathSegLinetoRel.idl b/WebCore/svg/SVGPathSegLinetoRel.idl
index d92cdc4..51a8b5d 100644
--- a/WebCore/svg/SVGPathSegLinetoRel.idl
+++ b/WebCore/svg/SVGPathSegLinetoRel.idl
@@ -27,8 +27,10 @@
module svg {
interface [Conditional=SVG] SVGPathSegLinetoRel : SVGPathSeg {
- attribute [StrictTypeChecking] float x;
- attribute [StrictTypeChecking] float y;
+ attribute float x
+ /*setter raises(DOMException)*/;
+ attribute float y
+ /*setter raises(DOMException)*/;
};
}
diff --git a/WebCore/svg/SVGPathSegLinetoVertical.cpp b/WebCore/svg/SVGPathSegLinetoVertical.cpp
new file mode 100644
index 0000000..ba02c9e
--- /dev/null
+++ b/WebCore/svg/SVGPathSegLinetoVertical.cpp
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann at kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis at kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "config.h"
+
+#if ENABLE(SVG)
+#include "SVGPathSegLinetoVertical.h"
+
+namespace WebCore {
+
+SVGPathSegLinetoVerticalAbs::SVGPathSegLinetoVerticalAbs(float y)
+ : SVGPathSegLinetoVertical(y)
+{
+}
+
+SVGPathSegLinetoVerticalRel::SVGPathSegLinetoVerticalRel(float y)
+ : SVGPathSegLinetoVertical(y)
+{
+}
+}
+
+#endif // ENABLE(SVG)
+
+// vim:ts=4:noet
diff --git a/WebCore/svg/SVGPathSegLinetoVertical.h b/WebCore/svg/SVGPathSegLinetoVertical.h
index fec7fb6..b13b9f4 100644
--- a/WebCore/svg/SVGPathSegLinetoVertical.h
+++ b/WebCore/svg/SVGPathSegLinetoVertical.h
@@ -22,64 +22,48 @@
#define SVGPathSegLinetoVertical_h
#if ENABLE(SVG)
-#include "SVGPathSegWithContext.h"
+
+#include "PlatformString.h"
+#include "SVGPathSeg.h"
namespace WebCore {
-class SVGPathSegLinetoVertical : public SVGPathSegWithContext {
-public:
- SVGPathSegLinetoVertical(SVGPathElement* element, SVGPathSegRole role, float y)
- : SVGPathSegWithContext(element, role)
- , m_y(y)
- {
- }
-
- float y() const { return m_y; }
- void setY(float y)
- {
- m_y = y;
- commitChange();
- }
-
-private:
- float m_y;
-};
-
-class SVGPathSegLinetoVerticalAbs : public SVGPathSegLinetoVertical {
-public:
- static PassRefPtr<SVGPathSegLinetoVerticalAbs> create(SVGPathElement* element, SVGPathSegRole role, float y)
- {
- return adoptRef(new SVGPathSegLinetoVerticalAbs(element, role, y));
- }
-
-private:
- SVGPathSegLinetoVerticalAbs(SVGPathElement* element, SVGPathSegRole role, float y)
- : SVGPathSegLinetoVertical(element, role, y)
- {
- }
-
- virtual unsigned short pathSegType() const { return PATHSEG_LINETO_VERTICAL_ABS; }
- virtual String pathSegTypeAsLetter() const { return "V"; }
-};
-
-class SVGPathSegLinetoVerticalRel : public SVGPathSegLinetoVertical {
-public:
- static PassRefPtr<SVGPathSegLinetoVerticalRel> create(SVGPathElement* element, SVGPathSegRole role, float y)
- {
- return adoptRef(new SVGPathSegLinetoVerticalRel(element, role, y));
- }
-
-private:
- SVGPathSegLinetoVerticalRel(SVGPathElement* element, SVGPathSegRole role, float y)
- : SVGPathSegLinetoVertical(element, role, y)
- {
- }
-
- virtual unsigned short pathSegType() const { return PATHSEG_LINETO_VERTICAL_REL; }
- virtual String pathSegTypeAsLetter() const { return "v"; }
-};
+ class SVGPathSegLinetoVertical : public SVGPathSeg {
+ public:
+ SVGPathSegLinetoVertical(float y) : SVGPathSeg(), m_y(y) {}
+
+ void setY(float y) { m_y = y; }
+ float y() const { return m_y; }
+
+ private:
+ float m_y;
+ };
+
+ class SVGPathSegLinetoVerticalAbs : public SVGPathSegLinetoVertical {
+ public:
+ static PassRefPtr<SVGPathSegLinetoVerticalAbs> create(float y) { return adoptRef(new SVGPathSegLinetoVerticalAbs(y)); }
+
+ private:
+ SVGPathSegLinetoVerticalAbs(float y);
+
+ virtual unsigned short pathSegType() const { return PATHSEG_LINETO_VERTICAL_ABS; }
+ virtual String pathSegTypeAsLetter() const { return "V"; }
+ };
+
+ class SVGPathSegLinetoVerticalRel : public SVGPathSegLinetoVertical {
+ public:
+ static PassRefPtr<SVGPathSegLinetoVerticalRel> create(float y) { return adoptRef(new SVGPathSegLinetoVerticalRel(y)); }
+
+ private:
+ SVGPathSegLinetoVerticalRel(float y);
+
+ virtual unsigned short pathSegType() const { return PATHSEG_LINETO_VERTICAL_REL; }
+ virtual String pathSegTypeAsLetter() const { return "v"; }
+ };
} // namespace WebCore
#endif // ENABLE(SVG)
#endif
+
+// vim:ts=4:noet
diff --git a/WebCore/svg/SVGPathSegLinetoVerticalAbs.idl b/WebCore/svg/SVGPathSegLinetoVerticalAbs.idl
index a9af261..b6ba7f1 100644
--- a/WebCore/svg/SVGPathSegLinetoVerticalAbs.idl
+++ b/WebCore/svg/SVGPathSegLinetoVerticalAbs.idl
@@ -27,7 +27,8 @@
module svg {
interface [Conditional=SVG] SVGPathSegLinetoVerticalAbs : SVGPathSeg {
- attribute [StrictTypeChecking] float y;
+ attribute float y
+ /*setter raises(DOMException)*/;
};
}
diff --git a/WebCore/svg/SVGPathSegLinetoVerticalRel.idl b/WebCore/svg/SVGPathSegLinetoVerticalRel.idl
index a9b9b36..7246c7d 100644
--- a/WebCore/svg/SVGPathSegLinetoVerticalRel.idl
+++ b/WebCore/svg/SVGPathSegLinetoVerticalRel.idl
@@ -27,7 +27,8 @@
module svg {
interface [Conditional=SVG] SVGPathSegLinetoVerticalRel : SVGPathSeg {
- attribute [StrictTypeChecking] float y;
+ attribute float y
+ /*setter raises(DOMException)*/;
};
}
diff --git a/WebCore/svg/SVGPathSegList.cpp b/WebCore/svg/SVGPathSegList.cpp
index 09a3c0d..5a40c64 100644
--- a/WebCore/svg/SVGPathSegList.cpp
+++ b/WebCore/svg/SVGPathSegList.cpp
@@ -25,23 +25,11 @@
#if ENABLE(SVG)
#include "SVGPathSegList.h"
-#include "SVGPathElement.h"
-#include "SVGPathParserFactory.h"
-
namespace WebCore {
-String SVGPathSegList::valueAsString() const
-{
- String pathString;
- SVGPathParserFactory::self()->buildStringFromSVGPathSegList(*this, pathString, UnalteredParsing);
- return pathString;
-}
-
-void SVGPathSegList::commitChange(SVGElement* contextElement)
+SVGPathSegList::SVGPathSegList(const QualifiedName& attributeName)
+ : SVGList<RefPtr<SVGPathSeg> >(attributeName)
{
- ASSERT(contextElement);
- ASSERT(contextElement->hasTagName(SVGNames::pathTag));
- static_cast<SVGPathElement*>(contextElement)->pathSegListChanged(m_role);
}
}
diff --git a/WebCore/svg/SVGPathSegList.h b/WebCore/svg/SVGPathSegList.h
index 48a1845..6e61c06 100644
--- a/WebCore/svg/SVGPathSegList.h
+++ b/WebCore/svg/SVGPathSegList.h
@@ -21,36 +21,19 @@
#define SVGPathSegList_h
#if ENABLE(SVG)
-#include <wtf/Vector.h>
-#include <wtf/text/WTFString.h>
-
+#include "SVGList.h"
#include "SVGPathSeg.h"
-#include "SVGPropertyTraits.h"
namespace WebCore {
class SVGElement;
-class SVGPathSegList : public Vector<RefPtr<SVGPathSeg> > {
+class SVGPathSegList : public SVGList<RefPtr<SVGPathSeg> > {
public:
- SVGPathSegList(SVGPathSegRole role)
- : m_role(role)
- {
- }
-
- String valueAsString() const;
-
- // Only used by SVGPathSegListPropertyTearOff.
- void commitChange(SVGElement* contextElement);
+ static PassRefPtr<SVGPathSegList> create(const QualifiedName& attributeName) { return adoptRef(new SVGPathSegList(attributeName)); }
private:
- SVGPathSegRole m_role;
-};
-
-template<>
-struct SVGPropertyTraits<SVGPathSegList> {
- static SVGPathSegList initialValue() { return SVGPathSegList(PathSegUndefinedRole); }
- typedef RefPtr<SVGPathSeg> ListItemType;
+ SVGPathSegList(const QualifiedName&);
};
} // namespace WebCore
diff --git a/WebCore/svg/SVGPathSegList.idl b/WebCore/svg/SVGPathSegList.idl
index e77a997..1407b33 100644
--- a/WebCore/svg/SVGPathSegList.idl
+++ b/WebCore/svg/SVGPathSegList.idl
@@ -29,19 +29,19 @@ module svg {
interface [Conditional=SVG] SVGPathSegList {
readonly attribute unsigned long numberOfItems;
- void clear()
+ [JSCCustom] void clear()
raises(DOMException);
- [StrictTypeChecking, RequiresAllArguments=Raise] SVGPathSeg initialize(in SVGPathSeg newItem)
+ [JSCCustom] SVGPathSeg initialize(in SVGPathSeg newItem)
raises(DOMException, SVGException);
- [StrictTypeChecking, RequiresAllArguments=Raise] SVGPathSeg getItem(in unsigned long index)
+ [JSCCustom] SVGPathSeg getItem(in unsigned long index)
raises(DOMException);
- [StrictTypeChecking, RequiresAllArguments=Raise] SVGPathSeg insertItemBefore(in SVGPathSeg newItem, in unsigned long index)
+ [JSCCustom] SVGPathSeg insertItemBefore(in SVGPathSeg newItem, in unsigned long index)
raises(DOMException, SVGException);
- [StrictTypeChecking, RequiresAllArguments=Raise] SVGPathSeg replaceItem(in SVGPathSeg newItem, in unsigned long index)
+ [JSCCustom] SVGPathSeg replaceItem(in SVGPathSeg newItem, in unsigned long index)
raises(DOMException, SVGException);
- [StrictTypeChecking, RequiresAllArguments=Raise] SVGPathSeg removeItem(in unsigned long index)
+ [JSCCustom] SVGPathSeg removeItem(in unsigned long index)
raises(DOMException);
- [StrictTypeChecking, RequiresAllArguments=Raise] SVGPathSeg appendItem(in SVGPathSeg newItem)
+ [JSCCustom] SVGPathSeg appendItem(in SVGPathSeg newItem)
raises(DOMException, SVGException);
};
diff --git a/WebCore/svg/SVGPathSegListBuilder.cpp b/WebCore/svg/SVGPathSegListBuilder.cpp
index bd657c3..342de88 100644
--- a/WebCore/svg/SVGPathSegListBuilder.cpp
+++ b/WebCore/svg/SVGPathSegListBuilder.cpp
@@ -43,107 +43,115 @@
namespace WebCore {
SVGPathSegListBuilder::SVGPathSegListBuilder()
- : m_pathElement(0)
- , m_pathSegList(0)
- , m_pathSegRole(PathSegUndefinedRole)
+ : m_pathSegList(0)
{
}
void SVGPathSegListBuilder::moveTo(const FloatPoint& targetPoint, bool, PathCoordinateMode mode)
{
- ASSERT(m_pathElement);
ASSERT(m_pathSegList);
+ ExceptionCode ec = 0;
if (mode == AbsoluteCoordinates)
- m_pathSegList->append(m_pathElement->createSVGPathSegMovetoAbs(targetPoint.x(), targetPoint.y(), m_pathSegRole));
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegMovetoAbs(targetPoint.x(), targetPoint.y()), ec);
else
- m_pathSegList->append(m_pathElement->createSVGPathSegMovetoRel(targetPoint.x(), targetPoint.y(), m_pathSegRole));
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegMovetoRel(targetPoint.x(), targetPoint.y()), ec);
+ ASSERT(!ec);
}
void SVGPathSegListBuilder::lineTo(const FloatPoint& targetPoint, PathCoordinateMode mode)
{
- ASSERT(m_pathElement);
ASSERT(m_pathSegList);
+ ExceptionCode ec = 0;
if (mode == AbsoluteCoordinates)
- m_pathSegList->append(m_pathElement->createSVGPathSegLinetoAbs(targetPoint.x(), targetPoint.y(), m_pathSegRole));
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegLinetoAbs(targetPoint.x(), targetPoint.y()), ec);
else
- m_pathSegList->append(m_pathElement->createSVGPathSegLinetoRel(targetPoint.x(), targetPoint.y(), m_pathSegRole));
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegLinetoRel(targetPoint.x(), targetPoint.y()), ec);
+ ASSERT(!ec);
}
void SVGPathSegListBuilder::lineToHorizontal(float x, PathCoordinateMode mode)
{
- ASSERT(m_pathElement);
ASSERT(m_pathSegList);
+ ExceptionCode ec = 0;
if (mode == AbsoluteCoordinates)
- m_pathSegList->append(m_pathElement->createSVGPathSegLinetoHorizontalAbs(x, m_pathSegRole));
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegLinetoHorizontalAbs(x), ec);
else
- m_pathSegList->append(m_pathElement->createSVGPathSegLinetoHorizontalRel(x, m_pathSegRole));
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegLinetoHorizontalRel(x), ec);
+ ASSERT(!ec);
}
void SVGPathSegListBuilder::lineToVertical(float y, PathCoordinateMode mode)
{
- ASSERT(m_pathElement);
ASSERT(m_pathSegList);
+ ExceptionCode ec = 0;
if (mode == AbsoluteCoordinates)
- m_pathSegList->append(m_pathElement->createSVGPathSegLinetoVerticalAbs(y, m_pathSegRole));
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegLinetoVerticalAbs(y), ec);
else
- m_pathSegList->append(m_pathElement->createSVGPathSegLinetoVerticalRel(y, m_pathSegRole));
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegLinetoVerticalRel(y), ec);
+ ASSERT(!ec);
}
void SVGPathSegListBuilder::curveToCubic(const FloatPoint& point1, const FloatPoint& point2, const FloatPoint& targetPoint, PathCoordinateMode mode)
{
- ASSERT(m_pathElement);
ASSERT(m_pathSegList);
+ ExceptionCode ec = 0;
if (mode == AbsoluteCoordinates)
- m_pathSegList->append(m_pathElement->createSVGPathSegCurvetoCubicAbs(targetPoint.x(), targetPoint.y(), point1.x(), point1.y(), point2.x(), point2.y(), m_pathSegRole));
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegCurvetoCubicAbs(targetPoint.x(), targetPoint.y(), point1.x(), point1.y(), point2.x(), point2.y()), ec);
else
- m_pathSegList->append(m_pathElement->createSVGPathSegCurvetoCubicRel(targetPoint.x(), targetPoint.y(), point1.x(), point1.y(), point2.x(), point2.y(), m_pathSegRole));
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegCurvetoCubicRel(targetPoint.x(), targetPoint.y(), point1.x(), point1.y(), point2.x(), point2.y()), ec);
+ ASSERT(!ec);
}
void SVGPathSegListBuilder::curveToCubicSmooth(const FloatPoint& point2, const FloatPoint& targetPoint, PathCoordinateMode mode)
{
- ASSERT(m_pathElement);
ASSERT(m_pathSegList);
+ ExceptionCode ec = 0;
if (mode == AbsoluteCoordinates)
- m_pathSegList->append(m_pathElement->createSVGPathSegCurvetoCubicSmoothAbs(targetPoint.x(), targetPoint.y(), point2.x(), point2.y(), m_pathSegRole));
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegCurvetoCubicSmoothAbs(targetPoint.x(), targetPoint.y(), point2.x(), point2.y()), ec);
else
- m_pathSegList->append(m_pathElement->createSVGPathSegCurvetoCubicSmoothRel(targetPoint.x(), targetPoint.y(), point2.x(), point2.y(), m_pathSegRole));
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegCurvetoCubicSmoothRel(targetPoint.x(), targetPoint.y(), point2.x(), point2.y()), ec);
+ ASSERT(!ec);
}
void SVGPathSegListBuilder::curveToQuadratic(const FloatPoint& point1, const FloatPoint& targetPoint, PathCoordinateMode mode)
{
- ASSERT(m_pathElement);
ASSERT(m_pathSegList);
+ ExceptionCode ec = 0;
if (mode == AbsoluteCoordinates)
- m_pathSegList->append(m_pathElement->createSVGPathSegCurvetoQuadraticAbs(targetPoint.x(), targetPoint.y(), point1.x(), point1.y(), m_pathSegRole));
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegCurvetoQuadraticAbs(targetPoint.x(), targetPoint.y(), point1.x(), point1.y()), ec);
else
- m_pathSegList->append(m_pathElement->createSVGPathSegCurvetoQuadraticRel(targetPoint.x(), targetPoint.y(), point1.x(), point1.y(), m_pathSegRole));
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegCurvetoQuadraticRel(targetPoint.x(), targetPoint.y(), point1.x(), point1.y()), ec);
+ ASSERT(!ec);
}
void SVGPathSegListBuilder::curveToQuadraticSmooth(const FloatPoint& targetPoint, PathCoordinateMode mode)
{
- ASSERT(m_pathElement);
ASSERT(m_pathSegList);
+ ExceptionCode ec = 0;
if (mode == AbsoluteCoordinates)
- m_pathSegList->append(m_pathElement->createSVGPathSegCurvetoQuadraticSmoothAbs(targetPoint.x(), targetPoint.y(), m_pathSegRole));
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothAbs(targetPoint.x(), targetPoint.y()), ec);
else
- m_pathSegList->append(m_pathElement->createSVGPathSegCurvetoQuadraticSmoothRel(targetPoint.x(), targetPoint.y(), m_pathSegRole));
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothRel(targetPoint.x(), targetPoint.y()), ec);
+ ASSERT(!ec);
}
void SVGPathSegListBuilder::arcTo(float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag, const FloatPoint& targetPoint, PathCoordinateMode mode)
{
- ASSERT(m_pathElement);
ASSERT(m_pathSegList);
+ ExceptionCode ec = 0;
if (mode == AbsoluteCoordinates)
- m_pathSegList->append(m_pathElement->createSVGPathSegArcAbs(targetPoint.x(), targetPoint.y(), r1, r2, angle, largeArcFlag, sweepFlag, m_pathSegRole));
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegArcAbs(targetPoint.x(), targetPoint.y(), r1, r2, angle, largeArcFlag, sweepFlag), ec);
else
- m_pathSegList->append(m_pathElement->createSVGPathSegArcRel(targetPoint.x(), targetPoint.y(), r1, r2, angle, largeArcFlag, sweepFlag, m_pathSegRole));
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegArcRel(targetPoint.x(), targetPoint.y(), r1, r2, angle, largeArcFlag, sweepFlag), ec);
+ ASSERT(!ec);
}
void SVGPathSegListBuilder::closePath()
{
- ASSERT(m_pathElement);
ASSERT(m_pathSegList);
- m_pathSegList->append(m_pathElement->createSVGPathSegClosePath(m_pathSegRole));
+ ExceptionCode ec = 0;
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegClosePath(), ec);
+ ASSERT(!ec);
}
}
diff --git a/WebCore/svg/SVGPathSegListBuilder.h b/WebCore/svg/SVGPathSegListBuilder.h
index 8f75b26..f376706 100644
--- a/WebCore/svg/SVGPathSegListBuilder.h
+++ b/WebCore/svg/SVGPathSegListBuilder.h
@@ -27,7 +27,6 @@
#if ENABLE(SVG)
#include "FloatPoint.h"
#include "SVGPathConsumer.h"
-#include "SVGPathElement.h"
#include "SVGPathSegList.h"
namespace WebCore {
@@ -36,19 +35,12 @@ class SVGPathSegListBuilder : public SVGPathConsumer {
public:
SVGPathSegListBuilder();
- void setCurrentSVGPathElement(SVGPathElement* pathElement) { m_pathElement = pathElement; }
- void setCurrentSVGPathSegList(SVGPathSegList& pathSegList) { m_pathSegList = &pathSegList; }
- void setCurrentSVGPathSegRole(SVGPathSegRole pathSegRole) { m_pathSegRole = pathSegRole; }
+ void setCurrentSVGPathSegList(SVGPathSegList* pathSegList) { m_pathSegList = pathSegList; }
private:
virtual void incrementPathSegmentCount() { }
virtual bool continueConsuming() { return true; }
- virtual void cleanup()
- {
- m_pathElement = 0;
- m_pathSegList = 0;
- m_pathSegRole = PathSegUndefinedRole;
- }
+ virtual void cleanup() { m_pathSegList = 0; }
// Used in UnalteredParisng/NormalizedParsing modes.
virtual void moveTo(const FloatPoint&, bool closed, PathCoordinateMode);
@@ -64,9 +56,7 @@ private:
virtual void curveToQuadraticSmooth(const FloatPoint&, PathCoordinateMode);
virtual void arcTo(float, float, float, bool largeArcFlag, bool sweepFlag, const FloatPoint&, PathCoordinateMode);
- SVGPathElement* m_pathElement;
SVGPathSegList* m_pathSegList;
- SVGPathSegRole m_pathSegRole;
};
} // namespace WebCore
diff --git a/WebCore/svg/SVGPathSegListSource.cpp b/WebCore/svg/SVGPathSegListSource.cpp
index 5526cd6..2378743 100644
--- a/WebCore/svg/SVGPathSegListSource.cpp
+++ b/WebCore/svg/SVGPathSegListSource.cpp
@@ -31,11 +31,12 @@
namespace WebCore {
-SVGPathSegListSource::SVGPathSegListSource(const SVGPathSegList& pathSegList)
+SVGPathSegListSource::SVGPathSegListSource(SVGPathSegList* pathSegList)
: m_pathSegList(pathSegList)
{
+ ASSERT(m_pathSegList);
m_itemCurrent = 0;
- m_itemEnd = m_pathSegList.size();
+ m_itemEnd = m_pathSegList->numberOfItems();
}
bool SVGPathSegListSource::hasMoreData() const
@@ -45,7 +46,11 @@ bool SVGPathSegListSource::hasMoreData() const
bool SVGPathSegListSource::parseSVGSegmentType(SVGPathSegType& pathSegType)
{
- m_segment = m_pathSegList.at(m_itemCurrent);
+ ASSERT(m_pathSegList);
+ ExceptionCode ec = 0;
+ m_segment = m_pathSegList->getItem(m_itemCurrent, ec);
+ if (ec)
+ return false;
pathSegType = static_cast<SVGPathSegType>(m_segment->pathSegType());
++m_itemCurrent;
return true;
@@ -53,7 +58,11 @@ bool SVGPathSegListSource::parseSVGSegmentType(SVGPathSegType& pathSegType)
SVGPathSegType SVGPathSegListSource::nextCommand(SVGPathSegType)
{
- m_segment = m_pathSegList.at(m_itemCurrent);
+ ASSERT(m_pathSegList);
+ ExceptionCode ec = 0;
+ m_segment = m_pathSegList->getItem(m_itemCurrent, ec);
+ if (ec)
+ return PathSegUnknown;
SVGPathSegType pathSegType = static_cast<SVGPathSegType>(m_segment->pathSegType());
++m_itemCurrent;
return pathSegType;
@@ -63,7 +72,7 @@ bool SVGPathSegListSource::parseMoveToSegment(FloatPoint& targetPoint)
{
ASSERT(m_segment);
ASSERT(m_segment->pathSegType() == PathSegMoveToAbs || m_segment->pathSegType() == PathSegMoveToRel);
- SVGPathSegSingleCoordinate* moveTo = static_cast<SVGPathSegSingleCoordinate*>(m_segment.get());
+ SVGPathSegSingleCoord* moveTo = static_cast<SVGPathSegSingleCoord*>(m_segment.get());
targetPoint = FloatPoint(moveTo->x(), moveTo->y());
return true;
}
@@ -72,7 +81,7 @@ bool SVGPathSegListSource::parseLineToSegment(FloatPoint& targetPoint)
{
ASSERT(m_segment);
ASSERT(m_segment->pathSegType() == PathSegLineToAbs || m_segment->pathSegType() == PathSegLineToRel);
- SVGPathSegSingleCoordinate* lineTo = static_cast<SVGPathSegSingleCoordinate*>(m_segment.get());
+ SVGPathSegSingleCoord* lineTo = static_cast<SVGPathSegSingleCoord*>(m_segment.get());
targetPoint = FloatPoint(lineTo->x(), lineTo->y());
return true;
}
@@ -130,7 +139,7 @@ bool SVGPathSegListSource::parseCurveToQuadraticSmoothSegment(FloatPoint& target
{
ASSERT(m_segment);
ASSERT(m_segment->pathSegType() == PathSegCurveToQuadraticSmoothAbs || m_segment->pathSegType() == PathSegCurveToQuadraticSmoothRel);
- SVGPathSegSingleCoordinate* quadraticSmooth = static_cast<SVGPathSegSingleCoordinate*>(m_segment.get());
+ SVGPathSegSingleCoord* quadraticSmooth = static_cast<SVGPathSegSingleCoord*>(m_segment.get());
targetPoint = FloatPoint(quadraticSmooth->x(), quadraticSmooth->y());
return true;
}
diff --git a/WebCore/svg/SVGPathSegListSource.h b/WebCore/svg/SVGPathSegListSource.h
index 357248f..4f93be1 100644
--- a/WebCore/svg/SVGPathSegListSource.h
+++ b/WebCore/svg/SVGPathSegListSource.h
@@ -32,13 +32,13 @@ namespace WebCore {
class SVGPathSegListSource : public SVGPathSource {
public:
- static PassOwnPtr<SVGPathSegListSource> create(const SVGPathSegList& pathSegList)
+ static PassOwnPtr<SVGPathSegListSource> create(SVGPathSegList* pathSegList)
{
return adoptPtr(new SVGPathSegListSource(pathSegList));
}
private:
- SVGPathSegListSource(const SVGPathSegList&);
+ SVGPathSegListSource(SVGPathSegList*);
virtual bool hasMoreData() const;
virtual bool moveToNextToken() { return true; }
@@ -55,7 +55,7 @@ private:
virtual bool parseCurveToQuadraticSmoothSegment(FloatPoint&);
virtual bool parseArcToSegment(float&, float&, float&, bool&, bool&, FloatPoint&);
- const SVGPathSegList& m_pathSegList;
+ SVGPathSegList* m_pathSegList;
RefPtr<SVGPathSeg> m_segment;
int m_itemCurrent;
int m_itemEnd;
diff --git a/WebCore/svg/SVGPathSegMoveto.cpp b/WebCore/svg/SVGPathSegMoveto.cpp
new file mode 100644
index 0000000..f87077f
--- /dev/null
+++ b/WebCore/svg/SVGPathSegMoveto.cpp
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann at kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis at kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "config.h"
+
+#if ENABLE(SVG)
+#include "SVGPathSegMoveto.h"
+
+namespace WebCore {
+
+SVGPathSegMovetoAbs::SVGPathSegMovetoAbs(float x, float y)
+ : SVGPathSegSingleCoord(x, y)
+{
+}
+
+SVGPathSegMovetoRel::SVGPathSegMovetoRel(float x, float y)
+ : SVGPathSegSingleCoord(x, y)
+{
+}
+}
+
+#endif // ENABLE(SVG)
+
+// vim:ts=4:noet
diff --git a/WebCore/svg/SVGPathSegMoveto.h b/WebCore/svg/SVGPathSegMoveto.h
index 87fcd7d..edaff4b 100644
--- a/WebCore/svg/SVGPathSegMoveto.h
+++ b/WebCore/svg/SVGPathSegMoveto.h
@@ -22,45 +22,36 @@
#define SVGPathSegMoveto_h
#if ENABLE(SVG)
-#include "SVGPathSegWithContext.h"
-namespace WebCore {
+#include "PlatformString.h"
+#include "SVGPathSeg.h"
-class SVGPathSegMovetoAbs : public SVGPathSegSingleCoordinate {
-public:
- static PassRefPtr<SVGPathSegMovetoAbs> create(SVGPathElement* element, SVGPathSegRole role, float x, float y)
- {
- return adoptRef(new SVGPathSegMovetoAbs(element, role, x, y));
- }
+namespace WebCore {
+ class SVGPathSegMovetoAbs : public SVGPathSegSingleCoord {
+ public:
+ static PassRefPtr<SVGPathSegMovetoAbs> create(float x, float y) { return adoptRef(new SVGPathSegMovetoAbs(x, y)); }
-private:
- SVGPathSegMovetoAbs(SVGPathElement* element, SVGPathSegRole role, float x, float y)
- : SVGPathSegSingleCoordinate(element, role, x, y)
- {
- }
+ private:
+ SVGPathSegMovetoAbs(float x, float y);
- virtual unsigned short pathSegType() const { return PATHSEG_MOVETO_ABS; }
- virtual String pathSegTypeAsLetter() const { return "M"; }
-};
+ virtual unsigned short pathSegType() const { return PATHSEG_MOVETO_ABS; }
+ virtual String pathSegTypeAsLetter() const { return "M"; }
+ };
-class SVGPathSegMovetoRel : public SVGPathSegSingleCoordinate {
-public:
- static PassRefPtr<SVGPathSegMovetoRel> create(SVGPathElement* element, SVGPathSegRole role, float x, float y)
- {
- return adoptRef(new SVGPathSegMovetoRel(element, role, x, y));
- }
+ class SVGPathSegMovetoRel : public SVGPathSegSingleCoord {
+ public:
+ static PassRefPtr<SVGPathSegMovetoRel> create(float x, float y) { return adoptRef(new SVGPathSegMovetoRel(x, y)); }
-private:
- SVGPathSegMovetoRel(SVGPathElement* element, SVGPathSegRole role, float x, float y)
- : SVGPathSegSingleCoordinate(element, role, x, y)
- {
- }
+ private:
+ SVGPathSegMovetoRel(float x, float y);
- virtual unsigned short pathSegType() const { return PATHSEG_MOVETO_REL; }
- virtual String pathSegTypeAsLetter() const { return "m"; }
-};
+ virtual unsigned short pathSegType() const { return PATHSEG_MOVETO_REL; }
+ virtual String pathSegTypeAsLetter() const { return "m"; }
+ };
} // namespace WebCore
#endif // ENABLE(SVG)
#endif
+
+// vim:ts=4:noet
diff --git a/WebCore/svg/SVGPathSegMovetoAbs.idl b/WebCore/svg/SVGPathSegMovetoAbs.idl
index bf371a2..e10163e 100644
--- a/WebCore/svg/SVGPathSegMovetoAbs.idl
+++ b/WebCore/svg/SVGPathSegMovetoAbs.idl
@@ -27,8 +27,10 @@
module svg {
interface [Conditional=SVG] SVGPathSegMovetoAbs : SVGPathSeg {
- attribute [StrictTypeChecking] float x;
- attribute [StrictTypeChecking] float y;
+ attribute float x
+ /*setter raises(DOMException)*/;
+ attribute float y
+ /*setter raises(DOMException)*/;
};
}
diff --git a/WebCore/svg/SVGPathSegMovetoRel.idl b/WebCore/svg/SVGPathSegMovetoRel.idl
index a8763a1..78ba078 100644
--- a/WebCore/svg/SVGPathSegMovetoRel.idl
+++ b/WebCore/svg/SVGPathSegMovetoRel.idl
@@ -27,8 +27,10 @@
module svg {
interface [Conditional=SVG] SVGPathSegMovetoRel : SVGPathSeg {
- attribute [StrictTypeChecking] float x;
- attribute [StrictTypeChecking] float y;
+ attribute float x
+ /*setter raises(DOMException)*/;
+ attribute float y
+ /*setter raises(DOMException)*/;
};
}
diff --git a/WebCore/svg/SVGPathSegWithContext.h b/WebCore/svg/SVGPathSegWithContext.h
deleted file mode 100644
index 97d8df1..0000000
--- a/WebCore/svg/SVGPathSegWithContext.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (C) Research In Motion Limited 2010. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef SVGPathSegWithContext_h
-#define SVGPathSegWithContext_h
-
-#if ENABLE(SVG)
-#include "SVGPathElement.h"
-
-namespace WebCore {
-
-class SVGPathSegWithContext : public SVGPathSeg {
-public:
- SVGPathSegWithContext(SVGPathElement* element, SVGPathSegRole role)
- : m_role(role)
- , m_element(element)
- {
- }
-
- SVGAnimatedProperty* animatedProperty() const
- {
- switch (m_role) {
- case PathSegUndefinedRole:
- return 0;
- case PathSegUnalteredRole:
- return m_element->animatablePathSegList();
- case PathSegNormalizedRole:
- // FIXME: https://bugs.webkit.org/show_bug.cgi?id=15412 - Implement normalized path segment lists!
- return 0;
- };
-
- return 0;
- }
-
- SVGPathElement* contextElement() const { return m_element.get(); }
- SVGPathSegRole role() const { return m_role; }
-
- void setContextAndRole(SVGPathElement* element, SVGPathSegRole role)
- {
- m_role = role;
- m_element = element;
- }
-
-protected:
- void commitChange()
- {
- if (!m_element) {
- ASSERT(m_role == PathSegUndefinedRole);
- return;
- }
-
- ASSERT(m_role != PathSegUndefinedRole);
- m_element->pathSegListChanged(m_role);
- }
-
-private:
- SVGPathSegRole m_role;
- RefPtr<SVGPathElement> m_element;
-};
-
-class SVGPathSegSingleCoordinate : public SVGPathSegWithContext {
-public:
- float x() const { return m_x; }
- void setX(float x)
- {
- m_x = x;
- commitChange();
- }
-
- float y() const { return m_y; }
- void setY(float y)
- {
- m_y = y;
- commitChange();
- }
-
-protected:
- SVGPathSegSingleCoordinate(SVGPathElement* element, SVGPathSegRole role, float x, float y)
- : SVGPathSegWithContext(element, role)
- , m_x(x)
- , m_y(y)
- {
- }
-
-private:
- float m_x;
- float m_y;
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(SVG)
-#endif
diff --git a/WebCore/svg/properties/SVGAnimatedPathSegListPropertyTearOff.h b/WebCore/svg/properties/SVGAnimatedPathSegListPropertyTearOff.h
deleted file mode 100644
index f515ab4..0000000
--- a/WebCore/svg/properties/SVGAnimatedPathSegListPropertyTearOff.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) Research In Motion Limited 2010. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef SVGAnimatedPathSegListPropertyTearOff_h
-#define SVGAnimatedPathSegListPropertyTearOff_h
-
-#if ENABLE(SVG)
-#include "SVGAnimatedListPropertyTearOff.h"
-#include "SVGPathSegList.h"
-#include "SVGPathSegListPropertyTearOff.h"
-
-namespace WebCore {
-
-class SVGPathSegListPropertyTearOff;
-
-class SVGAnimatedPathSegListPropertyTearOff : public SVGAnimatedListPropertyTearOff<SVGPathSegList> {
-public:
- SVGProperty* baseVal(SVGPathSegRole role)
- {
- if (!m_baseVal)
- m_baseVal = SVGPathSegListPropertyTearOff::create(this, BaseValRole, role);
- return m_baseVal.get();
- }
-
- SVGProperty* animVal(SVGPathSegRole role)
- {
- if (!m_animVal)
- m_animVal = SVGPathSegListPropertyTearOff::create(this, AnimValRole, role);
- return m_animVal.get();
- }
-
- int removeItemFromList(const RefPtr<SVGPathSeg>& segment, bool shouldSynchronizeWrappers)
- {
- // This should ever be called for our baseVal, as animVal can't modify the list.
- return static_pointer_cast<SVGPathSegListPropertyTearOff>(m_baseVal)->removeItemFromList(segment, shouldSynchronizeWrappers);
- }
-
-private:
- friend class SVGAnimatedProperty;
-
- static PassRefPtr<SVGAnimatedPathSegListPropertyTearOff> create(SVGElement* contextElement, const QualifiedName& attributeName, SVGPathSegList& values)
- {
- ASSERT(contextElement);
- return adoptRef(new SVGAnimatedPathSegListPropertyTearOff(contextElement, attributeName, values));
- }
-
- SVGAnimatedPathSegListPropertyTearOff(SVGElement* contextElement, const QualifiedName& attributeName, SVGPathSegList& values)
- : SVGAnimatedListPropertyTearOff<SVGPathSegList>(contextElement, attributeName, values)
- {
- }
-};
-
-}
-
-#endif // ENABLE(SVG)
-#endif // SVGAnimatedPathSegListPropertyTearOff_h
diff --git a/WebCore/svg/properties/SVGPathSegListPropertyTearOff.cpp b/WebCore/svg/properties/SVGPathSegListPropertyTearOff.cpp
deleted file mode 100644
index af1b30c..0000000
--- a/WebCore/svg/properties/SVGPathSegListPropertyTearOff.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (C) Research In Motion Limited 2010. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-
-#if ENABLE(SVG)
-#include "SVGPathSegListPropertyTearOff.h"
-
-#include "SVGAnimatedPathSegListPropertyTearOff.h"
-#include "SVGPathElement.h"
-#include "SVGPathSegWithContext.h"
-
-namespace WebCore {
-
-void SVGPathSegListPropertyTearOff::clear(ExceptionCode& ec)
-{
- SVGPathSegList& values = m_animatedProperty->values();
- if (values.isEmpty())
- return;
-
- unsigned size = values.size();
- for (unsigned i = 0; i < size; ++i) {
- ListItemType item = values.at(i);
- static_cast<SVGPathSegWithContext*>(item.get())->setContextAndRole(0, PathSegUndefinedRole);
- }
-
- SVGPathSegListPropertyTearOff::Base::clearValues(values, ec);
-}
-
-SVGPathSegListPropertyTearOff::PassListItemType SVGPathSegListPropertyTearOff::getItem(unsigned index, ExceptionCode& ec)
-{
- SVGPathSegList& values = m_animatedProperty->values();
- ListItemType returnedItem = Base::getItemValues(values, index, ec);
- if (returnedItem) {
- ASSERT(static_cast<SVGPathSegWithContext*>(returnedItem.get())->contextElement() == contextElement());
- ASSERT(static_cast<SVGPathSegWithContext*>(returnedItem.get())->role() == m_pathSegRole);
- }
- return returnedItem.release();
-}
-
-SVGPathSegListPropertyTearOff::PassListItemType SVGPathSegListPropertyTearOff::removeItem(unsigned index, ExceptionCode& ec)
-{
- SVGPathSegList& values = m_animatedProperty->values();
- SVGPathSegListPropertyTearOff::ListItemType removedItem = SVGPathSegListPropertyTearOff::Base::removeItemValues(values, index, ec);
- if (removedItem)
- static_cast<SVGPathSegWithContext*>(removedItem.get())->setContextAndRole(0, PathSegUndefinedRole);
- return removedItem.release();
-}
-
-SVGPathElement* SVGPathSegListPropertyTearOff::contextElement() const
-{
- SVGElement* contextElement = m_animatedProperty->contextElement();
- ASSERT(contextElement);
- ASSERT(contextElement->hasTagName(SVGNames::pathTag));
- return static_cast<SVGPathElement*>(contextElement);
-}
-
-void SVGPathSegListPropertyTearOff::processIncomingListItemValue(const ListItemType& newItem, unsigned* indexToModify)
-{
- SVGPathSegWithContext* newItemWithContext = static_cast<SVGPathSegWithContext*>(newItem.get());
- SVGAnimatedProperty* animatedPropertyOfItem = newItemWithContext->animatedProperty();
-
- // Alter the role, after calling animatedProperty(), as that may influence the returned animated property.
- newItemWithContext->setContextAndRole(contextElement(), m_pathSegRole);
-
- if (!animatedPropertyOfItem)
- return;
-
- // newItem belongs to a SVGPathElement, but its associated SVGAnimatedProperty is not an animated list tear off.
- // (for example: "pathElement.pathSegList.appendItem(pathElement.createSVGPathSegClosepath())")
- if (!animatedPropertyOfItem->isAnimatedListTearOff())
- return;
-
- // Spec: If newItem is already in a list, it is removed from its previous list before it is inserted into this list.
- // 'newItem' is already living in another list. If it's not our list, synchronize the other lists wrappers after the removal.
- bool livesInOtherList = animatedPropertyOfItem != m_animatedProperty;
- int removedIndex = static_cast<SVGAnimatedPathSegListPropertyTearOff*>(animatedPropertyOfItem)->removeItemFromList(newItem.get(), livesInOtherList);
- ASSERT(removedIndex != -1);
-
- if (!indexToModify)
- return;
-
- // If the item lived in our list, adjust the insertion index.
- if (!livesInOtherList) {
- unsigned& index = *indexToModify;
- // Spec: If the item is already in this list, note that the index of the item to (replace|insert before) is before the removal of the item.
- if (static_cast<unsigned>(removedIndex) < index)
- --index;
- }
-}
-
-}
-
-#endif // ENABLE(SVG)
diff --git a/WebCore/svg/properties/SVGPathSegListPropertyTearOff.h b/WebCore/svg/properties/SVGPathSegListPropertyTearOff.h
deleted file mode 100644
index 3ba29e4..0000000
--- a/WebCore/svg/properties/SVGPathSegListPropertyTearOff.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Copyright (C) Research In Motion Limited 2010. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef SVGPathSegListPropertyTearOff_h
-#define SVGPathSegListPropertyTearOff_h
-
-#if ENABLE(SVG)
-#include "SVGAnimatedListPropertyTearOff.h"
-#include "SVGPathSegList.h"
-
-namespace WebCore {
-
-class SVGPathElement;
-
-class SVGPathSegListPropertyTearOff : public SVGListProperty<SVGPathSegList> {
-public:
- typedef SVGListProperty<SVGPathSegList> Base;
- typedef SVGAnimatedListPropertyTearOff<SVGPathSegList> AnimatedListPropertyTearOff;
- typedef SVGPropertyTraits<SVGPathSegList>::ListItemType ListItemType;
- typedef PassRefPtr<SVGPathSeg> PassListItemType;
-
- static PassRefPtr<SVGPathSegListPropertyTearOff> create(AnimatedListPropertyTearOff* animatedProperty, SVGPropertyRole role, SVGPathSegRole pathSegRole)
- {
- ASSERT(animatedProperty);
- return adoptRef(new SVGPathSegListPropertyTearOff(animatedProperty, role, pathSegRole));
- }
-
- int removeItemFromList(const ListItemType& removeItem, bool shouldSynchronizeWrappers)
- {
- SVGPathSegList& values = m_animatedProperty->values();
-
- unsigned size = values.size();
- for (unsigned i = 0; i < size; ++i) {
- ListItemType& item = values.at(i);
- if (item != removeItem)
- continue;
-
- values.remove(i);
-
- if (shouldSynchronizeWrappers)
- commitChange();
-
- return i;
- }
-
- return -1;
- }
-
- // SVGList API
- void clear(ExceptionCode&);
-
- unsigned numberOfItems() const
- {
- SVGPathSegList& values = m_animatedProperty->values();
- return Base::numberOfItemsValues(values);
- }
-
- PassListItemType initialize(PassListItemType passNewItem, ExceptionCode& ec)
- {
- // Not specified, but FF/Opera do it this way, and it's just sane.
- if (!passNewItem) {
- ec = TYPE_MISMATCH_ERR;
- return 0;
- }
-
- ListItemType newItem = passNewItem;
- SVGPathSegList& values = m_animatedProperty->values();
- return Base::initializeValues(values, newItem, ec);
- }
-
- PassListItemType getItem(unsigned index, ExceptionCode&);
-
- PassListItemType insertItemBefore(PassListItemType passNewItem, unsigned index, ExceptionCode& ec)
- {
- // Not specified, but FF/Opera do it this way, and it's just sane.
- if (!passNewItem) {
- ec = TYPE_MISMATCH_ERR;
- return 0;
- }
-
- ListItemType newItem = passNewItem;
- SVGPathSegList& values = m_animatedProperty->values();
- return Base::insertItemBeforeValues(values, newItem, index, ec);
- }
-
- PassListItemType replaceItem(PassListItemType passNewItem, unsigned index, ExceptionCode& ec)
- {
- // Not specified, but FF/Opera do it this way, and it's just sane.
- if (!passNewItem) {
- ec = TYPE_MISMATCH_ERR;
- return 0;
- }
-
- ListItemType newItem = passNewItem;
- SVGPathSegList& values = m_animatedProperty->values();
- return Base::replaceItemValues(values, newItem, index, ec);
- }
-
- PassListItemType removeItem(unsigned index, ExceptionCode&);
-
- PassListItemType appendItem(PassListItemType passNewItem, ExceptionCode& ec)
- {
- // Not specified, but FF/Opera do it this way, and it's just sane.
- if (!passNewItem) {
- ec = TYPE_MISMATCH_ERR;
- return 0;
- }
-
- ListItemType newItem = passNewItem;
- SVGPathSegList& values = m_animatedProperty->values();
- return Base::appendItemValues(values, newItem, ec);
- }
-
-private:
- SVGPathSegListPropertyTearOff(AnimatedListPropertyTearOff* animatedProperty, SVGPropertyRole role, SVGPathSegRole pathSegRole)
- : SVGListProperty<SVGPathSegList>(role)
- , m_animatedProperty(animatedProperty)
- , m_pathSegRole(pathSegRole)
- {
- }
-
- SVGPathElement* contextElement() const;
-
- virtual void commitChange()
- {
- SVGPathSegList& values = m_animatedProperty->values();
- values.commitChange(m_animatedProperty->contextElement());
- }
-
- virtual void processIncomingListItemValue(const ListItemType& newItem, unsigned* indexToModify);
- virtual void processIncomingListItemWrapper(RefPtr<ListItemTearOff>&, unsigned*)
- {
- ASSERT_NOT_REACHED();
- }
-
-private:
- RefPtr<AnimatedListPropertyTearOff> m_animatedProperty;
- SVGPathSegRole m_pathSegRole;
-};
-
-}
-
-#endif // ENABLE(SVG)
-#endif // SVGPathSegListPropertyTearOff_h
diff --git a/WebKit/mac/ChangeLog b/WebKit/mac/ChangeLog
index 6d84bb6..c83c45d 100644
--- a/WebKit/mac/ChangeLog
+++ b/WebKit/mac/ChangeLog
@@ -1,3 +1,14 @@
+2010-11-18 Sheriff Bot <webkit.review.bot at gmail.com>
+
+ Unreviewed, rolling out r72288.
+ http://trac.webkit.org/changeset/72288
+ https://bugs.webkit.org/show_bug.cgi?id=49730
+
+ 'krit attempted to do that, but revert got stuck' (Requested
+ by antonm on #webkit).
+
+ * WebView/WebRenderLayer.mm:
+
2010-11-17 Nikolas Zimmermann <nzimmermann at rim.com>
Reviewed by Dirk Schulze.
diff --git a/WebKit/mac/WebView/WebRenderLayer.mm b/WebKit/mac/WebView/WebRenderLayer.mm
index c282643..edffac2 100644
--- a/WebKit/mac/WebView/WebRenderLayer.mm
+++ b/WebKit/mac/WebView/WebRenderLayer.mm
@@ -32,7 +32,6 @@
#import <WebCore/RenderLayer.h>
#import <WebCore/RenderLayerBacking.h>
#import <WebCore/RenderView.h>
-#import <WebCore/StyledElement.h>
using namespace WebCore;
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list