* Set/Clear Immedidate/Timeout/Interval.
* add test case for napa set/clear Immediate/Timeout/Interval.
* Fix build error on windows for Timer related.
* Fix timer queue loop wait too long on new urgent tasks.
More robust timer-test.
* More tolerant on timer scheduler error.
* Fix windows build break using node 6.
* Tolerant more on timer schedule error special in auto build environment.
* Using strick js function tradition in Binding export functions on timer.
* change module name from timer to timers.
* make timers a buildin module.
* Remove non-used code line caused by copy/paste
* Do not need varible arguments here when constructing Timeout.
* Free persistent handles saved for timers at correct time point.
* Add test program under misc/ to check the memory usage on timers.
* Fix build break under node 6 for v8 SetWeak api.
Free timer early when it is not used.
* Add condition on immediate where no timer is attached to Timeout.
* Remove release timer in advance.
* Reset to release persistent handle.
* Group timers test under napa/timers
* typo fix
* Add SchedulePhase to generalize immediate/normal task types and keep expansion for future.
* Remove internal memeroy test scripts
* Some name style changes according to review suggestions.
* modify unittest on worker schedule interface changed.
* Force node 8.9.4 to avoid auto build test tools fail on new node 8.10.0 temperately.
* Force windows build use node 8.9.4 to avoid 8.10.0 crash issue temperately.
* Force OSX build use node 8.9.4 to avoid node 8.10.0 crash issue temperately.
* Run timer related test in another standalone mocha.
So that timer scheduler error not affected by other tests.
* revert back node version related changes.
* fix commandline issue on windows
* Force OSX build use node 8.9.4 to avoid node 8.10.0 crash issue temperately.
* revert osx node version on 8.9.4
* working 1
* working binding build 2
* remove static function getzoneScheduler
* Hide CallbackTask inside cpp. Add more comments. And some other modifications according to review.
* Refactor the napa-bingding build related changes. Do not add any
timers logic into napa-binding.node, so original build works without
add the timer-warpper.cpp into its source.
* fix typo in comments.
* 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
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.