title: Uncaught TypeError: Class extends value #<Object> is not a constructor or null
body: <p>My code works with all the other modules but JBehaviour is giving me this problem and idk what im doing wrong because it seems like I did everything right</p>
  
  <blockquote>
    <p>Full Error: 
    Uncaught TypeError: Class extends value # is not a constructor or null
    at Object. (C:\Users\etern\Documents\GameEngine\src\engine\classes\JBehaviour.js:3)
    at Object. (C:\Users\etern\Documents\GameEngine\src\engine\classes\JBehaviour.js:11)</p>
  </blockquote>
  
  <p><strong>test_game.js</strong></p>
  
  <pre class="lang-js prettyprint-override"><code>const {Vector2, GameObject, Rigidbody2d, JBehaviour, Input} = require('./Core')
  </code></pre>
  
  <p><strong>Core.js</strong></p>
  
  <pre class="lang-js prettyprint-override"><code>//Structs
  const Vector2 = require('./structs/Vector2')
  
  //Classes
  const GameObject = require('./classes/GameObject')
  const Rigidbody2d = require('./classes/Rigidbody2d')
  const JBehaviour = require('./classes/JBehaviour')
  const Input = require('./classes/Input')
  
  
  module.exports = {Vector2, GameObject, Rigidbody2d, JBehaviour, Input}
  </code></pre>
  
  <p><strong>JBehaviour.js</strong></p>
  
  <pre class="lang-js prettyprint-override"><code>    const Behaviour = require('./Behaviour')
  
  class JBehaviour extends Behaviour{
      constructor(){
          super('JBehaviour')
      }
  }
  
  
  module.exports = JBehaviour
  </code></pre>
  
  <p><strong>Behaviour.js</strong></p>
  
  <pre class="lang-js prettyprint-override"><code>const Component = require('./Component')
  
  class Behaviour extends Component{
      constructor(name){
          super(name)
          this.enabled = true
      }
  }
  </code></pre>
  
  <p><strong>Component.js</strong></p>
  
  <pre class="lang-js prettyprint-override"><code>const OBJ = require('./Object')
  class Component extends OBJ {
      constructor(name){
          super(name)
          this.gameObject = null
          this.tag = null
          this.transform = null
      }
  
      AssignGameObject(gameObject){
          this.gameObject = gameObject
          this.tag = gameObject.tag
          this.transform = gameObject.transform
      }
  
      CompareTag(tag){
  
          return (this.tag === tag)
      }
  }
  
  module.exports = Component
  </code></pre>
  
  <p><strong>Object.js</strong></p>
  
  <pre class="lang-js prettyprint-override"><code>class OBJ{
      constructor(name){
          this.name = name
      }
  
      static Destroy(object){
          delete object.name
      }
  
      static Instantiate(original){
  
          return new OBJ(original.name)
      }
  
      ToString(){
  
          return toString(this.name)
      }
  }
  
  module.exports = OBJ
  </code></pre>