* transport-fallback one pager
* refine the design doc
* fix typos
* prototype of v8-transport-helper
* builtin types transporter
* resolve some comments
* Update transport-js-builtins.md
* Update transport-js-builtins.md
* resolve comments
* add NAPA_API for transportutils methods
* in order to retrieve v8::Value(De)Serilaizer::Delegate symbols correctly, make SerializeValue / DesrializeValue non-static
* Disable rtti for compatibility with node and v8
* make v8-extensions a static lib to use -fno-rtti
* restrict v8-extensions lib building by v8 version
* add -fPIC to build v8-extensions for linux
* include stdlib.h explicitly for malloc/free/realloc
* .cc to .cpp under src/v8-extensions
1. Linux and Mac support
2. Fixed memory leak on TransportContextWrap and CallContextWrap.options
3. Fixed race condition in StoreWrap
4. Added examples/tutorial
5. Documentation tuning
6. Continuous integration with Travis CI
Now zone.broadcast/execute can run in linux.
Remaining issues in mocha tests:
1) Random failure for __napa_zone_call__ not found.
2) TS transcompiled code for await/async will make mocha stuck.
This change fixes transport.register on addon Init, with a few tuning and adding tests.
Detailed changes are:
1) Support module.require in Napa.
2) Support C++ accessibility to napa binding.
3) Remove non-transportable, as any object is not transportable is non-transportable.
4) Refine Store API.
5) Add tests for memory and transport.
This makes us export only one napa.dll, i.e. we don't need to publish multiple v8 related dlls. It's using v8 libraries built from node.js sources. There are two big reasons why node.js is the base, not v8. One is that NAN is based on node, not no v8. The other is that node.js building procedure is much simpler than v8. (it's much complicated to make v8 static library with dynamic runtime and with exporting all APIs.).
I described how to build v8 libraries from node.js sources at vanilla\deps\README.md and published Napa.V8.Library into Nuget repository.
1. Enable generation of d.ts file. (winery needs this)
2. For memory/transport folder, decouple from dependency on addon.
3. Call transport.Register in C++ instead of additional JS call.
- Module loader handle only built-in modules.
- All built-in modules move under core module since they also can be loaded by require().
- Each module type has its own module loader class.
- Doesn't support require('module', 'javascript string') extension any more.
- Clean up unit tests using incompatible node.js require.