* Fix module loader crash on package.json without 'main' property
* Fix module loader crash on package.json that does not have main property.
* Revert sync-test change since it's being fixed in another PR.
* Fix a missing bracket on sync-test
* 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
* namespace napa.sync API proposal
* Update md files
* Sync lock implementation
* Use C++ implementation to make sure mutex get release when isolate terminated forcely
* Add optional parameters for passing-through
* Change params from ...rest to optional
* napa embeded building for linux
* polish building solution and readme.md
* napa runner
* add License
* change dir to napa-runner
* fix comments
* fix comments and add TODOs
* fix typo
This change addresses issue to make zone.execute on anonymous function more fluent. Also it made transported functions more secure, which can only access their own v8 contexts.
Detailed changes
Support require(path, script) to create module from string in Napa zone.
Introduce napa.v8.currentStack to get current stack.
Replace eval with creating a new module for transported function.
Use caller JS file + function hash as module id for transported function. As a result, transported function will use __dirname from caller.
Updated test files.
Notable comments
We always assume that the function passed to zone.execute without property origin is to use caller file as origin. This assumption makes most fluent usage for most cases, but if functions are defined in different file other than caller, this assumption will be broken. User can explicit specify `f.origin = __filename' in the file where f is defined to avoid issue.
Bug fixes
Issue: require.resolve should throw on non-existed path.
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.