Cannot use subclass declared with constructor using rest parameter syntax

foo.js

class SuperClass {
  constructor(a) {
    console.log('Constructing a SuperClass', a);
  }
}

class SubClass extends SuperClass {
  constructor(...args) {
    super(...args);
    console.log('Constructing a SubClass', args);
  }
}

var subInstance = new SubClass(17); // uh-oh

Output from buble foo.js > out.js:

var SuperClass = function SuperClass(a) {
  console.log('Constructing a SuperClass', a);
};

var SubClass = (function (SuperClass) {
  function SubClass() {
    var args = [], len = arguments.length;
    while ( len-- ) args[ len ] = arguments[ len ];

    SuperClass.apply.call(this, void 0, args);
    console.log('Constructing a SubClass', args);
  }

  if ( SuperClass ) SubClass.__proto__ = SuperClass;
  SubClass.prototype = Object.create( SuperClass && SuperClass.prototype );
  SubClass.prototype.constructor = SubClass;

  return SubClass;
}(SuperClass));

var subInstance = new SubClass(17); // uh-oh

Running node out.js breaks with

TypeError: Function.prototype.apply was called on #<SubClass>, which is a object and not a function
    at new SubClass (/home/david/workspace/buble-super-bug/out.js:10:22)
    at Object.<anonymous> (/home/david/workspace/buble-super-bug/out.js:21:19)

This line definitely looks odd:

    SuperClass.apply.call(this, void 0, args);