0
0
mirror of https://github.com/phpv8/v8js.git synced 2024-11-08 17:48:41 +00:00
Commit Graph

631 Commits

Author SHA1 Message Date
Stefan Siegl
798a87e481 Add test on fatal errors within JS generators 2016-01-07 23:16:59 +01:00
Stefan Siegl
46fba810af Add test on PHP exceptions thrown by JS generators 2016-01-07 23:15:13 +01:00
Stefan Siegl
479d14b5b0 Handle exceptions thrown in JS generators well 2016-01-07 23:12:43 +01:00
Stefan Siegl
6fa6f9316e Test yield from JS generators 2016-01-07 23:00:45 +01:00
Stefan Siegl
f97a25b69c Test & implement PHP-side instantiation of JS generators 2016-01-07 22:57:50 +01:00
Stefan Siegl
da64b9f055 Handle rewind on primed V8Generator 2016-01-07 22:48:01 +01:00
Stefan Siegl
e686603b89 Implement direct iteration on JS generators 2016-01-07 22:41:13 +01:00
Stefan Siegl
2c7a7ab87d Implement PHP-side iteration of JS generator objects 2016-01-07 21:35:44 +01:00
Stefan Siegl
ef779d8250 minimalist V8 -> PHP generator passing 2016-01-07 20:41:40 +01:00
Stefan Siegl
10d0cc6e37 Update for PHP7/VC14 2016-01-07 11:42:24 +01:00
Stefan Siegl
df3bc6b714 elaborate on pre-built binaries 2016-01-07 11:32:48 +01:00
Stefan Siegl
fdd3c4bc64 Merge pull request #199 from stesie/appveyor-nts
appveyor: build x86-nts as well
2016-01-06 22:59:07 +01:00
Stefan Siegl
b2b5e78f4f appveyor: build x86-nts as well 2016-01-06 22:44:19 +01:00
Stefan Siegl
80e23793d9 Add AppVeyor build badge 2016-01-06 19:37:31 +01:00
Stefan Siegl
66841e8fb6 Merge pull request #198 from stesie/slow-down-time-limit-tests
Make set_time_limit tests slower
2016-01-06 17:43:45 +01:00
Stefan Siegl
adb8288061 Make set_time_limit tests slower
... to reduce the risk of false positives on slower (or busier) boxes.
2016-01-06 17:23:22 +01:00
Stefan Siegl
44c3ce7ffd Merge pull request #197 from phpv8/skip-win
skip extensions_error.phpt on Windows
2016-01-06 16:53:55 +01:00
Stefan Siegl
410376e0d9 initial appveyor.yml 2016-01-06 16:05:04 +01:00
Stefan Siegl
1d1b87bda3 skip extensions_error.phpt on Windows 2016-01-06 13:26:55 +00:00
Stefan Siegl
bcb409b7c4 Merge pull request #196 from phpv8/libplatform-for-win
Initialize libv8_platform for Windows as well
2016-01-06 13:20:22 +01:00
Stefan Siegl
c2a2cc341f Initialize libv8_platform for Windows as well
V8 doesn't work without libplatform anymore, even under
Windows.

Furthermore adapted two tests to \r\n vs. \n line
ending differences
2016-01-06 11:58:40 +00:00
Stefan Siegl
317f01f588 Merge pull request #195 from phpv8/fix-vc14-build
Reorder includes for Visual Studio 2015, closes #194
2016-01-06 10:40:01 +01:00
Stefan Siegl
6143b693b8 Include concrt.h only on _WIN32 2016-01-06 10:10:22 +01:00
Stefan Siegl
98205461be Reorder includes for Visual Studio 2015, closes #194
C++ headers need to go first, since PHP headers redefine
"inline" which causes trouble with the C++ header files.
2016-01-06 09:01:35 +00:00
Stefan Siegl
5fd9f3d000 Merge pull request #193 from stesie/fix-cpp-functional-memleak
defer bailout until std::function dtor
2016-01-01 20:50:41 +01:00
Stefan Siegl
a83c49266e defer bailout until std::function dtor
std::function allocates some heap memory, at least with some
implementations and expects the dtor to run.  Hence defer the
bailout until the dtor ran.
2016-01-01 19:10:04 +01:00
Stefan Siegl
beedb680db Merge pull request #192 from stesie/fix-v8-relock
Fix v8::Unlocker behaviour and related memory leaks
2016-01-01 00:28:06 +01:00
Stefan Siegl
8de27fd2ce free v8::Persistent<v8::Script> on bailout 2016-01-01 00:01:49 +01:00
Stefan Siegl
a520f49335 exit v8::HandleScope and v8::IsolateScope before bailing out
This fixes some memory leaks.
2015-12-31 23:44:01 +01:00
Stefan Siegl
2d9c831eeb Move zend_try block into v8::Unlocker block
If the v8::Unlocker block is within the zend_try block, then
v8::~Unlocker (dtor) is not called and hence V8 doesn't
re-aquire the lock.

