* property and "uninstallPattern" method to this particular canvas context.
* You must call uninstallPattern() before calling installPattern() again.
*
- * @param {pattern | Array<Number>} A description of the stroke pattern. Even
+ * @param {Array.<number>} pattern A description of the stroke pattern. Even
* indices indicate a draw and odd indices indicate a gap (in pixels). The
* array should have a even length as any odd lengthed array could be expressed
* as a smaller even length array.
*/
CanvasRenderingContext2D.prototype.installPattern = function(pattern) {
+ "use strict";
+
if (typeof(this.isPatternInstalled) !== 'undefined') {
throw "Must un-install old line pattern before installing a new one.";
}
var realMoveTo = this.moveTo;
var realStroke = this.stroke;
+ /** @type {function()|undefined} */
this.uninstallPattern = function() {
this.beginPath = realBeginPath;
this.lineTo = realLineTo;
// Set last pattern index we used for this pattern.
var patternIndex = dashedLineToHistory[0];
- x = 0;
+ var x = 0;
while (len > x) {
// Get the length of the pattern segment we are dealing with.
- segment = pattern[patternIndex];
+ var segment = pattern[patternIndex];
// If our last draw didn't complete the pattern segment all the way
// we will try to finish it. Otherwise we will try to do the whole
// segment.