diff --git a/js/lib/isfahan.js b/js/lib/isfahan.js
index b3f7d1fb57ae9e9d14ebf60d0c9803bfa652d992..0ea81c7a2012b741584fd553f18c3df53d7ca95e 100644
--- a/js/lib/isfahan.js
+++ b/js/lib/isfahan.js
@@ -45,6 +45,7 @@ var Isfahan = function(configObject) {
     n = group.length,
     x = rect.x,
     y = rect.y,
+    d,
     o;
     var offset = 0;
     while (++i < n) {
diff --git a/js/src/annotations/osd-region-draw-tool.js b/js/src/annotations/osd-region-draw-tool.js
index ac7e01305517e90f5f2ffc01543769e483aeab07..4c19af40a66f07d930ff4c3a5b8cafb8ea27408f 100644
--- a/js/src/annotations/osd-region-draw-tool.js
+++ b/js/src/annotations/osd-region-draw-tool.js
@@ -137,7 +137,7 @@
       if (typeof annotation === 'object' && annotation.on) {
         for (var i = 0; i < strategies.length; i++) {
           if (strategies[i].isThisType(annotation)) {
-            shapeArray = strategies[i].parseRegion(annotation, this);
+            var shapeArray = strategies[i].parseRegion(annotation, this);
             return shapeArray;
           }
         }
diff --git a/js/src/utils/saveController.js b/js/src/utils/saveController.js
index 395df1161f96be2399a40ef0da78e99a4b3c2c28..16a39204e81f37052c0c288f67999f4526aed240 100755
--- a/js/src/utils/saveController.js
+++ b/js/src/utils/saveController.js
@@ -87,8 +87,8 @@
         return false;
       }
 
-      saveModule = config.jsonStorageEndpoint.module,
-      saveOptions = config.jsonStorageEndpoint.options;
+      var saveModule = config.jsonStorageEndpoint.module;
+      var saveOptions = config.jsonStorageEndpoint.options;
       _this.storageModule = new $[saveModule](saveOptions);
 
       var sessionID = window.location.hash.substring(1); // will return empty string if none exists, causing the or statement below to evaluate to false, generating a new sesssionID.
diff --git a/js/src/viewer/manifestListItem.js b/js/src/viewer/manifestListItem.js
index 793fa19b875e08caccf039b0eb27e53843c17848..f55c7391dd8a6cd1553da31ba33a20a56c809b2d 100644
--- a/js/src/viewer/manifestListItem.js
+++ b/js/src/viewer/manifestListItem.js
@@ -108,7 +108,7 @@
 
         var aspectRatio = canvas.height/canvas.width,
         width = (_this.thumbHeight/aspectRatio);
-        url = _this.manifest.getThumbnailForCanvas(canvas, width);
+        var url = _this.manifest.getThumbnailForCanvas(canvas, width);
 
         _this.allImages.push({
           url: url,
diff --git a/js/src/widgets/searchTab.js b/js/src/widgets/searchTab.js
index 71698d9198b70396c4542c09dd7f29f7827b1a63..362cdea987960b6c378698a6911949afd2203767 100644
--- a/js/src/widgets/searchTab.js
+++ b/js/src/widgets/searchTab.js
@@ -137,7 +137,7 @@
         };
       });
 
-      templateData = {
+      var templateData = {
         searchService: searchServiceIdArray
       };
 
diff --git a/js/src/widgets/searchWithinResults.js b/js/src/widgets/searchWithinResults.js
index 4b603904f23def5ff191aaf848e01c7d43472c93..c5953c5d183ed43d0d01ea9ed18df887920c2f51 100644
--- a/js/src/widgets/searchWithinResults.js
+++ b/js/src/widgets/searchWithinResults.js
@@ -2,7 +2,7 @@
 
 /**
  * UI + logic to get search results for a given search query. On initialization,
- * the provided search query is given tothe provided IIIF Search service.
+ * the provided search query is given to the provided IIIF Search service.
  * The response is displayed as a list.
  *
  * Parameter 'query_params': {q: query, motivation: motivation, date: date, user: user}
diff --git a/package.json b/package.json
index e27b32cc25819839451510f9fee5e8a8d7987224..460279e4cd440d96430b25dee3ea0e27f7e10473 100644
--- a/package.json
+++ b/package.json
@@ -23,7 +23,7 @@
     "grunt-contrib-connect": "*",
     "grunt-contrib-copy": "*",
     "grunt-contrib-cssmin": "*",
-    "grunt-contrib-jasmine": "*",
+    "grunt-contrib-jasmine": "^1.2.0",
     "grunt-contrib-jshint": "*",
     "grunt-contrib-less": "^1.4.0",
     "grunt-contrib-uglify": "*",