layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
- RenderSVGContainer {svg} at (0,0) size 150x300
+ RenderSVGContainer {svg} at (0,0) size 300x300
RenderPath {rect} at (0,0) size 150x300 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00L150.00,0.00L150.00,300.00L0.00,300.00"]
- RenderPath {rect} at (0,0) size 0x0 [fill={[type=SOLID] [color=#008000]}] [data=""]
- RenderPath {rect} at (0,0) size 0x0 [fill={[type=SOLID] [color=#000000]}] [data=""]
+ RenderPath {rect} at (0,0) size 300x150 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00L300.00,0.00L300.00,150.00L0.00,150.00"]
+ RenderPath {rect} at (0,150) size 300x150 [fill={[type=SOLID] [color=#000000]}] [data="M0.00,150.00L300.00,150.00L300.00,300.00L0.00,300.00"]
+2007-03-18 Nikolas Zimmermann <zimmermann@kde.org>
+
+ Reviewed by Maciej.
+
+ Make JS function calls on POD-types (ie. SVGLength) take effect.
+ Calling ie. newValueInSpecifiedUnits on SVGLength works as expected.
+
+ This worked fine before we switched to SVGLength POD type, so this
+ can be considered as P1 regression fix.
+
+ Partly fix svg/hixie/dynamic/005-broken.svg. We match Opera now though
+ it's not yet completly fixed. Setting baseVal attribute on SVGAnimatedString
+ doesn't work as expected - needs a seperated fix.
+
+ * bindings/scripts/CodeGeneratorJS.pm:
+
2007-03-19 Adele Peterson <adele@apple.com>
Reviewed by Adam.
push(@implContent, " return throwError(exec, TypeError);\n\n");
if ($podType) {
- push(@implContent, " $podType& imp(*static_cast<$className*>(thisObj)->impl());\n\n");
+ push(@implContent, " JSSVGPODTypeWrapper<$podType>* wrapper = static_cast<$className*>(thisObj)->impl();\n");
+ push(@implContent, " $podType& imp(*wrapper);\n\n");
} else {
push(@implContent, " $implClassName* imp = static_cast<$implClassName*>(static_cast<$className*>(thisObj)->impl());\n\n");
}
if ($hasOptionalArguments) {
push(@implContent, " if (argsCount < " . ($paramIndex + 1) . ") {\n");
- GenerateImplementationFunctionCall($function, $functionString, $paramIndex, " " x 3);
+ GenerateImplementationFunctionCall($function, $functionString, $paramIndex, " " x 3, $podType);
push(@implContent, " }\n\n");
}
}
push(@implContent, "\n");
- GenerateImplementationFunctionCall($function, $functionString, $paramIndex, " " x 2);
+ GenerateImplementationFunctionCall($function, $functionString, $paramIndex, " " x 2, $podType);
push(@implContent, " }\n"); # end case
}
my $functionString = shift;
my $paramIndex = shift;
my $indent = shift;
+ my $podType = shift;
if (@{$function->raisesExceptions}) {
$functionString .= ", " if $paramIndex;
if ($function->signature->type eq "void") {
push(@implContent, $indent . "$functionString;\n");
push(@implContent, $indent . "setDOMException(exec, ec);\n") if @{$function->raisesExceptions};
+ push(@implContent, $indent . "wrapper->commitChange(exec);\n") if $podType;
push(@implContent, $indent . "return jsUndefined();\n");
} else {
push(@implContent, "\n" . $indent . "KJS::JSValue* result = " . NativeToJSValue($function->signature, "", $functionString) . ";\n");
push(@implContent, $indent . "setDOMException(exec, ec);\n") if @{$function->raisesExceptions};
+ push(@implContent, $indent . "wrapper->commitChange(exec);\n") if $podType;
push(@implContent, $indent . "return result;\n");
}
}