title: Failing to subclass builtin String object
body: <p>I've been experimenting with subclassing the built-in String object in ES2015 using Node 5.3.0. I'm running the code untranspiled using a bunch of harmony flags. Here's the full command: 
  <code>node --harmony --harmony_modules --harmony_destructuring --harmony_rest_parameters --harmony_arrow_functions --harmony_spreadcalls --harmony_object --harmony_default_parameters --harmony_new_target --harmony_reflect --harmony_modules ~/t.js</code></p>
  
  <p>Given that the spec specifically says the String object is made to be subclassable (See section <code>21.1.1 The String Constructor</code>), I'm struggling to understand if this is something that I'm doing wrong or a bug in Node or maybe even V8.</p>
  
  <p>The code to reproduce the issue follows:</p>
  
  <pre><code>'use strict';
  
  class Str extends String {
    capitalize() {
      return `${this.slice(0, 1).toUpperCase()}${this.slice(1)}`;
    }
  }
  
  var s = new Str('asdf');
  
  console.log(s.constructor);
  //[Function: String]
  
  console.log(s.__proto__)
  //[String: '']
  
  console.log(s.capitalize());
  //TypeError: s.capitalize is not a function
  </code></pre>
  
  <p>The code above demonstrates that the prototype chain isn't being setup as I would expect. However, if I manually fix the <code>__proto__</code> using the code below, everything works correctly.</p>
  
  <p><div class="snippet" data-lang="js" data-hide="false">
  <div class="snippet-code">
  <pre class="snippet-code-js lang-js prettyprint-override"><code>'use strict';
  
  class Str extends String {
    constructor(...args) {
      super(...args);
      Object.setPrototypeOf(this, new.target.prototype);
    }
  
    capitalize() {
      return `${this.slice(0, 1).toUpperCase()}${this.slice(1)}`;
    }
  }
  
  var s = new Str('asdf');
  console.log(s.constructor);
  //[Function: Str]
  
  console.log(s.__proto__);
  //Str {}
  
  console.log(s.capitalize());
  //Asdf</code></pre>
  </div>
  </div>
  </p>
  
  <p>I'm really curious to know why the inheritance is not working as I'd expect.</p>