Coder Social home page Coder Social logo

Comments (4)

astoilkov avatar astoilkov commented on September 2, 2024

I have fixed the issue. Actually the relevant code is in the jscore repo repo. Here is the relevant commit:
https://github.com/astoilkov/jscore/commit/6acf89ef6a10463b39d0cef7a52958a063cc7dd4

from jsblocks.

abozhilov avatar abozhilov commented on September 2, 2024

This fixes the particular issue with infinite recursion, but it doesn't fix the problems with super. Now if you have the following prototype chain:

A ->
  method 
B ->
  method - call super method
C -> there is no definition of method
D -> 
  method - call super method

Now you will have two calls of B->method according to your fix.

Next bug: indirect recursion is impossible with that approach:

A -> 
    method - which calls this.test()
B -> 
   method 
   test - calls this.super('method') 

Even this is stupid design the proper implementation of super should work as expected. Better leave this super implementation, JS has good enough approach for invoking "super" methods, constructors.

from jsblocks.

astoilkov avatar astoilkov commented on September 2, 2024

You are correct. I was actually using this in way simpler ways internally. Do you have any suggestions for fixing the problem? If not I will remove the method for now.

from jsblocks.

abozhilov avatar abozhilov commented on September 2, 2024

From what I know, there is no sophisticated approach of this.super in JS. All of the approaches suffer either from too much memory consumption and redundancy or buggy implementation. The best decision is to remove that from your API. IIRC ES6 comes with classes and super implementation.

from jsblocks.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.