title: Cannot add/remove sealed array elements
body: <p>I am combining a graphql api call with an array modification.</p>
  
  <pre><code>async deletePhoto(photoId, driveId, index) {
  
    this.property.photos.splice(index, 1);
  
    await api.photos.remove(this.property.id, photoId, driveId);
  },
  </code></pre>
  
  <p><strong>api call:</strong></p>
  
  <pre><code>  const remove = async (propertyId, photoId, driveId) =&gt; {
  
    const mutation = gql`
      mutation photoDelete($propertyId: Int!, $photoId: String!, $driveId: String!) {
        deletePropertyPhoto(propertyId: $propertyId, photoId: $photoId, driveId: $driveId)
      }
    `;
  
    const result = await apolloClient.mutate({
      mutation,
      variables: {
        propertyId,
        photoId,
        driveId,
      },
    });
  
    console.log(result);
    return result;
  };
  </code></pre>
  
  <p><strong>Problem:</strong></p>
  
  <pre><code>Uncaught (in promise) TypeError: Cannot add/remove sealed array elements
      at Array.splice (&lt;anonymous&gt;)
      at VueComponent._callee3$ (http://localhost:3030/_nuxt/3.js:284:38)
      at tryCatch (http://localhost:3030/_nuxt/vendor.bundle.5559a1f55cb4b1323e8d.js:26549:40)
      at Generator.invoke [as _invoke] (http://localhost:3030/_nuxt/vendor.bundle.5559a1f55cb4b1323e8d.js:26787:22)
      at Generator.prototype.(anonymous function) [as next] (http://localhost:3030/_nuxt/vendor.bundle.5559a1f55cb4b1323e8d.js:26601:21)
      at step (http://localhost:3030/_nuxt/vendor.bundle.5559a1f55cb4b1323e8d.js:8714:30)
      at http://localhost:3030/_nuxt/vendor.bundle.5559a1f55cb4b1323e8d.js:8732:14
      at Promise (&lt;anonymous&gt;)
      at F (http://localhost:3030/_nuxt/vendor.bundle.5559a1f55cb4b1323e8d.js:8036:28)
      at VueComponent.&lt;anonymous&gt; (http://localhost:3030/_nuxt/vendor.bundle.5559a1f55cb4b1323e8d.js:8711:12)
  </code></pre>
  
  <p>What makes this error so weird? When I remove the api call, it works fine. This doesn't make any sense to me, because the api call has nothing to do with the array modification.</p>
  
  <p><strong>EDIT:</strong>
  This is insane, sometimes the error appears, and sometimes the splicing works just fine. This is the most random bug I've ever encountered.</p>
  
  <p><strong>EDIT2:</strong>
  When fetching the properties (and photos) I've already made an object copy of the graphql result:</p>
  
  <pre><code>async asyncData({ params }) {
      const fetchedProperty = await api.properties.findOne(params.id);
      return {
        oldProperty: fetchedProperty,
        property: Object.assign({}, fetchedProperty),
      };
    },
  </code></pre>