Skip to content

Commit 5cba44c

Browse files
committed
Merge remote-tracking branch 'origin/master' into php7
Conflicts: README.md v8js.cc v8js_class.cc v8js_exceptions.cc v8js_object_export.cc v8js_v8.cc v8js_v8object_class.cc
2 parents 111951f + c767977 commit 5cba44c

28 files changed

+928
-208
lines changed

Makefile.frag

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@ ifneq (,$(realpath $(EXTENSION_DIR)/json.so))
33
PHP_TEST_SHARED_EXTENSIONS+=-d extension=$(EXTENSION_DIR)/json.so
44
endif
55

6+
# add pthreads extension, if available
7+
ifneq (,$(realpath $(EXTENSION_DIR)/pthreads.so))
8+
PHP_TEST_SHARED_EXTENSIONS+=-d extension=$(EXTENSION_DIR)/pthreads.so
9+
endif
10+
611
testv8: all
712
$(PHP_EXECUTABLE) -n -d extension_dir=./modules -d extension=v8js.so test.php
813

README.Win32.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ svn co http://src.chromium.org/svn/trunk/deps/third_party/cygwin@66844 third_par
5252
svn co http://googletest.googlecode.com/svn/trunk testing/gtest --revision 643
5353
svn co http://googlemock.googlecode.com/svn/trunk testing/gmock --revision 410
5454
55-
python build\gyp_v8 -Dcomponent=shared_library
55+
python build\gyp_v8 -Dcomponent=shared_library -Dv8_use_snapshot=0
5656
"\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.com" /build Release build/All.sln
5757
```
5858

@@ -97,9 +97,9 @@ mkdir vc12\x86\deps\lib
9797
and unpack to below `\php-sdk\phpdev\vc12\x86`
9898
* from `\v8\build\Release\lib` copy `icui18n.lib`, `icuuc.lib` and `v8.lib`
9999
to deps\lib folder
100-
* from `\v8\include copy` all v8*.h files to deps\include folder
101-
* within the PHP source code folder create a sub-directory named `pecl`
102-
* download V8Js and unpack it into a seperate directory below the `pecl` folder
100+
* from `\v8\include` copy all v8*.h files to deps\include folder
101+
* download V8Js and unpack it into a separate directory below `ext` folder
102+
* make sure `config.w32` file inside that folder defines version of the compiled v8
103103

104104
(still in "VS2013 x86 Native Tools Command Prompt")
105105

README.md

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ of this repository.
1717
Minimum requirements
1818
--------------------
1919

20-
- V8 Javascript Engine library (libv8) master <https://github.com/v8/v8/> (trunk)
20+
- V8 Javascript Engine library (libv8) master <https://github.com/v8/v8-git-mirror> (trunk)
2121

2222
V8 is Google's open source Javascript engine.
2323
V8 is written in C++ and is used in Google Chrome, the open source browser from Google.
@@ -26,7 +26,7 @@ Minimum requirements
2626

2727
- PHP 7.0.0+
2828

29-
This embedded implementation of the V8 engine uses thread locking so it should work with ZTS enabled.
29+
This embedded implementation of the V8 engine uses thread locking so it works with ZTS enabled.
3030

3131

3232
Compiling latest version
@@ -55,6 +55,7 @@ class V8Js
5555

5656
const FLAG_NONE = 1;
5757
const FLAG_FORCE_ARRAY = 2;
58+
const FLAG_PROPAGATE_PHP_EXCEPTIONS = 4;
5859

5960
const DEBUG_AUTO_BREAK_NEVER = 1;
6061
const DEBUG_AUTO_BREAK_ONCE = 2;
@@ -304,3 +305,28 @@ PHP Objects implementing ArrayAccess, Countable
304305
The above rule that PHP objects are generally converted to JavaScript objects also applies to PHP objects of `ArrayObject` type or other classes, that implement both the `ArrayAccess` and the `Countable` interface -- even so they behave like PHP arrays.
305306

306307
This behaviour can be changed by enabling the php.ini flag `v8js.use_array_access`. If set, objects of PHP classes that implement the aforementioned interfaces are converted to JavaScript Array-like objects. This is by-index access of this object results in immediate calls to the `offsetGet` or `offsetSet` PHP methods (effectively this is live-binding of JavaScript against the PHP object). Such an Array-esque object also supports calling every attached public method of the PHP object + methods of JavaScript's native Array.prototype methods (as long as they are not overloaded by PHP methods).
308+
309+
Exceptions
310+
==========
311+
312+
If the JavaScript code throws (without catching), causes errors or doesn't
313+
compile, `V8JsScriptException` exceptions are thrown unless the `V8Js` object
314+
is constructed with `report_uncaught_exceptions` set `FALSE`.
315+
316+
PHP exceptions that occur due to calls from JavaScript code by default are
317+
*not* re-thrown into JavaScript context but cause the JavaScript execution to
318+
be stopped immediately and then are reported at the location calling the JS code.
319+
320+
This behaviour can be changed by setting the `FLAG_PROPAGATE_PHP_EXCEPTIONS`
321+
flag. If it is set, PHP exception (objects) are converted to JavaScript
322+
objects obeying the above rules and re-thrown in JavaScript context. If they
323+
are not caught by JavaScript code the execution stops and a
324+
`V8JsScriptException` is thrown, which has the original PHP exception accessible
325+
via `getPrevious` method.
326+
327+
V8Js versions 0.2.4 and before did not stop JS code execution on PHP exceptions,
328+
but silently ignored them (even so succeeding PHP calls from within the same piece
329+
of JS code were not executed by the PHP engine). This behaviour is considered as
330+
a bug and hence was fixed with 0.2.5 release. Nevertheless there is a
331+
compatibility php.ini switch (`v8js.compat_php_exceptions`) which turns previous
332+
behaviour back on.

package.xml

Lines changed: 124 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,19 @@
1616
<email>stesie@php.net</email>
1717
<active>yes</active>
1818
</lead>
19-
<date>2015-07-26</date>
20-
<time>00:04:15</time>
19+
<date>2015-09-26</date>
20+
<time>12:31:47</time>
2121
<version>
22-
<release>0.2.1</release>
23-
<api>0.2.1</api>
22+
<release>0.2.6</release>
23+
<api>0.2.6</api>
2424
</version>
2525
<stability>
2626
<release>beta</release>
2727
<api>beta</api>
2828
</stability>
2929
<license uri="http://www.php.net/license">The MIT License (MIT)</license>
3030
<notes>
31-
- adapt to latest v8 API (v8 versions from 3.24.6 up to latest 4.6 branch supported now)
32-
- fixed FLAG_FORCE_ARRAY behaviour regarding property assignments
33-
- properly stop (and restart) timer thread (for memory &amp; cpu limits)
34-
- fixed crash on failed module bootstrapping
31+
- Fix reference counting issue on PHP-&gt;JS-&gt;PHP exception propagation
3532
</notes>
3633
<contents>
3734
<dir baseinstalldir="/" name="/">
@@ -69,8 +66,15 @@
6966
<file baseinstalldir="/" md5sum="72f2ffb206047d5918d4eb5f32284e3c" name="tests/checkstring_compile.phpt" role="test" />
7067
<file baseinstalldir="/" md5sum="0e6c4098d0f370b2fa8f433ab6026c6a" name="tests/closures_basic.phpt" role="test" />
7168
<file baseinstalldir="/" md5sum="1f5c7e8895220923d0203653fbebfc6f" name="tests/closures_dynamic.phpt" role="test" />
69+
<file baseinstalldir="/" md5sum="50f7ba3626131cf015e26b7dc296d20d" name="tests/commonjs_caching_001.phpt" role="test" />
70+
<file baseinstalldir="/" md5sum="9bcac28a73d4d274c0e62802fd7af96b" name="tests/commonjs_caching_002.phpt" role="test" />
7271
<file baseinstalldir="/" md5sum="90c628544fa6f401221237511a9a4fb7" name="tests/commonjs_modules.phpt" role="test" />
7372
<file baseinstalldir="/" md5sum="24e2a74c0d15b94cbcdc926d1e19af0c" name="tests/commonjs_multiassign.phpt" role="test" />
73+
<file baseinstalldir="/" md5sum="1d7a8f251186c47ce92fe7b1fbb0abc0" name="tests/commonjs_normalise_001.phpt" role="test" />
74+
<file baseinstalldir="/" md5sum="3d705ba0a7c22a73be170c9bae2303ba" name="tests/commonjs_normalise_002.phpt" role="test" />
75+
<file baseinstalldir="/" md5sum="8e0e5d784e6f7f896dcc94acbf909bbc" name="tests/commonjs_normalise_003.phpt" role="test" />
76+
<file baseinstalldir="/" md5sum="b573c7fa2e53c8d20eb88dfb747811fc" name="tests/commonjs_normalise_004.phpt" role="test" />
77+
<file baseinstalldir="/" md5sum="e9eb81a3065e2858d79fb772e837982c" name="tests/commonjs_normalise_005.phpt" role="test" />
7478
<file baseinstalldir="/" md5sum="6980e6a4c02cf3de87c0eab762fe2a69" name="tests/compile_string.phpt" role="test" />
7579
<file baseinstalldir="/" md5sum="177659c1f2be8fb1b018341f896b7cd6" name="tests/compile_string_isolate.phpt" role="test" />
7680
<file baseinstalldir="/" md5sum="bf4fed6b841034477cb61e3303fb1362" name="tests/construct.phpt" role="test" />
@@ -88,7 +92,7 @@
8892
<file baseinstalldir="/" md5sum="7da1f96584a7ed1edd19c73dd80f01d6" name="tests/exception.phpt" role="test" />
8993
<file baseinstalldir="/" md5sum="1942e8949e4b323d6ef92aef92334103" name="tests/exception_clearing.phpt" role="test" />
9094
<file baseinstalldir="/" md5sum="446308298f2562a0dd7779486fa561aa" name="tests/exception_propagation_1.phpt" role="test" />
91-
<file baseinstalldir="/" md5sum="74026d3872c248782bf98dcc8e05ef41" name="tests/exception_propagation_2.phpt" role="test" />
95+
<file baseinstalldir="/" md5sum="fafb380c87c0241f18fc4b5d318b282f" name="tests/exception_propagation_2.phpt" role="test" />
9296
<file baseinstalldir="/" md5sum="f90813f9ac47107b4630461816ad6221" name="tests/exception_propagation_3.phpt" role="test" />
9397
<file baseinstalldir="/" md5sum="cf4ef4abb30a47214e7f368b378f54a8" name="tests/exception_start_column.phpt" role="test" />
9498
<file baseinstalldir="/" md5sum="8ed403ca3798d987b0f29e0132c7686f" name="tests/execute_flags.phpt" role="test" />
@@ -111,7 +115,9 @@
111115
<file baseinstalldir="/" md5sum="7d240e23d061f59599109cc679084da4" name="tests/has_property_after_dispose.phpt" role="test" />
112116
<file baseinstalldir="/" md5sum="1443aef2fda8793abd79c06a29639797" name="tests/inheritance_basic.phpt" role="test" />
113117
<file baseinstalldir="/" md5sum="afdb74aca312497cce114a8d9dba6ee9" name="tests/issue_116-v8function-injection.phpt" role="test" />
114-
<file baseinstalldir="/" md5sum="422d9e9af28d9c7e8042bbf9496fc04c" name="tests/issue_127_001.phpt" role="test" />
118+
<file baseinstalldir="/" md5sum="6d4e573daaf2ca5c177230541c31fc96" name="tests/issue_127_001.phpt" role="test" />
119+
<file baseinstalldir="/" md5sum="3ff639cdb2f80e8b0a256aa12fce9c5d" name="tests/issue_156_001.phpt" role="test" />
120+
<file baseinstalldir="/" md5sum="858c759b267b903dcdd65b5f208dc07f" name="tests/issue_160_basic.phpt" role="test" />
115121
<file baseinstalldir="/" md5sum="9f1e697d63231a03da06de97c14a5076" name="tests/js-construct-basic.phpt" role="test" />
116122
<file baseinstalldir="/" md5sum="0e951523a9abae08b531ecd3193a2581" name="tests/js-construct-direct-call.phpt" role="test" />
117123
<file baseinstalldir="/" md5sum="7733d7eb9693e1c799a3d071a7804b13" name="tests/js-construct-protected-ctor.phpt" role="test" />
@@ -129,6 +135,13 @@
129135
<file baseinstalldir="/" md5sum="ed1d6d0aafe39f41545c375507507564" name="tests/object_passback.phpt" role="test" />
130136
<file baseinstalldir="/" md5sum="95e8658755180e9dc7533c0ed4d61bb2" name="tests/object_prototype.phpt" role="test" />
131137
<file baseinstalldir="/" md5sum="732770da7b148dcb702894dcb9462674" name="tests/object_reuse.phpt" role="test" />
138+
<file baseinstalldir="/" md5sum="e49bb15778697eea7d717de4cfc0c385" name="tests/php_exceptions_001.phpt" role="test" />
139+
<file baseinstalldir="/" md5sum="bc07bbc424d078d3d0590540a67648ba" name="tests/php_exceptions_002.phpt" role="test" />
140+
<file baseinstalldir="/" md5sum="3913092b6336924271fd9315a87d0973" name="tests/php_exceptions_003.phpt" role="test" />
141+
<file baseinstalldir="/" md5sum="66c0769781344af35f63d5d1b7a50852" name="tests/php_exceptions_004.phpt" role="test" />
142+
<file baseinstalldir="/" md5sum="610889e09e1579075ef973ef41883e8f" name="tests/php_exceptions_005.phpt" role="test" />
143+
<file baseinstalldir="/" md5sum="59e80f305f84f2effbac279261f8c5a6" name="tests/php_exceptions_006.phpt" role="test" />
144+
<file baseinstalldir="/" md5sum="c513770deccefc87636a30aa4329f779" name="tests/php_exceptions_basic.phpt" role="test" />
132145
<file baseinstalldir="/" md5sum="3cc6c105f2413e4270eba038e6a2dffd" name="tests/property_exists.phpt" role="test" />
133146
<file baseinstalldir="/" md5sum="065d238a0c45902ce226622847e5e341" name="tests/property_visibility-delete.phpt" role="test" />
134147
<file baseinstalldir="/" md5sum="4aa538bcaa3ab56b2fad8b6105ec1717" name="tests/property_visibility-enumerate.phpt" role="test" />
@@ -158,39 +171,40 @@
158171
<file baseinstalldir="/" md5sum="35ce3816ae00e697fca26142c46e0c79" name="tests/v8_write_property.phpt" role="test" />
159172
<file baseinstalldir="/" md5sum="ae504a63e5ff800e3aa7d529835d0e8e" name="tests/variable_passing.phpt" role="test" />
160173
<file baseinstalldir="/" md5sum="1bd7738aeeb5cf80d80561554f59f2ed" name="tests/var_dump.phpt" role="test" />
161-
<file baseinstalldir="/" md5sum="19150f213fb00790c51f22989b39ff55" name="config.m4" role="src" />
174+
<file baseinstalldir="/" md5sum="63c4b2873ccc935571ae7fbb1baeab7b" name="config.m4" role="src" />
162175
<file baseinstalldir="/" md5sum="987d834d2edc84ead98dc1fddba2ad73" name="config.w32" role="src" />
163176
<file baseinstalldir="/" md5sum="cea72666538d5b0b80a64ccdbda24919" name="CREDITS" role="doc" />
164177
<file baseinstalldir="/" md5sum="9f5b5f41204bcde55d9df87d5a970b30" name="LICENSE" role="doc" />
165178
<file baseinstalldir="/" md5sum="25260e0bc3111b01f700fad13544d6a9" name="Makefile.frag" role="src" />
166179
<file baseinstalldir="/" md5sum="31e331386def7ce98943694151c0d5cb" name="Makefile.travis" role="src" />
167180
<file baseinstalldir="/" md5sum="0e23fa6446e52a3b1cff8b18a6e0bd79" name="php_v8js.h" role="src" />
168-
<file baseinstalldir="/" md5sum="b81ab8ff4f87d883363b02fe358da87c" name="php_v8js_macros.h" role="src" />
169-
<file baseinstalldir="/" md5sum="8d36541e788d9f2de7d19d4e167a1b3b" name="README.Linux.md" role="doc" />
181+
<file baseinstalldir="/" md5sum="0d986531818b0e31633f2db3a242afb7" name="php_v8js_macros.h" role="src" />
182+
<file baseinstalldir="/" md5sum="ec19e63ca9310bfc4dc4dbd357c779ae" name="README.Linux.md" role="doc" />
170183
<file baseinstalldir="/" md5sum="4a65a3f9995d325a2c2ccb23224ea503" name="README.MacOS.md" role="doc" />
171-
<file baseinstalldir="/" md5sum="00cc5dd1c69120c7156abd08efafacba" name="README.md" role="doc" />
172-
<file baseinstalldir="/" md5sum="f7baf040ec2145f7eeccd5540ebb085f" name="README.Win32.md" role="doc" />
184+
<file baseinstalldir="/" md5sum="177459a9628e3c8c31b305f20c970f8d" name="README.md" role="doc" />
185+
<file baseinstalldir="/" md5sum="9839870e001306943797003e8828d855" name="README.Win32.md" role="doc" />
173186
<file baseinstalldir="/" md5sum="542f52c54898f33ac53b173970cba305" name="test.php" role="php" />
174187
<file baseinstalldir="/" md5sum="65294fadb5ed766094b1f587fc20ad37" name="TODO" role="doc" />
175-
<file baseinstalldir="/" md5sum="d1e8223596fac67062055261b6cf1180" name="v8js.cc" role="src" />
188+
<file baseinstalldir="/" md5sum="cc54d77b4d0044d7b143989f2dc12b94" name="v8js.cc" role="src" />
176189
<file baseinstalldir="/" md5sum="358c628b2627319e40fd7e5092f19872" name="v8js_array_access.cc" role="src" />
177190
<file baseinstalldir="/" md5sum="7baf3fe5b77d1374b39a1d8332e05df4" name="v8js_array_access.h" role="src" />
178-
<file baseinstalldir="/" md5sum="5504a5f186152a48ef3b3819bd53a676" name="v8js_class.cc" role="src" />
179-
<file baseinstalldir="/" md5sum="afd1c86428a25cc71c35a6f9e3ea04bb" name="v8js_class.h" role="src" />
180-
<file baseinstalldir="/" md5sum="795e65a077e963de413eb6947edd1f94" name="v8js_commonjs.cc" role="src" />
181-
<file baseinstalldir="/" md5sum="6b3d174805b6c97bdec88b9479e8ce6c" name="v8js_convert.cc" role="src" />
191+
<file baseinstalldir="/" md5sum="6c213918edf4f46ac630498e92bb99f6" name="v8js_class.cc" role="src" />
192+
<file baseinstalldir="/" md5sum="444a6fda6259076cd2a419cf59ab2c42" name="v8js_class.h" role="src" />
193+
<file baseinstalldir="/" md5sum="88b49988a5ef55edbd7ba085e7857f64" name="v8js_commonjs.cc" role="src" />
194+
<file baseinstalldir="/" md5sum="32a5d1a65f64ec37ec294f496fc11ff1" name="v8js_commonjs.h" role="src" />
195+
<file baseinstalldir="/" md5sum="c061344705c42fb705bffb2959fc1001" name="v8js_convert.cc" role="src" />
182196
<file baseinstalldir="/" md5sum="ede2cf80141b1831c7e7ab50dc57236f" name="v8js_debug.cc" role="src" />
183197
<file baseinstalldir="/" md5sum="cbdb6ed29c9ece278aa2aeab75dbe61f" name="v8js_debug.h" role="src" />
184-
<file baseinstalldir="/" md5sum="1867ebcefbc577aed051f40d9ccc58ad" name="v8js_exceptions.cc" role="src" />
185-
<file baseinstalldir="/" md5sum="587370513a019c34f2ddaac3b1f4cbf8" name="v8js_exceptions.h" role="src" />
186-
<file baseinstalldir="/" md5sum="3b5845c5f4109366257a9e35975703ac" name="v8js_methods.cc" role="src" />
187-
<file baseinstalldir="/" md5sum="55bfab106f9a92e8909aa6fba344037c" name="v8js_object_export.cc" role="src" />
198+
<file baseinstalldir="/" md5sum="40b66c44650a8127618c7fc48bf4b0b2" name="v8js_exceptions.cc" role="src" />
199+
<file baseinstalldir="/" md5sum="9d13bf5f413c2d76664670e847e1a801" name="v8js_exceptions.h" role="src" />
200+
<file baseinstalldir="/" md5sum="9f3ad8c136cdc3ebc2bdf993491f9ad8" name="v8js_methods.cc" role="src" />
201+
<file baseinstalldir="/" md5sum="d688b8eb822736d49f7282d22546d6bc" name="v8js_object_export.cc" role="src" />
188202
<file baseinstalldir="/" md5sum="281fb591fbebc3d23e04196cdb3ec64a" name="v8js_object_export.h" role="src" />
189-
<file baseinstalldir="/" md5sum="767d38eec0b407fba5e30398444e180e" name="v8js_timer.cc" role="src" />
203+
<file baseinstalldir="/" md5sum="d96c0e1eeaf1693813236f7e5da61e09" name="v8js_timer.cc" role="src" />
190204
<file baseinstalldir="/" md5sum="49f609c8cea6033f2ad1e6c9c829a571" name="v8js_timer.h" role="src" />
191-
<file baseinstalldir="/" md5sum="41b036ea855a1c8682a93d50dd834a67" name="v8js_v8.cc" role="src" />
192-
<file baseinstalldir="/" md5sum="72cc4af7af63c62138d4156faf784ec9" name="v8js_v8.h" role="src" />
193-
<file baseinstalldir="/" md5sum="842fb2dea63c473cdfaf501321a6a530" name="v8js_v8object_class.cc" role="src" />
205+
<file baseinstalldir="/" md5sum="b3ba6b76f92683c55b45bce351af887e" name="v8js_v8.cc" role="src" />
206+
<file baseinstalldir="/" md5sum="0c4829d52ff46116c381b1b66ec27541" name="v8js_v8.h" role="src" />
207+
<file baseinstalldir="/" md5sum="82908f4e741755efa2aedfb486945a40" name="v8js_v8object_class.cc" role="src" />
194208
<file baseinstalldir="/" md5sum="8a80d71ff40dfa833d3b58ac94475a9f" name="v8js_v8object_class.h" role="src" />
195209
<file baseinstalldir="/" md5sum="29be67d9bf8bfb1642d1219356109063" name="v8js_variables.cc" role="src" />
196210
</dir>
@@ -331,5 +345,87 @@
331345
- fixed crash on failed module bootstrapping
332346
</notes>
333347
</release>
348+
<release>
349+
<version>
350+
<release>0.2.2</release>
351+
<api>0.2.2</api>
352+
</version>
353+
<stability>
354+
<release>beta</release>
355+
<api>beta</api>
356+
</stability>
357+
<date>2015-08-26</date>
358+
<license uri="http://www.php.net/license">The MIT License (MIT)</license>
359+
<notes>
360+
- Fix CommonJS module caching
361+
- Fix use-after-free issue on CommonJS module reuse
362+
- Fix memory leaks in CommonJS module loader
363+
- Fix memory leak regarding lost script resources (compileScript call et al)
364+
- Improve V8Function call performance
365+
</notes>
366+
</release>
367+
<release>
368+
<version>
369+
<release>0.2.3</release>
370+
<api>0.2.3</api>
371+
</version>
372+
<stability>
373+
<release>beta</release>
374+
<api>beta</api>
375+
</stability>
376+
<date>2015-08-27</date>
377+
<license uri="http://www.php.net/license">The MIT License (MIT)</license>
378+
<notes>
379+
- Fix FLAG_FORCE_ARRAY affecting V8Function objects
380+
- Fix memory leak with repeated calls of methods on exported PHP objects
381+
</notes>
382+
</release>
383+
<release>
384+
<version>
385+
<release>0.2.4</release>
386+
<api>0.2.4</api>
387+
</version>
388+
<stability>
389+
<release>beta</release>
390+
<api>beta</api>
391+
</stability>
392+
<date>2015-09-01</date>
393+
<license uri="http://www.php.net/license">The MIT License (MIT)</license>
394+
<notes>
395+
- Fix memory leak with repeated Array exports from PHP to JS
396+
</notes>
397+
</release>
398+
<release>
399+
<version>
400+
<release>0.2.5</release>
401+
<api>0.2.5</api>
402+
</version>
403+
<stability>
404+
<release>beta</release>
405+
<api>beta</api>
406+
</stability>
407+
<date>2015-09-23</date>
408+
<license uri="http://www.php.net/license">The MIT License (MIT)</license>
409+
<notes>
410+
- Stop JS execution on PHP exceptions (instead of continuing silently)
411+
- Allow propagation of PHP exceptions to JS context (disabled by default)
412+
- Add v8js.compat_php_exceptions php.ini switch to switch previous behaviour back on
413+
</notes>
414+
</release>
415+
<release>
416+
<version>
417+
<release>0.2.6</release>
418+
<api>0.2.6</api>
419+
</version>
420+
<stability>
421+
<release>beta</release>
422+
<api>beta</api>
423+
</stability>
424+
<date>2015-09-26</date>
425+
<license uri="http://www.php.net/license">The MIT License (MIT)</license>
426+
<notes>
427+
- Fix reference counting issue on PHP-&gt;JS-&gt;PHP exception propagation
428+
</notes>
429+
</release>
334430
</changelog>
335431
</package>

0 commit comments

Comments
 (0)