2010-10-23 Nikolas Zimmermann <nzimmermann@rim.com>
authorzimmermann@webkit.org <zimmermann@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 24 Oct 2010 10:38:56 +0000 (10:38 +0000)
committerzimmermann@webkit.org <zimmermann@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 24 Oct 2010 10:38:56 +0000 (10:38 +0000)
commit9ec6d7017b68a778ccf90b6377ea7a9b778c532f
tree47a8c587bb50c6be97566132710c14eab9953945
parent4ef8926b24f187e8f6ee3a5ff341672f4816cf53
2010-10-23  Nikolas Zimmermann  <nzimmermann@rim.com>

        Reviewed by Dirk Schulze.

        Convert SVGAngle to the new SVGPropertyTearOff concept, reimplement it properly
        https://bugs.webkit.org/show_bug.cgi?id=48179

        Rewrite SVGAngle to use the new SVGPropertyTearOff concept, and consume much less memory.
        Down from two floats, one string and an ushort to one float and one ushort. Synchronize value/valueInSpecifiedUnits/valueAsString on demand.

        Adding an extensive SVGAngle test, that required to implement 'StrictTypeChecking' for attribute setters (was only implemented in V8/JSC for function cals so far).

        Test: svg/dom/SVGAngle.html

        * GNUmakefile.am: Add SVGAnimatedAngle.h to build.
        * WebCore.gypi: Ditto.
        * WebCore.pro: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * bindings/scripts/CodeGenerator.pm: Split IsPrimitiveType in IsPrimitiveType and IsNumericType.
        * bindings/scripts/CodeGeneratorJS.pm: Implement 'StrictTypeChecking' for setters and recognize SVGAngle as new SVGPropertyTearOff type.
        * bindings/scripts/CodeGeneratorObjC.pm: Ditto.
        * bindings/scripts/CodeGeneratorV8.pm: Ditto.
        * svg/DeprecatedSVGAnimatedPropertyTraits.h: Remove SVGAngle handling.
        * svg/DeprecatedSVGAnimatedTemplate.h: Remove SVGAnimatedAngle handling.
        * svg/SVGAngle.cpp: Rewrite, to consume less memory and to operate more efficient.
        * svg/SVGAngle.h: Ditto.
        * svg/SVGAngle.idl: Add 'StrictTypeChecking' to the value/valueInSpecifiedUnits methods.
        * svg/SVGAnimatedAngle.h: Added.
        * svg/SVGAnimatedAngle.idl: Mark as [SVGAnimatedProperty].
        * svg/SVGMarkerElement.cpp:
        (WebCore::SVGMarkerElement::parseMappedAttribute): SVGAngle::setValueAsString() now takes an ExceptionCode parameter.
        * svg/SVGMarkerElement.h: s/ANIMATED_PROPERTY/ANIMATED_PROPERTY_NEW/ for the SVGAngle type.
        * svg/SVGNumber.idl: Remove exception setter exceptions, which aren't needed. As we're now generating exception handlers in the bindings, it would lead to compile errors.
        * svg/SVGPoint.idl: Ditto.
        * svg/SVGRect.idl: Ditto.
        * svg/SVGSVGElement.idl: Remove obsolete [SVGLiveProperty] flag.
2010-10-23  Nikolas Zimmermann  <nzimmermann@rim.com>

        Reviewed by Dirk Schulze.

        Convert SVGAngle to the new SVGPropertyTearOff concept, reimplement it properly
        https://bugs.webkit.org/show_bug.cgi?id=48179

        Add an extensive SVGAngle test, checking all getter/setters & methods, with valid and invalid arguments.
        The test exposes bugs in Opera & FireFox, we now pass them all.

        * svg/dom/SVGAngle-expected.txt: Added.
        * svg/dom/SVGAngle.html: Added.
        * svg/dom/script-tests/SVGAngle.js: Added.
        * svg/dom/svg-element-attribute-js-null-expected.txt:
        * svg/dom/svg-element-attribute-js-null.xhtml: Update incorrect test, setting valueAsString to null, should not result in "0deg" but "0".

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@70410 268f45cc-cd09-0410-ab3c-d52691b4dbfc
29 files changed:
LayoutTests/ChangeLog
LayoutTests/svg/dom/SVGAngle-expected.txt [new file with mode: 0644]
LayoutTests/svg/dom/SVGAngle.html [new file with mode: 0644]
LayoutTests/svg/dom/script-tests/SVGAngle.js [new file with mode: 0644]
LayoutTests/svg/dom/svg-element-attribute-js-null-expected.txt
LayoutTests/svg/dom/svg-element-attribute-js-null.xhtml
WebCore/ChangeLog
WebCore/GNUmakefile.am
WebCore/WebCore.gypi
WebCore/WebCore.pro
WebCore/WebCore.vcproj/WebCore.vcproj
WebCore/WebCore.xcodeproj/project.pbxproj
WebCore/bindings/scripts/CodeGenerator.pm
WebCore/bindings/scripts/CodeGeneratorJS.pm
WebCore/bindings/scripts/CodeGeneratorObjC.pm
WebCore/bindings/scripts/CodeGeneratorV8.pm
WebCore/svg/DeprecatedSVGAnimatedPropertyTraits.h
WebCore/svg/DeprecatedSVGAnimatedTemplate.h
WebCore/svg/SVGAngle.cpp
WebCore/svg/SVGAngle.h
WebCore/svg/SVGAngle.idl
WebCore/svg/SVGAnimatedAngle.h [new file with mode: 0644]
WebCore/svg/SVGAnimatedAngle.idl
WebCore/svg/SVGMarkerElement.cpp
WebCore/svg/SVGMarkerElement.h
WebCore/svg/SVGNumber.idl
WebCore/svg/SVGPoint.idl
WebCore/svg/SVGRect.idl
WebCore/svg/SVGSVGElement.idl