Skip to content

Commit

Permalink
Compatibility for fetch-mock using proxy-pollyfill (#736)
Browse files Browse the repository at this point in the history
* Compatibility for fetch-mock using proxy-pollyfill
Fixes wheresrhys/fetch-mock#415

Details: fetch-mock wraps the Response object in an ES6 Proxy to
provide useful test harness features such as flush.  However, on
ES5 browsers without fetch or Proxy support pollyfills must be used;
the proxy-pollyfill is unable to proxy an attribute unless it exists
on the object before the Proxy is created.  This change ensures
Response.bodyUsed exists on the instance, while maintaining the
semantic of setting Request.bodyUsed in the constructor before
_initBody is called.

* Update fetch.js

Co-authored-by: Jake Champion <me@jakechampion.name>
  • Loading branch information
sullivanpt and JakeChampion committed May 27, 2020
1 parent 8065fdd commit ff32363
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions fetch.js
Expand Up @@ -209,6 +209,17 @@ function Body() {
this.bodyUsed = false

this._initBody = function(body) {
/*
fetch-mock wraps the Response object in an ES6 Proxy to
provide useful test harness features such as flush. However, on
ES5 browsers without fetch or Proxy support pollyfills must be used;
the proxy-pollyfill is unable to proxy an attribute unless it exists
on the object before the Proxy is created. This change ensures
Response.bodyUsed exists on the instance, while maintaining the
semantic of setting Request.bodyUsed in the constructor before
_initBody is called.
*/
this.bodyUsed = this.bodyUsed
this._bodyInit = body
if (!body) {
this._bodyText = ''
Expand Down

0 comments on commit ff32363

Please sign in to comment.