Title: [87735] trunk
Revision
87735
Author
[email protected]
Date
2011-05-31 09:25:34 -0700 (Tue, 31 May 2011)

Log Message

2011-05-31  Andreas Kling  <[email protected]>

        Reviewed by Antti Koivisto.

        Canvas/JSC: Auto-generate overloads for drawImageFromRect()
        https://bugs.webkit.org/show_bug.cgi?id=61709

        Add a test to verify the behavior of drawImageFromRect() when called
        with different numbers of arguments.

        * fast/canvas/canvas-overloads-drawImageFromRect-expected.txt: Added.
        * fast/canvas/canvas-overloads-drawImageFromRect.html: Added.
        * fast/canvas/script-tests/canvas-overloads-drawImageFromRect.js: Added.
2011-05-31  Andreas Kling  <[email protected]>

        Reviewed by Antti Koivisto.

        Canvas/JSC: Auto-generate overloads for drawImageFromRect()
        https://bugs.webkit.org/show_bug.cgi?id=61709

        Move CanvasRenderingContext2D.drawImageFromRect() to auto-generated JSC bindings.
        Make it [RequiresAllArguments=Raise] to match the old behavior.
        Side effect: calling drawImageFromRect() with zero arguments will now raise
        SyntaxError instead of TypeError.

        Test: fast/canvas/canvas-overloads-drawImageFromRect.html

        * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
        * html/canvas/CanvasRenderingContext2D.h:
        * html/canvas/CanvasRenderingContext2D.idl:

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (87734 => 87735)


--- trunk/LayoutTests/ChangeLog	2011-05-31 16:22:31 UTC (rev 87734)
+++ trunk/LayoutTests/ChangeLog	2011-05-31 16:25:34 UTC (rev 87735)
@@ -2,6 +2,20 @@
 
         Reviewed by Antti Koivisto.
 
+        Canvas/JSC: Auto-generate overloads for drawImageFromRect()
+        https://bugs.webkit.org/show_bug.cgi?id=61709
+
+        Add a test to verify the behavior of drawImageFromRect() when called
+        with different numbers of arguments.
+
+        * fast/canvas/canvas-overloads-drawImageFromRect-expected.txt: Added.
+        * fast/canvas/canvas-overloads-drawImageFromRect.html: Added.
+        * fast/canvas/script-tests/canvas-overloads-drawImageFromRect.js: Added.
+
+2011-05-31  Andreas Kling  <[email protected]>
+
+        Reviewed by Antti Koivisto.
+
         Canvas/JSC: Auto-generate overloads for drawImage()
         https://bugs.webkit.org/show_bug.cgi?id=61703
 

Added: trunk/LayoutTests/fast/canvas/canvas-overloads-drawImageFromRect-expected.txt (0 => 87735)


--- trunk/LayoutTests/fast/canvas/canvas-overloads-drawImageFromRect-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/canvas/canvas-overloads-drawImageFromRect-expected.txt	2011-05-31 16:25:34 UTC (rev 87735)
@@ -0,0 +1,23 @@
+Test the behavior of CanvasRenderingContext2D.drawImageFromRect() when called with different numbers of arguments.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS ctx.drawImageFromRect() threw exception SyntaxError: Not enough arguments.
+PASS ctx.drawImageFromRect(imageElement) is undefined
+PASS ctx.drawImageFromRect(imageElement, 0) is undefined
+PASS ctx.drawImageFromRect(imageElement, 0, 0) is undefined
+PASS ctx.drawImageFromRect(imageElement, 0, 0, 0) is undefined
+PASS ctx.drawImageFromRect(imageElement, 0, 0, 0, 0) is undefined
+PASS ctx.drawImageFromRect(imageElement, 0, 0, 0, 0, 0) is undefined
+PASS ctx.drawImageFromRect(imageElement, 0, 0, 0, 0, 0, 0) is undefined
+PASS ctx.drawImageFromRect(imageElement, 0, 0, 0, 0, 0, 0, 0) is undefined
+PASS ctx.drawImageFromRect(imageElement, 0, 0, 0, 0, 0, 0, 0, 0) is undefined
+PASS ctx.drawImageFromRect(imageElement, 0, 0, 0, 0, 0, 0, 0, 0, 0) is undefined
+PASS ctx.drawImageFromRect(imageElement, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) is undefined
+PASS ctx.drawImageFromRect(imageElement, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) is undefined
+PASS ctx.drawImageFromRect(imageElement, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) is undefined
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: trunk/LayoutTests/fast/canvas/canvas-overloads-drawImageFromRect.html (0 => 87735)


