diff --git a/canvas2svg.js b/canvas2svg.js index 898a3f8..088c977 100644 --- a/canvas2svg.js +++ b/canvas2svg.js @@ -1,5 +1,5 @@ /*!! - * Canvas 2 Svg v1.0.4 + * Canvas 2 Svg v1.0.5 * A low level canvas to SVG converter. Uses a mock canvas context to build an SVG document. * * Licensed under the MIT license: @@ -507,6 +507,9 @@ * if the currentPathElement is not empty create a new path element */ ctx.prototype.moveTo = function(x,y){ + if(this.__currentElement.nodeName !== "path") { + this.beginPath(); + } this.__addPathCommand(format("M {x} {y}", {x:x, y:y})); }; diff --git a/jasmine-tests/spec/canvas2svgspec.js b/jasmine-tests/spec/canvas2svgspec.js index b4b3cdf..b338f93 100755 --- a/jasmine-tests/spec/canvas2svgspec.js +++ b/jasmine-tests/spec/canvas2svgspec.js @@ -38,11 +38,11 @@ describe("canvas2svg", function() { expect(ctx2.height).toEqual(400); expect(ctx2.enableMirroring).toEqual(false); - var ctx = C2S(); - expect(ctx instanceof C2S).toBe(true); - expect(ctx.width).toEqual(500); - expect(ctx.height).toEqual(500); - expect(ctx.enableMirroring).toEqual(false); + var ctx3 = C2S(); + expect(ctx3 instanceof C2S).toBe(true); + expect(ctx3.width).toEqual(500); + expect(ctx3.height).toEqual(500); + expect(ctx3.enableMirroring).toEqual(false); }); @@ -155,4 +155,14 @@ describe("canvas2svg", function() { }); }); + describe("supports path commands", function() { + + it("and moveTo may be called without beginPath, but is not recommended", function() { + var ctx = new C2S(); + ctx.moveTo(0,0); + ctx.lineTo(100,100); + ctx.stroke(); + }); + }); + });