Comments (5)
which branch are you using? v2/sharedptr or v1? either way, some things ive learned:
expose base classes first (for inheritance and if your class returns another class). for example:
class a returns class b ptr, but class b was defined after class a. in this case i seem to get a compile error. in the v2 branch, you have to make sure your class ptr to expose has the base class:
class MyClass : public qjs::enable_shared_from_this<MyClass>
however, I guess this is incomplete (as theres a todo comment on this class) and I have to do a hack to get my existing native ptr exposed to quickjs:
this->nativeObject.shared_this.ctx = qjsCtx.ctx;
this->nativeObject.shared_this.reset<NativeObjectClass>(&this->nativeObject);
then it all works. without the above hack, the code compiles but acecssing var.nativeObject
returns null. I guess this is because in my case I created the native object outside of the script context. I haven't seen any example of how to do this properly in the code for v2. Previously in v1 itd just work aslong as the class was defined.
@ftk any thoughts here would be appreciated
from quickjspp.
Coming back to this after some time. ok, more than some time!
I'm not able to make any/all of my classes inherit from qjs::enable_shared_from_this<T>
. This is because the classes are not exclusive to quickjs. They are used natively (c++) in some projects, and are exposed to quickjs in others.
Is there a way around this?
from quickjspp.
@projectitis I'm like you, is there any solution?
from quickjspp.
@luodaoyi I haven't found one yet. Have paused this project for now :(
from quickjspp.
@projectitis Me too , I have to change script solution to others :(
I think it is unsolvable. Because the js engine needs to manage the life cycle of objects.
from quickjspp.
Related Issues (20)
- Binding a void* property causes wrap/unwrap linkage error HOT 2
- Binding a callback (std::function) causes runtime error HOT 11
- How to implement a variadic (const) compound type for List and Map
- Number of arguments are not checked when calling a function HOT 1
- Support of `make install`...?
- Share Value between contexts HOT 1
- 'this' is undefined when calling static JS class method from C++ HOT 2
- how to resolve "The property "PUBLIC_HEADER" is not allowed"
- Updated MSVC branch HOT 5
- Does QuickJS support multithreading?
- Simpler way to call js_init_module_os() HOT 2
- JavaScript inheritance from C++ class HOT 1
- How to implement js_traits<std::unique_ptr>? HOT 1
- How do I export all the classes in a module?
- Will this project continue to update?
- MSVC cannot find qjs::rest HOT 1
- Test cases of QuickJS execution failed HOT 2
- std::variant and JS null HOT 2
- Optional arguments HOT 2
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 quickjspp.