--- trunk/LayoutTests/fast/canvas/canvas-overloads-drawImageFromRect.html	                        (rev 0)
+++ trunk/LayoutTests/fast/canvas/canvas-overloads-drawImageFromRect.html	2011-05-31 16:25:34 UTC (rev 87735)
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href=""
+<script src=""
+</head>
+<body>
+<p id="description"></p>
+<div id="console"></div>
+<script src=""
+<script src=""
+</body>
+</html>

Added: trunk/LayoutTests/fast/canvas/script-tests/canvas-overloads-drawImageFromRect.js (0 => 87735)


--- trunk/LayoutTests/fast/canvas/script-tests/canvas-overloads-drawImageFromRect.js	                        (rev 0)
+++ trunk/LayoutTests/fast/canvas/script-tests/canvas-overloads-drawImageFromRect.js	2011-05-31 16:25:34 UTC (rev 87735)
@@ -0,0 +1,23 @@
+description("Test the behavior of CanvasRenderingContext2D.drawImageFromRect() when called with different numbers of arguments.");
+
+var ctx = document.createElement('canvas').getContext('2d');
+
+var SyntaxError = "SyntaxError: Not enough arguments";
+
+var imageElement = document.createElement("img");
+shouldThrow("ctx.drawImageFromRect()", "SyntaxError");
+shouldBe("ctx.drawImageFromRect(imageElement)", "undefined");
+shouldBe("ctx.drawImageFromRect(imageElement, 0)", "undefined");
+shouldBe("ctx.drawImageFromRect(imageElement, 0, 0)", "undefined");
+shouldBe("ctx.drawImageFromRect(imageElement, 0, 0, 0)", "undefined");
+shouldBe("ctx.drawImageFromRect(imageElement, 0, 0, 0, 0)", "undefined");
+shouldBe("ctx.drawImageFromRect(imageElement, 0, 0, 0, 0, 0)", "undefined");
+shouldBe("ctx.drawImageFromRect(imageElement, 0, 0, 0, 0, 0, 0)", "undefined");
+shouldBe("ctx.drawImageFromRect(imageElement, 0, 0, 0, 0, 0, 0, 0)", "undefined");
+shouldBe("ctx.drawImageFromRect(imageElement, 0, 0, 0, 0, 0, 0, 0, 0)", "undefined");
+shouldBe("ctx.drawImageFromRect(imageElement, 0, 0, 0, 0, 0, 0, 0, 0, 0)", "undefined");
+shouldBe("ctx.drawImageFromRect(imageElement, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)", "undefined");
+shouldBe("ctx.drawImageFromRect(imageElement, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)", "undefined");
+shouldBe("ctx.drawImageFromRect(imageElement, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)", "undefined");
+
+var successfullyParsed = true;

Modified: trunk/Source/WebCore/ChangeLog (87734 => 87735)


--- trunk/Source/WebCore/ChangeLog	2011-05-31 16:22:31 UTC (rev 87734)
+++ trunk/Source/WebCore/ChangeLog	2011-05-31 16:25:34 UTC (rev 87735)
@@ -2,6 +2,24 @@
 
         Reviewed by Antti Koivisto.
 
+        Canvas/JSC: Auto-generate overloads for drawImageFromRect()
+        https://bugs.webkit.org/show_bug.cgi?id=61709
+
+        Move CanvasRenderingContext2D.drawImageFromRect() to auto-generated JSC bindings.
+        Make it [RequiresAllArguments=Raise] to match the old behavior.
+        Side effect: calling drawImageFromRect() with zero arguments will now raise
+        SyntaxError instead of TypeError.
+
+        Test: fast/canvas/canvas-overloads-drawImageFromRect.html
+
+        * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
+        * html/canvas/CanvasRenderingContext2D.h:
+        * html/canvas/CanvasRenderingContext2D.idl:
+
+2011-05-31  Andreas Kling  <[email protected]>
+
+        Reviewed by Antti Koivisto.
+
         Canvas/JSC: Auto-generate overloads for drawImage()
         https://bugs.webkit.org/show_bug.cgi?id=61703
 

