title: Unhandled promise rejection TypeError: Method Promise.prototype.then called on incompatible receiver
body: <p>build with babel-preset-env, babel-polyfill library.</p>
  
  <p>ERROR:
  Unhandled promise rejection TypeError: Method Promise.prototype.then called on incompatible receiver function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}</p>
  
  <pre><code>getEvents: async function() {
      const response = await fetch(
          '/api/v1/event/'
        {
          credentials: 'same-origin'
        }
      );
  
      // get Success
      this.events = await response.json();
      ...
  }
  </code></pre>
  
  <p>package.json</p>
  
  <pre><code>"babel-polyfill": "^6.23.0",
  "babel-plugin-transform-object-rest-spread": "^6.26.0",
  "babel-plugin-transform-remove-strict-mode": "0.0.2",
  "babel-preset-env": "^1.6.0",
  "grunt-babel": "^6.0.0",
  </code></pre>
  
  <p>if anyone knows what causing this, please answer.</p>
  
  <p>I think might be a promise polyfill issue.. because 
  <code>function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}</code> this function came from promise polyfill..</p>
  
  <p>stacktrace in babel-polyfil module.</p>
  
  <pre><code>var $resolve = function (value) {
    var promise = this;
    var then;
    if (promise._d) return;
    promise._d = true;
    promise = promise._w || promise; // unwrap
    try {
      if (promise === value) throw TypeError("Promise can't be resolved itself");
      if (then = isThenable(value)) {
        microtask(function () {
          var wrapper = { _w: promise, _d: false }; // wrap
          try {
  </code></pre>
  
  <p><strong>error happened in the next line</strong></p>
  
  <pre><code>          then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1)); 
          } catch (e) {
            $reject.call(wrapper, e);
          }
        });
      } else {
        promise._v = value;
        promise._s = 1;
        notify(promise, false);
      }
    } catch (e) {
      $reject.call({ _w: promise, _d: false }, e); // wrap
    }
  };
  </code></pre>
  
  <p>sorry I can't regenerate the error.. I remember it was triggered in that line.</p>