<h3 dir="auto">Version</h3>
<p dir="auto">2.6.11</p>
<h3 dir="auto">Reproduction link</h3>
<p dir="auto"><a href="https://jsfiddle.net/cdzos023/" rel="nofollow">https://jsfiddle.net/cdzos023/</a></p>
<h3 dir="auto">Steps to reproduce</h3>
<p dir="auto">See fiddle.</p>
<hr>
<p dir="auto">Since upgrading to Vue 3 is not currently a viable option, I perform a small hack to make my class (which is a subclass of Array) reactive while maintaining its identity. This, however, results in an error when I try to call <code class="notranslate">sort</code> on it.</p>
<p dir="auto">A simple fix could be checking if <code class="notranslate">ob</code> is defined before attempting to access any of its members.<br>
</p><div class="Box Box--condensed my-2">
  <div class="Box-header f6">
    <p class="mb-0 text-bold">
      <a href="https://github.com/vuejs/vue/blob/e7cf0634f59d0edd472c48792e371b91a8c55af7/src/core/observer/array.js#L40">vue/src/core/observer/array.js</a>
    </p>
    <p class="mb-0 color-fg-muted">
         Line 40
      in
      <a data-pjax="true" class="commit-tease-sha" href="/vuejs/vue/commit/e7cf0634f59d0edd472c48792e371b91a8c55af7">e7cf063</a>
    </p>
  </div>
  <div itemprop="text" class="Box-body p-0 blob-wrapper blob-wrapper-embedded data">
    <table class="highlight tab-size mb-0 js-file-line-container" data-tab-size="8" data-paste-markdown-skip="">

        <tbody><tr class="border-0">
          <td id="L40" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="40"></td>
          <td id="LC40" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line"> <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">inserted</span><span class="pl-kos">)</span> <span class="pl-s1">ob</span><span class="pl-kos">.</span><span class="pl-en">observeArray</span><span class="pl-kos">(</span><span class="pl-s1">inserted</span><span class="pl-kos">)</span> </td>
        </tr>
    </tbody></table>
  </div>
</div>
<br>
<div class="Box Box--condensed my-2">
  <div class="Box-header f6">
    <p class="mb-0 text-bold">
      <a href="https://github.com/vuejs/vue/blob/e7cf0634f59d0edd472c48792e371b91a8c55af7/src/core/observer/array.js#L42">vue/src/core/observer/array.js</a>
    </p>
    <p class="mb-0 color-fg-muted">
         Line 42
      in
      <a data-pjax="true" class="commit-tease-sha" href="/vuejs/vue/commit/e7cf0634f59d0edd472c48792e371b91a8c55af7">e7cf063</a>
    </p>
  </div>
  <div itemprop="text" class="Box-body p-0 blob-wrapper blob-wrapper-embedded data">
    <table class="highlight tab-size mb-0 js-file-line-container" data-tab-size="8" data-paste-markdown-skip="">

        <tbody><tr class="border-0">
          <td id="L42" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="42"></td>
          <td id="LC42" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line"> <span class="pl-s1">ob</span><span class="pl-kos">.</span><span class="pl-c1">dep</span><span class="pl-kos">.</span><span class="pl-en">notify</span><span class="pl-kos">(</span><span class="pl-kos">)</span> </td>
        </tr>
    </tbody></table>
  </div>
</div>
<p></p>
<h3 dir="auto">Version</h3>
<p dir="auto">2.5.21</p>
<h3 dir="auto">Reproduction link</h3>
<p dir="auto"><a href="https://codepen.io/AmrIKhudair/pen/NevxML" rel="nofollow">https://codepen.io/AmrIKhudair/pen/NevxML</a></p>
<h3 dir="auto">Steps to reproduce</h3>
<p dir="auto">1- create a class extending Array and add a custom method<br>
2- instantiate a new instance of the class and add it to data<br>
3- try to call the method on the instance in the template</p>
<h3 dir="auto">What is expected?</h3>
<p dir="auto">The method is successfully executed</p>
<h3 dir="auto">What is actually happening?</h3>
<p dir="auto">Error not a function</p>