title: Will Function.prototype.bind() always be slow?
body: <p>I am writing an open source javascript library, and I use <code>.bind()</code> method heavily, because I have an idea that object-oriented code looks more clear then. (<em>debatable, though</em>)</p>
  
  <p><strong>Example</strong></p>
  
  <p>A1:</p>
  
  <pre><code>var that = this;
  
  setTimeout(function () {
      that.method();
  }, 0);
  </code></pre>
  
  <p>vs</p>
  
  <p>B1:</p>
  
  <pre><code>setTimeout(this.method.bind(this), 0);
  </code></pre>
  
  <p><strong>Or, a more practical code portion</strong></p>
  
  <p>A2:</p>
  
  <pre><code>remoteDataSource.getData(function (a, b, c, d) {
       obj.dataGetter(a, b, c, d);
  })
  </code></pre>
  
  <p>vs B2:  </p>
  
  <pre><code>remoteDataSource.getData(obj/* or prototype */.dataGetter.bind(obj));
  </code></pre>
  
  <p>I use a non-native <code>bind</code> for older browsers, and everything went perfect until I opened a <a href="http://jsperf.com/bind-vs-closure-setup/3">jsperf benchmark for bind</a>.   </p>
  
  <p>It looks like code using <code>bind</code> is 100 times slowlier. Now, before to rewrite all my library, I have a question for those who are familiar with javascript engines:</p>
  
  <p><strong>Is there a probability that, being a new feature, <code>bind</code> will get optimized
   soon, or there is no chance because of JavaScript architecture limits?</strong></p>