diff --git a/HEADER.js b/HEADER.js index ddc4196b..cca00f98 100644 --- a/HEADER.js +++ b/HEADER.js @@ -1,6 +1,6 @@ /*! Fabric.js Copyright 2008-2011, Bitsonnet (Juriy Zaytsev, Maxim Chernyak) */ -var fabric = fabric || { version: "0.5.12" }; +var fabric = fabric || { version: "0.5.13" }; if (typeof exports != 'undefined') { exports.fabric = fabric; diff --git a/dist/all.js b/dist/all.js index 72e559dd..3b59b7b3 100644 --- a/dist/all.js +++ b/dist/all.js @@ -1,6 +1,6 @@ /*! Fabric.js Copyright 2008-2011, Bitsonnet (Juriy Zaytsev, Maxim Chernyak) */ -var fabric = fabric || { version: "0.5.12" }; +var fabric = fabric || { version: "0.5.13" }; if (typeof exports != 'undefined') { exports.fabric = fabric; @@ -2003,6 +2003,8 @@ fabric.Observable = { * @param {String} byProperty */ function max(array, byProperty) { + if (!array || array.length === 0) return undefined; + var i = array.length - 1, result = byProperty ? array[i][byProperty] : array[i]; if (byProperty) { @@ -2030,6 +2032,8 @@ fabric.Observable = { * @param {String} byProperty */ function min(array, byProperty) { + if (!array || array.length === 0) return undefined; + var i = array.length - 1, result = byProperty ? array[i][byProperty] : array[i]; @@ -9674,7 +9678,7 @@ fabric.util.object.extend(fabric.Canvas.prototype, { initialize: function(paths, options) { options = options || { }; - this.paths = paths; + this.paths = paths || [ ]; for (var i = this.paths.length; i--; ) { this.paths[i].group = this; @@ -10281,14 +10285,14 @@ fabric.util.object.extend(fabric.Canvas.prototype, { minY = min(aY); maxY = max(aY); - width = maxX - minX; - height = maxY - minY; + width = (maxX - minX) || 0; + height = (maxY - minY) || 0; this.width = width; this.height = height; - this.left = minX + width / 2; - this.top = minY + height / 2; + this.left = (minX + width / 2) || 0; + this.top = (minY + height / 2) || 0; }, /** diff --git a/package.json b/package.json index c1f3d2fb..5fe50eab 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "fabric", "description": "Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.", - "version": "0.5.12", + "version": "0.5.13", "author": "Juriy Zaytsev ", "keywords": ["canvas", "graphic", "graphics", "SVG", "node-canvas", "parser", "HTML5", "object model"], "repository": "git://github.com/kangax/fabric.js", diff --git a/src/group.class.js b/src/group.class.js index a269e80d..d8a9f419 100644 --- a/src/group.class.js +++ b/src/group.class.js @@ -405,14 +405,14 @@ minY = min(aY); maxY = max(aY); - width = maxX - minX; - height = maxY - minY; + width = (maxX - minX) || 0; + height = (maxY - minY) || 0; this.width = width; this.height = height; - this.left = minX + width / 2; - this.top = minY + height / 2; + this.left = (minX + width / 2) || 0; + this.top = (minY + height / 2) || 0; }, /** diff --git a/src/path_group.class.js b/src/path_group.class.js index aeee30c2..968e7962 100644 --- a/src/path_group.class.js +++ b/src/path_group.class.js @@ -45,7 +45,7 @@ initialize: function(paths, options) { options = options || { }; - this.paths = paths; + this.paths = paths || [ ]; for (var i = this.paths.length; i--; ) { this.paths[i].group = this; diff --git a/src/util/lang_array.js b/src/util/lang_array.js index 652b2d6d..4ebdb3db 100644 --- a/src/util/lang_array.js +++ b/src/util/lang_array.js @@ -147,6 +147,8 @@ * @param {String} byProperty */ function max(array, byProperty) { + if (!array || array.length === 0) return undefined; + var i = array.length - 1, result = byProperty ? array[i][byProperty] : array[i]; if (byProperty) { @@ -174,6 +176,8 @@ * @param {String} byProperty */ function min(array, byProperty) { + if (!array || array.length === 0) return undefined; + var i = array.length - 1, result = byProperty ? array[i][byProperty] : array[i];