title: Why does console.log wrongly print an empty array?
body: <p>I use Firefox.</p>
  
  <p>This code logs <code>[]</code>.</p>
  
  <pre><code>var log = console.log;
  
  function new_comb(aComb) {
      var res = [];
      log(aComb); // &lt;- This is the line
      for (var p in aComb) {
          var peg = aComb[p];
          var current = peg[peg.length - 1];
          for (var i = 0; i &lt; aComb.length; i++) {
              if (i == p) continue;
              if (current &gt; aComb[i][aComb[i].length - 1]) continue;
              var tmp = aComb.splice(0);
              tmp[i].push(current);
              tmp[p].pop();
              res.push(tmp);
          }
      }
      return res;
  }
  
  var comb = [
      [3, 1],
      [9, 2],
      [15, 0]];
  var res = new_comb(comb);
  </code></pre>
  
  <p>This code logs the correct value.</p>
  
  <pre><code>var log = console.log;
  
  function new_comb(aComb) {
      var res = [];
      log(aComb); // &lt;- This is the line
      // note that I comment this out.
      /*for (var p in aComb) {
          var peg = aComb[p];
          var current = peg[peg.length - 1];
          for (var i = 0; i &lt; aComb.length; i++) {
              if (i == p) continue;
              if (current &gt; aComb[i][aComb[i].length - 1]) continue;
              var tmp = aComb.splice(0);
              tmp[i].push(current);
              tmp[p].pop();
              res.push(tmp);
          }
      }*/
      return res;
  }
  
  var comb = [
      [3, 1],
      [9, 2],
      [15, 0]];
  var res = new_comb(comb);
  </code></pre>
  
  <p>Why is this happening?</p>