Modified: trunk/Source/WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp (87734 => 87735)


--- trunk/Source/WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp	2011-05-31 16:22:31 UTC (rev 87734)
+++ trunk/Source/WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp	2011-05-31 16:25:34 UTC (rev 87735)
@@ -95,26 +95,6 @@
     context->setFillStyle(toHTMLCanvasStyle(exec, value));
 }
 
-JSValue JSCanvasRenderingContext2D::drawImageFromRect(ExecState* exec)
-{ 
-    CanvasRenderingContext2D* context = static_cast<CanvasRenderingContext2D*>(impl());
-    
-    JSValue value = exec->argument(0);
-    if (!value.isObject())
-        return throwTypeError(exec);
-    JSObject* o = asObject(value);
-    
-    if (!o->inherits(&JSHTMLImageElement::s_info))
-        return throwTypeError(exec);
-    context->drawImageFromRect(static_cast<HTMLImageElement*>(static_cast<JSHTMLElement*>(o)->impl()),
-                               exec->argument(1).toFloat(exec), exec->argument(2).toFloat(exec),
-                               exec->argument(3).toFloat(exec), exec->argument(4).toFloat(exec),
-                               exec->argument(5).toFloat(exec), exec->argument(6).toFloat(exec),
-                               exec->argument(7).toFloat(exec), exec->argument(8).toFloat(exec),
-                               ustringToString(exec->argument(9).toString(exec)));    
-    return jsUndefined();    
-}
-
 JSValue JSCanvasRenderingContext2D::setShadow(ExecState* exec)
 { 
     CanvasRenderingContext2D* context = static_cast<CanvasRenderingContext2D*>(impl());

Modified: trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.h (87734 => 87735)


--- trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.h	2011-05-31 16:22:31 UTC (rev 87734)
+++ trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.h	2011-05-31 16:25:34 UTC (rev 87735)
@@ -181,8 +181,8 @@
     void drawImage(HTMLVideoElement*, const FloatRect& srcRect, const FloatRect& dstRect, ExceptionCode&);
 #endif
 
-    void drawImageFromRect(HTMLImageElement*, float sx, float sy, float sw, float sh,
-        float dx, float dy, float dw, float dh, const String& compositeOperation);
+    void drawImageFromRect(HTMLImageElement*, float sx = 0, float sy = 0, float sw = 0, float sh = 0,
+                           float dx = 0, float dy = 0, float dw = 0, float dh = 0, const String& compositeOperation = emptyString());
 
     void setAlpha(float);
 

Modified: trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.idl (87734 => 87735)


--- trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.idl	2011-05-31 16:22:31 UTC (rev 87734)
+++ trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.idl	2011-05-31 16:25:34 UTC (rev 87735)
@@ -135,10 +135,12 @@
             raises (DOMException);
 #endif
 
+        [RequiresAllArguments=Raise] void drawImageFromRect(in HTMLImageElement image,
+                                                            in [Optional] float sx, in [Optional] float sy, in [Optional] float sw, in [Optional] float sh,
+                                                            in [Optional] float dx, in [Optional] float dy, in [Optional] float dw, in [Optional] float dh,
+                                                            in [Optional] DOMString compositeOperation);
+
 #if defined(V8_BINDING) && V8_BINDING
-        void drawImageFromRect(in HTMLImageElement image,
-                               in float sx, in float sy, in float sw, in float sh,
-                               in float dx, in float dy, in float dw, in float dh, in DOMString compositeOperation);
 
         void setShadow(in float width, in float height, in float blur, in [Optional] DOMString color, in [Optional] float alpha);
         void setShadow(in float width, in float height, in float blur, in float grayLevel, in [Optional] float alpha);
@@ -157,7 +159,6 @@
             raises (DOMException);
 #else
         // FIXME: Remove 'else' once JSC supports overloads too.
-        [Custom] void drawImageFromRect(/* 10 */);
         [Custom] void setShadow(/* 3 */);
         [Custom] void createPattern(/* 2 */);
         [Custom] void putImageData(/* in ImageData imagedata, in float dx, in float dy [, in float dirtyX, in float dirtyY, in float dirtyWidth, in float dirtyHeight] */);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to