Besides before we re-entered the isolate within zend_try
and hence *before* taking the lock.
2015-12-31 23:42:01 +01:00
Stefan Siegl
362eb0b806 Merge pull request #190 from stesie/warn-only-on-v8-errors
Don't abort PHP on fatal V8 errors, just warn about it
2015-12-31 21:42:00 +01:00
Stefan Siegl
27343d2f65 Merge pull request #191 from stesie/fix-double-free-exception
Fix use-after-free error wrt. pending exception
2015-12-31 21:41:58 +01:00
Stefan Siegl
7ab66751e3 Merge pull request #188 from stesie/fix-double-free
Fix double free
2015-12-31 20:56:18 +01:00
Stefan Siegl
cb94958afd Merge pull request #189 from stesie/merge-php5-to-php7
Merge version 0.4.0 features to php7 branch
2015-12-31 20:56:10 +01:00
Stefan Siegl
2d34adb91f Merge remote-tracking branch 'origin/master'
This primarily ports features introduced with V8Js 0.4.0
to the PHP7 branch.
2015-12-31 20:25:24 +01:00
Stefan Siegl
61febfb589 Merge pull request #186 from stesie/issue-185
Provide correct "this" on V8Object method invocation, closes #185
2015-12-30 22:33:49 +01:00
Stefan Siegl
c0d15af9cc Ignore .o files
These appear if you directly compile V8Js into PHP
2015-12-30 17:54:25 +01:00
Stefan Siegl
de23e8dba4 Don't abort PHP on fatal V8 errors, just warn about it
This way the PHP script can handle V8 errors gracefully
(and e.g. provide feedback to the user).

This especially changes behaviour when circular extension
dependencies happen (PHP code can go on, just V8 fails
to start).  This also fixes memory leaks of V8 and V8Js
itself caused by bailing out directly otherwise.
2015-12-30 17:53:46 +01:00
Stefan Siegl
7e1f2e9355 Fix use-after-free error wrt. pending exception
Don't dtor pending exception, PHP's exception handling does after all.
2015-12-30 17:46:29 +01:00
Stefan Siegl
64bfa552ad Fix double free
Fix double free of `php_value` and free `php_ret_value` instead
(which otherwise leaks).
2015-12-30 15:54:47 +01:00
Stefan Siegl
30fe9937de Merge pull request #187 from stesie/fix-regexp-vardump
Fix output of var_dump on regexp (V8 > 4.8)
2015-12-30 15:34:58 +01:00
Stefan Siegl
3108d3947d Fix output of var_dump on regexp (V8 > 4.8)
Newer V8 versions' toString() converts RegExp objects
just to [object RegExp] (instead of the actual regexp
as before).  Work-around by calling GetSource() on the
regexp and create former outhway that way.
2015-12-30 14:59:37 +01:00
Stefan Siegl
3c5508b956 Provide correct "this" on V8Object method invocation, closes #185 2015-12-26 12:16:17 +01:00
Stefan Siegl
d9e4ae5abe Bump version to 0.4.0 2015-12-07 13:26:44 +01:00
Stefan Siegl
28f061101e Merge pull request #184 from stesie/cust-module-normalisation
Allow custom module path normalisation
2015-12-06 14:48:50 +01:00
Stefan Siegl
67a9de01bd Allow custom module normalisation 2015-12-06 13:55:13 +01:00
Stefan Siegl
f258980399 Accept empty string as module source
This might be perfectly valid, if you're using a third-party module,
which requires a module yet doesn't use it in the code paths hit
and hence you just want to stub it out.
2015-12-06 13:25:43 +01:00
Stefan Siegl
4853c6d17f Set script identifier as String, not Symbol
Otherwise long module identifiers might get cut off.
2015-12-06 13:23:14 +01:00
Stefan Siegl
bf58fe67c1 wrap module loading in zend_try/zend_catch, closes #178 2015-12-04 22:09:04 +01:00
Stefan Siegl
39fff2301e Use module id as JsFileName for V8
This way the information to V8JsScriptException instances are way
more clear since they contain the name of the module that caused
the exception.
2015-12-04 21:46:54 +01:00