Set this for drawCallback issue-524
authorDan Vanderkam <danvdk@gmail.com>
Mon, 13 Apr 2015 17:47:33 +0000 (13:47 -0400)
committerDan Vanderkam <danvdk@gmail.com>
Tue, 21 Apr 2015 17:02:42 +0000 (13:02 -0400)
auto_tests/tests/callback.js
src/dygraph.js

index d41d91e..b12ea64 100644 (file)
@@ -686,7 +686,7 @@ it('testDrawPointCallback_idx', function() {
 
 /**
  * Test that the correct idx is returned for the point in the onHiglightCallback.
 */
+ */
 it('testDrawHighlightPointCallback_idx', function() {
   var idxToCheck = null;
 
@@ -712,4 +712,16 @@ it('testDrawHighlightPointCallback_idx', function() {
   assert.equal(5,idxToCheck);
 });
 
+/**
+ * Test that drawCallback is called with the correct value for `this`.
+ */
+it('should set this in drawCallback', function() {
+  var g = new Dygraph('graph', data, {
+    drawCallback: function(g, is_initial) {
+      assert.isTrue(is_initial);
+      assert.equal(g, this);
+    }
+  });
+});
+
 });
index 878a747..4f3ce77 100644 (file)
@@ -2671,7 +2671,7 @@ Dygraph.prototype.renderGraph_ = function(is_initial_draw) {
   this.canvas_.getContext('2d').clearRect(0, 0, this.width_, this.height_);
 
   if (this.getFunctionOption("drawCallback") !== null) {
-    this.getFunctionOption("drawCallback")(this, is_initial_draw);
+    this.getFunctionOption("drawCallback").call(this, this, is_initial_draw);
   }
   if (is_initial_draw) {
     this.readyFired_ = true;