Changelog for v8js |
Release |
What has changed? |
2.1.2 |
- support PHP 7.4
- support V8 8.x
- pass pointer to (char*) instead of (zend_string*) to spprintf (issue #431)
- improve README |
2.1.1 |
- support PHP 7.3
- support V8 7.x (now V8 > 6.9 is required)
- fix module path normaliser (issue #349)
- fix export bug w/ multiple derived classes (issue #410) |
2.1.0 |
- emit warning when compiling against V8 without untrusted code mitigations
- support native modules (i.e. expose PHP objects via require('...')) |
2.0.0 |
Backward-incompatible changes
-----------------------------
- normal script execution shares its context with modules now (like on Node.js)
- expose a "global" symbol that references the global scope (like on Node.js)
- modules may return arbitrary values (not just objects; now like on Node.js)
- pick up exports from "module.exports" also (like on Node.js)
- handle exceptions thrown in module loader/normaliser like in other PHP scopes called from JS
(i.e. by default terminate execution, optionally propagate to JS side)
V8Js' modules vastly behave like Node.js modules now \o/
- php.ini option v8js.compat_php_exceptions has been removed
Deprecations
------------
- V8Js::registerExtension and V8Js::getExtensions are now deprecated, use snapshots instead
- likewise passing $extensions to V8Js::__construct
- V8Js::getPendingException and and V8Js::clearPendingException are deprecated, use try/catch
- likewise passing $report_uncaught_exceptions !== true to V8Js::__construct
Improvements
------------
- add documentation on heap snapshots
Bugfixes
--------
- fix build on Windows with VS2017 (thanks @Jan-E)
- fix enumeration of methods on V8 6.3 |
1.4.1 |
- omit usage of deprecated V8 API (#311)
- fix build against V8 version 6.0 (#313)
- don't clean properties hash while it is iterated (#316)
- fix build against PHP 7.2 |
1.4.0 |
Correctly initialize V8's ICU component
- path to libv8 library is now baked into the library to find icudtl.dat file
- if icudtl.dat file is moved after compile time, set v8js.icudtl_dat_path php.ini variable |
1.3.6 |
Bugfixes
- fix compilation with GCC7 (include necessary headers)
- fix build with recent V8 5.9 versions (libv8_libplatform not found)
- adapt exception_start_column.phpt test to changed output of recent V8 5.9 versions
- fix compilation with PHP 7.1.3
Refactorings
- drop TSRM stuff unneeded since PHP 7
- remove unused variables
- make memory_limit a size_t internally (and throw if negative values are provided on PHP interface) |
1.3.5 |
- Fix long vs. zend_long issues on x64 Windows |
1.3.4 |
- Bugfix: Reset fatal_error_abort on RSHUTDOWN
- Improve auto configuration (V8 detection)
- Improve build instructions on Linux & Windows |
1.3.3 |
- fix detection of libv8_libbase.a during configuration
- fix license URIs in package.xml |
1.3.2 |
- fix reference counting issue (and hence use-after-free memory error)
- fix another use-after-free issue with registerExtension
- fix build against PHP 7.1 (beta)
- correctly export reference-type variables to JavaScript |
1.3.1 |
Fix build against V8 5.3.337 (and higher) |
0.6.4 |
Fix build against V8 5.3.337 (and higher) |
1.3.0 |
This release merges changes from V8Js for PHP 5.x (version 0.6.3) to PHP 7.0 branch.
New Features
- Allow to adjust the considered "amount of external memory" by objects exported to V8
Bug Fixes
- Pass back V8Object instances, don't re-wrap
- Retain object identity on 'return $this'
- Retain object identity on JS-side 'return this'
- Send LowMemoryNotification signals to V8 before imposing memory limit
- Fix build against V8 version 5.2 (deprecated WeakCallbackInfo & GetHiddenValue et al)
- Improve/Clarify README
Code Cleanup
- Removed support for "old-age" V8 versions (i.e. V8 < 4.6.76)
- Removed old examples and pre-phpt test script |
0.6.3 |
Bug Fixes
- Send LowMemoryNotification signals to V8 before imposing memory limit
- Fix build against V8 version 5.2 (deprecated WeakCallbackInfo & GetHiddenValue et al)
- Improve/Clarify README
Code Cleanup
- Removed support for "old-age" V8 versions (i.e. V8 < 4.6.76)
- Removed old examples and pre-phpt test script |
0.6.2 |
- Pass back V8Object instances, don't re-wrap
- Retain object identity on 'return $this'
- Retain object identity on JS-side 'return this' |
0.6.1 |
- Fix configuration on MacOS platform |
0.6.0 |
- Allow to adjust the considered "amount of external memory" by objects exported to V8 |
1.2.0 |
- allow to pass generators from PHP to JS and vice versa
Merge improvements from V8Js for PHP 5.x (version 0.5.0) to PHP 7.0 branch:
- Export public methods on classes derived from \V8Js to V8
- Support V8 compiled with external snapshots
- Allow to create custom snapshots of V8 heaps
- Allow to create V8 contexts based on custom snapshots generated earlier
- Support V8 5.1 well |
0.5.0 |
- Export public methods on classes derived from \V8Js to V8
- Support V8 compiled with external snapshots
- Allow to create custom snapshots of V8 heaps
- Allow to create V8 contexts based on custom snapshots generated earlier
- Support V8 5.1 well |
1.1.0 |
- fix build on Windows with Visual Studio 2015
- use libv8_platform on Windows
- fix double free on object export
- fix use after free regarding pending exceptions
- fix memory leaks on bailouts caused in V8 contexts
- don't abort PHP process on fatal V8 error (but trigger a warning instead)
This release also merges in new features from V8Js 0.4.0, namely
- Improve -Wno-c++11-narrowing/-Wno-narrowing flag detection (clang/gcc5 support)
- Added ability to set properties on V8Function
- CommonJS modules now have access to V8Js' var_dump function
- V8JsScriptExtensions now reference the normalised module id (instead of just "require")
- fatal PHP errors triggered in setModuleLoader callback are now handled gracefully
- setModuleLoader callback is now allowed to return an empty string as source of module
- V8Js' internal module path normalisation may now be overrode using setModuleNormaliser |
0.4.1 |
- Fix PHP.var_dump output on regexp objects (for consistency over all V8 versions)
- Fix "this" on V8Object method invocations |
0.4.0 |
- Improve -Wno-c++11-narrowing/-Wno-narrowing flag detection (clang/gcc5 support)
- Added ability to set properties on V8Function
- CommonJS modules now have access to V8Js' var_dump function
- V8JsScriptExtensions now reference the normalised module id (instead of just "require")
- fatal PHP errors triggered in setModuleLoader callback are now handled gracefully
- setModuleLoader callback is now allowed to return an empty string as source of module
- V8Js' internal module path normalisation may now be overrode using setModuleNormaliser |
1.0.0 |
First PHP 7 release |
0.3.0 |
- Fix multi-threading with pthreads extension
- Remove v8 debug agent support (which is unsupported by V8 since 3.28.4) |
0.2.6 |
- Fix reference counting issue on PHP->JS->PHP exception propagation |
0.2.5 |
- Stop JS execution on PHP exceptions (instead of continuing silently)
- Allow propagation of PHP exceptions to JS context (disabled by default)
- Add v8js.compat_php_exceptions php.ini switch to switch previous behaviour back on |
0.2.4 |
- Fix memory leak with repeated Array exports from PHP to JS |
0.2.3 |
- Fix FLAG_FORCE_ARRAY affecting V8Function objects
- Fix memory leak with repeated calls of methods on exported PHP objects |
0.2.2 |
- Fix CommonJS module caching
- Fix use-after-free issue on CommonJS module reuse
- Fix memory leaks in CommonJS module loader
- Fix memory leak regarding lost script resources (compileScript call et al)
- Improve V8Function call performance |
0.2.1 |
- adapt to latest v8 API (v8 versions from 3.24.6 up to latest 4.6 branch supported now)
- fixed FLAG_FORCE_ARRAY behaviour regarding property assignments
- properly stop (and restart) timer thread (for memory & cpu limits)
- fixed crash on failed module bootstrapping |
0.2.0 |
- adapt to latest v8 API (v8 versions from 3.24.6 up to latest 4.3 branch supported now)
- v8 debugging support
- apply time & memory limits to V8Function calls
- support mapping of PHP objects implementing ArrayAccess to native arrays
- new API to set limits: setTimeLimit & setMemoryLimit methods on V8Js object
- typesafe JavaScript function wrappers
- improved back-and-forth object passing (rewrapping, correcty isolate unlocking)
- fix property and method visibility issues
- fix memory leaks |
0.1.5 |
- Fix package |
0.1.4 |
- Added time/memory limit support
- Moved to The MIT License (MIT) |
0.1.3 |
- Fixed build in PHP 5.4+
- Fixed bug #59553 (can't build due to missing class member) |
0.1.2 |
- Removed unnecessary notice added to registerExtension() in previous release |
0.1.1 |
- Fixed crash bug in setting v8.flags ini directive.
- Added notice to registerExtension() if trying to use it when V8 is already initialized. |
0.1.0 |
- Initial PECL release |