Login  |  Packages  |  Support  |  Bugs

Return

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

Return

PRIVACY POLICY  |  CREDITS
Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Mar 21 17:05:02 2024 UTC
Bandwidth and hardware provided by: pair Networks