Erolast,
с ходу возникла непонятка
subClass.prototype = Object.create(superClass && superClass.prototype,
ты почему тут перезаписываешь прототип сабклассу? если сабкласс наследует что-то у суперкласса, это не значит что он должен забыть о себе. Или я что-то не так понял?