diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 00000000..54713204 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,149 @@ +{ + "env": { + "browser": true + }, + "globals": { + "ActiveXObject": true, + "define": true, + "eventjs": true, + "exports": true, + "fabric": true, + "G_vmlCanvasManager": true, + "require": true, + "Buffer": true, + "process": true + }, + "rules": { + "eqeqeq": 2, + "no-eq-null": 2, + "no-eval": 2, + "no-unused-expressions": [ + 2, + { + "allowShortCircuit": true + } + ], + "guard-for-in": 0, + "wrap-iife": [ + 2, + "inside" + ], + "linebreak-style": [ + 2, + "unix" + ], + "no-loop-func": 2, + "no-multi-str": 2, + "no-caller": 2, + "no-empty": [ + 2, + { + "allowEmptyCatch": true + } + ], + "no-new": 0, + "no-plusplus": 0, + "strict": 0, + "dot-notation": 2, + "no-undef": 2, + "no-unused-vars": 2, + "max-depth": [ + 2, + 4 + ], + "max-statements": [ + 2, + 45 + ], + "curly": [ + 2, + "all" + ], + "keyword-spacing": [ + 2, + {} + ], + "space-infix-ops": 2, + "array-bracket-spacing": [ + 2, + "never" + ], + "comma-style": [ + 2, + "last" + ], + "camelcase": [ + 2, + { + "properties": "never" + } + ], + "brace-style": [ + 2, + "stroustrup", + { + "allowSingleLine": true + } + ], + "eol-last": 2, + "one-var": [ + 0, + "always" + ], + "quote-props": [ + 2, + "as-needed", + { + "keywords": true + } + ], + "key-spacing": [ + 2, + { + "beforeColon": false, + "afterColon": true, + "mode": "minimum" + } + ], + "space-unary-ops": [ + 2, + { + "words": true, + "nonwords": false + } + ], + "no-with": 2, + "no-multiple-empty-lines": 2, + "no-mixed-spaces-and-tabs": 2, + "no-trailing-spaces": 2, + "quotes": [ + 2, + "single" + ], + "indent": [ + 2, + 2, + { + "SwitchCase": 1, + "VariableDeclarator": 2 + } + ], + "consistent-this": [ + 2, + "_this" + ], + "valid-jsdoc": [ + 0, + { + "requireReturn": false + } + ], + "max-len": [ + 2, + 120, + { + "ignoreComments": true + } + ] + } +} diff --git a/.eslintrc_tests b/.eslintrc_tests new file mode 100644 index 00000000..d8b3ae35 --- /dev/null +++ b/.eslintrc_tests @@ -0,0 +1,45 @@ +{ + "env": { + "browser": true, + "node": true, + "qunit": true + }, + "globals": { + "fabric": true, + "G_vmlCanvasManager": true + }, + "rules": { + "eqeqeq": 0, + "no-eq-null": 2, + "no-eval": 2, + "no-unused-expressions": 2, + "guard-for-in": 0, + "wrap-iife": [ + 2, + "any" + ], + "quote-props": 0, + "linebreak-style": 2, + "no-loop-func": 2, + "no-multi-str": 0, + "new-cap": 2, + "no-caller": 2, + "no-empty": 0, + "no-new": 0, + "no-plusplus": 0, + "strict": 0, + "dot-notation": 0, + "no-undef": 2, + "no-unused-vars": 2, + "max-statements": 0, + "camelcase": 0, + "consistent-this": 0, + "max-len": [ + 0, + 120, + { + "ignoreComments": true + } + ] + } +} diff --git a/.jscs.json b/.jscs.json deleted file mode 100644 index 181ae7c2..00000000 --- a/.jscs.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "requireCurlyBraces": [ "if", "else", "for", "while", "do", "switch", "return", "try", "catch"], - "requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch"], - "requireSpaceBeforeBinaryOperators": ["+", "-", "*", "=", "==", "===", "!=", "!=="], - "requireSpaceAfterBinaryOperators": ["+", "-", "*", "=", "==", "===", "!=", "!==", ","], - - "requireParenthesesAroundIIFE": true, - "requireSpacesInsideObjectBrackets": "all", - "requireCommaBeforeLineBreak": true, - "requireCamelCaseOrUpperCaseIdentifiers": true, - "requireKeywordsOnNewLine": ["else"], - "requireLineFeedAtFileEnd": true, - "requireCapitalizedConstructors": true, - "requireDotNotation": true, - "requireMultipleVarDecl": true, - "requireSpacesInFunction": { - "beforeOpeningCurlyBrace": true - }, - - "disallowEmptyBlocks": true, - "disallowQuotedKeysInObjects": "allButReserved", - "disallowSpaceAfterObjectKeys": true, - - "disallowSpaceBeforePostfixUnaryOperators": ["++", "--"], - "disallowSpaceAfterPrefixUnaryOperators": ["++", "--"], - - "disallowKeywords": ["with"], - "disallowMultipleLineStrings": true, - "disallowMultipleLineBreaks": true, - "disallowMixedSpacesAndTabs": true, - "disallowTrailingWhitespace": true, - - "validateLineBreaks": "LF", - "validateQuoteMarks": "'", - "validateIndentation": 2, - - "safeContextKeyword": "_this", - - "jsDoc": { - "checkParamNames": true, - "requireParamTypes": true - }, - - "maximumLineLength": { "value": 120, "allowComments": true, "allowRegex": true } -} diff --git a/.jshintrc b/.jshintrc deleted file mode 100644 index 38336104..00000000 --- a/.jshintrc +++ /dev/null @@ -1,45 +0,0 @@ -{ - "globals": { - "ActiveXObject": true, - "define": true, - "eventjs": true, - "exports": true, - "fabric": true, - "G_vmlCanvasManager": true, - - // node.js - "require": true, - "Buffer": true, - "process": true - }, - - "browser": true, - "eqeqeq": true, - "eqnull": true, - "evil": true, - "expr": true, - "forin": false, - "immed": true, - "lastsemic": true, - "laxbreak": true, - "loopfunc": true, - "multistr": true, - "newcap": true, - "noarg": true, - // "node": true, // we're not using node to catch `console.log` statements - "noempty": false, - "nomen": false, - "nonew": false, - "onevar": false, - "plusplus": false, - "strict": false, - "sub": true, - "undef": true, - "unused": true, - - "maxdepth": 4, - "maxstatements": 45 - - // "maxparams": 4, - // "maxcomplexity": 7 -} diff --git a/.jshintrc_tests b/.jshintrc_tests deleted file mode 100644 index c4eca96e..00000000 --- a/.jshintrc_tests +++ /dev/null @@ -1,31 +0,0 @@ -{ - "globals": { - "fabric": true, - "G_vmlCanvasManager": true - }, - "browser": true, - // TODO: change to true - "eqeqeq": false, - "eqnull": true, - "evil": true, - "expr": true, - "forin": false, - "immed": true, - "lastsemic": true, - "laxbreak": true, - "loopfunc": true, - "multistr": true, - "newcap": true, - "noarg": true, - "node": true, - "noempty": false, - "nomen": false, - "nonew": false, - "onevar": false, - "plusplus": false, - "strict": false, - "sub": true, - "undef": true, - "unused": true, - "qunit": true -} diff --git a/build.js b/build.js index 984d8c6a..84fff030 100644 --- a/build.js +++ b/build.js @@ -12,8 +12,8 @@ buildArgs.forEach(function(arg) { buildArgsAsObject[key] = value; }); -var modulesToInclude = buildArgsAsObject.modules ? buildArgsAsObject.modules.split(',') : [ ]; -var modulesToExclude = buildArgsAsObject.exclude ? buildArgsAsObject.exclude.split(',') : [ ]; +var modulesToInclude = buildArgsAsObject.modules ? buildArgsAsObject.modules.split(',') : []; +var modulesToExclude = buildArgsAsObject.exclude ? buildArgsAsObject.exclude.split(',') : []; var distributionPath = buildArgsAsObject.dest || 'dist/'; var minifier = buildArgsAsObject.minifier || 'uglifyjs'; diff --git a/lib/aligning_guidelines.js b/lib/aligning_guidelines.js index 078d9239..b78a4935 100644 --- a/lib/aligning_guidelines.js +++ b/lib/aligning_guidelines.js @@ -51,8 +51,8 @@ function initAligningGuidelines(canvas) { return false; } - var verticalLines = [ ], - horizontalLines = [ ]; + var verticalLines = [], + horizontalLines = []; canvas.on('mouse:down', function () { viewportTransform = canvas.viewportTransform; diff --git a/lib/centering_guidelines.js b/lib/centering_guidelines.js index 0f689234..5c6f6c8e 100644 --- a/lib/centering_guidelines.js +++ b/lib/centering_guidelines.js @@ -44,7 +44,7 @@ function initCenteringGuidelines(canvas) { ctx.restore(); } - var afterRenderActions = [ ], + var afterRenderActions = [], isInVerticalCenter, isInHorizontalCenter; diff --git a/lib/cufon.js b/lib/cufon.js index f1be86a4..350dbc5c 100644 --- a/lib/cufon.js +++ b/lib/cufon.js @@ -672,7 +672,7 @@ Cufon.registerEngine('canvas', (function() { var expandTop = 0, expandRight = 0, expandBottom = 0, expandLeft = 0; var shadows = options.textShadow, shadowOffsets = []; - Cufon.textOptions.shadowOffsets = [ ]; + Cufon.textOptions.shadowOffsets = []; Cufon.textOptions.shadows = null; if (shadows) { @@ -693,7 +693,7 @@ Cufon.registerEngine('canvas', (function() { var width = 0, lastWidth = null; - var maxWidth = 0, lines = 1, lineWidths = [ ]; + var maxWidth = 0, lines = 1, lineWidths = []; for (var i = 0, l = chars.length; i < l; ++i) { if (chars[i] === '\n') { lines++; @@ -712,7 +712,7 @@ Cufon.registerEngine('canvas', (function() { width = Math.max(maxWidth, width); - var lineOffsets = [ ]; + var lineOffsets = []; for (var i = lineWidths.length; i--; ) { lineOffsets[i] = width - lineWidths[i]; } diff --git a/package.json b/package.json index 5c3d1e8b..e2ca924a 100644 --- a/package.json +++ b/package.json @@ -38,8 +38,8 @@ "build": "node build.js modules=ALL exclude=json,gestures", "build_with_gestures": "node build.js modules=ALL exclude=json", "test": "node test.js", - "lint": "jshint src && jscs src", - "lint_tests": "jshint test/unit --config .jshintrc_tests", + "lint": "eslint --config .eslintrc.json src", + "lint_tests": "eslint test/unit --config .eslintrc_tests", "export_dist_to_site": "cp dist/fabric.js ../fabricjs.com/lib/fabric.js", "export_tests_to_site": "cp test/unit/*.js ../fabricjs.com/test/unit", "all": "npm run build && npm run test && npm run lint && npm run lint_tests && npm run export_dist_to_site && npm run export_tests_to_site" @@ -51,8 +51,7 @@ }, "devDependencies": { "uglify-js": "2.7.x", - "jscs": "2.x.x", - "jshint": "2.9.x", + "eslint": "2.x.x", "qunit": "0.9.x", "istanbul": "0.4.x" }, diff --git a/src/brushes/base_brush.class.js b/src/brushes/base_brush.class.js index 80a63926..de5aea30 100644 --- a/src/brushes/base_brush.class.js +++ b/src/brushes/base_brush.class.js @@ -10,14 +10,14 @@ fabric.BaseBrush = fabric.util.createClass(/** @lends fabric.BaseBrush.prototype * @type String * @default */ - color: 'rgb(0, 0, 0)', + color: 'rgb(0, 0, 0)', /** * Width of a brush * @type Number * @default */ - width: 1, + width: 1, /** * Shadow object representing shadow of this shape. @@ -26,28 +26,28 @@ fabric.BaseBrush = fabric.util.createClass(/** @lends fabric.BaseBrush.prototype * @type fabric.Shadow * @default */ - shadow: null, + shadow: null, /** * Line endings style of a brush (one of "butt", "round", "square") * @type String * @default */ - strokeLineCap: 'round', + strokeLineCap: 'round', /** * Corner style of a brush (one of "bevil", "round", "miter") * @type String * @default */ - strokeLineJoin: 'round', + strokeLineJoin: 'round', /** * Stroke Dash Array. * @type Array * @default */ - strokeDashArray: null, + strokeDashArray: null, /** * Sets shadow of an object diff --git a/src/brushes/circle_brush.class.js b/src/brushes/circle_brush.class.js index 356440ab..26642d1a 100644 --- a/src/brushes/circle_brush.class.js +++ b/src/brushes/circle_brush.class.js @@ -18,7 +18,7 @@ fabric.CircleBrush = fabric.util.createClass(fabric.BaseBrush, /** @lends fabric */ initialize: function(canvas) { this.canvas = canvas; - this.points = [ ]; + this.points = []; }, /** @@ -66,7 +66,7 @@ fabric.CircleBrush = fabric.util.createClass(fabric.BaseBrush, /** @lends fabric var originalRenderOnAddRemove = this.canvas.renderOnAddRemove; this.canvas.renderOnAddRemove = false; - var circles = [ ]; + var circles = []; for (var i = 0, len = this.points.length; i < len; i++) { var point = this.points[i], diff --git a/src/brushes/pencil_brush.class.js b/src/brushes/pencil_brush.class.js index 18d7bd6a..0905163a 100644 --- a/src/brushes/pencil_brush.class.js +++ b/src/brushes/pencil_brush.class.js @@ -14,7 +14,7 @@ */ initialize: function(canvas) { this.canvas = canvas; - this._points = [ ]; + this._points = []; }, /** @@ -164,15 +164,15 @@ */ createPath: function(pathData) { var path = new fabric.Path(pathData, { - fill: null, - stroke: this.color, - strokeWidth: this.width, - strokeLineCap: this.strokeLineCap, - strokeLineJoin: this.strokeLineJoin, - strokeDashArray: this.strokeDashArray, - originX: 'center', - originY: 'center' - }); + fill: null, + stroke: this.color, + strokeWidth: this.width, + strokeLineCap: this.strokeLineCap, + strokeLineJoin: this.strokeLineJoin, + strokeDashArray: this.strokeDashArray, + originX: 'center', + originY: 'center' + }); if (this.shadow) { this.shadow.affectStroke = true; diff --git a/src/brushes/spray_brush.class.js b/src/brushes/spray_brush.class.js index 2749f97b..5cff07ee 100644 --- a/src/brushes/spray_brush.class.js +++ b/src/brushes/spray_brush.class.js @@ -53,7 +53,7 @@ fabric.SprayBrush = fabric.util.createClass( fabric.BaseBrush, /** @lends fabric */ initialize: function(canvas) { this.canvas = canvas; - this.sprayChunks = [ ]; + this.sprayChunks = []; }, /** @@ -85,7 +85,7 @@ fabric.SprayBrush = fabric.util.createClass( fabric.BaseBrush, /** @lends fabric var originalRenderOnAddRemove = this.canvas.renderOnAddRemove; this.canvas.renderOnAddRemove = false; - var rects = [ ]; + var rects = []; for (var i = 0, ilen = this.sprayChunks.length; i < ilen; i++) { var sprayChunk = this.sprayChunks[i]; @@ -138,7 +138,7 @@ fabric.SprayBrush = fabric.util.createClass( fabric.BaseBrush, /** @lends fabric uniqueRects[key] = rects[i]; } } - var uniqueRectsArray = [ ]; + var uniqueRectsArray = []; for (key in uniqueRects) { uniqueRectsArray.push(uniqueRects[key]); } @@ -171,7 +171,7 @@ fabric.SprayBrush = fabric.util.createClass( fabric.BaseBrush, /** @lends fabric * @param {Object} pointer */ addSprayChunk: function(pointer) { - this.sprayChunkPoints = [ ]; + this.sprayChunkPoints = []; var x, y, width, radius = this.width / 2; diff --git a/src/canvas.class.js b/src/canvas.class.js index 457ff8a7..33bec8a8 100644 --- a/src/canvas.class.js +++ b/src/canvas.class.js @@ -137,7 +137,7 @@ * If not empty the selection border is dashed * @type Array */ - selectionDashArray: [ ], + selectionDashArray: [], /** * Color of the border of selection (usually slightly darker than color of selection itself) @@ -227,7 +227,8 @@ isDrawingMode: false, /** - * Indicates whether objects should remain in current stack position when selected. When false objects are brought to top and rendered as part of the selection group + * Indicates whether objects should remain in current stack position when selected. + * When false objects are brought to top and rendered as part of the selection group * @type Boolean * @default */ @@ -258,7 +259,7 @@ _chooseObjectsToRender: function() { var activeGroup = this.getActiveGroup(), activeObject = this.getActiveObject(), - object, objsToRender = [ ], activeGroupObjects = [ ]; + object, objsToRender = [], activeGroupObjects = []; if ((activeGroup || activeObject) && !this.preserveObjectStacking) { for (var i = 0, length = this._objects.length; i < length; i++) { @@ -667,8 +668,7 @@ actualMouseByOrigin, constraintPosition, dim = target._getTransformedDimensions(); this._changeSkewTransformOrigin(actualMouseByCenter - lastMouseByCenter, t, by); - actualMouseByOrigin = target.toLocalPoint(new fabric.Point(x, y), t.originX, t.originY)[by], - + actualMouseByOrigin = target.toLocalPoint(new fabric.Point(x, y), t.originX, t.originY)[by]; constraintPosition = target.translateToOriginPoint(center, t.originX, t.originY); // Actually skew the object skewed = this._setObjectSkew(actualMouseByOrigin, t, by, dim); @@ -970,8 +970,8 @@ // selection border if (this.selectionDashArray.length > 1) { - var px = groupSelector.ex + STROKE_OFFSET - ((left > 0) ? 0: aleft), - py = groupSelector.ey + STROKE_OFFSET - ((top > 0) ? 0: atop); + var px = groupSelector.ex + STROKE_OFFSET - ((left > 0) ? 0 : aleft), + py = groupSelector.ey + STROKE_OFFSET - ((top > 0) ? 0 : atop); ctx.beginPath(); @@ -1019,7 +1019,7 @@ return activeObject; } - this.targets = [ ]; + this.targets = []; var target = this._searchPossibleTargets(this._objects, pointer); this._fireOverOutEvents(target, e); diff --git a/src/color.class.js b/src/color.class.js index 05cff656..697cc07f 100644 --- a/src/color.class.js +++ b/src/color.class.js @@ -74,7 +74,7 @@ * @return {Array} Hsl color */ _rgbToHsl: function(r, g, b) { - r /= 255, g /= 255, b /= 255; + r /= 255; g /= 255; b /= 255; var h, s, l, max = fabric.util.array.max([r, g, b]), @@ -265,6 +265,7 @@ * @field * @memberOf fabric.Color */ + // eslint-disable-next-line max-len fabric.Color.reRGBa = /^rgba?\(\s*(\d{1,3}(?:\.\d+)?\%?)\s*,\s*(\d{1,3}(?:\.\d+)?\%?)\s*,\s*(\d{1,3}(?:\.\d+)?\%?)\s*(?:\s*,\s*(\d+(?:\.\d+)?)\s*)?\)$/; /** @@ -325,14 +326,14 @@ if (t > 1) { t -= 1; } - if (t < 1/6) { + if (t < 1 / 6) { return p + (q - p) * 6 * t; } - if (t < 1/2) { + if (t < 1 / 2) { return q; } - if (t < 2/3) { - return p + (q - p) * (2/3 - t) * 6; + if (t < 2 / 3) { + return p + (q - p) * (2 / 3 - t) * 6; } return p; } @@ -415,9 +416,9 @@ var q = l <= 0.5 ? l * (s + 1) : l + s - l * s, p = l * 2 - q; - r = hue2rgb(p, q, h + 1/3); + r = hue2rgb(p, q, h + 1 / 3); g = hue2rgb(p, q, h); - b = hue2rgb(p, q, h - 1/3); + b = hue2rgb(p, q, h - 1 / 3); } return [ diff --git a/src/elements_parser.js b/src/elements_parser.js index ad3336a2..30aa7eed 100644 --- a/src/elements_parser.js +++ b/src/elements_parser.js @@ -16,9 +16,9 @@ fabric.ElementsParser.prototype.parse = function() { fabric.ElementsParser.prototype.createObjects = function() { for (var i = 0, len = this.elements.length; i < len; i++) { this.elements[i].setAttribute('svgUid', this.svgUid); - (function(_this, i) { + (function(_obj, i) { setTimeout(function() { - _this.createObject(_this.elements[i], i); + _obj.createObject(_obj.elements[i], i); }, 0); })(this, i); } @@ -80,6 +80,7 @@ fabric.ElementsParser.prototype.resolveGradient = function(obj, property) { fabric.ElementsParser.prototype.checkIfDone = function() { if (--this.numElements === 0) { this.instances = this.instances.filter(function(el) { + // eslint-disable-next-line no-eq-null, eqeqeq return el != null; }); this.callback(this.instances); diff --git a/src/filters/blend_filter.class.js b/src/filters/blend_filter.class.js index e6c78417..3351621d 100644 --- a/src/filters/blend_filter.class.js +++ b/src/filters/blend_filter.class.js @@ -1,7 +1,9 @@ (function(global) { 'use strict'; - var fabric = global.fabric; + var fabric = global.fabric, + filters = fabric.Image.filters, + createClass = fabric.util.createClass; /** * Color Blend filter class @@ -23,7 +25,8 @@ * object.filters.push(filter); * object.applyFilters(canvas.renderAll.bind(canvas)); */ - fabric.Image.filters.Blend = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.Blend.prototype */{ + + filters.Blend = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Blend.prototype */ { type: 'Blend', initialize: function(options) { diff --git a/src/filters/brightness_filter.class.js b/src/filters/brightness_filter.class.js index e10cac13..e08dc114 100644 --- a/src/filters/brightness_filter.class.js +++ b/src/filters/brightness_filter.class.js @@ -3,7 +3,9 @@ 'use strict'; var fabric = global.fabric || (global.fabric = { }), - extend = fabric.util.object.extend; + extend = fabric.util.object.extend, + filters = fabric.Image.filters, + createClass = fabric.util.createClass; /** * Brightness filter class @@ -19,7 +21,7 @@ * object.filters.push(filter); * object.applyFilters(canvas.renderAll.bind(canvas)); */ - fabric.Image.filters.Brightness = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.Brightness.prototype */ { + filters.Brightness = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Brightness.prototype */ { /** * Filter type diff --git a/src/filters/colormatrix_filter.class.js b/src/filters/colormatrix_filter.class.js index 38048f41..4314d1db 100644 --- a/src/filters/colormatrix_filter.class.js +++ b/src/filters/colormatrix_filter.class.js @@ -3,7 +3,9 @@ 'use strict'; var fabric = global.fabric || (global.fabric = { }), - extend = fabric.util.object.extend; + extend = fabric.util.object.extend, + filters = fabric.Image.filters, + createClass = fabric.util.createClass; /** * Color Matrix filter class @@ -26,7 +28,7 @@ * object.filters.push(filter); * object.applyFilters(canvas.renderAll.bind(canvas)); */ - fabric.Image.filters.ColorMatrix = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.ColorMatrix.prototype */ { + filters.ColorMatrix = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.ColorMatrix.prototype */ { /** * Filter type @@ -44,11 +46,11 @@ initialize: function( options ) { options || ( options = {} ); this.matrix = options.matrix || [ - 1, 0, 0, 0, 0, - 0, 1, 0, 0, 0, - 0, 0, 1, 0, 0, - 0, 0, 0, 1, 0 - ]; + 1, 0, 0, 0, 0, + 0, 1, 0, 0, 0, + 0, 0, 1, 0, 0, + 0, 0, 0, 1, 0 + ]; }, /** @@ -57,15 +59,15 @@ */ applyTo: function( canvasEl ) { var context = canvasEl.getContext( '2d' ), - imageData = context.getImageData( 0, 0, canvasEl.width, canvasEl.height ), - data = imageData.data, - iLen = data.length, - i, - r, - g, - b, - a, - m = this.matrix; + imageData = context.getImageData( 0, 0, canvasEl.width, canvasEl.height ), + data = imageData.data, + iLen = data.length, + i, + r, + g, + b, + a, + m = this.matrix; for ( i = 0; i < iLen; i += 4 ) { r = data[ i ]; diff --git a/src/filters/convolute_filter.class.js b/src/filters/convolute_filter.class.js index 70a96091..20e280fa 100644 --- a/src/filters/convolute_filter.class.js +++ b/src/filters/convolute_filter.class.js @@ -3,7 +3,9 @@ 'use strict'; var fabric = global.fabric || (global.fabric = { }), - extend = fabric.util.object.extend; + extend = fabric.util.object.extend, + filters = fabric.Image.filters, + createClass = fabric.util.createClass; /** * Adapted from html5rocks article @@ -46,7 +48,7 @@ * object.filters.push(filter); * object.applyFilters(canvas.renderAll.bind(canvas)); */ - fabric.Image.filters.Convolute = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.Convolute.prototype */ { + filters.Convolute = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Convolute.prototype */ { /** * Filter type @@ -84,7 +86,7 @@ pixels = context.getImageData(0, 0, canvasEl.width, canvasEl.height), side = Math.round(Math.sqrt(weights.length)), - halfSide = Math.floor(side/2), + halfSide = Math.floor(side / 2), src = pixels.data, sw = pixels.width, sh = pixels.height, @@ -107,7 +109,7 @@ scy = y + cy - halfSide; scx = x + cx - halfSide; - /* jshint maxdepth:5 */ + // eslint-disable-next-line max-depth if (scy < 0 || scy > sh || scx < 0 || scx > sw) { continue; } diff --git a/src/filters/gradienttransparency_filter.class.js b/src/filters/gradienttransparency_filter.class.js index d85bfeb1..26af98b1 100644 --- a/src/filters/gradienttransparency_filter.class.js +++ b/src/filters/gradienttransparency_filter.class.js @@ -3,7 +3,9 @@ 'use strict'; var fabric = global.fabric || (global.fabric = { }), - extend = fabric.util.object.extend; + extend = fabric.util.object.extend, + filters = fabric.Image.filters, + createClass = fabric.util.createClass; /** * GradientTransparency filter class @@ -19,7 +21,8 @@ * object.filters.push(filter); * object.applyFilters(canvas.renderAll.bind(canvas)); */ - fabric.Image.filters.GradientTransparency = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.GradientTransparency.prototype */ { + // eslint-disable-next-line max-len + filters.GradientTransparency = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.GradientTransparency.prototype */ { /** * Filter type diff --git a/src/filters/grayscale_filter.class.js b/src/filters/grayscale_filter.class.js index 0524305a..ee550b35 100644 --- a/src/filters/grayscale_filter.class.js +++ b/src/filters/grayscale_filter.class.js @@ -2,7 +2,9 @@ 'use strict'; - var fabric = global.fabric || (global.fabric = { }); + var fabric = global.fabric || (global.fabric = { }), + filters = fabric.Image.filters, + createClass = fabric.util.createClass; /** * Grayscale image filter class @@ -15,7 +17,7 @@ * object.filters.push(filter); * object.applyFilters(canvas.renderAll.bind(canvas)); */ - fabric.Image.filters.Grayscale = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.Grayscale.prototype */ { + filters.Grayscale = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Grayscale.prototype */ { /** * Filter type diff --git a/src/filters/invert_filter.class.js b/src/filters/invert_filter.class.js index f798e958..c074d8cd 100644 --- a/src/filters/invert_filter.class.js +++ b/src/filters/invert_filter.class.js @@ -2,7 +2,9 @@ 'use strict'; - var fabric = global.fabric || (global.fabric = { }); + var fabric = global.fabric || (global.fabric = { }), + filters = fabric.Image.filters, + createClass = fabric.util.createClass; /** * Invert filter class @@ -15,7 +17,7 @@ * object.filters.push(filter); * object.applyFilters(canvas.renderAll.bind(canvas)); */ - fabric.Image.filters.Invert = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.Invert.prototype */ { + filters.Invert = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Invert.prototype */ { /** * Filter type @@ -35,7 +37,7 @@ data = imageData.data, iLen = data.length, i; - for (i = 0; i < iLen; i+=4) { + for (i = 0; i < iLen; i += 4) { data[i] = 255 - data[i]; data[i + 1] = 255 - data[i + 1]; data[i + 2] = 255 - data[i + 2]; diff --git a/src/filters/mask_filter.class.js b/src/filters/mask_filter.class.js index 7fa161a4..beae52fc 100644 --- a/src/filters/mask_filter.class.js +++ b/src/filters/mask_filter.class.js @@ -3,7 +3,9 @@ 'use strict'; var fabric = global.fabric || (global.fabric = { }), - extend = fabric.util.object.extend; + extend = fabric.util.object.extend, + filters = fabric.Image.filters, + createClass = fabric.util.createClass; /** * Mask filter class @@ -13,7 +15,7 @@ * @extends fabric.Image.filters.BaseFilter * @see {@link fabric.Image.filters.Mask#initialize} for constructor definition */ - fabric.Image.filters.Mask = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.Mask.prototype */ { + filters.Mask = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Mask.prototype */ { /** * Filter type @@ -33,7 +35,7 @@ options = options || { }; this.mask = options.mask; - this.channel = [ 0, 1, 2, 3 ].indexOf(options.channel) > -1 ? options.channel : 0; + this.channel = [0, 1, 2, 3].indexOf(options.channel) > -1 ? options.channel : 0; }, /** diff --git a/src/filters/multiply_filter.class.js b/src/filters/multiply_filter.class.js index 8a9bcf95..ad3e26ec 100644 --- a/src/filters/multiply_filter.class.js +++ b/src/filters/multiply_filter.class.js @@ -3,7 +3,9 @@ 'use strict'; var fabric = global.fabric || (global.fabric = { }), - extend = fabric.util.object.extend; + extend = fabric.util.object.extend, + filters = fabric.Image.filters, + createClass = fabric.util.createClass; /** * Multiply filter class @@ -24,7 +26,7 @@ * object.filters.push(filter); * object.applyFilters(canvas.renderAll.bind(canvas)); */ - fabric.Image.filters.Multiply = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.Multiply.prototype */ { + filters.Multiply = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Multiply.prototype */ { /** * Filter type @@ -58,7 +60,7 @@ source = new fabric.Color(this.color).getSource(); - for (i = 0; i < iLen; i+=4) { + for (i = 0; i < iLen; i += 4) { data[i] *= source[0] / 255; data[i + 1] *= source[1] / 255; data[i + 2] *= source[2] / 255; diff --git a/src/filters/noise_filter.class.js b/src/filters/noise_filter.class.js index c3267e93..562679c9 100644 --- a/src/filters/noise_filter.class.js +++ b/src/filters/noise_filter.class.js @@ -3,7 +3,9 @@ 'use strict'; var fabric = global.fabric || (global.fabric = { }), - extend = fabric.util.object.extend; + extend = fabric.util.object.extend, + filters = fabric.Image.filters, + createClass = fabric.util.createClass; /** * Noise filter class @@ -19,7 +21,7 @@ * object.filters.push(filter); * object.applyFilters(canvas.renderAll.bind(canvas)); */ - fabric.Image.filters.Noise = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.Noise.prototype */ { + filters.Noise = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Noise.prototype */ { /** * Filter type diff --git a/src/filters/pixelate_filter.class.js b/src/filters/pixelate_filter.class.js index 76188448..d553c75c 100644 --- a/src/filters/pixelate_filter.class.js +++ b/src/filters/pixelate_filter.class.js @@ -3,7 +3,9 @@ 'use strict'; var fabric = global.fabric || (global.fabric = { }), - extend = fabric.util.object.extend; + extend = fabric.util.object.extend, + filters = fabric.Image.filters, + createClass = fabric.util.createClass; /** * Pixelate filter class @@ -19,7 +21,7 @@ * object.filters.push(filter); * object.applyFilters(canvas.renderAll.bind(canvas)); */ - fabric.Image.filters.Pixelate = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.Pixelate.prototype */ { + filters.Pixelate = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Pixelate.prototype */ { /** * Filter type diff --git a/src/filters/removewhite_filter.class.js b/src/filters/removewhite_filter.class.js index bb7a8db5..f06b7011 100644 --- a/src/filters/removewhite_filter.class.js +++ b/src/filters/removewhite_filter.class.js @@ -3,7 +3,9 @@ 'use strict'; var fabric = global.fabric || (global.fabric = { }), - extend = fabric.util.object.extend; + extend = fabric.util.object.extend, + filters = fabric.Image.filters, + createClass = fabric.util.createClass; /** * Remove white filter class @@ -20,7 +22,7 @@ * object.filters.push(filter); * object.applyFilters(canvas.renderAll.bind(canvas)); */ - fabric.Image.filters.RemoveWhite = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.RemoveWhite.prototype */ { + filters.RemoveWhite = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.RemoveWhite.prototype */ { /** * Filter type diff --git a/src/filters/resize_filter.class.js b/src/filters/resize_filter.class.js index c271455c..1129f2ec 100644 --- a/src/filters/resize_filter.class.js +++ b/src/filters/resize_filter.class.js @@ -4,7 +4,9 @@ var fabric = global.fabric || (global.fabric = { }), pow = Math.pow, floor = Math.floor, sqrt = Math.sqrt, abs = Math.abs, max = Math.max, round = Math.round, sin = Math.sin, - ceil = Math.ceil; + ceil = Math.ceil, + filters = fabric.Image.filters, + createClass = fabric.util.createClass; /** * Resize image filter class @@ -17,7 +19,7 @@ * object.filters.push(filter); * object.applyFilters(canvas.renderAll.bind(canvas)); */ - fabric.Image.filters.Resize = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.Resize.prototype */ { + filters.Resize = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Resize.prototype */ { /** * Filter type @@ -181,7 +183,7 @@ for (v = 0; v < dH; v++) { center.y = (v + 0.5) * ratioY; icenter.y = floor(center.y); - a = 0, red = 0, green = 0, blue = 0, alpha = 0; + a = 0; red = 0; green = 0; blue = 0; alpha = 0; for (i = icenter.x - range2X; i <= icenter.x + range2X; i++) { if (i < 0 || i >= oW) { continue; @@ -302,7 +304,7 @@ for (var xx = floor(i * ratioW); xx < (i + 1) * ratioW; xx++) { var dx = abs(centerX - (xx + 0.5)) / ratioWHalf, w = sqrt(w0 + dx * dx); - /*jshint maxdepth:5 */ + /* eslint-disable max-depth */ if (w > 1 && w < -1) { continue; } @@ -314,17 +316,15 @@ gxA += weight * data[dx + 3]; weightsAlpha += weight; //colors - /*jshint maxdepth:6 */ if (data[dx + 3] < 255) { weight = weight * data[dx + 3] / 250; } - /*jshint maxdepth:5 */ gxR += weight * data[dx]; gxG += weight * data[dx + 1]; gxB += weight * data[dx + 2]; weights += weight; } - /*jshint maxdepth:4 */ + /* eslint-enable max-depth */ } } data2[x2] = gxR / weights; diff --git a/src/filters/sepia2_filter.class.js b/src/filters/sepia2_filter.class.js index 2fe970cd..4f4bdcd9 100644 --- a/src/filters/sepia2_filter.class.js +++ b/src/filters/sepia2_filter.class.js @@ -2,7 +2,9 @@ 'use strict'; - var fabric = global.fabric || (global.fabric = { }); + var fabric = global.fabric || (global.fabric = { }), + filters = fabric.Image.filters, + createClass = fabric.util.createClass; /** * Sepia2 filter class @@ -15,7 +17,7 @@ * object.filters.push(filter); * object.applyFilters(canvas.renderAll.bind(canvas)); */ - fabric.Image.filters.Sepia2 = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.Sepia2.prototype */ { + filters.Sepia2 = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Sepia2.prototype */ { /** * Filter type @@ -35,7 +37,7 @@ data = imageData.data, iLen = data.length, i, r, g, b; - for (i = 0; i < iLen; i+=4) { + for (i = 0; i < iLen; i += 4) { r = data[i]; g = data[i + 1]; b = data[i + 2]; diff --git a/src/filters/sepia_filter.class.js b/src/filters/sepia_filter.class.js index 5918f952..cc4f04de 100644 --- a/src/filters/sepia_filter.class.js +++ b/src/filters/sepia_filter.class.js @@ -2,7 +2,9 @@ 'use strict'; - var fabric = global.fabric || (global.fabric = { }); + var fabric = global.fabric || (global.fabric = { }), + filters = fabric.Image.filters, + createClass = fabric.util.createClass; /** * Sepia filter class @@ -15,7 +17,7 @@ * object.filters.push(filter); * object.applyFilters(canvas.renderAll.bind(canvas)); */ - fabric.Image.filters.Sepia = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.Sepia.prototype */ { + filters.Sepia = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Sepia.prototype */ { /** * Filter type @@ -35,7 +37,7 @@ data = imageData.data, iLen = data.length, i, avg; - for (i = 0; i < iLen; i+=4) { + for (i = 0; i < iLen; i += 4) { avg = 0.3 * data[i] + 0.59 * data[i + 1] + 0.11 * data[i + 2]; data[i] = avg + 100; data[i + 1] = avg + 50; diff --git a/src/filters/tint_filter.class.js b/src/filters/tint_filter.class.js index b0f92ff8..66e498c4 100644 --- a/src/filters/tint_filter.class.js +++ b/src/filters/tint_filter.class.js @@ -3,7 +3,9 @@ 'use strict'; var fabric = global.fabric || (global.fabric = { }), - extend = fabric.util.object.extend; + extend = fabric.util.object.extend, + filters = fabric.Image.filters, + createClass = fabric.util.createClass; /** * Tint filter class @@ -27,7 +29,7 @@ * object.filters.push(filter); * object.applyFilters(canvas.renderAll.bind(canvas)); */ - fabric.Image.filters.Tint = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.Tint.prototype */ { + filters.Tint = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Tint.prototype */ { /** * Filter type @@ -73,7 +75,7 @@ alpha1 = 1 - this.opacity; - for (i = 0; i < iLen; i+=4) { + for (i = 0; i < iLen; i += 4) { r = data[i]; g = data[i + 1]; b = data[i + 2]; diff --git a/src/gradient.class.js b/src/gradient.class.js index e7619877..e250be64 100644 --- a/src/gradient.class.js +++ b/src/gradient.class.js @@ -191,41 +191,35 @@ } if (this.type === 'linear') { markup = [ - //jscs:disable validateIndentation '\n' - //jscs:enable validateIndentation ]; } else if (this.type === 'radial') { markup = [ - //jscs:disable validateIndentation '\n' - //jscs:enable validateIndentation ]; } for (var i = 0; i < this.colorStops.length; i++) { markup.push( - //jscs:disable validateIndentation '\n' - //jscs:enable validateIndentation ); } @@ -421,7 +415,7 @@ gradientUnits === 'objectBoundingBox' && object.rx !== object.ry) { - var scaleFactor = object.ry/object.rx; + var scaleFactor = object.ry / object.rx; ellipseMatrix = ' scale(1, ' + scaleFactor + ')'; if (options.y1) { options.y1 /= scaleFactor; diff --git a/src/intersection.class.js b/src/intersection.class.js index 10f230b0..653e996b 100644 --- a/src/intersection.class.js +++ b/src/intersection.class.js @@ -103,8 +103,8 @@ b1, b2, inter; for (var i = 0; i < length; i++) { - b1 = points[i], - b2 = points[(i + 1) % length], + b1 = points[i]; + b2 = points[(i + 1) % length]; inter = Intersection.intersectLineLine(a1, a2, b1, b2); result.appendPoints(inter.points); diff --git a/src/log.js b/src/log.js index 694f73d7..4e57732f 100644 --- a/src/log.js +++ b/src/log.js @@ -10,7 +10,7 @@ fabric.log = function() { }; */ fabric.warn = function() { }; -/* jshint ignore:start */ +/* eslint-disable */ if (typeof console !== 'undefined') { ['log', 'warn'].forEach(function(methodName) { @@ -24,4 +24,4 @@ if (typeof console !== 'undefined') { } }); } -/* jshint ignore:end */ +/* eslint-enable */ diff --git a/src/mixins/animation.mixin.js b/src/mixins/animation.mixin.js index 861dbf52..a5e2d37f 100644 --- a/src/mixins/animation.mixin.js +++ b/src/mixins/animation.mixin.js @@ -138,7 +138,7 @@ fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prot */ animate: function() { if (arguments[0] && typeof arguments[0] === 'object') { - var propsToAnimate = [ ], prop, skipCallbacks; + var propsToAnimate = [], prop, skipCallbacks; for (prop in arguments[0]) { propsToAnimate.push(prop); } diff --git a/src/mixins/canvas_events.mixin.js b/src/mixins/canvas_events.mixin.js index 0c554b55..575b5452 100644 --- a/src/mixins/canvas_events.mixin.js +++ b/src/mixins/canvas_events.mixin.js @@ -1,17 +1,17 @@ (function() { var cursorOffset = { - mt: 0, // n - tr: 1, // ne - mr: 2, // e - br: 3, // se - mb: 4, // s - bl: 5, // sw - ml: 6, // w - tl: 7 // nw - }, - addListener = fabric.util.addListener, - removeListener = fabric.util.removeListener; + mt: 0, // n + tr: 1, // ne + mr: 2, // e + br: 3, // se + mb: 4, // s + bl: 5, // sw + ml: 6, // w + tl: 7 // nw + }, + addListener = fabric.util.addListener, + removeListener = fabric.util.removeListener; fabric.util.object.extend(fabric.Canvas.prototype, /** @lends fabric.Canvas.prototype */ { @@ -318,7 +318,7 @@ */ _handleEvent: function(e, eventType, targetObj) { var target = typeof targetObj === undefined ? this.findTarget(e) : targetObj, - targets = this.targets || [ ], + targets = this.targets || [], options = { e: e, target: target, subTargets: targets }; this.fire('mouse:' + eventType, options); @@ -604,7 +604,7 @@ var pointer = this.getPointer(e), transform = this._currentTransform; - transform.reset = false, + transform.reset = false; transform.target.isMoving = true; this._beforeScaleTransform(e, transform); diff --git a/src/mixins/canvas_gestures.mixin.js b/src/mixins/canvas_gestures.mixin.js index 3df85e65..d48a02bd 100644 --- a/src/mixins/canvas_gestures.mixin.js +++ b/src/mixins/canvas_gestures.mixin.js @@ -10,7 +10,7 @@ (function() { var degreesToRadians = fabric.util.degreesToRadians, - radiansToDegrees = fabric.util.radiansToDegrees; + radiansToDegrees = fabric.util.radiansToDegrees; fabric.util.object.extend(fabric.Canvas.prototype, /** @lends fabric.Canvas.prototype */ { /** @@ -48,8 +48,8 @@ } var self = this.__gesturesParams.self, - t = this._currentTransform, - e = this.__gesturesParams.e; + t = this._currentTransform, + e = this.__gesturesParams.e; t.action = 'scale'; t.originX = t.originY = 'center'; @@ -123,9 +123,9 @@ */ _scaleObjectBy: function(s, e) { var t = this._currentTransform, - target = t.target, - lockScalingX = target.get('lockScalingX'), - lockScalingY = target.get('lockScalingY'); + target = t.target, + lockScalingX = target.get('lockScalingX'), + lockScalingY = target.get('lockScalingY'); if (lockScalingX && lockScalingY) { return; diff --git a/src/mixins/canvas_grouping.mixin.js b/src/mixins/canvas_grouping.mixin.js index 4ba72add..4ce96eff 100644 --- a/src/mixins/canvas_grouping.mixin.js +++ b/src/mixins/canvas_grouping.mixin.js @@ -100,8 +100,8 @@ var objects = this.getObjects(), isActiveLower = objects.indexOf(this._activeObject) < objects.indexOf(target), groupObjects = isActiveLower - ? [ this._activeObject, target ] - : [ target, this._activeObject ]; + ? [this._activeObject, target] + : [target, this._activeObject]; this._activeObject.isEditing && this._activeObject.exitEditing(); return new fabric.Group(groupObjects, { canvas: this @@ -136,7 +136,7 @@ * @private */ _collectObjects: function() { - var group = [ ], + var group = [], currentObject, x1 = this._groupSelector.ex, y1 = this._groupSelector.ey, diff --git a/src/mixins/itext.svg_export.js b/src/mixins/itext.svg_export.js index a1bd64ef..09209c09 100644 --- a/src/mixins/itext.svg_export.js +++ b/src/mixins/itext.svg_export.js @@ -69,14 +69,12 @@ */ _createTextCharBg: function(styleDecl, lineLeftOffset, lineTopOffset, heightOfLine, charWidth, charOffset) { return [ - //jscs:disable validateIndentation '\t\t\n' - //jscs:enable validateIndentation ].join(''); }, @@ -94,18 +92,16 @@ }, styleDecl)); return [ - //jscs:disable validateIndentation '\t\t\t', - fabric.util.string.escapeXml(_char), + toFixed(lineTopOffset - this.height / 2, NUM_FRACTION_DIGITS), '" ', + (styleDecl.fontFamily ? 'font-family="' + styleDecl.fontFamily.replace(/"/g, '\'') + '" ' : ''), + (styleDecl.fontSize ? 'font-size="' + styleDecl.fontSize + '" ' : ''), + (styleDecl.fontStyle ? 'font-style="' + styleDecl.fontStyle + '" ' : ''), + (styleDecl.fontWeight ? 'font-weight="' + styleDecl.fontWeight + '" ' : ''), + (styleDecl.textDecoration ? 'text-decoration="' + styleDecl.textDecoration + '" ' : ''), + 'style="', fillStyles, '">', + fabric.util.string.escapeXml(_char), '\n' - //jscs:enable validateIndentation ].join(''); } }); diff --git a/src/mixins/object.svg_export.js b/src/mixins/object.svg_export.js index bfea0eb0..ca723fb4 100644 --- a/src/mixins/object.svg_export.js +++ b/src/mixins/object.svg_export.js @@ -134,7 +134,7 @@ * @private */ _createBaseSVGMarkup: function() { - var markup = [ ]; + var markup = []; if (this.fill && this.fill.toLive) { markup.push(this.fill.toSVG(this, false)); diff --git a/src/mixins/object_geometry.mixin.js b/src/mixins/object_geometry.mixin.js index 98bb19c2..fd78e6a5 100644 --- a/src/mixins/object_geometry.mixin.js +++ b/src/mixins/object_geometry.mixin.js @@ -130,8 +130,9 @@ * @param {fabric.Point} point Point to check * @param {Object} oCoords Coordinates of the object being evaluated */ + // remove yi, not used but left code here just in case. _findCrossPoints: function(point, oCoords) { - var b1, b2, a1, a2, xi, yi, + var b1, b2, a1, a2, xi, // yi, xcount = 0, iLine; @@ -148,7 +149,7 @@ // optimisation 3: vertical line case if ((iLine.o.x === iLine.d.x) && (iLine.o.x >= point.x)) { xi = iLine.o.x; - yi = point.y; + // yi = point.y; } // calculate the intersection point else { @@ -157,8 +158,8 @@ a1 = point.y - b1 * point.x; a2 = iLine.o.y - b2 * iLine.o.x; - xi = - (a1 - a2) / (b1 - b2); - yi = a1 + b1 * xi; + xi = -(a1 - a2) / (b1 - b2); + // yi = a1 + b1 * xi; } // dont count xi < point.x cases if (xi >= point.x) { @@ -314,10 +315,10 @@ tr = new fabric.Point(tl.x + (currentWidth * cosTh), tl.y + (currentWidth * sinTh)), bl = new fabric.Point(tl.x - (currentHeight * sinTh), tl.y + (currentHeight * cosTh)), br = new fabric.Point(coords.x + offsetX, coords.y + offsetY), - ml = new fabric.Point((tl.x + bl.x)/2, (tl.y + bl.y)/2), - mt = new fabric.Point((tr.x + tl.x)/2, (tr.y + tl.y)/2), - mr = new fabric.Point((br.x + tr.x)/2, (br.y + tr.y)/2), - mb = new fabric.Point((br.x + bl.x)/2, (br.y + bl.y)/2), + ml = new fabric.Point((tl.x + bl.x) / 2, (tl.y + bl.y) / 2), + mt = new fabric.Point((tr.x + tl.x) / 2, (tr.y + tl.y) / 2), + mr = new fabric.Point((br.x + tr.x) / 2, (br.y + tr.y) / 2), + mb = new fabric.Point((br.x + bl.x) / 2, (br.y + bl.y) / 2), mtr = new fabric.Point(mt.x + sinTh * this.rotatingPointOffset, mt.y - cosTh * this.rotatingPointOffset); // debugging diff --git a/src/mixins/object_interactivity.mixin.js b/src/mixins/object_interactivity.mixin.js index a5321c2b..27988c63 100644 --- a/src/mixins/object_interactivity.mixin.js +++ b/src/mixins/object_interactivity.mixin.js @@ -1,10 +1,9 @@ (function() { var degreesToRadians = fabric.util.degreesToRadians, - //jscs:disable requireCamelCaseOrUpperCaseIdentifiers + /* eslint-disable camelcase */ isVML = function() { return typeof G_vmlCanvasManager !== 'undefined'; }; - //jscs:enable requireCamelCaseOrUpperCaseIdentifiers - + /* eslint-enable camelcase */ fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ { /** @@ -146,24 +145,24 @@ skewY = this.skewY; } var dimensions = this._getNonTransformedDimensions(), - dimX = dimensions.x /2, dimY = dimensions.y / 2, + dimX = dimensions.x / 2, dimY = dimensions.y / 2, points = [ - { - x: -dimX, - y: -dimY - }, - { - x: dimX, - y: -dimY - }, - { - x: -dimX, - y: dimY - }, - { - x: dimX, - y: dimY - }], + { + x: -dimX, + y: -dimY + }, + { + x: dimX, + y: -dimY + }, + { + x: -dimX, + y: dimY + }, + { + x: dimX, + y: dimY + }], i, transformMatrix = this._calcDimensionsTransformMatrix(skewX, skewY, false), bbox; for (i = 0; i < points.length; i++) { @@ -205,7 +204,7 @@ ctx.scale(1 / vpt[0], 1 / vpt[3]); ctx.rotate(degreesToRadians(this.angle)); ctx.fillStyle = this.selectionBackgroundColor; - ctx.fillRect(-wh.x/2, -wh.y/2, wh.x, wh.y); + ctx.fillRect(-wh.x / 2, -wh.y / 2, wh.x, wh.y); ctx.restore(); return this; }, @@ -342,23 +341,23 @@ // middle-top this._drawControl('mt', ctx, methodName, - left + width/2, + left + width / 2, top); // middle-bottom this._drawControl('mb', ctx, methodName, - left + width/2, + left + width / 2, top + height); // middle-right this._drawControl('mr', ctx, methodName, left + width, - top + height/2); + top + height / 2); // middle-left this._drawControl('ml', ctx, methodName, left, - top + height/2); + top + height / 2); } // middle-top-rotate @@ -384,7 +383,7 @@ switch (this.cornerStyle) { case 'circle': ctx.beginPath(); - ctx.arc(left + size/2, top + size/2, size/2, 0, 2 * Math.PI, false); + ctx.arc(left + size / 2, top + size / 2, size / 2, 0, 2 * Math.PI, false); ctx[methodName](); if (stroke) { ctx.stroke(); diff --git a/src/mixins/observable.mixin.js b/src/mixins/observable.mixin.js index 050a0018..0c1aeeba 100644 --- a/src/mixins/observable.mixin.js +++ b/src/mixins/observable.mixin.js @@ -40,7 +40,7 @@ } else { if (!this.__eventListeners[eventName]) { - this.__eventListeners[eventName] = [ ]; + this.__eventListeners[eventName] = []; } this.__eventListeners[eventName].push(handler); } diff --git a/src/node.js b/src/node.js index 61c76d0f..50c9fc7b 100644 --- a/src/node.js +++ b/src/node.js @@ -122,6 +122,7 @@ fabric.util.getScript = function(url, callback) { request(url, '', function(body) { + // eslint-disable-next-line no-eval eval(body); callback && callback(); }); diff --git a/src/parser.js b/src/parser.js index 6ccbad75..dff4b444 100644 --- a/src/parser.js +++ b/src/parser.js @@ -131,7 +131,7 @@ * @private */ function _getMultipleNodes(doc, nodeNames) { - var nodeName, nodeArray = [ ], nodeList; + var nodeName, nodeArray = [], nodeList; for (var i = 0; i < nodeNames.length; i++) { nodeName = nodeNames[i]; nodeList = doc.getElementsByTagName(nodeName); @@ -246,7 +246,7 @@ // start with identity matrix var matrix = iMatrix.concat(), - matrices = [ ]; + matrices = []; // return if no argument was given or // an argument does not match transform attribute regexp @@ -257,7 +257,8 @@ attributeValue.replace(reTransform, function(match) { var m = new RegExp(transform).exec(match).filter(function (match) { - return (match !== '' && match != null); + // match !== '' && match != null + return (!!match); }), operation = m[1], args = m.slice(2).map(parseFloat); @@ -437,7 +438,8 @@ attr = attrs.item(j); el3.setAttribute(attr.nodeName, attr.nodeValue); } - while (el2.firstChild != null) { + // el2.firstChild != null + while (el2.firstChild) { el3.appendChild(el2.firstChild); } el2 = el3; @@ -516,9 +518,9 @@ return parsedDim; } - minX = -parseFloat(viewBoxAttr[1]), - minY = -parseFloat(viewBoxAttr[2]), - viewBoxWidth = parseFloat(viewBoxAttr[3]), + minX = -parseFloat(viewBoxAttr[1]); + minY = -parseFloat(viewBoxAttr[2]); + viewBoxWidth = parseFloat(viewBoxAttr[3]); viewBoxHeight = parseFloat(viewBoxAttr[4]); if (!missingDimAttr) { @@ -556,7 +558,8 @@ if (element.nodeName === 'svg') { el = element.ownerDocument.createElement('g'); - while (element.firstChild != null) { + // element.firstChild != null + while (element.firstChild) { el.appendChild(element.firstChild); } element.appendChild(el); @@ -576,7 +579,8 @@ * @function * @memberOf fabric * @param {SVGDocument} doc SVG document to parse - * @param {Function} callback Callback to call when parsing is finished; It's being passed an array of elements (parsed from a document). + * @param {Function} callback Callback to call when parsing is finished; + * It's being passed an array of elements (parsed from a document). * @param {Function} [reviver] Method for further parsing of SVG elements, called after each fabric object created. */ fabric.parseSVGDocument = (function() { @@ -609,7 +613,7 @@ // we're likely in node, where "o3-xml" library fails to gEBTN("*") // https://github.com/ajaxorg/node-o3-xml/issues/21 descendants = doc.selectNodes('//*[name(.)!="svg"]'); - var arr = [ ]; + var arr = []; for (var i = 0, len = descendants.length; i < len; i++) { arr[i] = descendants[i]; } @@ -888,11 +892,11 @@ points = points.replace(/,/g, ' ').trim(); points = points.split(/\s+/); - var parsedPoints = [ ], i, len; + var parsedPoints = [], i, len; i = 0; len = points.length; - for (; i < len; i+=2) { + for (; i < len; i += 2) { parsedPoints.push({ x: parseFloat(points[i]), y: parseFloat(points[i + 1]) @@ -934,8 +938,8 @@ rules.forEach(function(rule) { var match = rule.match(/([\s\S]*?)\s*\{([^}]*)\}/), - ruleObj = { }, declaration = match[2].trim(), - propertyValuePairs = declaration.replace(/;$/, '').split(/\s*;\s*/); + ruleObj = { }, declaration = match[2].trim(), + propertyValuePairs = declaration.replace(/;$/, '').split(/\s*;\s*/); for (var i = 0, len = propertyValuePairs.length; i < len; i++) { var pair = propertyValuePairs[i].split(/\s*:\s*/), @@ -962,7 +966,8 @@ }, /** - * Takes url corresponding to an SVG document, and parses it into a set of fabric objects. Note that SVG is fetched via XMLHttpRequest, so it needs to conform to SOP (Same Origin Policy) + * Takes url corresponding to an SVG document, and parses it into a set of fabric objects. + * Note that SVG is fetched via XMLHttpRequest, so it needs to conform to SOP (Same Origin Policy) * @memberOf fabric * @param {String} url * @param {Function} callback @@ -1074,24 +1079,20 @@ for (var j in fontList) { markup += [ - //jscs:disable validateIndentation '\t\t@font-face {\n', - '\t\t\tfont-family: \'', j, '\';\n', - '\t\t\tsrc: url(\'', fontPaths[j], '\');\n', + '\t\t\tfont-family: \'', j, '\';\n', + '\t\t\tsrc: url(\'', fontPaths[j], '\');\n', '\t\t}\n' - //jscs:enable validateIndentation ].join(''); } if (markup) { markup = [ - //jscs:disable validateIndentation '\t\n' - //jscs:enable validateIndentation ].join(''); } @@ -1104,7 +1105,7 @@ * @return {String} */ createSVGRefElementsMarkup: function(canvas) { - var markup = [ ]; + var markup = []; _createSVGPattern(markup, canvas, 'backgroundColor'); _createSVGPattern(markup, canvas, 'overlayColor'); diff --git a/src/shadow.class.js b/src/shadow.class.js index fd4b524a..3474be51 100644 --- a/src/shadow.class.js +++ b/src/shadow.class.js @@ -84,7 +84,7 @@ */ _parseShadow: function(shadow) { var shadowStr = shadow.trim(), - offsetsAndBlur = fabric.Shadow.reOffsetsAndBlur.exec(shadowStr) || [ ], + offsetsAndBlur = fabric.Shadow.reOffsetsAndBlur.exec(shadowStr) || [], color = shadowStr.replace(fabric.Shadow.reOffsetsAndBlur, '') || 'rgb(0,0,0)'; return { @@ -178,6 +178,7 @@ * @field * @memberOf fabric.Shadow */ + // eslint-disable-next-line max-len fabric.Shadow.reOffsetsAndBlur = /(?:\s|^)(-?\d+(?:px)?(?:\s?|$))?(-?\d+(?:px)?(?:\s?|$))?(\d+(?:px)?)?(?:\s?|$)(?:$|\s)/; })(typeof exports !== 'undefined' ? exports : this); diff --git a/src/shapes/circle.class.js b/src/shapes/circle.class.js index d2b89f66..60e13e54 100644 --- a/src/shapes/circle.class.js +++ b/src/shapes/circle.class.js @@ -99,7 +99,7 @@ */ toSVG: function(reviver) { var markup = this._createBaseSVGMarkup(), x = 0, y = 0, - angle = (this.endAngle - this.startAngle) % ( 2 * pi); + angle = (this.endAngle - this.startAngle) % ( 2 * pi); if (angle === 0) { if (this.group && this.group.type === 'path-group') { @@ -126,7 +126,7 @@ markup.push( '\n' - //jscs:enable validateIndentation ); return reviver ? reviver(markup.join('')) : markup.join(''); @@ -544,8 +542,8 @@ * @private */ _parsePath: function() { - var result = [ ], - coords = [ ], + var result = [], + coords = [], currentPath, parsed, re = /([-+]?((\d+\.\d+)|((\d+)|(\.\d+)))(?:e[-+]?\d+)?)/ig, @@ -562,7 +560,7 @@ coords.push(match[0]); } - coordsParsed = [ currentPath.charAt(0) ]; + coordsParsed = [currentPath.charAt(0)]; for (var j = 0, jlen = coords.length; j < jlen; j++) { parsed = parseFloat(coords[j]); @@ -577,7 +575,7 @@ if (coordsParsed.length - 1 > commandLength) { for (var k = 1, klen = coordsParsed.length; k < klen; k += commandLength) { - result.push([ command ].concat(coordsParsed.slice(k, k + commandLength))); + result.push([command].concat(coordsParsed.slice(k, k + commandLength))); command = repeatedCommand; } } @@ -617,33 +615,33 @@ case 'l': // lineto, relative x += current[1]; y += current[2]; - bounds = [ ]; + bounds = []; break; case 'L': // lineto, absolute x = current[1]; y = current[2]; - bounds = [ ]; + bounds = []; break; case 'h': // horizontal lineto, relative x += current[1]; - bounds = [ ]; + bounds = []; break; case 'H': // horizontal lineto, absolute x = current[1]; - bounds = [ ]; + bounds = []; break; case 'v': // vertical lineto, relative y += current[1]; - bounds = [ ]; + bounds = []; break; case 'V': // verical lineto, absolute y = current[1]; - bounds = [ ]; + bounds = []; break; case 'm': // moveTo, relative @@ -651,7 +649,7 @@ y += current[2]; subpathStartX = x; subpathStartY = y; - bounds = [ ]; + bounds = []; break; case 'M': // moveTo, absolute @@ -659,7 +657,7 @@ y = current[2]; subpathStartX = x; subpathStartY = y; - bounds = [ ]; + bounds = []; break; case 'c': // bezierCurveTo, relative diff --git a/src/shapes/path_group.class.js b/src/shapes/path_group.class.js index bccc8ee6..f52d1e06 100644 --- a/src/shapes/path_group.class.js +++ b/src/shapes/path_group.class.js @@ -44,7 +44,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; @@ -66,7 +66,7 @@ * Calculate width and height based on paths contained */ parseDimensionsFromPaths: function(options) { - var points, p, xC = [ ], yC = [ ], path, height, width, + var points, p, xC = [], yC = [], path, height, width, m; for (var j = this.paths.length; j--;) { path = this.paths[j]; @@ -111,7 +111,7 @@ this._setShadow(ctx); this.clipTo && fabric.util.clipContext(this, ctx); - ctx.translate(-this.width/2, -this.height/2); + ctx.translate(-this.width / 2, -this.height / 2); for (var i = 0, l = this.paths.length; i < l; ++i) { this.paths[i].render(ctx, true); } diff --git a/src/shapes/polygon.class.js b/src/shapes/polygon.class.js index 90bd4f27..30662005 100644 --- a/src/shapes/polygon.class.js +++ b/src/shapes/polygon.class.js @@ -57,7 +57,7 @@ */ initialize: function(points, options) { options = options || { }; - this.points = points || [ ]; + this.points = points || []; this.callSuper('initialize', options); this._calcDimensions(); if (!('top' in options)) { @@ -85,8 +85,7 @@ this.width = (maxX - minX) || 0; this.height = (maxY - minY) || 0; - - this.minX = minX || 0, + this.minX = minX || 0; this.minY = minY || 0; }, diff --git a/src/shapes/rect.class.js b/src/shapes/rect.class.js index dc8f57f3..1e8272cc 100644 --- a/src/shapes/rect.class.js +++ b/src/shapes/rect.class.js @@ -102,8 +102,8 @@ x = noTransform ? this.left : -this.width / 2, y = noTransform ? this.top : -this.height / 2, isRounded = rx !== 0 || ry !== 0, - k = 1 - 0.5522847498 /* "magic number" for bezier approximations of arcs (http://itc.ktu.lt/itc354/Riskus354.pdf) */; - + /* "magic number" for bezier approximations of arcs (http://itc.ktu.lt/itc354/Riskus354.pdf) */ + k = 1 - 0.5522847498; ctx.beginPath(); ctx.moveTo(x + rx, y); diff --git a/src/shapes/text.class.js b/src/shapes/text.class.js index 938f6823..f552a84a 100644 --- a/src/shapes/text.class.js +++ b/src/shapes/text.class.js @@ -711,8 +711,8 @@ * @private */ _clearCache: function() { - this.__lineWidths = [ ]; - this.__lineHeights = [ ]; + this.__lineWidths = []; + this.__lineHeights = []; }, /** @@ -806,8 +806,8 @@ for (i = 0, len = _this._textLines.length; i < len; i++) { - lineWidth = _this._getLineWidth(ctx, i), - lineLeftOffset = _this._getLineLeftOffset(lineWidth), + lineWidth = _this._getLineWidth(ctx, i); + lineLeftOffset = _this._getLineLeftOffset(lineWidth); heightOfLine = _this._getHeightOfLine(ctx, i); for (j = 0, oLen = offsets.length; j < oLen; j++) { @@ -957,11 +957,11 @@ style, '>\n', textAndBg.textBgRects.join(''), '\t\t\n', textAndBg.textSpans.join(''), '\t\t\n', @@ -976,8 +976,8 @@ * @return {Object} */ _getSVGTextAndBg: function(textTopOffset, textLeftOffset) { - var textSpans = [ ], - textBgRects = [ ], + var textSpans = [], + textBgRects = [], height = 0; // bounding-box background this._setSVGBg(textBgRects); diff --git a/src/static_canvas.class.js b/src/static_canvas.class.js index f8953cec..86f45681 100644 --- a/src/static_canvas.class.js +++ b/src/static_canvas.class.js @@ -1078,10 +1078,10 @@ */ _toObjects: function(methodName, propertiesToInclude) { return this.getObjects().filter(function(object) { - return !object.excludeFromExport; - }).map(function(instance) { - return this._toObject(instance, methodName, propertiesToInclude); - }, this); + return !object.excludeFromExport; + }).map(function(instance) { + return this._toObject(instance, methodName, propertiesToInclude); + }, this); }, /** diff --git a/src/util/anim_ease.js b/src/util/anim_ease.js index 32b79b2c..7da9f69a 100644 --- a/src/util/anim_ease.js +++ b/src/util/anim_ease.js @@ -36,7 +36,7 @@ * @memberOf fabric.util.ease */ function easeInOutCubic(t, b, c, d) { - t /= d/2; + t /= d / 2; if (t < 1) { return c / 2 * t * t * t + b; } @@ -302,10 +302,10 @@ if ((t /= d) < (1 / 2.75)) { return c * (7.5625 * t * t) + b; } - else if (t < (2/2.75)) { + else if (t < (2 / 2.75)) { return c * (7.5625 * (t -= (1.5 / 2.75)) * t + 0.75) + b; } - else if (t < (2.5/2.75)) { + else if (t < (2.5 / 2.75)) { return c * (7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375) + b; } else { @@ -395,4 +395,4 @@ easeInOutBounce: easeInOutBounce }; -}()); +})(); diff --git a/src/util/arc.js b/src/util/arc.js index a9c6a7e8..708a9cc8 100644 --- a/src/util/arc.js +++ b/src/util/arc.js @@ -30,13 +30,13 @@ root = 0; if (pl < 0) { - var s = Math.sqrt(1 - pl/(rx2 * ry2)); + var s = Math.sqrt(1 - pl / (rx2 * ry2)); rx *= s; ry *= s; } else { root = (large === sweep ? -1.0 : 1.0) * - Math.sqrt( pl /(rx2 * py2 + ry2 * px2)); + Math.sqrt( pl / (rx2 * py2 + ry2 * px2)); } var cx = root * rx * py / ry, @@ -82,8 +82,8 @@ sinth3 = Math.sin(th3), toX = cosTh * rx * costh3 - sinTh * ry * sinth3 + cx1, toY = sinTh * rx * costh3 + cosTh * ry * sinth3 + cy1, - cp1X = fromX + mT * ( - cosTh * rx * sinth2 - sinTh * ry * costh2), - cp1Y = fromY + mT * ( - sinTh * rx * sinth2 + cosTh * ry * costh2), + cp1X = fromX + mT * ( -cosTh * rx * sinth2 - sinTh * ry * costh2), + cp1Y = fromY + mT * ( -sinTh * rx * sinth2 + cosTh * ry * costh2), cp2X = toX + mT * ( cosTh * rx * sinth3 + sinTh * ry * costh3), cp2Y = toY + mT * ( sinTh * rx * sinth3 - cosTh * ry * costh3); @@ -124,7 +124,7 @@ sweep = coords[4], tx = coords[5], ty = coords[6], - segs = [[ ], [ ], [ ], [ ]], + segs = [[], [], [], []], segsNorm = arcToSegments(tx - fx, ty - fy, rx, ry, large, sweep, rot); for (var i = 0, len = segsNorm.length; i < len; i++) { @@ -152,9 +152,9 @@ */ fabric.util.getBoundsOfArc = function(fx, fy, rx, ry, rot, large, sweep, tx, ty) { - var fromX = 0, fromY = 0, bound = [ ], bounds = [ ], - segs = arcToSegments(tx - fx, ty - fy, rx, ry, large, sweep, rot), - boundCopy = [[ ], [ ]]; + var fromX = 0, fromY = 0, bound = [], bounds = [], + segs = arcToSegments(tx - fx, ty - fy, rx, ry, large, sweep, rot), + boundCopy = [[], []]; for (var i = 0, len = segs.length; i < len; i++) { bound = getBoundsOfCurve(fromX, fromY, segs[i][0], segs[i][1], segs[i][2], segs[i][3], segs[i][4], segs[i][5]); @@ -190,8 +190,8 @@ var sqrt = Math.sqrt, min = Math.min, max = Math.max, - abs = Math.abs, tvalues = [ ], - bounds = [[ ], [ ]], + abs = Math.abs, tvalues = [], + bounds = [[], []], a, b, c, t, t1, t2, b2ac, sqrtb2ac; b = 6 * x0 - 12 * x1 + 6 * x2; diff --git a/src/util/dom_event.js b/src/util/dom_event.js index a7642841..3f8639dd 100644 --- a/src/util/dom_event.js +++ b/src/util/dom_event.js @@ -98,7 +98,7 @@ listeners[uid] = { }; } if (!listeners[uid][eventName]) { - listeners[uid][eventName] = [ ]; + listeners[uid][eventName] = []; } var listener = createListener(uid, handler); @@ -127,7 +127,7 @@ handlers[uid] = { }; } if (!handlers[uid][eventName]) { - handlers[uid][eventName] = [ ]; + handlers[uid][eventName] = []; var existingHandler = element['on' + eventName]; if (existingHandler) { handlers[uid][eventName].push(existingHandler); @@ -193,12 +193,12 @@ // looks like in IE (<9) clientX at certain point (apparently when mouseup fires on VML element) // is represented as COM object, with all the consequences, like "unknown" type and error on [[Get]] // need to investigate later - return (typeof event.clientX !== unknown ? event.clientX : 0); - }, + return (typeof event.clientX !== unknown ? event.clientX : 0); + }, - pointerY = function(event) { - return (typeof event.clientY !== unknown ? event.clientY : 0); - }; + pointerY = function(event) { + return (typeof event.clientY !== unknown ? event.clientY : 0); + }; function _getPointer(event, pageProp, clientProp) { var touchProp = event.type === 'touchend' ? 'changedTouches' : 'touches'; diff --git a/src/util/lang_array.js b/src/util/lang_array.js index bebb5714..1f173f76 100644 --- a/src/util/lang_array.js +++ b/src/util/lang_array.js @@ -65,7 +65,7 @@ * @return {Array} */ Array.prototype.map = function(fn, context) { - var result = [ ]; + var result = []; for (var i = 0, len = this.length >>> 0; i < len; i++) { if (i in this) { result[i] = fn.call(context, this[i], i, this); @@ -117,7 +117,7 @@ * @return {Array} */ Array.prototype.filter = function(fn, context) { - var result = [ ], val; + var result = [], val; for (var i = 0, len = this.length >>> 0; i < len; i++) { if (i in this) { val = this[i]; // in case fn mutates this @@ -176,7 +176,7 @@ * @return {Array} */ function invoke(array, method) { - var args = slice.call(arguments, 2), result = [ ]; + var args = slice.call(arguments, 2), result = []; for (var i = 0, len = array.length; i < len; i++) { result[i] = args.length ? array[i][method].apply(array[i], args) : array[i][method].call(array[i]); } diff --git a/src/util/lang_class.js b/src/util/lang_class.js index 7a565302..9cf6be49 100644 --- a/src/util/lang_class.js +++ b/src/util/lang_class.js @@ -76,7 +76,7 @@ } klass.superclass = parent; - klass.subclasses = [ ]; + klass.subclasses = []; if (parent) { Subclass.prototype = parent.prototype; diff --git a/src/util/lang_string.js b/src/util/lang_string.js index 708e9b25..4d368f4c 100644 --- a/src/util/lang_string.js +++ b/src/util/lang_string.js @@ -63,4 +63,4 @@ capitalize: capitalize, escapeXml: escapeXml }; -}()); +})(); diff --git a/src/util/misc.js b/src/util/misc.js index 71d47a89..7b74fc69 100644 --- a/src/util/misc.js +++ b/src/util/misc.js @@ -241,10 +241,10 @@ } var parts = namespace.split('.'), - len = parts.length, + len = parts.length, i, obj = global || fabric.window; - for (var i = 0; i < len; ++i) { + for (i = 0; i < len; ++i) { obj = obj[parts[i]]; } @@ -302,7 +302,7 @@ * called after each fabric object created. */ enlivenObjects: function(objects, callback, namespace, reviver) { - objects = objects || [ ]; + objects = objects || []; function onLoaded() { if (++numLoadedObjects === numTotalObjects) { @@ -310,7 +310,7 @@ } } - var enlivenedObjects = [ ], + var enlivenedObjects = [], numLoadedObjects = 0, numTotalObjects = objects.length; @@ -431,11 +431,11 @@ */ createCanvasElement: function(canvasEl) { canvasEl || (canvasEl = fabric.document.createElement('canvas')); - //jscs:disable requireCamelCaseOrUpperCaseIdentifiers + /* eslint-disable camelcase */ if (!canvasEl.getContext && typeof G_vmlCanvasManager !== 'undefined') { G_vmlCanvasManager.initElement(canvasEl); } - //jscs:enable requireCamelCaseOrUpperCaseIdentifiers + /* eslint-enable camelcase */ return canvasEl; }, @@ -458,14 +458,15 @@ * @param {Object} klass "Class" to create accessors for */ createAccessors: function(klass) { - var proto = klass.prototype; + var proto = klass.prototype, i, propName, + capitalizedPropName, setterName, getterName; - for (var i = proto.stateProperties.length; i--; ) { + for (i = proto.stateProperties.length; i--; ) { - var propName = proto.stateProperties[i], - capitalizedPropName = propName.charAt(0).toUpperCase() + propName.slice(1), - setterName = 'set' + capitalizedPropName, - getterName = 'get' + capitalizedPropName; + propName = proto.stateProperties[i]; + capitalizedPropName = propName.charAt(0).toUpperCase() + propName.slice(1); + setterName = 'set' + capitalizedPropName; + getterName = 'get' + capitalizedPropName; // using `new Function` for better introspection if (!proto[getterName]) { @@ -591,12 +592,13 @@ } } - var _isTransparent = true, - imageData = ctx.getImageData(x, y, (tolerance * 2) || 1, (tolerance * 2) || 1); + var _isTransparent = true, i, temp, + imageData = ctx.getImageData(x, y, (tolerance * 2) || 1, (tolerance * 2) || 1), + l = imageData.data.length; // Split image data - for tolerance > 1, pixelDataSize = 4; - for (var i = 3, l = imageData.data.length; i < l; i += 4) { - var temp = imageData.data[i]; + for (i = 3; i < l; i += 4) { + temp = imageData.data[i]; _isTransparent = temp <= 0; if (_isTransparent === false) { break; // Stop if colour found diff --git a/test/lib/qunit.js b/test/lib/qunit.js index fc7c0e17..b9fc9b9c 100644 --- a/test/lib/qunit.js +++ b/test/lib/qunit.js @@ -1236,7 +1236,7 @@ QUnit.jsDump = (function() { nodelist: array, arguments: array, object:function( map ) { - var ret = [ ]; + var ret = []; QUnit.jsDump.up(); for ( var key in map ) ret.push( QUnit.jsDump.parse(key,'key') + ': ' + QUnit.jsDump.parse(map[key]) ); diff --git a/test/unit/canvas.js b/test/unit/canvas.js index 9dcecca3..ce3cdd92 100644 --- a/test/unit/canvas.js +++ b/test/unit/canvas.js @@ -4,48 +4,48 @@ // var emptyImageCanvasData = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t+KAAAH7ElEQVR4nO3VMQ0AMAzAsPInvYHoMS2yEeTLHADge/M6AADYM3QACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIuMjH4b7osLFBAAAAAElFTkSuQmCC"; - var PATH_JSON = '{"objects": [{"type": "path", "originX": "left", "originY": "top", "left": 268, "top": 266, "width": 51, "height": 49,'+ - ' "fill": "rgb(0,0,0)", "stroke": null, "strokeWidth": 1, "scaleX": 1, "scaleY": 1, '+ - '"angle": 0, "flipX": false, "flipY": false, "opacity": 1, "path": [["M", 18.511, 13.99],'+ - ' ["c", 0, 0, -2.269, -4.487, -12.643, 4.411], ["c", 0, 0, 4.824, -14.161, 19.222, -9.059],'+ - ' ["l", 0.379, -2.1], ["c", -0.759, -0.405, -1.375, -1.139, -1.645, -2.117], ["c", -0.531, '+ - '-1.864, 0.371, -3.854, 1.999, -4.453], ["c", 0.312, -0.118, 0.633, -0.169, 0.953, -0.169], '+ - '["c", 1.299, 0, 2.514, 0.953, 2.936, 2.455], ["c", 0.522, 1.864, -0.372, 3.854, -1.999, '+ - '4.453], ["c", -0.229, 0.084, -0.464, 0.127, -0.692, 0.152], ["l", -0.379, 2.37], ["c", '+ - '1.146, 0.625, 2.024, 1.569, 2.674, 2.758], ["c", 3.213, 2.514, 8.561, 4.184, 11.774, -8.232],'+ - ' ["c", 0, 0, 0.86, 16.059, -12.424, 14.533], ["c", 0.008, 2.859, 0.615, 5.364, -0.076, 8.224],'+ - ' ["c", 8.679, 3.146, 15.376, 14.389, 17.897, 18.168], ["l", 2.497, -2.151], ["l", 1.206, 1.839],'+ - ' ["l", -3.889, 3.458], ["C", 46.286, 48.503, 31.036, 32.225, 22.72, 35.81], ["c", -1.307, 2.851,'+ - ' -3.56, 6.891, -7.481, 8.848], ["c", -4.689, 2.336, -9.084, -0.802, -11.277, -2.868], ["l",'+ - ' -1.948, 3.104], ["l", -1.628, -1.333], ["l", 3.138, -4.689], ["c", 0.025, 0, 9, 1.932, 9, 1.932], '+ - '["c", 0.877, -9.979, 2.893, -12.905, 4.942, -15.621], ["C", 17.878, 21.775, 18.713, 17.397, 18.511, '+ + var PATH_JSON = '{"objects": [{"type": "path", "originX": "left", "originY": "top", "left": 268, "top": 266, "width": 51, "height": 49,' + + ' "fill": "rgb(0,0,0)", "stroke": null, "strokeWidth": 1, "scaleX": 1, "scaleY": 1, ' + + '"angle": 0, "flipX": false, "flipY": false, "opacity": 1, "path": [["M", 18.511, 13.99],' + + ' ["c", 0, 0, -2.269, -4.487, -12.643, 4.411], ["c", 0, 0, 4.824, -14.161, 19.222, -9.059],' + + ' ["l", 0.379, -2.1], ["c", -0.759, -0.405, -1.375, -1.139, -1.645, -2.117], ["c", -0.531, ' + + '-1.864, 0.371, -3.854, 1.999, -4.453], ["c", 0.312, -0.118, 0.633, -0.169, 0.953, -0.169], ' + + '["c", 1.299, 0, 2.514, 0.953, 2.936, 2.455], ["c", 0.522, 1.864, -0.372, 3.854, -1.999, ' + + '4.453], ["c", -0.229, 0.084, -0.464, 0.127, -0.692, 0.152], ["l", -0.379, 2.37], ["c", ' + + '1.146, 0.625, 2.024, 1.569, 2.674, 2.758], ["c", 3.213, 2.514, 8.561, 4.184, 11.774, -8.232],' + + ' ["c", 0, 0, 0.86, 16.059, -12.424, 14.533], ["c", 0.008, 2.859, 0.615, 5.364, -0.076, 8.224],' + + ' ["c", 8.679, 3.146, 15.376, 14.389, 17.897, 18.168], ["l", 2.497, -2.151], ["l", 1.206, 1.839],' + + ' ["l", -3.889, 3.458], ["C", 46.286, 48.503, 31.036, 32.225, 22.72, 35.81], ["c", -1.307, 2.851,' + + ' -3.56, 6.891, -7.481, 8.848], ["c", -4.689, 2.336, -9.084, -0.802, -11.277, -2.868], ["l",' + + ' -1.948, 3.104], ["l", -1.628, -1.333], ["l", 3.138, -4.689], ["c", 0.025, 0, 9, 1.932, 9, 1.932], ' + + '["c", 0.877, -9.979, 2.893, -12.905, 4.942, -15.621], ["C", 17.878, 21.775, 18.713, 17.397, 18.511, ' + '13.99], ["z", null]]}], "background": "#ff5555","overlay": "rgba(0,0,0,0.2)"}'; - var PATH_OBJ_JSON = '{"type": "path", "originX": "left", "originY": "top", "left": 268, "top": 266, "width": 51, "height": 49,'+ - ' "fill": "rgb(0,0,0)", "stroke": null, "strokeWidth": 1, "scaleX": 1, "scaleY": 1, '+ - '"angle": 0, "flipX": false, "flipY": false, "opacity": 1, "path": [["M", 18.511, 13.99],'+ - ' ["c", 0, 0, -2.269, -4.487, -12.643, 4.411], ["c", 0, 0, 4.824, -14.161, 19.222, -9.059],'+ - ' ["l", 0.379, -2.1], ["c", -0.759, -0.405, -1.375, -1.139, -1.645, -2.117], ["c", -0.531, '+ - '-1.864, 0.371, -3.854, 1.999, -4.453], ["c", 0.312, -0.118, 0.633, -0.169, 0.953, -0.169], '+ - '["c", 1.299, 0, 2.514, 0.953, 2.936, 2.455], ["c", 0.522, 1.864, -0.372, 3.854, -1.999, '+ - '4.453], ["c", -0.229, 0.084, -0.464, 0.127, -0.692, 0.152], ["l", -0.379, 2.37], ["c", '+ - '1.146, 0.625, 2.024, 1.569, 2.674, 2.758], ["c", 3.213, 2.514, 8.561, 4.184, 11.774, -8.232],'+ - ' ["c", 0, 0, 0.86, 16.059, -12.424, 14.533], ["c", 0.008, 2.859, 0.615, 5.364, -0.076, 8.224],'+ - ' ["c", 8.679, 3.146, 15.376, 14.389, 17.897, 18.168], ["l", 2.497, -2.151], ["l", 1.206, 1.839],'+ - ' ["l", -3.889, 3.458], ["C", 46.286, 48.503, 31.036, 32.225, 22.72, 35.81], ["c", -1.307, 2.851,'+ - ' -3.56, 6.891, -7.481, 8.848], ["c", -4.689, 2.336, -9.084, -0.802, -11.277, -2.868], ["l",'+ - ' -1.948, 3.104], ["l", -1.628, -1.333], ["l", 3.138, -4.689], ["c", 0.025, 0, 9, 1.932, 9, 1.932], '+ - '["c", 0.877, -9.979, 2.893, -12.905, 4.942, -15.621], ["C", 17.878, 21.775, 18.713, 17.397, 18.511, '+ + var PATH_OBJ_JSON = '{"type": "path", "originX": "left", "originY": "top", "left": 268, "top": 266, "width": 51, "height": 49,' + + ' "fill": "rgb(0,0,0)", "stroke": null, "strokeWidth": 1, "scaleX": 1, "scaleY": 1, ' + + '"angle": 0, "flipX": false, "flipY": false, "opacity": 1, "path": [["M", 18.511, 13.99],' + + ' ["c", 0, 0, -2.269, -4.487, -12.643, 4.411], ["c", 0, 0, 4.824, -14.161, 19.222, -9.059],' + + ' ["l", 0.379, -2.1], ["c", -0.759, -0.405, -1.375, -1.139, -1.645, -2.117], ["c", -0.531, ' + + '-1.864, 0.371, -3.854, 1.999, -4.453], ["c", 0.312, -0.118, 0.633, -0.169, 0.953, -0.169], ' + + '["c", 1.299, 0, 2.514, 0.953, 2.936, 2.455], ["c", 0.522, 1.864, -0.372, 3.854, -1.999, ' + + '4.453], ["c", -0.229, 0.084, -0.464, 0.127, -0.692, 0.152], ["l", -0.379, 2.37], ["c", ' + + '1.146, 0.625, 2.024, 1.569, 2.674, 2.758], ["c", 3.213, 2.514, 8.561, 4.184, 11.774, -8.232],' + + ' ["c", 0, 0, 0.86, 16.059, -12.424, 14.533], ["c", 0.008, 2.859, 0.615, 5.364, -0.076, 8.224],' + + ' ["c", 8.679, 3.146, 15.376, 14.389, 17.897, 18.168], ["l", 2.497, -2.151], ["l", 1.206, 1.839],' + + ' ["l", -3.889, 3.458], ["C", 46.286, 48.503, 31.036, 32.225, 22.72, 35.81], ["c", -1.307, 2.851,' + + ' -3.56, 6.891, -7.481, 8.848], ["c", -4.689, 2.336, -9.084, -0.802, -11.277, -2.868], ["l",' + + ' -1.948, 3.104], ["l", -1.628, -1.333], ["l", 3.138, -4.689], ["c", 0.025, 0, 9, 1.932, 9, 1.932], ' + + '["c", 0.877, -9.979, 2.893, -12.905, 4.942, -15.621], ["C", 17.878, 21.775, 18.713, 17.397, 18.511, ' + '13.99], ["z", null]]}'; - var PATH_DATALESS_JSON = '{"objects":[{"type":"path","originX":"left","originY":"top","left":100,"top":100,"width":200,"height":200,"fill":"rgb(0,0,0)",'+ - '"stroke":null,"strokeWidth":1,"strokeDashArray":null,"strokeLineCap":"butt","strokeLineJoin":"miter","strokeMiterLimit":10,'+ - '"scaleX":1,"scaleY":1,"angle":0,"flipX":false,"flipY":false,"opacity":1,'+ + var PATH_DATALESS_JSON = '{"objects":[{"type":"path","originX":"left","originY":"top","left":100,"top":100,"width":200,"height":200,"fill":"rgb(0,0,0)",' + + '"stroke":null,"strokeWidth":1,"strokeDashArray":null,"strokeLineCap":"butt","strokeLineJoin":"miter","strokeMiterLimit":10,' + + '"scaleX":1,"scaleY":1,"angle":0,"flipX":false,"flipY":false,"opacity":1,' + '"shadow":null,"visible":true,"clipTo":null,"backgroundColor":"","fillRule":"nonzero","globalCompositeOperation":"source-over","transformMatrix":null,"skewX":0,"skewY":0,"path":"http://example.com/","pathOffset":{"x":200,"y":200}}],"background":""}'; - var RECT_JSON = '{"objects":[{"type":"rect","originX":"left","originY":"top","left":0,"top":0,"width":10,"height":10,"fill":"rgb(0,0,0)",'+ - '"stroke":null,"strokeWidth":1,"strokeDashArray":null,"strokeLineCap":"butt","strokeLineJoin":"miter","strokeMiterLimit":10,"scaleX":1,"scaleY":1,"angle":0,"flipX":false,"flipY":false,"opacity":1,'+ - '"shadow":null,'+ + var RECT_JSON = '{"objects":[{"type":"rect","originX":"left","originY":"top","left":0,"top":0,"width":10,"height":10,"fill":"rgb(0,0,0)",' + + '"stroke":null,"strokeWidth":1,"strokeDashArray":null,"strokeLineCap":"butt","strokeLineJoin":"miter","strokeMiterLimit":10,"scaleX":1,"scaleY":1,"angle":0,"flipX":false,"flipY":false,"opacity":1,' + + '"shadow":null,' + '"visible":true,"clipTo":null,"backgroundColor":"","fillRule":"nonzero","globalCompositeOperation":"source-over","transformMatrix":null,"skewX":0,"skewY":0,"rx":0,"ry":0}],"background":"#ff5555","overlay":"rgba(0,0,0,0.2)"}'; function _createImageElement() { @@ -54,7 +54,7 @@ function getAbsolutePath(path) { var isAbsolute = /^https?:/.test(path); - if (isAbsolute) return path; + if (isAbsolute) { return path }; var imgEl = _createImageElement(); imgEl.src = path; var src = imgEl.src; @@ -423,7 +423,7 @@ canvas.add(rect1); canvas.add(rect2); canvas.add(rect3); - var group = new fabric.Group([ rect1, rect2 ]); + var group = new fabric.Group([rect1, rect2]); canvas.setActiveGroup(group); target = canvas.findTarget({ clientX: 5, clientY: 5 @@ -454,7 +454,7 @@ canvas.preserveObjectStacking = true; canvas.add(rect1); canvas.add(rect2); - var group = new fabric.Group([ rect1, rect2 ]); + var group = new fabric.Group([rect1, rect2]); canvas.setActiveGroup(group); target = canvas.findTarget({ clientX: 8, clientY: 8 @@ -478,7 +478,7 @@ canvas.add(rect1, rect2, rect3, rect4); - var group = new fabric.Group([ rect3, rect4 ]); + var group = new fabric.Group([rect3, rect4]); canvas.setActiveGroup(group); equal(canvas._objects[0], rect1, 'rect1 should be last'); equal(canvas._objects[1], rect2, 'rect2 should be second'); @@ -498,7 +498,7 @@ canvas.add(rect1, rect2, rect3, rect4); - var group = new fabric.Group([ rect1, rect2 ]); + var group = new fabric.Group([rect1, rect2]); canvas.setActiveGroup(group); equal(canvas._objects[0], rect1, 'rect1 should be last'); equal(canvas._objects[1], rect2, 'rect2 should be second'); @@ -518,7 +518,7 @@ canvas.add(rect1, rect2, rect3, rect4); - var group = new fabric.Group([ rect1, rect2 ]); + var group = new fabric.Group([rect1, rect2]); canvas.setActiveGroup(group); equal(canvas._objects[0], rect1, 'rect1 should be last'); equal(canvas._objects[1], rect2, 'rect2 should be second'); @@ -537,7 +537,7 @@ canvas.add(rect1, rect2, rect3, rect4); - var group = new fabric.Group([ rect3, rect4 ]); + var group = new fabric.Group([rect3, rect4]); canvas.setActiveGroup(group); equal(canvas._objects[0], rect1, 'rect1 should be last'); equal(canvas._objects[1], rect2, 'rect2 should be second'); @@ -551,7 +551,7 @@ test('toDataURL', function() { ok(typeof canvas.toDataURL == 'function'); if (!fabric.Canvas.supports('toDataURL')) { - window.alert("toDataURL is not supported by this environment. Some of the tests can not be run."); + window.alert('toDataURL is not supported by this environment. Some of the tests can not be run.'); } else { var dataURL = canvas.toDataURL(); @@ -646,7 +646,7 @@ canvas.add(rect, circle); var json = JSON.stringify(canvas); - canvas.setActiveGroup(new fabric.Group([ rect, circle ])).renderAll(); + canvas.setActiveGroup(new fabric.Group([rect, circle])).renderAll(); var jsonWithActiveGroup = JSON.stringify(canvas); equal(json, jsonWithActiveGroup); @@ -1245,7 +1245,7 @@ canvas.add(rect, circle); var svg = canvas.toSVG(); - canvas.setActiveGroup(new fabric.Group([ rect, circle ])).renderAll(); + canvas.setActiveGroup(new fabric.Group([rect, circle])).renderAll(); var svgWithActiveGroup = canvas.toSVG(); equal(svg, svgWithActiveGroup); @@ -1261,7 +1261,7 @@ equal(canvas._objects[1], rect2); equal(canvas._objects[2], circle1); equal(canvas._objects[3], circle2); - var aGroup = new fabric.Group([ rect2, circle2, rect1, circle1 ]); + var aGroup = new fabric.Group([rect2, circle2, rect1, circle1]); // before rendering objects are ordered in insert order equal(aGroup._objects[0], rect2); equal(aGroup._objects[1], circle2); @@ -1397,7 +1397,7 @@ }); }); - test('getSetWidth', function() { + test('getSetWidth', function() { ok(typeof canvas.getWidth == 'function'); equal(canvas.getWidth(), 600); equal(canvas.setWidth(444), canvas, 'should be chainable'); @@ -1518,7 +1518,7 @@ eventStub = { clientX: canvasOffset.left + rect.left - 2, - clientY: canvasOffset.top + rect.top + rect.height/2, + clientY: canvasOffset.top + rect.top + rect.height / 2, target: rect, shiftKey: true }; @@ -1610,7 +1610,7 @@ // ok(/pug\.jpg$/.test(canvas.backgroundImage.src)); // deepEqual(canvas.toJSON(), { - // "objects": [ ], + // "objects": [], // "background": "rgba(0, 0, 0, 0)", // "backgroundImage": (fabric.document.location.protocol + // '//' + @@ -1636,7 +1636,7 @@ try { canvas.renderAll(); } - catch(err) { + catch (err) { error = err; } delete canvas.clipTo; diff --git a/test/unit/canvas_static.js b/test/unit/canvas_static.js index a2d25174..49a489ef 100644 --- a/test/unit/canvas_static.js +++ b/test/unit/canvas_static.js @@ -2,47 +2,47 @@ // var emptyImageCanvasData = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t+KAAAH7ElEQVR4nO3VMQ0AMAzAsPInvYHoMS2yEeTLHADge/M6AADYM3QACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIuMjH4b7osLFBAAAAAElFTkSuQmCC"; - var CANVAS_SVG = '\n\n'+ + var CANVAS_SVG = '\n\n' + '\nCreated with Fabric.js ' + fabric.version + '\n\n'; - var CANVAS_SVG_VIEWBOX = '\n\n'+ + var CANVAS_SVG_VIEWBOX = '\n\n' + '\nCreated with Fabric.js ' + fabric.version + '\n\n'; - var PATH_JSON = '{"objects": [{"type": "path", "originX": "left", "originY": "top", "left": 268, "top": 266, "width": 51, "height": 49,'+ - ' "fill": "rgb(0,0,0)", "stroke": null, "strokeWidth": 1, "scaleX": 1, "scaleY": 1, '+ - '"angle": 0, "flipX": false, "flipY": false, "opacity": 1, "path": [["M", 18.511, 13.99],'+ - ' ["c", 0, 0, -2.269, -4.487, -12.643, 4.411], ["c", 0, 0, 4.824, -14.161, 19.222, -9.059],'+ - ' ["l", 0.379, -2.1], ["c", -0.759, -0.405, -1.375, -1.139, -1.645, -2.117], ["c", -0.531, '+ - '-1.864, 0.371, -3.854, 1.999, -4.453], ["c", 0.312, -0.118, 0.633, -0.169, 0.953, -0.169], '+ - '["c", 1.299, 0, 2.514, 0.953, 2.936, 2.455], ["c", 0.522, 1.864, -0.372, 3.854, -1.999, '+ - '4.453], ["c", -0.229, 0.084, -0.464, 0.127, -0.692, 0.152], ["l", -0.379, 2.37], ["c", '+ - '1.146, 0.625, 2.024, 1.569, 2.674, 2.758], ["c", 3.213, 2.514, 8.561, 4.184, 11.774, -8.232],'+ - ' ["c", 0, 0, 0.86, 16.059, -12.424, 14.533], ["c", 0.008, 2.859, 0.615, 5.364, -0.076, 8.224],'+ - ' ["c", 8.679, 3.146, 15.376, 14.389, 17.897, 18.168], ["l", 2.497, -2.151], ["l", 1.206, 1.839],'+ - ' ["l", -3.889, 3.458], ["C", 46.286, 48.503, 31.036, 32.225, 22.72, 35.81], ["c", -1.307, 2.851,'+ - ' -3.56, 6.891, -7.481, 8.848], ["c", -4.689, 2.336, -9.084, -0.802, -11.277, -2.868], ["l",'+ - ' -1.948, 3.104], ["l", -1.628, -1.333], ["l", 3.138, -4.689], ["c", 0.025, 0, 9, 1.932, 9, 1.932], '+ - '["c", 0.877, -9.979, 2.893, -12.905, 4.942, -15.621], ["C", 17.878, 21.775, 18.713, 17.397, 18.511, '+ + var PATH_JSON = '{"objects": [{"type": "path", "originX": "left", "originY": "top", "left": 268, "top": 266, "width": 51, "height": 49,' + + ' "fill": "rgb(0,0,0)", "stroke": null, "strokeWidth": 1, "scaleX": 1, "scaleY": 1, ' + + '"angle": 0, "flipX": false, "flipY": false, "opacity": 1, "path": [["M", 18.511, 13.99],' + + ' ["c", 0, 0, -2.269, -4.487, -12.643, 4.411], ["c", 0, 0, 4.824, -14.161, 19.222, -9.059],' + + ' ["l", 0.379, -2.1], ["c", -0.759, -0.405, -1.375, -1.139, -1.645, -2.117], ["c", -0.531, ' + + '-1.864, 0.371, -3.854, 1.999, -4.453], ["c", 0.312, -0.118, 0.633, -0.169, 0.953, -0.169], ' + + '["c", 1.299, 0, 2.514, 0.953, 2.936, 2.455], ["c", 0.522, 1.864, -0.372, 3.854, -1.999, ' + + '4.453], ["c", -0.229, 0.084, -0.464, 0.127, -0.692, 0.152], ["l", -0.379, 2.37], ["c", ' + + '1.146, 0.625, 2.024, 1.569, 2.674, 2.758], ["c", 3.213, 2.514, 8.561, 4.184, 11.774, -8.232],' + + ' ["c", 0, 0, 0.86, 16.059, -12.424, 14.533], ["c", 0.008, 2.859, 0.615, 5.364, -0.076, 8.224],' + + ' ["c", 8.679, 3.146, 15.376, 14.389, 17.897, 18.168], ["l", 2.497, -2.151], ["l", 1.206, 1.839],' + + ' ["l", -3.889, 3.458], ["C", 46.286, 48.503, 31.036, 32.225, 22.72, 35.81], ["c", -1.307, 2.851,' + + ' -3.56, 6.891, -7.481, 8.848], ["c", -4.689, 2.336, -9.084, -0.802, -11.277, -2.868], ["l",' + + ' -1.948, 3.104], ["l", -1.628, -1.333], ["l", 3.138, -4.689], ["c", 0.025, 0, 9, 1.932, 9, 1.932], ' + + '["c", 0.877, -9.979, 2.893, -12.905, 4.942, -15.621], ["C", 17.878, 21.775, 18.713, 17.397, 18.511, ' + '13.99], ["z", null]]}], "background": "#ff5555", "overlay":"rgba(0,0,0,0.2)"}'; - var PATH_DATALESS_JSON = '{"objects":[{"type":"path","originX":"left","originY":"top","left":100,"top":100,"width":200,"height":200,"fill":"rgb(0,0,0)",'+ - '"stroke":null,"strokeWidth":1,"strokeDashArray":null,"strokeLineCap":"butt","strokeLineJoin":"miter","strokeMiterLimit":10,'+ - '"scaleX":1,"scaleY":1,"angle":0,"flipX":false,"flipY":false,"opacity":1,'+ + var PATH_DATALESS_JSON = '{"objects":[{"type":"path","originX":"left","originY":"top","left":100,"top":100,"width":200,"height":200,"fill":"rgb(0,0,0)",' + + '"stroke":null,"strokeWidth":1,"strokeDashArray":null,"strokeLineCap":"butt","strokeLineJoin":"miter","strokeMiterLimit":10,' + + '"scaleX":1,"scaleY":1,"angle":0,"flipX":false,"flipY":false,"opacity":1,' + '"shadow":null,"visible":true,"clipTo":null,"backgroundColor":"","fillRule":"nonzero","globalCompositeOperation":"source-over","transformMatrix":null,"skewX":0,"skewY":0,"path":"http://example.com/","pathOffset":{"x":200,"y":200}}],"background":""}'; - var RECT_JSON = '{"objects":[{"type":"rect","originX":"left","originY":"top","left":0,"top":0,"width":10,"height":10,"fill":"rgb(0,0,0)",'+ - '"stroke":null,"strokeWidth":1,"strokeDashArray":null,"strokeLineCap":"butt","strokeLineJoin":"miter","strokeMiterLimit":10,'+ - '"scaleX":1,"scaleY":1,"angle":0,"flipX":false,"flipY":false,"opacity":1,'+ + var RECT_JSON = '{"objects":[{"type":"rect","originX":"left","originY":"top","left":0,"top":0,"width":10,"height":10,"fill":"rgb(0,0,0)",' + + '"stroke":null,"strokeWidth":1,"strokeDashArray":null,"strokeLineCap":"butt","strokeLineJoin":"miter","strokeMiterLimit":10,' + + '"scaleX":1,"scaleY":1,"angle":0,"flipX":false,"flipY":false,"opacity":1,' + '"shadow":null,"visible":true,"clipTo":null,"backgroundColor":"","fillRule":"nonzero","globalCompositeOperation":"source-over","transformMatrix":null,"skewX":0,"skewY":0,"rx":0,"ry":0}],"background":"#ff5555","overlay":"rgba(0,0,0,0.2)"}'; - var RECT_JSON_WITH_PADDING = '{"objects":[{"type":"rect","originX":"left","originY":"top","left":0,"top":0,"width":10,"height":20,"fill":"rgb(0,0,0)",'+ - '"stroke":null,"strokeWidth":1,"strokeDashArray":null,"strokeLineCap":"butt","strokeLineJoin":"miter","strokeMiterLimit":10,'+ - '"scaleX":1,"scaleY":1,"angle":0,"flipX":false,"flipY":false,"opacity":1,'+ + var RECT_JSON_WITH_PADDING = '{"objects":[{"type":"rect","originX":"left","originY":"top","left":0,"top":0,"width":10,"height":20,"fill":"rgb(0,0,0)",' + + '"stroke":null,"strokeWidth":1,"strokeDashArray":null,"strokeLineCap":"butt","strokeLineJoin":"miter","strokeMiterLimit":10,' + + '"scaleX":1,"scaleY":1,"angle":0,"flipX":false,"flipY":false,"opacity":1,' + '"shadow":null,"visible":true,"clipTo":null,"backgroundColor":"","fillRule":"nonzero","globalCompositeOperation":"source-over","transformMatrix":null,"skewX":0,"skewY":0,"padding":123,"foo":"bar","rx":0,"ry":0}],"background":""}'; function getAbsolutePath(path) { var isAbsolute = /^https?:/.test(path); - if (isAbsolute) return path; + if (isAbsolute) { return path }; var imgEl = _createImageElement(); imgEl.src = path; var src = imgEl.src; @@ -113,7 +113,7 @@ function setSrc(img, src, callback) { if (fabric.isLikelyNode) { require('fs').readFile(src, function(err, imgData) { - if (err) throw err; + if (err) { throw err }; img.src = imgData; img._src = src; callback && callback(); @@ -436,10 +436,10 @@ test('toDataURL', function() { ok(typeof canvas.toDataURL == 'function'); if (!fabric.Canvas.supports('toDataURL')) { - window.alert("toDataURL is not supported by this environment. Some of the tests can not be run."); + window.alert('toDataURL is not supported by this environment. Some of the tests can not be run.'); } else { - var rect = new fabric.Rect({width: 100, height: 100, fill:'red', top: 0, left: 0}); + var rect = new fabric.Rect({width: 100, height: 100, fill: 'red', top: 0, left: 0}); canvas.add(rect); var dataURL = canvas.toDataURL(); // don't compare actual data url, as it is often browser-dependent @@ -453,7 +453,7 @@ test('toDataURL jpg', function() { if (!fabric.Canvas.supports('toDataURL')) { - window.alert("toDataURL is not supported by this environment. Some of the tests can not be run."); + window.alert('toDataURL is not supported by this environment. Some of the tests can not be run.'); } else { try { @@ -461,7 +461,7 @@ equal(dataURL.substring(0, 22), 'data:image/jpeg;base64'); } // node-canvas does not support jpeg data urls - catch(err) { + catch (err) { ok(true); } } @@ -929,7 +929,7 @@ test('loadFromJSON custom properties', function() { var rect = new fabric.Rect({ width: 10, height: 20 }); rect.padding = 123; - rect.foo = "bar"; + rect.foo = 'bar'; canvas.add(rect); diff --git a/test/unit/circle.js b/test/unit/circle.js index 5ed483be..fd63bedf 100644 --- a/test/unit/circle.js +++ b/test/unit/circle.js @@ -176,7 +176,7 @@ try { fabric.Circle.fromElement(elFaultyCircle); } - catch(err) { + catch (err) { error = err; } ok(error, 'negative attribute should throw'); @@ -187,7 +187,7 @@ try { fabric.Circle.fromElement(elFaultyCircle); } - catch(err) { + catch (err) { error = err; } diff --git a/test/unit/gradient.js b/test/unit/gradient.js index 6acdb2e4..81880051 100644 --- a/test/unit/gradient.js +++ b/test/unit/gradient.js @@ -414,7 +414,7 @@ equal(gradient.colorStops[0].color, 'rgb(0,0,0)'); equal(gradient.colorStops[1].color, 'rgb(255,255,255)'); - deepEqual(gradient.gradientTransform, [ 3.321, -0.6998, 0.4077, 1.9347, -440.9168, -408.0598 ]); + deepEqual(gradient.gradientTransform, [3.321, -0.6998, 0.4077, 1.9347, -440.9168, -408.0598]); }); test('fromElement linearGradient colorStop attributes/styles', function() { diff --git a/test/unit/group.js b/test/unit/group.js index d05a2236..a9266709 100644 --- a/test/unit/group.js +++ b/test/unit/group.js @@ -13,14 +13,14 @@ var rect1 = new fabric.Rect({ top: 100, left: 100, width: 30, height: 10, strokeWidth: 0 }), rect2 = new fabric.Rect({ top: 120, left: 50, width: 10, height: 40, strokeWidth: 0 }); - return new fabric.Group([ rect1, rect2 ], {strokeWidth: 0}); + return new fabric.Group([rect1, rect2], {strokeWidth: 0}); } function makeGroupWith2ObjectsWithOpacity() { var rect1 = new fabric.Rect({ top: 100, left: 100, width: 30, height: 10, strokeWidth: 0, opacity: 0.5 }), rect2 = new fabric.Rect({ top: 120, left: 50, width: 10, height: 40, strokeWidth: 0, opacity: 0.8 }); - return new fabric.Group([ rect1, rect2 ], {strokeWidth: 0}); + return new fabric.Group([rect1, rect2], {strokeWidth: 0}); } function makeGroupWith4Objects() { @@ -29,7 +29,7 @@ rect3 = new fabric.Rect({ top: 40, left: 0, width: 20, height: 40 }), rect4 = new fabric.Rect({ top: 75, left: 75, width: 40, height: 40 }); - return new fabric.Group([ rect1, rect2, rect3, rect4 ]); + return new fabric.Group([rect1, rect2, rect3, rect4]); } QUnit.module('fabric.Group', { @@ -57,19 +57,19 @@ var rect1 = new fabric.Rect(), rect2 = new fabric.Rect(); - var group = new fabric.Group([ rect1, rect2 ]); + var group = new fabric.Group([rect1, rect2]); ok(typeof group.getObjects == 'function'); ok(Object.prototype.toString.call(group.getObjects()) == '[object Array]', 'should be an array'); equal(group.getObjects().length, 2, 'should have 2 items'); - deepEqual(group.getObjects(), [ rect1, rect2 ], 'should return deepEqual objects as those passed to constructor'); + deepEqual(group.getObjects(), [rect1, rect2], 'should return deepEqual objects as those passed to constructor'); }); test('getObjects with type', function() { var rect = new fabric.Rect({ width: 10, height: 20 }), circle = new fabric.Circle({ radius: 30 }); - var group = new fabric.Group([ rect, circle ]); + var group = new fabric.Group([rect, circle]); equal(group.size(), 2, 'should have length=2 initially'); @@ -85,11 +85,11 @@ ok(typeof group.add == 'function'); equal(group.add(rect1), group, 'should be chainable'); - strictEqual(group.item(group.size()-1), rect1, 'last object should be newly added one'); + strictEqual(group.item(group.size() - 1), rect1, 'last object should be newly added one'); equal(group.getObjects().length, 3, 'there should be 3 objects'); group.add(rect2, rect3); - strictEqual(group.item(group.size()-1), rect3, 'last object should be last added one'); + strictEqual(group.item(group.size() - 1), rect3, 'last object should be last added one'); equal(group.size(), 5, 'there should be 5 objects'); }); @@ -97,7 +97,7 @@ var rect1 = new fabric.Rect(), rect2 = new fabric.Rect(), rect3 = new fabric.Rect(), - group = new fabric.Group([ rect1, rect2, rect3 ]); + group = new fabric.Group([rect1, rect2, rect3]); ok(typeof group.remove == 'function'); equal(group.remove(rect2), group, 'should be chainable'); @@ -146,7 +146,7 @@ var rect1 = new fabric.Rect(), rect2 = new fabric.Rect(), notIncludedRect = new fabric.Rect(), - group = new fabric.Group([ rect1, rect2 ]); + group = new fabric.Group([rect1, rect2]); ok(typeof group.contains == 'function'); @@ -203,22 +203,22 @@ ok(group.getObjects()[0] !== clone.objects[0], 'should produce different objects in array'); }); -test('toObject without default values', function() { - var group = makeGroupWith2Objects(); - group.includeDefaultValues = false; - var clone = group.toObject(); + test('toObject without default values', function() { + var group = makeGroupWith2Objects(); + group.includeDefaultValues = false; + var clone = group.toObject(); - var expectedObject = { - 'type': 'group', - 'left': 50, - 'top': 100, - 'width': 80, - 'height': 60, - 'objects': clone.objects - }; + var expectedObject = { + 'type': 'group', + 'left': 50, + 'top': 100, + 'width': 80, + 'height': 60, + 'objects': clone.objects + }; - deepEqual(clone, expectedObject); -}); + deepEqual(clone, expectedObject); + }); test('render', function() { var group = makeGroupWith2Objects(); @@ -321,7 +321,7 @@ test('toObject without default values', function() { ok(typeof group.setObjectsCoords == 'function'); - var invokedObjects = [ ]; + var invokedObjects = []; group.forEachObject(function(groupObject){ groupObject.setCoords = function() { invokedObjects.push(this); @@ -363,7 +363,7 @@ test('toObject without default values', function() { ok(typeof group.forEachObject == 'function'); equal(group.forEachObject(function(){}), group, 'should be chainable'); - var iteratedObjects = [ ]; + var iteratedObjects = []; group.forEachObject(function(groupObject) { iteratedObjects.push(groupObject); }); @@ -442,13 +442,13 @@ test('toObject without default values', function() { test('z-index methods with group objects', function() { var textBg = new fabric.Rect({ - fill : '#abc', - width : 100, - height : 100 + fill: '#abc', + width: 100, + height: 100 }); var text = new fabric.Text('text'); - var group = new fabric.Group([ textBg, text ]); + var group = new fabric.Group([textBg, text]); canvas.add(group); @@ -517,7 +517,7 @@ test('toObject without default values', function() { test('test group transformMatrix', function() { var rect1 = new fabric.Rect({ top: 1, left: 1, width: 2, height: 2, strokeWidth: 0, fill: 'red', opacity: 1}), rect2 = new fabric.Rect({ top: 4, left: 4, width: 2, height: 2, strokeWidth: 0, fill: 'red', opacity: 1}), - group = new fabric.Group([ rect1, rect2 ], {opacity: 1, fill: 'blue', strokeWidth: 0}), + group = new fabric.Group([rect1, rect2], {opacity: 1, fill: 'blue', strokeWidth: 0}), isTransparent = fabric.util.isTransparent, ctx = canvas.contextContainer; canvas.add(group); diff --git a/test/unit/image.js b/test/unit/image.js index b4486b76..88d284df 100644 --- a/test/unit/image.js +++ b/test/unit/image.js @@ -2,7 +2,7 @@ function getAbsolutePath(path) { var isAbsolute = /^https?:/.test(path); - if (isAbsolute) return path; + if (isAbsolute) { return path }; var imgEl = _createImageElement(); imgEl.src = path; var src = imgEl.src; @@ -91,7 +91,7 @@ function setSrc(img, src, callback) { if (fabric.isLikelyNode) { require('fs').readFile(src, function(err, imgData) { - if (err) throw err; + if (err) { throw err }; img.src = imgData; img._src = src; callback && callback(); @@ -330,14 +330,14 @@ return element; } - var IMAGE_DATA_URL = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAARCAYAAADtyJ2fAAAACXBIWXMAAAsSAAALEgHS3X78AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAVBJREFUeNqMU7tOBDEMtENuy614/QE/gZBOuvJK+Et6CiQ6JP6ExxWI7bhL1vgVExYKLPmsTTIzjieHd+MZZSBIAJwEyJU0EWaum+lNljRux3O6nl70Gx/GUwUeyYcDJWZNhMK1aEXYe95Mz4iP44kDTRUZSWSq1YEHri0/HZxXfGSFBN+qDEJTrNI+QXRBviZ7eWCQgjsg+IHiHYB30MhqUxwcmH1Arc2kFDwkBldeFGJLPqs/AbbF2dWgUym6Z2Tb6RVzYxG1wUnmaNcOonZiU0++l6C7FzoQY42g3+8jz+GZ+dWMr1rRH0OjAFhPO+VJFx/vWDqPmk8H97CGBUYUiqAGW0PVe1+aX8j2Ll0tgHtvLx6AK9Tu1ZTFTQ0ojChqGD4qkOzeAuzVfgzsaTym1ClS+IdwtQCFooQMBTumNun1H6Bfcc9/MUn4R3wJMAAZH6MmA4ht4gAAAABJRU5ErkJggg=="; + var IMAGE_DATA_URL = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAARCAYAAADtyJ2fAAAACXBIWXMAAAsSAAALEgHS3X78AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAVBJREFUeNqMU7tOBDEMtENuy614/QE/gZBOuvJK+Et6CiQ6JP6ExxWI7bhL1vgVExYKLPmsTTIzjieHd+MZZSBIAJwEyJU0EWaum+lNljRux3O6nl70Gx/GUwUeyYcDJWZNhMK1aEXYe95Mz4iP44kDTRUZSWSq1YEHri0/HZxXfGSFBN+qDEJTrNI+QXRBviZ7eWCQgjsg+IHiHYB30MhqUxwcmH1Arc2kFDwkBldeFGJLPqs/AbbF2dWgUym6Z2Tb6RVzYxG1wUnmaNcOonZiU0++l6C7FzoQY42g3+8jz+GZ+dWMr1rRH0OjAFhPO+VJFx/vWDqPmk8H97CGBUYUiqAGW0PVe1+aX8j2Ll0tgHtvLx6AK9Tu1ZTFTQ0ojChqGD4qkOzeAuzVfgzsaTym1ClS+IdwtQCFooQMBTumNun1H6Bfcc9/MUn4R3wJMAAZH6MmA4ht4gAAAABJRU5ErkJggg=='; ok(typeof fabric.Image.fromElement == 'function', 'fromElement should exist'); var imageEl = makeImageElement({ - width: "14", - height: "17", - "xlink:href": IMAGE_DATA_URL + width: '14', + height: '17', + 'xlink:href': IMAGE_DATA_URL }); fabric.Image.fromElement(imageEl, function(imgObject) { diff --git a/test/unit/image_filters.js b/test/unit/image_filters.js index b49c2286..80b49024 100644 --- a/test/unit/image_filters.js +++ b/test/unit/image_filters.js @@ -2,7 +2,7 @@ function getAbsolutePath(path) { var isAbsolute = /^https?:/.test(path); - if (isAbsolute) return path; + if (isAbsolute) { return path }; var imgEl = _createImageElement(); imgEl.src = path; var src = imgEl.src; @@ -68,7 +68,7 @@ function setSrc(img, src, callback) { if (fabric.isLikelyNode) { require('fs').readFile(src, function(err, imgData) { - if (err) throw err; + if (err) { throw err }; img.src = imgData; callback && callback(); }); @@ -687,7 +687,7 @@ if (maskObj.height === 0) { maskObj.height = IMG_HEIGHT; } - equal(JSON.stringify(object), '{"type":"Mask","mask":'+JSON.stringify(maskObj)+',"channel":0}'); + equal(JSON.stringify(object), '{"type":"Mask","mask":' + JSON.stringify(maskObj) + ',"channel":0}'); start(); }); @@ -708,7 +708,7 @@ if (maskObj.height === 0) { maskObj.height = IMG_HEIGHT; } - equal(JSON.stringify(json), '{"type":"Mask","mask":'+JSON.stringify(maskObj)+',"channel":0}'); + equal(JSON.stringify(json), '{"type":"Mask","mask":' + JSON.stringify(maskObj) + ',"channel":0}'); start(); }); diff --git a/test/unit/itext.js b/test/unit/itext.js index 4633c3bb..2c8a9e8a 100644 --- a/test/unit/itext.js +++ b/test/unit/itext.js @@ -754,8 +754,8 @@ parser = new DOMParser(); } var svgString = canvas.toSVG(), - doc = parser.parseFromString(svgString, "image/svg+xml"), + doc = parser.parseFromString(svgString, 'image/svg+xml'), style = doc.getElementsByTagName('style')[0].firstChild.data; - equal(style, '\n\t\t@font-face {\n\t\t\tfont-family: \'Plaster\';\n\t\t\tsrc: url(\'path-to-plaster-font-file\');\n\t\t}\n\t\t@font-face {\n\t\t\tfont-family: \'Engagement\';\n\t\t\tsrc: url(\'path-to-engagement-font-file\');\n\t\t}\n'); + equal(style, '\n\t\t@font-face {\n\t\t\tfont-family: \'Plaster\';\n\t\t\tsrc: url(\'path-to-plaster-font-file\');\n\t\t}\n\t\t@font-face {\n\t\t\tfont-family: \'Engagement\';\n\t\t\tsrc: url(\'path-to-engagement-font-file\');\n\t\t}\n'); }); })(); diff --git a/test/unit/line.js b/test/unit/line.js index ff5e5e5e..66378ad7 100644 --- a/test/unit/line.js +++ b/test/unit/line.js @@ -137,7 +137,7 @@ }); test('changing x/y coords should update width/height', function() { - var line = new fabric.Line([ 50, 50, 100, 100]); + var line = new fabric.Line([50, 50, 100, 100]); equal(50, line.width); @@ -196,7 +196,7 @@ }, { description: 'include offsets for left-top origin', givenLineArgs: { - points: [0+33, 0+44, 11+33, 22+44], + points: [0 + 33, 0 + 44, 11 + 33, 22 + 44], options: { originX: 'left', originY: 'top', @@ -222,7 +222,7 @@ }, { description: 'include offsets for center-center origin', givenLineArgs: { - points: [0+9.87, 0-4.32, 12.3+9.87, 34.5-4.32], + points: [0 + 9.87, 0 - 4.32, 12.3 + 9.87, 34.5 - 4.32], options: { originX: 'center', originY: 'center', @@ -248,7 +248,7 @@ }, { description: 'include offsets for right-bottom origin', givenLineArgs: { - points: [0-3.14, 0-1.41, 55-3.14, 18-1.41], + points: [0 - 3.14, 0 - 1.41, 55 - 3.14, 18 - 1.41], options: { originX: 'right', originY: 'bottom', @@ -332,7 +332,7 @@ }, { description: 'arent changed by strokeWidth for center-center origin', givenLineArgs: { - points: [0+31, 15+26, 28+31, 0+26], + points: [0 + 31, 15 + 26, 28 + 31, 0 + 26], options: { originX: 'center', originY: 'center', @@ -455,13 +455,13 @@ }, { description: 'includes positive offset for left origin', givenOrigin: 'left', - givenPoints: [0+20, 0, 1+20, 0], - expectedLeft: 0+20, + givenPoints: [0 + 20, 0, 1 + 20, 0], + expectedLeft: 0 + 20, }, { description: 'includes negative offset for left origin', givenOrigin: 'left', - givenPoints: [0-11, 0, 1-11, 0], - expectedLeft: 0-11, + givenPoints: [0 - 11, 0, 1 - 11, 0], + expectedLeft: 0 - 11, }, { description: 'is half of x1 for center origin and x1 > x2', givenOrigin: 'center', @@ -475,12 +475,12 @@ }, { description: 'includes positive offset for center origin', givenOrigin: 'center', - givenPoints: [0+39, 0, 7+39, 0], + givenPoints: [0 + 39, 0, 7 + 39, 0], expectedLeft: (0.5 * 7) + 39, }, { description: 'includes negative offset for center origin', givenOrigin: 'center', - givenPoints: [4-13, 0, 0-13, 0], + givenPoints: [4 - 13, 0, 0 - 13, 0], expectedLeft: (0.5 * 4) - 13, }, { description: 'is x1 for right origin and x1 > x2', @@ -495,12 +495,12 @@ }, { description: 'includes positive offset for right origin', givenOrigin: 'right', - givenPoints: [0+47, 0, 6+47, 0], + givenPoints: [0 + 47, 0, 6 + 47, 0], expectedLeft: 6 + 47, }, { description: 'includes negative offset for right origin', givenOrigin: 'right', - givenPoints: [9-17, 0, 0-17, 0], + givenPoints: [9 - 17, 0, 0 - 17, 0], expectedLeft: 9 - 17, }, ]; @@ -529,13 +529,13 @@ }, { description: 'includes positive offset for top origin', givenOrigin: 'top', - givenPoints: [0, 0+20, 0, 1+20], - expectedTop: 0+20, + givenPoints: [0, 0 + 20, 0, 1 + 20], + expectedTop: 0 + 20, }, { description: 'includes negative offset for top origin', givenOrigin: 'top', - givenPoints: [0, 0-11, 0, 1-11], - expectedTop: 0-11, + givenPoints: [0, 0 - 11, 0, 1 - 11], + expectedTop: 0 - 11, }, { description: 'is half of y1 for center origin and y1 > y2', givenOrigin: 'center', @@ -549,12 +549,12 @@ }, { description: 'includes positive offset for center origin', givenOrigin: 'center', - givenPoints: [0, 0+39, 0, 7+39], + givenPoints: [0, 0 + 39, 0, 7 + 39], expectedTop: (0.5 * 7) + 39, }, { description: 'includes negative offset for center origin', givenOrigin: 'center', - givenPoints: [0, 4-13, 0, 0-13], + givenPoints: [0, 4 - 13, 0, 0 - 13], expectedTop: (0.5 * 4) - 13, }, { description: 'is y1 for bottom origin and y1 > y2', @@ -569,12 +569,12 @@ }, { description: 'includes positive offset for bottom origin', givenOrigin: 'bottom', - givenPoints: [0, 0+47, 0, 6+47], + givenPoints: [0, 0 + 47, 0, 6 + 47], expectedTop: 6 + 47, }, { description: 'includes negative offset for bottom origin', givenOrigin: 'bottom', - givenPoints: [0, 9-17, 0, 0-17], + givenPoints: [0, 9 - 17, 0, 0 - 17], expectedTop: 9 - 17, }, ]; diff --git a/test/unit/object.js b/test/unit/object.js index 6cfc4ed2..4fff8a02 100644 --- a/test/unit/object.js +++ b/test/unit/object.js @@ -4,7 +4,9 @@ function getAbsolutePath(path) { var isAbsolute = /^https?:/.test(path); - if (isAbsolute) return path; + if (isAbsolute) { + return path; + } var imgEl = _createImageElement(); imgEl.src = path; var src = imgEl.src; @@ -12,8 +14,8 @@ return src; } - var IMG_SRC = fabric.isLikelyNode ? (__dirname + '/../fixtures/test_image.gif') : getAbsolutePath('../fixtures/test_image.gif'), - IMG_WIDTH = 276, + var IMG_SRC = fabric.isLikelyNode ? (__dirname + '/../fixtures/test_image.gif') : getAbsolutePath('../fixtures/test_image.gif'), + IMG_WIDTH = 276, IMG_HEIGHT = 110; function _createImageElement() { @@ -32,7 +34,9 @@ function setSrc(img, src, callback) { if (fabric.isLikelyNode) { require('fs').readFile(src, function(err, imgData) { - if (err) throw err; + if (err) { + throw err; + }; img.src = imgData; callback && callback(); }); @@ -167,16 +171,16 @@ }); test('toJSON', function() { - var emptyObjectJSON = '{"type":"object","originX":"left","originY":"top","left":0,"top":0,"width":0,"height":0,"fill":"rgb(0,0,0)",'+ - '"stroke":null,"strokeWidth":1,"strokeDashArray":null,"strokeLineCap":"butt","strokeLineJoin":"miter","strokeMiterLimit":10,'+ - '"scaleX":1,"scaleY":1,"angle":0,"flipX":false,"flipY":false,"opacity":1,'+ - '"shadow":null,"visible":true,"clipTo":null,"backgroundColor":"","fillRule":"nonzero","globalCompositeOperation":"source-over",'+ + var emptyObjectJSON = '{"type":"object","originX":"left","originY":"top","left":0,"top":0,"width":0,"height":0,"fill":"rgb(0,0,0)",' + + '"stroke":null,"strokeWidth":1,"strokeDashArray":null,"strokeLineCap":"butt","strokeLineJoin":"miter","strokeMiterLimit":10,' + + '"scaleX":1,"scaleY":1,"angle":0,"flipX":false,"flipY":false,"opacity":1,' + + '"shadow":null,"visible":true,"clipTo":null,"backgroundColor":"","fillRule":"nonzero","globalCompositeOperation":"source-over",' + '"transformMatrix":null,"skewX":0,"skewY":0}'; - var augmentedJSON = '{"type":"object","originX":"left","originY":"top","left":0,"top":0,"width":122,"height":0,"fill":"rgb(0,0,0)",'+ - '"stroke":null,"strokeWidth":1,"strokeDashArray":[5,2],"strokeLineCap":"round","strokeLineJoin":"bevil","strokeMiterLimit":5,'+ - '"scaleX":1.3,"scaleY":1,"angle":0,"flipX":false,"flipY":true,"opacity":0.88,'+ - '"shadow":null,"visible":true,"clipTo":null,"backgroundColor":"","fillRule":"nonzero","globalCompositeOperation":"source-over",'+ + var augmentedJSON = '{"type":"object","originX":"left","originY":"top","left":0,"top":0,"width":122,"height":0,"fill":"rgb(0,0,0)",' + + '"stroke":null,"strokeWidth":1,"strokeDashArray":[5,2],"strokeLineCap":"round","strokeLineJoin":"bevil","strokeMiterLimit":5,' + + '"scaleX":1.3,"scaleY":1,"angle":0,"flipX":false,"flipY":true,"opacity":0.88,' + + '"shadow":null,"visible":true,"clipTo":null,"backgroundColor":"","fillRule":"nonzero","globalCompositeOperation":"source-over",' + '"transformMatrix":null,"skewX":0,"skewY":0}'; var cObj = new fabric.Object(); @@ -308,7 +312,7 @@ top: 20, width: 30, height: 40, - strokeDashArray: [ 5, 2 ], + strokeDashArray: [5, 2], strokeLineCap: 'round', strokeLineJoin: 'bevil', strokeMiterLimit: 5, @@ -394,7 +398,7 @@ equal(boundingRect.height, 334); }); -test('getBoundingRectWithStroke', function() { + test('getBoundingRectWithStroke', function() { var cObj = new fabric.Object(), boundingRect; ok(typeof cObj.getBoundingRect == 'function'); @@ -472,7 +476,7 @@ test('getBoundingRectWithStroke', function() { ok(typeof cObj.scaleToWidth == 'function'); equal(cObj.scaleToWidth(100), cObj, 'chainable'); equal(cObj.getWidth(), 100); - equal(cObj.get('scaleX'), 100/560); + equal(cObj.get('scaleX'), 100 / 560); }); test('scaleToHeight', function() { @@ -480,7 +484,7 @@ test('getBoundingRectWithStroke', function() { ok(typeof cObj.scaleToHeight == 'function'); equal(cObj.scaleToHeight(100), cObj, 'chainable'); equal(cObj.getHeight(), 100); - equal(cObj.get('scaleY'), 100/560); + equal(cObj.get('scaleY'), 100 / 560); }); test('scaleToWidth on rotated object', function() { @@ -527,7 +531,7 @@ test('getBoundingRectWithStroke', function() { //let excanvas kick in for IE8 and lower if (!canvas.getContext && typeof G_vmlCanvasManager != 'undefined') { - G_vmlCanvasManager.initElement(canvas); + G_vmlCanvasManager.initElement(canvas); } var dummyContext = canvas.getContext('2d'); @@ -541,7 +545,7 @@ test('getBoundingRectWithStroke', function() { //let excanvas kick in for IE8 and lower if (!canvas.getContext && typeof G_vmlCanvasManager != 'undefined') { - G_vmlCanvasManager.initElement(canvas); + G_vmlCanvasManager.initElement(canvas); } var dummyContext = canvas.getContext('2d'); ok(typeof cObj.drawControls == 'function'); @@ -643,13 +647,13 @@ test('getBoundingRectWithStroke', function() { dataURL = cObj.toDataURL({ format: 'jpeg' }); equal(dataURL.substring(0, 22), 'data:image/jpeg;base64'); } - catch(err) { + catch (err) { fabric.log('jpeg toDataURL not supported'); } } }); -test('toDataURL & reference to canvas', function() { + test('toDataURL & reference to canvas', function() { // var data = // 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQA'+ // 'AABkCAYAAABw4pVUAAAA+UlEQVR4nO3RoRHAQBDEsOu/6YR+B2s'+ @@ -660,21 +664,21 @@ test('toDataURL & reference to canvas', function() { // 'uYBGJI2D8CQtHkAhqTNAzAkbR6AIWnzAAxJmwdgSNo8AEPS5gEYkjYPw'+ // 'JC0eQCGpM0DMCRtHsDjB5K06yueJFXJAAAAAElFTkSuQmCC'; - var cObj = new fabric.Rect({ - width: 100, height: 100, fill: 'red' + var cObj = new fabric.Rect({ + width: 100, height: 100, fill: 'red' + }); + canvas.add(cObj); + + if (!fabric.Canvas.supports('toDataURL')) { + window.alert('toDataURL is not supported by this environment. Some of the tests can not be run.'); + } + else { + var objCanvas = cObj.canvas; + cObj.toDataURL(); + + equal(objCanvas, cObj.canvas); + } }); - canvas.add(cObj); - - if (!fabric.Canvas.supports('toDataURL')) { - window.alert('toDataURL is not supported by this environment. Some of the tests can not be run.'); - } - else { - var objCanvas = cObj.canvas; - cObj.toDataURL(); - - equal(objCanvas, cObj.canvas); - } -}); test('hasStateChanged', function() { var cObj = new fabric.Object(); @@ -1453,13 +1457,13 @@ test('toDataURL & reference to canvas', function() { }); test('getObjectScale', function() { - var object = new fabric.Object({ scaleX: 3, scaleY : 2}); + var object = new fabric.Object({ scaleX: 3, scaleY: 2}); var objectScale = object.getObjectScaling(); deepEqual(objectScale, {scaleX: object.scaleX, scaleY: object.scaleY}); }); test('getObjectScale in group', function() { - var object = new fabric.Object({ scaleX: 3, scaleY : 2}); + var object = new fabric.Object({ scaleX: 3, scaleY: 2}); var group = new fabric.Group(); group.scaleX = 2; group.scaleY = 2; @@ -1476,7 +1480,7 @@ test('toDataURL & reference to canvas', function() { el.width = 600; el.height = 600; var canvas = fabric.isLikelyNode ? fabric.createCanvasForNode() : new fabric.StaticCanvas(el); var context = canvas.contextContainer; - var object = new fabric.Object({ scaleX: 1, scaleY : 1}); + var object = new fabric.Object({ scaleX: 1, scaleY: 1}); var group = new fabric.Group(); group.scaleX = 2; group.scaleY = 2; diff --git a/test/unit/object_origin.js b/test/unit/object_origin.js index 2e2ee689..22dc2255 100644 --- a/test/unit/object_origin.js +++ b/test/unit/object_origin.js @@ -93,7 +93,6 @@ }); - test('translateToOriginPoint', function(){ var rect = new fabric.Rect(rectOptions), p, @@ -237,115 +236,113 @@ test('adjustPosition', function(){ - var rect = new fabric.Rect(rectOptions), - p; + var rect = new fabric.Rect(rectOptions); rect.strokeWidth = 0; rect.originX = 'left'; rect.originY = 'top'; - p = rect.adjustPosition('left'); + rect.adjustPosition('left'); deepEqual(rect.left, 35); deepEqual(rect.top, 45); equal(rect.originX, 'left'); - p = rect.adjustPosition('center'); + rect.adjustPosition('center'); deepEqual(rect.left, 55); deepEqual(rect.top, 45); equal(rect.originX, 'center'); - p = rect.adjustPosition('right'); + rect.adjustPosition('right'); deepEqual(rect.left, 75); deepEqual(rect.top, 45); equal(rect.originX, 'right'); rect.originX = 'center'; rect.originY = 'center'; - p = rect.adjustPosition('left'); + rect.adjustPosition('left'); deepEqual(rect.left, 55); deepEqual(rect.top, 45); equal(rect.originX, 'left'); - p = rect.adjustPosition('center'); + rect.adjustPosition('center'); deepEqual(rect.left, 75); deepEqual(rect.top, 45); equal(rect.originX, 'center'); - p = rect.adjustPosition('right'); + rect.adjustPosition('right'); deepEqual(rect.left, 95); deepEqual(rect.top, 45); equal(rect.originX, 'right'); rect.originX = 'right'; rect.originY = 'bottom'; - p = rect.adjustPosition('left'); + rect.adjustPosition('left'); deepEqual(rect.left, 55); deepEqual(rect.top, 45); equal(rect.originX, 'left'); - p = rect.adjustPosition('center'); + rect.adjustPosition('center'); deepEqual(rect.left, 75); deepEqual(rect.top, 45); equal(rect.originX, 'center'); - p = rect.adjustPosition('right'); + rect.adjustPosition('right'); deepEqual(rect.left, 95); deepEqual(rect.top, 45); equal(rect.originX, 'right'); }); test('adjustPositionRotated', function(){ - var rect = new fabric.Rect(rectOptions), - p; + var rect = new fabric.Rect(rectOptions); rect.angle = 35; rect.strokeWidth = 0; rect.originX = 'left'; rect.originY = 'top'; - p = rect.adjustPosition('left'); + rect.adjustPosition('left'); deepEqual(rect.left, 35); deepEqual(rect.top, 45); equal(rect.originX, 'left'); - p = rect.adjustPosition('center'); + rect.adjustPosition('center'); deepEqual(rect.left, 51.383040885779835); deepEqual(rect.top, 56.471528727020925); equal(rect.originX, 'center'); - p = rect.adjustPosition('right'); + rect.adjustPosition('right'); deepEqual(rect.left, 67.76608177155967); deepEqual(rect.top, 67.94305745404185); equal(rect.originX, 'right'); rect.originX = 'center'; rect.originY = 'center'; - p = rect.adjustPosition('left'); + rect.adjustPosition('left'); deepEqual(rect.left, 51.383040885779835); deepEqual(rect.top, 56.471528727020925); equal(rect.originX, 'left'); - p = rect.adjustPosition('center'); + rect.adjustPosition('center'); deepEqual(rect.left, 67.76608177155967); deepEqual(rect.top, 67.94305745404185); equal(rect.originX, 'center'); - p = rect.adjustPosition('right'); + rect.adjustPosition('right'); deepEqual(rect.left, 84.1491226573395); deepEqual(rect.top, 79.41458618106277); equal(rect.originX, 'right'); rect.originX = 'right'; rect.originY = 'bottom'; - p = rect.adjustPosition('left'); + rect.adjustPosition('left'); deepEqual(rect.left, 51.383040885779835); deepEqual(rect.top, 56.47152872702093); equal(rect.originX, 'left'); - p = rect.adjustPosition('center'); + rect.adjustPosition('center'); deepEqual(rect.left, 67.76608177155967); deepEqual(rect.top, 67.94305745404185); equal(rect.originX, 'center'); - p = rect.adjustPosition('right'); + rect.adjustPosition('right'); deepEqual(rect.left, 84.1491226573395); deepEqual(rect.top, 79.41458618106277); equal(rect.originX, 'right'); @@ -422,7 +419,6 @@ }); - test('translateToOriginPoint with numeric origins', function(){ var rect = new fabric.Rect(rectOptions), p, @@ -566,115 +562,113 @@ test('adjustPosition with numeric origins', function(){ - var rect = new fabric.Rect(rectOptions), - p; + var rect = new fabric.Rect(rectOptions); rect.strokeWidth = 0; rect.originX = 'left'; rect.originY = 'top'; - p = rect.adjustPosition(0); + rect.adjustPosition(0); deepEqual(rect.left, 35); deepEqual(rect.top, 45); equal(rect.originX, 0); - p = rect.adjustPosition(0.5); + rect.adjustPosition(0.5); deepEqual(rect.left, 55); deepEqual(rect.top, 45); equal(rect.originX, 0.5); - p = rect.adjustPosition(1); + rect.adjustPosition(1); deepEqual(rect.left, 75); deepEqual(rect.top, 45); equal(rect.originX, 1); rect.originX = 0.5; rect.originY = 0.5; - p = rect.adjustPosition(0); + rect.adjustPosition(0); deepEqual(rect.left, 55); deepEqual(rect.top, 45); equal(rect.originX, 0); - p = rect.adjustPosition(0.5); + rect.adjustPosition(0.5); deepEqual(rect.left, 75); deepEqual(rect.top, 45); equal(rect.originX, 0.5); - p = rect.adjustPosition(1); + rect.adjustPosition(1); deepEqual(rect.left, 95); deepEqual(rect.top, 45); equal(rect.originX, 1); rect.originX = 1; rect.originY = 1; - p = rect.adjustPosition(0); + rect.adjustPosition(0); deepEqual(rect.left, 55); deepEqual(rect.top, 45); equal(rect.originX, 0); - p = rect.adjustPosition(0.5); + rect.adjustPosition(0.5); deepEqual(rect.left, 75); deepEqual(rect.top, 45); equal(rect.originX, 0.5); - p = rect.adjustPosition(1); + rect.adjustPosition(1); deepEqual(rect.left, 95); deepEqual(rect.top, 45); equal(rect.originX, 1); }); test('adjustPositionRotated with numeric origins', function(){ - var rect = new fabric.Rect(rectOptions), - p; + var rect = new fabric.Rect(rectOptions); rect.angle = 35; rect.strokeWidth = 0; rect.originX = 0; rect.originY = 0; - p = rect.adjustPosition(0); + rect.adjustPosition(0); deepEqual(rect.left, 35); deepEqual(rect.top, 45); equal(rect.originX, 0); - p = rect.adjustPosition(0.5); + rect.adjustPosition(0.5); deepEqual(rect.left, 51.383040885779835); deepEqual(rect.top, 56.471528727020925); equal(rect.originX, 0.5); - p = rect.adjustPosition(1); + rect.adjustPosition(1); deepEqual(rect.left, 67.76608177155967); deepEqual(rect.top, 67.94305745404185); equal(rect.originX, 1); rect.originX = 0.5; rect.originY = 0.5; - p = rect.adjustPosition(0); + rect.adjustPosition(0); deepEqual(rect.left, 51.383040885779835); deepEqual(rect.top, 56.471528727020925); equal(rect.originX, 0); - p = rect.adjustPosition(0.5); + rect.adjustPosition(0.5); deepEqual(rect.left, 67.76608177155967); deepEqual(rect.top, 67.94305745404185); equal(rect.originX, 0.5); - p = rect.adjustPosition(1); + rect.adjustPosition(1); deepEqual(rect.left, 84.1491226573395); deepEqual(rect.top, 79.41458618106277); equal(rect.originX, 1); rect.originX = 1; rect.originY = 1; - p = rect.adjustPosition(0); + rect.adjustPosition(0); deepEqual(rect.left, 51.383040885779835); deepEqual(rect.top, 56.47152872702093); equal(rect.originX, 0); - p = rect.adjustPosition(0.5); + rect.adjustPosition(0.5); deepEqual(rect.left, 67.76608177155967); deepEqual(rect.top, 67.94305745404185); equal(rect.originX, 0.5); - p = rect.adjustPosition(1); + rect.adjustPosition(1); deepEqual(rect.left, 84.1491226573395); deepEqual(rect.top, 79.41458618106277); equal(rect.originX, 1); diff --git a/test/unit/observable.js b/test/unit/observable.js index 74508a5b..5b9e5a7c 100644 --- a/test/unit/observable.js +++ b/test/unit/observable.js @@ -212,7 +212,7 @@ test('removal of past events inner loop', function() { equal(event1Fired, 1, 'Event 1 should fire once'); equal(event2Fired, 0, 'Event 2 should not be fired yet'); equal(event3Fired, 0, 'Event 3 should not be fired yet'); - equal(event4Fired, 0, 'Event 4 should not be fired yet'); + equal(event4Fired, 0, 'Event 4 should not be fired yet'); foo.trigger('bar:baz'); equal(foo.__eventListeners['bar:baz'].length, 3, 'There should be 3 handlers registered now'); }, diff --git a/test/unit/parser.js b/test/unit/parser.js index 63fbaae5..e675037e 100644 --- a/test/unit/parser.js +++ b/test/unit/parser.js @@ -94,11 +94,11 @@ element.setAttribute('x', '100'); parent.setAttribute('y', '200'); grandParent.setAttribute('width', '600'); - grandParent.setAttribute('height', '600'); + grandParent.setAttribute('height', '600'); deepEqual(fabric.parseAttributes(element, 'x y width height'.split(' ')), { left: 100, top: 200, width: 600, height: 600 }); - }); + }); asyncTest('parseElements', function() { ok(fabric.parseElements); @@ -122,7 +122,7 @@ parsedElements = instances; }); } - catch(err) { + catch (err) { error = err; } ok(error === undefined, 'No error is raised'); @@ -531,7 +531,7 @@ 'strokeWidth': 0.25 }, 'polygon.cls': { - 'fill' : '', + 'fill': '', 'stroke': '#0000FF' } }; @@ -541,7 +541,7 @@ var elPolygon = fabric.document.createElement('polygon'), expectedStyle = { - 'fill' : '', + 'fill': '', 'stroke': '#0000FF' }; @@ -549,7 +549,7 @@ elPolygon.setAttribute('class', 'cls'); elPolygon.setAttribute('svgUid', svgUid); - var style = fabric.parseAttributes(elPolygon, [ ]); + var style = fabric.parseAttributes(elPolygon, []); deepEqual(style, expectedStyle); styleElement.textContent = '\t\n'; diff --git a/test/unit/path.js b/test/unit/path.js index 1422e92f..63e2cc7d 100644 --- a/test/unit/path.js +++ b/test/unit/path.js @@ -51,7 +51,7 @@ } function makePathObject(callback) { - getPathObject("M 100 100 L 300 100 L 200 300 z", callback); + getPathObject('M 100 100 L 300 100 L 200 300 z', callback); } QUnit.module('fabric.Path'); @@ -69,7 +69,7 @@ try { new fabric.Path(); } - catch(err) { + catch (err) { error = err; } @@ -189,7 +189,7 @@ deepEqual( path.get('transformMatrix'), - [ Math.cos(ANGLE), Math.sin(ANGLE), -Math.sin(ANGLE), Math.cos(ANGLE), 0, 0 ] + [Math.cos(ANGLE), Math.sin(ANGLE), -Math.sin(ANGLE), Math.cos(ANGLE), 0, 0] ); start(); }); diff --git a/test/unit/path_group.js b/test/unit/path_group.js index f934a457..02a673ba 100644 --- a/test/unit/path_group.js +++ b/test/unit/path_group.js @@ -65,8 +65,8 @@ } } - var objects = [ ], - paths = ["M 100 100 L 300 100 L 200 300 z", "M 200 200 L 100 200 L 400 50 z"], + var objects = [], + paths = ['M 100 100 L 300 100 L 200 300 z', 'M 200 200 L 100 200 L 400 50 z'], numLoadedObjects = 0, numTotalObjects = paths.length; @@ -115,11 +115,11 @@ }); test('parsingDmensionsWithTransformMatrix', function() { - var pathA = new fabric.Path("M 100 100 L 300 100 L 200 300 z", {transformMatrix: [2, 0, 0, 2, 0, 0]}), - pathB = new fabric.Path("M 200 200 L 100 200 L 400 50 z", {transformMatrix: [3, 0, 0, 3, 0, 0]}), - pg = new fabric.PathGroup([pathA, pathB], {toBeParsed: true}); - equal(pg.width, 1203); - equal(pg.height, 603); + var pathA = new fabric.Path('M 100 100 L 300 100 L 200 300 z', {transformMatrix: [2, 0, 0, 2, 0, 0]}), + pathB = new fabric.Path('M 200 200 L 100 200 L 400 50 z', {transformMatrix: [3, 0, 0, 3, 0, 0]}), + pg = new fabric.PathGroup([pathA, pathB], {toBeParsed: true}); + equal(pg.width, 1203); + equal(pg.height, 603); }); asyncTest('getObjects', function() { diff --git a/test/unit/pattern.js b/test/unit/pattern.js index 9a2c6a92..27166461 100644 --- a/test/unit/pattern.js +++ b/test/unit/pattern.js @@ -9,7 +9,7 @@ function setSrc(img, src, callback) { if (fabric.isLikelyNode) { require('fs').readFile(src, function(err, imgData) { - if (err) throw err; + if (err) { throw err }; img.src = imgData; img._src = src; callback && callback(); @@ -64,11 +64,11 @@ equal(object.offsetY, 0); var patternWithGetSource = new fabric.Pattern({ - source: function() {return fabric.document.createElement("canvas")} + source: function() {return fabric.document.createElement('canvas')} }); var object2 = patternWithGetSource.toObject(); - equal(object2.source, 'function () {return fabric.document.createElement("canvas")}'); + equal(object2.source, 'function () {return fabric.document.createElement(\'canvas\')}'); equal(object2.repeat, 'repeat'); }); diff --git a/test/unit/polygon.js b/test/unit/polygon.js index 3dc4c264..78ec606c 100644 --- a/test/unit/polygon.js +++ b/test/unit/polygon.js @@ -59,7 +59,7 @@ ok(polygon instanceof fabric.Object); equal(polygon.type, 'polygon'); - deepEqual(polygon.get('points'), [ { x: 10, y: 12 }, { x: 20, y: 22 } ]); + deepEqual(polygon.get('points'), [{ x: 10, y: 12 }, { x: 20, y: 22 }]); }); test('complexity', function() { @@ -110,7 +110,7 @@ var expected = fabric.util.object.extend( fabric.util.object.clone(REFERENCE_OBJECT), { - points: [ { x: 10, y: 12 }, { x: 20, y: 22 } ] + points: [{ x: 10, y: 12 }, { x: 20, y: 22 }] }); deepEqual(polygon.toObject(), expected); @@ -149,10 +149,10 @@ 'points': expectedPoints, 'top': 10, 'left': 10, - 'transformMatrix': [ 2, 0, 0, 2, -10, -20 ] + 'transformMatrix': [2, 0, 0, 2, -10, -20] })); - deepEqual(polygonWithAttrs.get('transformMatrix'), [ 2, 0, 0, 2, -10, -20 ]); + deepEqual(polygonWithAttrs.get('transformMatrix'), [2, 0, 0, 2, -10, -20]); equal(fabric.Polygon.fromElement(), null); }); diff --git a/test/unit/polyline.js b/test/unit/polyline.js index 8527fe64..64a06da3 100644 --- a/test/unit/polyline.js +++ b/test/unit/polyline.js @@ -59,7 +59,7 @@ ok(polyline instanceof fabric.Object); equal(polyline.type, 'polyline'); - deepEqual(polyline.get('points'), [ { x: 10, y: 12 }, { x: 20, y: 22 } ]); + deepEqual(polyline.get('points'), [{ x: 10, y: 12 }, { x: 20, y: 22 }]); }); test('complexity', function() { @@ -137,11 +137,11 @@ 'points': expectedPoints, 'left': 10, 'top': 10, - 'transformMatrix' : [ 2, 0, 0, 2, -10, -20 ] + 'transformMatrix': [2, 0, 0, 2, -10, -20] })); - deepEqual(polylineWithAttrs.get('transformMatrix'), [ 2, 0, 0, 2, -10, -20 ]); + deepEqual(polylineWithAttrs.get('transformMatrix'), [2, 0, 0, 2, -10, -20]); - equal(fabric.Polyline.fromElement(), null); + equal(fabric.Polyline.fromElement(), null); }); })(); diff --git a/test/unit/rect.js b/test/unit/rect.js index f1c9cf72..deac03e5 100644 --- a/test/unit/rect.js +++ b/test/unit/rect.js @@ -69,8 +69,8 @@ deepEqual(rect.toObject(), REFERENCE_RECT); var expectedObject = fabric.util.object.extend({ }, REFERENCE_RECT); - expectedObject.fill = {"type":"linear","coords":{"x1":0,"y1":0,"x2":200,"y2":0},"colorStops":[{"offset":"0","color":"rgb(255,0,0)","opacity":1},{"offset":"1","color":"rgb(0,0,255)","opacity":1}],"offsetX":0,"offsetY":0}; - expectedObject.stroke = {"type":"linear","coords":{"x1":0,"y1":0,"x2":200,"y2":0},"colorStops":[{"offset":"0","color":"rgb(255,0,0)","opacity":1},{"offset":"1","color":"rgb(0,0,255)","opacity":1}],"offsetX":0,"offsetY":0}; + expectedObject.fill = {'type': 'linear','coords': {'x1': 0,'y1': 0,'x2': 200,'y2': 0},'colorStops': [{'offset': '0','color': 'rgb(255,0,0)','opacity': 1},{'offset': '1','color': 'rgb(0,0,255)','opacity': 1}],'offsetX': 0,'offsetY': 0}; + expectedObject.stroke = {'type': 'linear','coords': {'x1': 0,'y1': 0,'x2': 200,'y2': 0},'colorStops': [{'offset': '0','color': 'rgb(255,0,0)','opacity': 1},{'offset': '1','color': 'rgb(0,0,255)','opacity': 1}],'offsetX': 0,'offsetY': 0}; rect = fabric.Rect.fromObject(expectedObject); ok(rect.fill instanceof fabric.Gradient); ok(rect.stroke instanceof fabric.Gradient); diff --git a/test/unit/shadow.js b/test/unit/shadow.js index 21421c4f..b4dd3f50 100644 --- a/test/unit/shadow.js +++ b/test/unit/shadow.js @@ -181,7 +181,7 @@ equal(shadow.toSVG(object), '\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\n\n'); }); - + test('toSVG with rotated object', function() { // reset uid fabric.Object.__uid = 0; @@ -191,7 +191,7 @@ equal(shadow.toSVG(object), '\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\n\n'); }); - + test('toSVG with rotated flipped object', function() { // reset uid fabric.Object.__uid = 0; diff --git a/test/unit/util.js b/test/unit/util.js index efb00265..1dc35137 100644 --- a/test/unit/util.js +++ b/test/unit/util.js @@ -12,7 +12,7 @@ function getAbsolutePath(path) { var isAbsolute = /^https?:/.test(path); - if (isAbsolute) return path; + if (isAbsolute) { return path }; var imgEl = _createImageElement(); imgEl.src = path; var src = imgEl.src; @@ -21,7 +21,7 @@ } var IMG_URL = fabric.isLikelyNode - ? require("path").join(__dirname, '../fixtures/', 'very_large_image.jpg') + ? require('path').join(__dirname, '../fixtures/', 'very_large_image.jpg') : getAbsolutePath('../fixtures/very_large_image.jpg'); var IMG_URL_NON_EXISTING = 'http://www.google.com/non-existing'; @@ -374,7 +374,7 @@ }); test('fabric.loadSVGFromURL', function() { - equal("function", typeof fabric.loadSVGFromURL); + equal('function', typeof fabric.loadSVGFromURL); }); var SVG_DOC_AS_STRING = '\ @@ -385,9 +385,9 @@ '; asyncTest('fabric.loadSVGFromString', function() { - equal("function", typeof fabric.loadSVGFromString); + equal('function', typeof fabric.loadSVGFromString); - var loadedObjects = [ ]; + var loadedObjects = []; fabric.loadSVGFromString(SVG_DOC_AS_STRING, function(objects) { loadedObjects = objects; }); @@ -400,7 +400,7 @@ }); asyncTest('fabric.loadSVGFromString with surrounding whitespace', function() { - var loadedObjects = [ ]; + var loadedObjects = []; fabric.loadSVGFromString(' \n\n ' + SVG_DOC_AS_STRING + ' ', function(objects) { loadedObjects = objects; }); @@ -536,19 +536,19 @@ var undef; var array = [1, 2, 3, 4, 5, undef, 6, 7, 1, 2, 3]; - equal(2, array.indexOf(3, -47), "large negative value for fromIndex"); + equal(2, array.indexOf(3, -47), 'large negative value for fromIndex'); equal(10, array.indexOf(3, 4)); equal(10, array.indexOf(3, -5)); - equal(2, array.indexOf(3, {}), "nonsensical value for fromIndex"); - equal(2, array.indexOf(3, ""), "nonsensical value for fromIndex"); - equal(-1, array.indexOf(3, 41), "fromIndex value larger than the length of the array"); + equal(2, array.indexOf(3, {}), 'nonsensical value for fromIndex'); + equal(2, array.indexOf(3, ''), 'nonsensical value for fromIndex'); + equal(-1, array.indexOf(3, 41), 'fromIndex value larger than the length of the array'); }); test('Array.prototype.forEach', function() { ok(typeof Array.prototype.forEach === 'function'); var arr = [1,2,3]; - var result = [ ]; + var result = []; arr.forEach(function(val, index, arr) { result.push(val, index, arr); @@ -647,7 +647,7 @@ arr.reduce(function(memo, val) { return memo + val }), 0); deepEqual(['1!', '2!', '3!', '4!', '5!'], - arr.reduce(function(memo, val) { memo.push(val + '!'); return memo }, [ ])); + arr.reduce(function(memo, val) { memo.push(val + '!'); return memo }, [])); arr = 'foobar'.split(''); equal('f0o1o2b3a4r5', @@ -749,7 +749,7 @@ var obj3 = { toString: function(){ return 'obj3' } }; deepEqual(['obj1', 'obj2', 'obj3'], - fabric.util.array.invoke([ obj1, obj2, obj3 ], 'toString')); + fabric.util.array.invoke([obj1, obj2, obj3], 'toString')); deepEqual(['f', 'b', 'b'], fabric.util.array.invoke(['foo', 'bar', 'baz'], 'charAt', 0)); @@ -770,7 +770,7 @@ var obj2 = { valueOf: function(){ return 2 } }; var obj3 = { valueOf: function(){ return 3 } }; - equal(obj1, fabric.util.array.min([ obj1, obj3, obj2 ])); + equal(obj1, fabric.util.array.min([obj1, obj3, obj2])); }); test('fabric.util.array.max', function() { @@ -785,18 +785,18 @@ var obj2 = { valueOf: function(){ return 2 } }; var obj3 = { valueOf: function(){ return 3 } }; - equal(obj3, fabric.util.array.max([ obj1, obj3, obj2 ])); + equal(obj3, fabric.util.array.max([obj1, obj3, obj2])); }); test('fabric.util.populateWithProperties', function() { ok(typeof fabric.util.populateWithProperties == 'function'); var source = { - foo: 'bar', - baz: 123, - qux: function() { } - }, - destination = { }; + foo: 'bar', + baz: 123, + qux: function() { } + }, + destination = { }; fabric.util.populateWithProperties(source, destination); ok(typeof destination.foo === 'undefined'); @@ -843,7 +843,7 @@ test('clearFabricFontCache', function() { ok(typeof fabric.util.clearFabricFontCache == 'function'); - fabric.charWidthsCache = { arial : { some: 'cache'}, helvetica : { some: 'cache'} }; + fabric.charWidthsCache = { arial: { some: 'cache'}, helvetica: { some: 'cache'} }; fabric.util.clearFabricFontCache('arial'); equal(fabric.charWidthsCache.arial, undefined, 'arial cache is deleted'); equal(fabric.charWidthsCache.helvetica.some, 'cache', 'helvetica cache is still available'); @@ -854,15 +854,15 @@ test('parsePreserveAspectRatioAttribute', function() { ok(typeof fabric.util.parsePreserveAspectRatioAttribute == 'function'); var parsed; - parsed = fabric.util.parsePreserveAspectRatioAttribute("none"); + parsed = fabric.util.parsePreserveAspectRatioAttribute('none'); equal(parsed.meetOrSlice, 'meet'); equal(parsed.alignX, 'none'); equal(parsed.alignY, 'none'); - parsed = fabric.util.parsePreserveAspectRatioAttribute("none slice"); + parsed = fabric.util.parsePreserveAspectRatioAttribute('none slice'); equal(parsed.meetOrSlice, 'slice'); equal(parsed.alignX, 'none'); equal(parsed.alignY, 'none'); - parsed = fabric.util.parsePreserveAspectRatioAttribute("XmidYmax meet"); + parsed = fabric.util.parsePreserveAspectRatioAttribute('XmidYmax meet'); equal(parsed.meetOrSlice, 'meet'); equal(parsed.alignX, 'mid'); equal(parsed.alignY, 'max'); @@ -886,14 +886,14 @@ test('resetObjectTransform', function() { ok(typeof fabric.util.resetObjectTransform == 'function'); var rect = new fabric.Rect({ - top:1, + top: 1, width: 100, height: 100, angle: 30, scaleX: 2, scaleY: 1, flipX: true, - flipY : true, + flipY: true, skewX: 30, skewY: 30 });