diff --git a/src/shadow.class.js b/src/shadow.class.js index 47ac4d5e..7731f0ef 100644 --- a/src/shadow.class.js +++ b/src/shadow.class.js @@ -64,6 +64,7 @@ * @return {fabric.Shadow} thisArg */ initialize: function(options) { + if (typeof options === 'string') { options = this._parseShadow(options); } diff --git a/src/shapes/object.class.js b/src/shapes/object.class.js index a2cf787f..cb732056 100644 --- a/src/shapes/object.class.js +++ b/src/shapes/object.class.js @@ -1304,7 +1304,7 @@ * canvas.renderAll(); */ setShadow: function(options) { - return this.set('shadow', new fabric.Shadow(options)); + return this.set('shadow', options ? new fabric.Shadow(options) : null); }, /** diff --git a/test/unit/object.js b/test/unit/object.js index b8f79e49..984a55c4 100644 --- a/test/unit/object.js +++ b/test/unit/object.js @@ -1075,6 +1075,11 @@ test('toDataURL & reference to canvas', function() { equal(object.shadow.blur, 10); equal(object.shadow.offsetX, 5); equal(object.shadow.offsetY, 15); + + equal(object.setShadow(null), object, 'should be chainable'); + ok(!(object.shadow instanceof fabric.Shadow)); + equal(object.shadow, null); + }); test('set shadow', function() {