Giter Club home page Giter Club logo

Comments (9)

kphillisjr avatar kphillisjr commented on May 27, 2024 1

Might want to add "Embed JavaScript functions in C/C++"... This may not be used very often, but there is cases where the implementation of a function is a lot easier to use JavaScript than it is C/C++.

// This is the toString function defined using JavaScript, 
// but is embedded in C/C++ code.
function toString() {
  return `Point (${this.x}, ${this.y}, ${this.z})`
}

from chakracore-wiki.

liminzhu avatar liminzhu commented on May 27, 2024

NOTE: new edits to the list will be added to the main post instead of to this comment.

Good input. I think I've done all of those in this sample, but some documentation with small code snippets would've been more helpful. I'll look into it when I'm free.

Creating a list of topics,

  • Expose native functions / external objects to JavaScript
  • Handle object lifetime
  • Implement a simple event-loop and task queue + using promises in JSRT
  • Script serialization with lazy source loading
  • Resource throttling
  • Define non-writable property from C/C++(a.k.a. using descriptor)
  • Define C/C++ Getter and Setter
  • TypedArray handling in C/C++

Edited:
Add some stuff per microsoft/Chakra-Samples#51 @kphillisjr

from chakracore-wiki.

jaredwy avatar jaredwy commented on May 27, 2024

Something that would provide a lot of value. Something quiet common is how to wrap a c++ object so it is accessible from js.

Something similar to https://chromium.googlesource.com/v8/v8/+/master/samples/process.cc would be good.

from chakracore-wiki.

liminzhu avatar liminzhu commented on May 27, 2024

Yeah. I think this one (I added "external objects" just now) on my list would help,

Expose native functions / external objects to JavaScript

from chakracore-wiki.

jaredwy avatar jaredwy commented on May 27, 2024

Great :)

from chakracore-wiki.

dilijev avatar dilijev commented on May 27, 2024

Updated list in the main post so we get the progress meter from the issues page as we complete these items.

from chakracore-wiki.

jaredwy avatar jaredwy commented on May 27, 2024

@dilijev It would be good to call out that the samples should be accessible cross platform as well as just windows. The opengl sample is great, but uses some windows only features.

from chakracore-wiki.

dilijev avatar dilijev commented on May 27, 2024

@jaredwy -- Makes sense. For the APIs that are xplat-compatible, the samples should be xplat-compatible. But because they are example snippets, they might not compile on their own without setting up a project like the samples do. Short samples in documentation will not be perfect and super easy, but may be possible to copy-paste into an existing project.

For the Windows-only APIs, they'll obviously only work on Windows. There are a few of these.

from chakracore-wiki.

jaredwy avatar jaredwy commented on May 27, 2024

@dilijev Yup. It would be good just to avoid things like JSPointerToString and JsGetPropertyNameFromId even in projects that are windows only and c++. That is what threw me the most. I was using the opengl sample as a guide and ended up being thrown when attempting to compile copy and pasted code :)

from chakracore-wiki.

Related Issues (16)

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.