Comments (4)
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.
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.
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.
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)
- observable event handle not binding correctly to DOM HOT 4
- Define views in different instances of time HOT 6
- Issues with the 'sort'-extender.
- How to disable print log in the console for production mode? HOT 2
- Roadmap e.g. custom components, fixes HOT 3
- How can I use route GET?Thank you! HOT 2
- The push state is not working when I press back button from my browser. HOT 6
- Evaluation of index in 'for' loop for modified collection is sometimes incorrect HOT 4
- How can we use asset pipeline library with jsblocks server. HOT 3
- Can't import Jquery? HOT 2
- data-query set value to options not working in Chrome & Firefox HOT 3
- TypeError: undefined is not an object (evaluating 'e.$this=a[o]') HOT 3
- blocks enables XSS security breaches with enduser supplied data HOT 1
- How to use reuse HTML Tags? HOT 2
- Change buildsystem to wrap modules in selfexecuting closure. HOT 3
- Add a method to execute expressions for external libs. HOT 5
- Make models behavior for non obervable value consistent. HOT 4
- Prevent the {{expressions}} from showing up in the client at loading time HOT 5
- Is jsblocks a node only solution? HOT 2
- "Cannot read property 'children' of undefined" if static file have no dom HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jsblocks.